---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.16.3
  name: branches.cloud.pingcap.com
spec:
  group: cloud.pingcap.com
  names:
    categories:
    - infra-api
    kind: Branch
    listKind: BranchList
    plural: branches
    singular: branch
  preserveUnknownFields: false
  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: Branch is the Schema for the branches 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: BranchSpec defines the desired state of Branch
            properties:
              autoScaling:
                description: AutoScaling carries the RCU values
                properties:
                  max_rcu:
                    format: int32
                    type: integer
                  min_rcu:
                    format: int32
                    type: integer
                type: object
              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
                    - storageSize
                    type: object
                  suspendAction:
                    description: SuspendAction defines the suspend actions for a cluster
                    properties:
                      suspendCompute:
                        type: boolean
                    type: object
                  tidb:
                    properties:
                      audit:
                        properties:
                          azure:
                            properties:
                              sasToken:
                                type: string
                            required:
                            - sasToken
                            type: object
                          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:
                          azure:
                            properties:
                              sasToken:
                                type: string
                            required:
                            - sasToken
                            type: object
                          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:
                        description: 'notes: replicas minimum change from 1 to 0 to
                          support extraGroup'
                        minimum: 0
                        type: integer
                      security:
                        description: Set only if you want to overwrite the default
                          TiDB security configurations.
                        properties:
                          authTokenJwksSecret:
                            description: AuthTokenJwksSecret references a secret containing
                              tidb_auth_token JWKS.
                            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
                            x-kubernetes-map-type: atomic
                          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
                            x-kubernetes-map-type: atomic
                        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
                    - storageSize
                    type: object
                  tikv:
                    properties:
                      dedicatedRaftEngineStorage:
                        description: (Deprecated) DedicatedRaftEngineStorage specifies
                          provide a dedicated storage for raft engine.
                        properties:
                          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
                        required:
                        - storageSize
                        type: object
                      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
                      storageVolumes:
                        description: |-
                          StorageVolumes contains the additional storage volumes for TiKV.
                          NOTE: do not support add/remove volumes after the cluster is created now.
                        items:
                          description: |-
                            ComponentStorageVolume represents the additional storage volume for a component.
                            This is similar to `ComponentStorageSpec` but with more detailed information.
                          properties:
                            mountPath:
                              description: |-
                                MountPath is the path where the volume is mounted.
                                This path should be matched the configuration of the component.
                              type: string
                            name:
                              description: Name is the name of the volume, it should
                                be unique in the component.
                              type: string
                            storageClassName:
                              description: |-
                                StorageClassName is the storage class name of the volume.
                                It often includes IOPS and throughput information,
                                then updating the storage class will update the IOPS and throughput.
                              type: string
                            storageSize:
                              anyOf:
                              - type: integer
                              - type: string
                              description: StorageSize is the size 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
                          required:
                          - mountPath
                          - name
                          - storageClassName
                          - storageSize
                          type: object
                        type: array
                      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
                    - storageSize
                    type: object
                  tiproxy:
                    properties:
                      instanceType:
                        description: InstanceType is specified the profile of every
                          TiProxy node, the InstanceType must be declared in the Provider
                          spec
                        type: string
                      replicas:
                        minimum: 0
                        type: integer
                      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
                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
              recoveryMode:
                description: |-
                  RecoveryMode specifies whether enable recovery mode for TiDB cluster to restore
                  Optional: Defaults to false
                type: boolean
              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
                      gcp:
                        description: PrivateLink service for GCP
                        properties:
                          acceptedEndpoints:
                            description: AcceptedEndpoints represents the allowed
                              endpoints
                            items:
                              description: |-
                                GCP endpoint, which has format:
                                projects/{project}/regions/{region}/forwardingRules/{endpoint}
                                It is a string alias, because kubebuilder don't support to add pattern validation to string slice
                              pattern: ^projects\/.+\/regions\/.+\/forwardingRules\/.+$
                              type: string
                            type: array
                        required:
                        - acceptedEndpoints
                        type: object
                    type: object
                  public:
                    description: Public specifies the internet facing endpoint of
                      the cluster
                    properties:
                      authorizedNetworks:
                        items:
                          properties:
                            display_name:
                              type: string
                            end_ip_address:
                              type: string
                            start_ip_address:
                              type: string
                          type: object
                        nullable: true
                        type: array
                      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: BranchStatus defines the observed state of Branch
            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.
                          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.
                              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 modifying, 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
                          currentVolumeAttributesClass:
                            description: CurrentVolumeAttributesClass is the current
                              volume attributes class of the PVC.
                            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
                              calls of the volume.
                            type: string
                          modifiedVolumeAttributesClass:
                            description: ModifiedVolumeAttributesClass is the modified
                              volume attributes class of the PVC.
                            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.
                          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.
                              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
                      tokenBasedAuthEnabled:
                        description: TokenBasedAuthEnabled Whether the tokenBasedAuth
                          is enabled
                        type: boolean
                      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.
                          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.
                              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 modifying, 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
                          currentVolumeAttributesClass:
                            description: CurrentVolumeAttributesClass is the current
                              volume attributes class of the PVC.
                            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
                              calls of the volume.
                            type: string
                          modifiedVolumeAttributesClass:
                            description: ModifiedVolumeAttributesClass is the modified
                              volume attributes class of the PVC.
                            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.
                          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.
                              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
                      storageVolumes:
                        description: StorageVolumes contains the additional storage
                          volumes for TiKV.
                        items:
                          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 modifying, 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
                            currentVolumeAttributesClass:
                              description: CurrentVolumeAttributesClass is the current
                                volume attributes class of the PVC.
                              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
                                calls of the volume.
                              type: string
                            modifiedVolumeAttributesClass:
                              description: ModifiedVolumeAttributesClass is the modified
                                volume attributes class of the PVC.
                              type: string
                            name:
                              description: Name is the name of the volume, it should
                                be unique in the component.
                              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
                          - name
                          type: object
                        type: array
                      updatedReplicas:
                        description: UpdatedReplicas is the `UpdatedReplicas` of the
                          TiKV StatefulSet
                        format: int32
                        type: integer
                      volume:
                        description: Volume contains the info of the data volume used
                          by the TiKV
                        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 modifying, 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
                          currentVolumeAttributesClass:
                            description: CurrentVolumeAttributesClass is the current
                              volume attributes class of the PVC.
                            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
                              calls of the volume.
                            type: string
                          modifiedVolumeAttributesClass:
                            description: ModifiedVolumeAttributesClass is the modified
                              volume attributes class of the PVC.
                            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
                  tiproxy:
                    description: TiProxy is the current TiProxy status of db cluster
                    properties:
                      conditions:
                        items:
                          description: Condition contains details for one aspect of
                            the current state of this API Resource.
                          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.
                              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
                          TiProxy StatefulSet
                        format: int32
                        type: integer
                    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 branch
                enum:
                - Pending
                - Creating
                - Running
                - PendingDelete
                - Deleting
                - Unavailable
                - Restoring
                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 branch 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
                      resourceID:
                        type: string
                      token:
                        type: string
                    required:
                    - host
                    - port
                    type: object
                  privateLinkService:
                    nullable: true
                    properties:
                      aws:
                        nullable: true
                        properties:
                          availabilityZones:
                            description: |-
                              AvailabilityZones denotes the availability zones of the VPC endpoint
                              service
                            items:
                              type: string
                            nullable: true
                            type: array
                          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
                      gcp:
                        nullable: true
                        properties:
                          connections:
                            description: Connections contains all the connections
                              on the GCP endpoint service which filtered with the
                              `acceptedEndpoints` in spec
                            items:
                              properties:
                                endpoint:
                                  description: |-
                                    Endpoint, which has the format:
                                    projects/{project}/regions/{region}/forwardingRules/{endpoint}
                                  pattern: ^projects\/.+\/regions\/.+\/forwardingRules\/.+$
                                  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
                          domainName:
                            description: |-
                              DomainName is the doamin name used to construct private DNS name
                              It will be suffix of the consumer's private DNS name
                            nullable: true
                            type: string
                          nlb:
                            description: NLB is the network LoadBalance used by the
                              GCP endpoint service
                            nullable: true
                            type: string
                          port:
                            description: Port is the port to connect
                            format: int32
                            nullable: true
                            type: integer
                          serviceAttachment:
                            description: ServiceAttachment is the service name of
                              the GCP ednpoint service
                            nullable: true
                            type: string
                          subnet:
                            description: Subnet is the subnet used by the GCP endpoint
                              service to perform NAT
                            nullable: true
                            type: string
                        required:
                        - nlb
                        - port
                        - serviceAttachment
                        - subnet
                        type: object
                      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
                      resourceID:
                        type: string
                      token:
                        type: string
                    required:
                    - host
                    - port
                    type: object
                type: object
            required:
            - phase
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
