apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: accounts.cloud.pingcap.com
spec:
  group: cloud.pingcap.com
  names:
    kind: Account
    listKind: AccountList
    plural: accounts
    singular: account
  scope: Cluster
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.provider
      name: PROVIDER
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: AGE
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: Account is the Schema for the accounts 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: AccountSpec defines the desired state of Account
            properties:
              aws:
                description: AWS is the AWS account configuration.
                properties:
                  accountID:
                    description: AccountID is the AWS account ID.
                    type: string
                  assumeRoleARN:
                    description: AssumeRoleARN is the ARN of the IAM role that provides
                      permissions for EKS-Provider to assume.
                    type: string
                  externalID:
                    description: ExternalID is the external ID that third-party should
                      provide when assuming the role.
                    type: string
                type: object
              gcp:
                description: GCP is the GCP account configuration.
                properties:
                  projectID:
                    description: ProjectID is the GCP project ID.
                    type: string
                  serviceAccount:
                    description: ServiceAccount is the GCP service account.
                    type: string
                type: object
              provider:
                description: Provider is the cloud provider of the account.
                type: string
            type: object
          status:
            description: AccountStatus defines the observed state of Account
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: backups.cloud.pingcap.com
spec:
  group: cloud.pingcap.com
  names:
    kind: Backup
    listKind: BackupList
    plural: backups
    singular: backup
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.clusterName
      name: Cluster
      type: string
    - jsonPath: .status.phase
      name: PHASE
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: AGE
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: Backup is the Schema for the backups 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: BackupSpec defines the desired state of Backup
            properties:
              clusterName:
                description: ClusterName is the target cluster name, target cluster
                  must exist in the same namespace as backup
                type: string
              commitTS:
                description: CommitTs is the commit ts of the backup, snapshot ts
                  for snapshot backup or start ts for log backup. Format supports
                  TSO or datetime, e.g. '400036290571534337', '2018-05-11 01:42:23'.
                  Default is current timestamp.
                type: string
              logStop:
                description: LogStop indicates that will stop the log backup.
                type: boolean
              logTruncateUntil:
                description: LogTruncateUntil is log backup truncate until timestamp.
                  Format supports TSO or datetime, e.g. '400036290571534337', '2018-05-11
                  01:42:23'.
                type: string
              mode:
                description: Mode is the backup mode, such as snapshot backup or log
                  backup.
                type: string
              options:
                description: Options is the parameters list of br, like --backupts=xxx
                items:
                  type: string
                type: array
              storage:
                description: Storage is the target storage address, use s3 uri. like
                  gs://xxxx
                type: string
            required:
            - clusterName
            type: object
          status:
            description: BackupStatus defines the observed state of Backup
            properties:
              backupPath:
                description: BackupPath is the location of the backup.
                type: string
              backupSize:
                description: BackupSize is the physical storage size taken by the
                  backup assets
                format: int64
                type: integer
              backupTS:
                description: BackupTS is the snapshot timestamp for snapshot backup
                  or start timestamp for log backup
                type: string
              bucketName:
                description: BucketName is the object store path of this backup
                type: string
              fromProvider:
                description: FromProvider encodes the provider specific status of
                  the backup, e.g. target shoot name of the backup
                nullable: true
                type: object
                x-kubernetes-embedded-resource: true
                x-kubernetes-preserve-unknown-fields: true
              logCheckpointTs:
                description: LogCheckpointTs is the ts of log backup process
                type: string
              logTruncateUntil:
                description: LogTruncateUntil is log backup truncate until timestamp
                  which will be the same as Spec.LogTruncateUntil when truncate is
                  complete
                type: string
              phase:
                description: Phase denotes current backup progress
                type: string
            required:
            - phase
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: clusterconfigs.cloud.pingcap.com
spec:
  group: cloud.pingcap.com
  names:
    kind: ClusterConfig
    listKind: ClusterConfigList
    plural: clusterconfigs
    singular: clusterconfig
  scope: Cluster
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        description: ClusterConfig is the Schema for the clusterconfigs 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: ClusterConfigSpec defines the desired state of ClusterConfig
            properties:
              backup:
                description: Backup contains all configurations about backup job
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              configMeta:
                description: ConfigMeta contains metadata information of configurations
                properties:
                  configVersion:
                    description: ConfigVersion is configuration version, version will
                      auto-increment to aviod old version overrides new version configuration
                    format: int64
                    type: integer
                  gitCommitID:
                    description: GitCommitID is git commit ID of cluster configuration
                    type: string
                required:
                - configVersion
                - gitCommitID
                type: object
              lightning:
                description: Lightning contains all configurations about a lightning
                  job
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              pd:
                description: PD contains all default and overlay configurations of
                  pd server
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              priority:
                description: Priority used for overlay in server side Higher priority
                  config will overwrite lower priority config
                type: integer
              restore:
                description: Restore contains all configurations about restore job
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              selector:
                description: Label selector for clusters, it wll match the cluster
                  object's labels.
                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
              ticdc:
                description: TiCDC contains all configurations about a ticdc cluster
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              tidb:
                description: TiDB contains all default and overlay configurations
                  of tidb server
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              tiflash:
                description: TiFlash contains all default and overlay configurations
                  of tiflash server
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              tiflashLearner:
                description: TiFlashLearner contains all default and overlay configurations
                  of tiflash learner
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              tikv:
                description: TiKV contains all default and overlay configurations
                  of tikv server
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              updatePolicy:
                type: string
              version:
                description: TiDB cluster version
                type: string
            required:
            - selector
            type: object
          status:
            description: ClusterConfigStatus defines the observed state of ClusterConfig
            type: object
        type: object
    served: true
    storage: true
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
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: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: configrevisions.cloud.pingcap.com
spec:
  group: cloud.pingcap.com
  names:
    kind: ConfigRevision
    listKind: ConfigRevisionList
    plural: configrevisions
    singular: configrevision
  scope: Cluster
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        description: ConfigRevision is the Schema for the configrevisions 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: ConfigRevisionSpec defines the desired state of ConfigRevision
            properties:
              backup:
                description: Backup contains all configurations about backup job
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              lightning:
                description: Lightning contains all configurations about a lightning
                  job
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              pd:
                description: PD contains all default and overlay configurations of
                  pd server
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              restore:
                description: Restore contains all configurations about restore job
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              ticdc:
                description: TiCDC contains all configurations about a ticdc cluster
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              tidb:
                description: TiDB contains all default and overlay configurations
                  of tidb server
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              tiflash:
                description: TiFlash contains all default and overlay configurations
                  of tiflash server
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              tiflashLearner:
                description: TiFlashLearner contains all default and overlay configurations
                  of tiflash learner
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              tikv:
                description: TiKV contains all default and overlay configurations
                  of tikv server
                properties:
                  baseImage:
                    description: BaseImage of the component
                    type: string
                  config:
                    description: Config is the default configuration of component
                    type: string
                  tag:
                    description: Tag is component image tag, if not specipy, will
                      use global version value.
                    type: string
                type: object
              version:
                description: TiDB cluster version
                type: string
            required:
            - version
            type: object
          status:
            description: ConfigRevisionStatus defines the observed state of ConfigRevision
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: imports.cloud.pingcap.com
spec:
  group: cloud.pingcap.com
  names:
    kind: Import
    listKind: ImportList
    plural: imports
    singular: import
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.clusterName
      name: Cluster
      type: string
    - jsonPath: .status.phase
      name: PHASE
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: AGE
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: Import is the Schema for the imports 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: ImportSpec defines the desired state of Import
            properties:
              accessConfig:
                description: AccessConfig includes the information for access the
                  import source.
                properties:
                  roleArn:
                    description: RoleArn is the ARN of the AWS role which the workload
                      will assume.
                    type: string
                type: object
              clusterName:
                description: ClusterName specifies the name of the cluster where the
                  data is imported to, the Cluster must exist in the same namespace
                  as Import
                type: string
              dryRun:
                description: With DryRun marked as true, the import job will only
                  run a dry run job to verify the permission to access the import
                  source
                type: boolean
              source:
                description: Source specifies where the import data should be retrieved
                  and parsed
                properties:
                  csvFormat:
                    description: CsvFormat is the format of the CSV files.
                    properties:
                      backslashEscape:
                        type: boolean
                      delimiter:
                        type: string
                      header:
                        type: boolean
                      notNull:
                        type: boolean
                      "null":
                        type: string
                      separator:
                        type: string
                      trimLastSeparator:
                        type: boolean
                    required:
                    - backslashEscape
                    - delimiter
                    - header
                    - notNull
                    - "null"
                    - separator
                    - trimLastSeparator
                    type: object
                  filters:
                    items:
                      type: string
                    type: array
                  format:
                    description: 'Format is the data format of the source data 0:
                      Unknown 1: SQL 2: Amazon Aurora Parquet 3: CSV 4: Raw Parquet'
                    format: int32
                    type: integer
                  objectNamePattern:
                    description: ObjectNamePattern specifies objects which match the
                      pattern to import
                    type: string
                  password:
                    description: Password is the TiDB password for Import job
                    type: string
                  storage:
                    description: Storage specifies where the data is located
                    properties:
                      gcs:
                        properties:
                          region:
                            type: string
                          url:
                            type: string
                        required:
                        - region
                        - url
                        type: object
                      s3:
                        properties:
                          region:
                            type: string
                          url:
                            type: string
                        required:
                        - region
                        - url
                        type: object
                    type: object
                  targetTablePattern:
                    description: TargetTablePattern specifies target db name and table
                      name
                    type: string
                  userName:
                    description: UserName is the TiDB username for Import job
                    type: string
                required:
                - format
                - password
                - storage
                - userName
                type: object
              storageRequest:
                description: StorageRequest specifies additional storage size for
                  the import job to use
                type: string
            required:
            - clusterName
            - source
            type: object
          status:
            description: ImportStatus defines the observed state of Import
            properties:
              allTableDetails:
                description: AllTableDetails is the table detailed status for each
                  table.
                items:
                  description: CurrentTableStatus defines the detailed information
                    on importing a table.
                  properties:
                    completed_percent:
                      description: CompletedPercent is the completed percentage for
                        importing on this table. The value is in 0 ~ 100.  Post-processing
                        time is not included.
                      format: int32
                      type: integer
                    message:
                      description: Message is the error message of the table import
                      type: string
                    name:
                      description: Name is the table name to import.
                      type: string
                    phase:
                      description: Phase is the detailed import phase for this table.
                        Such as "Pre-Processing / Importing / ... "
                      type: string
                    postImportCompletedPercent:
                      description: PostImportCompletedPercent is the completed percentage
                        after importing on this table (post-process and analyze).
                        The value is in 0 ~ 100.
                      format: int32
                      type: integer
                    processedSize:
                      description: ProcessedSize is the total source data size that
                        has been processed.  Processing data means the source data
                        is converted into local temp KV storage for quick import.
                      format: int64
                      type: integer
                    size:
                      description: Size is the total size of the source data of this
                        table.
                      format: int64
                      type: integer
                    timeRecord:
                      description: TimeRecord is detailed time record of the whole
                        importing process on this table.
                      properties:
                        analyzeDuration:
                          description: AnalyzeDuration is the duration in seconds
                            of the analyzing phase.
                          format: int64
                          type: integer
                        buildIndexDuration:
                          description: BuildIndexDuration is the duration in seconds
                            of the building index phase.
                          format: int64
                          type: integer
                        importDuration:
                          description: ImportDuration is the duration in seconds of
                            the data import phase.
                          format: int64
                          type: integer
                        importFinishTime:
                          description: ImportFinishTime is the UNIX timestamp when
                            first detected the importing has finished.
                          format: int64
                          type: integer
                        importStartTime:
                          description: ImportStartTime is the UNIX timestamp when
                            first detected the importing has started.
                          format: int64
                          type: integer
                        postProcessDuration:
                          description: PostProcessDuration is the duration in seconds
                            of the post-processing phase.  Post-processing consists
                            of duplication detection and checksum.
                          format: int64
                          type: integer
                        postProcessFinishTime:
                          description: PostProcessFinishTime is the UNIX timestamp
                            when first detected the post-processing has finished.
                          format: int64
                          type: integer
                        postProcessStartTime:
                          description: PostProcessStartTime is the UNIX timestamp
                            when first detected the post-processing has started.
                          format: int64
                          type: integer
                        preProcessDuration:
                          description: PreProcessDuration is the duration in seconds
                            of the pre-process phase.
                          format: int64
                          type: integer
                      type: object
                  required:
                  - completed_percent
                  - name
                  - size
                  type: object
                type: array
              collectTime:
                description: CollectTime is the UNIX timestamp when the status is
                  collected.
                format: int64
                type: integer
              completedPercent:
                description: CompletedPercent is the overall completed percentage
                  for importing. The value is in 0 ~ 100.  Post-processing time is
                  not included.
                format: int32
                type: integer
              completedTables:
                description: CompletedTables is the table count that the data has
                  been imported, but the table has not been post-processed.
                format: int32
                type: integer
              currentTables:
                description: CurrentTables is the table detailed status for each importing
                  table.
                items:
                  description: CurrentTableStatus defines the detailed information
                    on importing a table.
                  properties:
                    completed_percent:
                      description: CompletedPercent is the completed percentage for
                        importing on this table. The value is in 0 ~ 100.  Post-processing
                        time is not included.
                      format: int32
                      type: integer
                    message:
                      description: Message is the error message of the table import
                      type: string
                    name:
                      description: Name is the table name to import.
                      type: string
                    phase:
                      description: Phase is the detailed import phase for this table.
                        Such as "Pre-Processing / Importing / ... "
                      type: string
                    postImportCompletedPercent:
                      description: PostImportCompletedPercent is the completed percentage
                        after importing on this table (post-process and analyze).
                        The value is in 0 ~ 100.
                      format: int32
                      type: integer
                    processedSize:
                      description: ProcessedSize is the total source data size that
                        has been processed.  Processing data means the source data
                        is converted into local temp KV storage for quick import.
                      format: int64
                      type: integer
                    size:
                      description: Size is the total size of the source data of this
                        table.
                      format: int64
                      type: integer
                    timeRecord:
                      description: TimeRecord is detailed time record of the whole
                        importing process on this table.
                      properties:
                        analyzeDuration:
                          description: AnalyzeDuration is the duration in seconds
                            of the analyzing phase.
                          format: int64
                          type: integer
                        buildIndexDuration:
                          description: BuildIndexDuration is the duration in seconds
                            of the building index phase.
                          format: int64
                          type: integer
                        importDuration:
                          description: ImportDuration is the duration in seconds of
                            the data import phase.
                          format: int64
                          type: integer
                        importFinishTime:
                          description: ImportFinishTime is the UNIX timestamp when
                            first detected the importing has finished.
                          format: int64
                          type: integer
                        importStartTime:
                          description: ImportStartTime is the UNIX timestamp when
                            first detected the importing has started.
                          format: int64
                          type: integer
                        postProcessDuration:
                          description: PostProcessDuration is the duration in seconds
                            of the post-processing phase.  Post-processing consists
                            of duplication detection and checksum.
                          format: int64
                          type: integer
                        postProcessFinishTime:
                          description: PostProcessFinishTime is the UNIX timestamp
                            when first detected the post-processing has finished.
                          format: int64
                          type: integer
                        postProcessStartTime:
                          description: PostProcessStartTime is the UNIX timestamp
                            when first detected the post-processing has started.
                          format: int64
                          type: integer
                        preProcessDuration:
                          description: PreProcessDuration is the duration in seconds
                            of the pre-process phase.
                          format: int64
                          type: integer
                      type: object
                  required:
                  - completed_percent
                  - name
                  - size
                  type: object
                type: array
              isTaskCreated:
                description: IsTaskCreated means whether the task config has been
                  posted to the Lightning server.
                type: boolean
              message:
                description: Message is the error message of the import.
                type: string
              pendingTables:
                description: PendingTables is the table count that has not started
                  importing.
                format: int32
                type: integer
              phase:
                description: Phase means the overall phase of an import job.  Available
                  values are "Prepare / Running / Complete / Failed".
                type: string
              postImportCompletedPercent:
                description: PostImportCompletedPercent is the overall completed percentage
                  after importing (post-process and analyze). The value is in 0 ~
                  100.
                format: int32
                type: integer
              processedDataSize:
                description: ProcessedDataSize is the total source data size that
                  has been processed.  Processing data means the source data is converted
                  into local temp KV storage for quick import.
                format: int64
                type: integer
              taskId:
                description: TaskId is a uuid generated in the task creating phase.
                format: int64
                type: integer
              taskPhase:
                description: TaskPhase is the phase of a running import task.  Available
                  values are "Importing / Post-Processing".
                type: string
              totalFiles:
                description: TotalFiles is the total data source file count.
                format: int32
                type: integer
              totalSize:
                description: TotalSize is the total source data size.
                format: int64
                type: integer
              totalTables:
                description: TotalTables is the total table count for import.
                format: int32
                type: integer
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: infraapiconfigs.cloud.pingcap.com
spec:
  group: cloud.pingcap.com
  names:
    kind: InfraAPIConfig
    listKind: InfraAPIConfigList
    plural: infraapiconfigs
    singular: infraapiconfig
  scope: Namespaced
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        description: InfraAPIConfig is the Schema for the infraapiconfigs 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
          audit:
            properties:
              sidecarCommand:
                items:
                  type: string
                type: array
              sidecarImage:
                type: string
            type: object
          centralCIDR:
            items:
              type: string
            type: array
          clusterMaxConcurrentReconciles:
            description: We use two controllers(aws, gcp) now, the actual total worker
              will be 2 * this value.
            type: integer
          configServiceUrl:
            type: string
          dns:
            properties:
              publicHostedZoneDomain:
                type: string
              publicHostedZoneID:
                type: string
            required:
            - publicHostedZoneDomain
            - publicHostedZoneID
            type: object
          expFeatureGates:
            items:
              properties:
                command:
                  type: string
                featureGate:
                  properties:
                    all:
                      description: If `All` is true, this feature gate will be enabled
                        for all except DisabledTenants and DisabledProjects. If `All`
                        is false, this feature gate will be disabled for all except
                        EnabledTenants and EnabledProjects.
                      type: boolean
                    disabledProjects:
                      description: Disable the feature for the specified projects.
                      items:
                        format: int64
                        type: integer
                      type: array
                    disabledTenants:
                      description: Disable the feature for the specified tenants.
                      items:
                        format: int64
                        type: integer
                      type: array
                    enabledProjects:
                      description: Enable the feature for the specified projects.
                      items:
                        format: int64
                        type: integer
                      type: array
                    enabledTenants:
                      description: Enable the feature for the specified tenants.
                      items:
                        format: int64
                        type: integer
                      type: array
                  required:
                  - all
                  - disabledProjects
                  - disabledTenants
                  - enabledProjects
                  - enabledTenants
                  type: object
                minSupportVersion:
                  type: string
                name:
                  type: string
              required:
              - command
              - featureGate
              - minSupportVersion
              - name
              type: object
            type: array
          featureGates:
            additionalProperties:
              properties:
                all:
                  description: If `All` is true, this feature gate will be enabled
                    for all except DisabledTenants and DisabledProjects. If `All`
                    is false, this feature gate will be disabled for all except EnabledTenants
                    and EnabledProjects.
                  type: boolean
                disabledProjects:
                  description: Disable the feature for the specified projects.
                  items:
                    format: int64
                    type: integer
                  type: array
                disabledTenants:
                  description: Disable the feature for the specified tenants.
                  items:
                    format: int64
                    type: integer
                  type: array
                enabledProjects:
                  description: Enable the feature for the specified projects.
                  items:
                    format: int64
                    type: integer
                  type: array
                enabledTenants:
                  description: Enable the feature for the specified tenants.
                  items:
                    format: int64
                    type: integer
                  type: array
              required:
              - all
              - disabledProjects
              - disabledTenants
              - enabledProjects
              - enabledTenants
              type: object
            type: object
          gardener:
            description: copy from https://github.com/tidbcloud/dbaas/blob/af433fc6bbd814c7f1630947246673f21b22d587/central/config/config.go#L216
            properties:
              awsMasterCount:
                format: int32
                type: integer
              awsMasterType:
                type: string
              gardenBaseDomain:
                description: The base domain of gardener
                type: string
              gardenerProjectName:
                type: string
              gcpMasterCount:
                format: int32
                type: integer
              gcpMasterType:
                type: string
              kubeConfigPath:
                description: kubeconfig file for base cluster, ignore if in cluster
                type: string
              nodeImage:
                type: string
              storageNodeImage:
                type: string
            required:
            - awsMasterCount
            - awsMasterType
            - gardenBaseDomain
            - gardenerProjectName
            - gcpMasterCount
            - gcpMasterType
            - kubeConfigPath
            - nodeImage
            - storageNodeImage
            type: object
          hibernation:
            properties:
              checkIdleInterval:
                type: string
              dryRun:
                type: boolean
              idleTimeThreshold:
                type: string
            required:
            - checkIdleInterval
            - dryRun
            - idleTimeThreshold
            type: object
          identityImage:
            type: string
          import:
            properties:
              centralRoleARN:
                type: string
              skipBanMyBuckets:
                type: boolean
            required:
            - centralRoleARN
            - skipBanMyBuckets
            type: object
          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
          mixedDeployPDWithTiKV:
            properties:
              affectClusterCreatedAfter:
                format: date-time
                type: string
              affectNamespaceAllowList:
                items:
                  type: string
                type: array
              affectNamespaceBlockList:
                items:
                  type: string
                type: array
              affectTopology:
                properties:
                  lessEqualTiDBCount:
                    type: integer
                  lessEqualTiFlashCount:
                    type: integer
                  lessEqualTiKVCount:
                    type: integer
                  lessEqualTiKVInstanceCores:
                    type: integer
                required:
                - lessEqualTiDBCount
                - lessEqualTiFlashCount
                - lessEqualTiKVCount
                - lessEqualTiKVInstanceCores
                type: object
              enabled:
                type: boolean
            required:
            - affectClusterCreatedAfter
            - affectNamespaceAllowList
            - affectNamespaceBlockList
            - affectTopology
            - enabled
            type: object
          networkMaxConcurrentReconciles:
            type: integer
          observabilityAgentConfig:
            properties:
              auth0Audience:
                type: string
              auth0ClientID:
                type: string
              auth0ClientSecret:
                type: string
              auth0GetTokenURL:
                type: string
              createO11yInfraPath:
                type: string
              deleteO11yInfraPath:
                type: string
              effectiveRegion:
                items:
                  type: string
                type: array
              getO11yInfraPath:
                type: string
              openAPIAddress:
                type: string
              version:
                type: integer
            required:
            - auth0Audience
            - auth0ClientID
            - auth0ClientSecret
            - auth0GetTokenURL
            - createO11yInfraPath
            - deleteO11yInfraPath
            - effectiveRegion
            - getO11yInfraPath
            - openAPIAddress
            - version
            type: object
          predicate:
            description: A label selector is a label query over a set of resources.
              The result of matchLabels and matchExpressions are ANDed. An empty label
              selector matches all objects. A null label selector matches no objects.
            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
          server:
            properties:
              manifestDirectoryPrefix:
                type: string
            required:
            - manifestDirectoryPrefix
            type: object
        required:
        - centralCIDR
        - clusterMaxConcurrentReconciles
        - configServiceUrl
        - expFeatureGates
        - featureGates
        - gardener
        - hibernation
        - identityImage
        - import
        - mixedDeployPDWithTiKV
        - networkMaxConcurrentReconciles
        - observabilityAgentConfig
        - predicate
        - server
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: networkpeers.cloud.pingcap.com
spec:
  group: cloud.pingcap.com
  names:
    kind: NetworkPeer
    listKind: NetworkPeerList
    plural: networkpeers
    singular: networkpeer
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.phase
      name: PHASE
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: AGE
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: NetworkPeer is the Schema for the networkpeers 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: NetworkPeerSpec defines the desired state of NetworkPeer
            properties:
              source:
                type: string
              target:
                properties:
                  aws:
                    properties:
                      accountId:
                        type: string
                      peerCIDR:
                        type: string
                      peerRegion:
                        type: string
                      vpcId:
                        type: string
                    required:
                    - accountId
                    - peerCIDR
                    - peerRegion
                    - vpcId
                    type: object
                  gcp:
                    properties:
                      peerNetwork:
                        type: string
                      projectId:
                        type: string
                    required:
                    - peerNetwork
                    - projectId
                    type: object
                  network:
                    properties:
                      networkName:
                        type: string
                    required:
                    - networkName
                    type: object
                type: object
            required:
            - source
            - target
            type: object
          status:
            description: NetworkPeerStatus defines the observed state of NetworkPeer
            properties:
              hostedZoneId:
                type: string
              peeringId:
                type: string
              phase:
                type: string
              vpcCidr:
                type: string
            required:
            - phase
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: networks.cloud.pingcap.com
spec:
  group: cloud.pingcap.com
  names:
    kind: Network
    listKind: NetworkList
    plural: networks
    singular: network
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.phase
      name: PHASE
      type: string
    - jsonPath: .status.fromProvider.shootName
      name: SHOOT
      type: string
    - jsonPath: .status.fromProvider.bucketName
      name: BUCKET
      type: string
    - jsonPath: .spec.provider
      name: PROVIDER
      type: string
    - jsonPath: .spec.accountRef.name
      name: ACCOUNT
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: AGE
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: Network is the Schema for the networks 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: NetworkSpec defines the desired state of Network
            properties:
              accountRef:
                description: AccountReference is a reference to an Account CR. It
                  can be extended to use other types of references, like label selector.
                properties:
                  name:
                    type: string
                type: object
              cidr:
                type: string
              forProvider:
                description: ForProvider encodes the provider specific spec
                nullable: true
                type: object
                x-kubernetes-embedded-resource: true
                x-kubernetes-preserve-unknown-fields: true
              provider:
                type: string
              region:
                type: string
            type: object
          status:
            description: NetworkStatus defines the observed state of Network
            properties:
              coredns:
                properties:
                  ingressIps:
                    type: string
                  loadbalanceDns:
                    type: string
                type: object
              fromProvider:
                description: FromProvider encodes the provider specific status
                nullable: true
                type: object
                x-kubernetes-embedded-resource: true
                x-kubernetes-preserve-unknown-fields: true
              iam:
                properties:
                  accountID:
                    type: string
                  externalId:
                    type: string
                  serviceAccountEmail:
                    type: string
                type: object
              import:
                properties:
                  roleARN:
                    type: string
                type: object
              peering:
                properties:
                  allowed:
                    type: boolean
                type: object
              phase:
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: providers.cloud.pingcap.com
spec:
  group: cloud.pingcap.com
  names:
    kind: Provider
    listKind: ProviderList
    plural: providers
    singular: provider
  scope: Cluster
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        description: Provider is the Schema for the providers 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: ProviderSpec defines the desired state of Provider
            properties:
              forProvider:
                description: ForProvider encodes the provider specific spec
                nullable: true
                type: object
                x-kubernetes-embedded-resource: true
                x-kubernetes-preserve-unknown-fields: true
              instanceTypes:
                items:
                  properties:
                    arch:
                      type: string
                    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
                    localStorageSize:
                      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
                    maxStorage:
                      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
                    minStorage:
                      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
                    name:
                      type: string
                    regions:
                      items:
                        type: string
                      type: array
                  type: object
                type: array
              regions:
                items:
                  properties:
                    name:
                      type: string
                    zones:
                      items:
                        type: string
                      type: array
                  type: object
                type: array
              storageClasses:
                items:
                  properties:
                    iops:
                      type: integer
                    name:
                      type: string
                    throughput:
                      description: Throughput in MiB/s. Only effective when gp3 volume
                        type is specified.
                      type: integer
                    type:
                      type: string
                  type: object
                type: array
              type:
                type: string
            type: object
          status:
            description: ProviderStatus defines the observed state of Provider
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: providertypes.cloud.pingcap.com
spec:
  group: cloud.pingcap.com
  names:
    kind: ProviderType
    listKind: ProviderTypeList
    plural: providertypes
    singular: providertype
  scope: Cluster
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        description: ProviderType is the Schema for the providertypes 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: ProviderTypeSpec defines the desired state of ProviderType
            properties:
              capabilities:
                items:
                  properties:
                    group:
                      type: string
                    resources:
                      items:
                        type: string
                      type: array
                  type: object
                type: array
            type: object
          status:
            description: ProviderTypeStatus defines the observed state of ProviderType
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: restores.cloud.pingcap.com
spec:
  group: cloud.pingcap.com
  names:
    kind: Restore
    listKind: RestoreList
    plural: restores
    singular: restore
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.clusterName
      name: Cluster
      type: string
    - jsonPath: .spec.from.backup
      name: From
      type: string
    - jsonPath: .status.phase
      name: PHASE
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: AGE
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: Restore is the Schema for the restores 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: RestoreSpec defines the desired state of Restore
            properties:
              clusterName:
                description: ClusterName specifies the name of the target cluster
                  where data is restored to, the cluster must exist in the same namespace
                  with Restore
                type: string
              from:
                description: From specified where the backup data locates
                properties:
                  PiTRRestoredTS:
                    description: PiTRRestoredTS is the PiTR restored ts. it is used
                      when LogBackup is specified
                    type: string
                  backup:
                    description: Backup is the name of the target Backup object, if
                      this field is specified, the backup data will be retrieved from
                      the Backup job. The Backup must exist in the same namespace
                      if specified.
                    type: string
                  logBackup:
                    description: LogBackup represents to execute PiTR it is the name
                      of Backup object with Log mode its usage is same as Backup field
                    type: string
                required:
                - backup
                type: object
            required:
            - clusterName
            - from
            type: object
          status:
            description: RestoreStatus defines the observed state of Restore
            properties:
              phase:
                description: Phase denotes the current restore progress
                type: string
              progresses:
                items:
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the update time
                      format: date-time
                      nullable: true
                      type: string
                    progress:
                      description: Progress is the restore progress percentage value
                      format: int32
                      type: integer
                    step:
                      description: Step is the step name of progress
                      type: string
                  type: object
                type: array
            required:
            - phase
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: ticdcs.cloud.pingcap.com
spec:
  group: cloud.pingcap.com
  names:
    kind: TiCDC
    listKind: TiCDCList
    plural: ticdcs
    singular: ticdc
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.clusterName
      name: Cluster
      type: string
    - jsonPath: .status.phase
      name: PHASE
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: AGE
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: TiCDC is the Schema for the ticdcs 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: TiCDCSpec defines the desired state of TiCDC TiCDC only use
              cloud ssd for storage
            properties:
              CDCClusterID:
                description: CDCClusterID is the cdc  cluster id. When you want to
                  deploy multi cdc cluster to replica one TIDB cluster, fill this
                  field.
                type: string
              UpstreamCoreDNSIp:
                description: UpstreamCoreDNSIp only use on eks provider, downstream
                  use this ip string to connect upstream tidb components
                type: string
              UpstreamclusterName:
                description: UpstreamCluster is the upstream cluster name. When you
                  want to connect the upstream PD client, fill this field.
                type: string
              clusterName:
                description: ClusterName is the target cluster name, target cluster
                  must exist in the same namespace as cdc cluster. It decides where
                  the TiCDC is deployed.
                type: string
              instanceType:
                description: InstanceType is specified the profile of every TiCDC
                  node, the InstanceType must be declared in the Provider spec
                type: string
              networkName:
                description: 'NetworkName references the Network where the TiCDC is
                  hosted, note: the Network need not as the same as the cluster''s
                  Network for decouple these two resources'
                type: string
              replicas:
                minimum: 0
                type: integer
              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
            required:
            - instanceType
            - networkName
            - replicas
            type: object
          status:
            description: TiCDCStatus defines the observed state of TiCDC
            properties:
              baseProxyURL:
                description: BaseProxyURL denotes base proxy url for ticdc
                type: string
              phase:
                description: Phase denotes current ticdc progress
                type: string
              reason:
                description: Reason explains why the ticdc is in current phase to
                  human, reason is not supposed to be parsed by program, Phase should
                  be used instead.
                type: string
            required:
            - phase
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
