apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.7.0
  name: mysqldatabases.mysql.presslabs.org
  labels:
    app.kubernetes.io/name: mysql-operator
spec:
  group: mysql.presslabs.org
  names:
    kind: MysqlDatabase
    listKind: MysqlDatabaseList
    plural: mysqldatabases
    singular: mysqldatabase
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - description: The database status
          jsonPath: .status.conditions[?(@.type == 'Ready')].status
          name: Ready
          type: string
        - jsonPath: .spec.clusterRef.name
          name: Cluster
          type: string
        - jsonPath: .spec.database
          name: Database
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v1alpha1
      schema:
        openAPIV3Schema:
          description: MysqlDatabase is the Schema for the MySQL database 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: MysqlDatabaseSpec defines the desired state of MysqlDatabaseSpec
              properties:
                characterSet:
                  description: CharacterSet represents the charset name used when database is created
                  type: string
                clusterRef:
                  description: ClusterRef represents a reference to the MySQL cluster. This field should be immutable.
                  properties:
                    name:
                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
                      type: string
                    namespace:
                      description: Namespace the MySQL cluster namespace
                      type: string
                  type: object
                collation:
                  description: Collation represents the collation name used as default database collation
                  type: string
                database:
                  description: Database represents the database name which will be created. This field should be immutable.
                  type: string
              required:
                - clusterRef
                - database
              type: object
            status:
              description: MysqlDatabaseStatus defines the observed state of MysqlDatabase
              properties:
                conditions:
                  description: Conditions represents the MysqlDatabase  resource conditions list.
                  items:
                    description: MysqlDatabaseCondition defines the condition struct for a MysqlDatabase resource
                    properties:
                      lastTransitionTime:
                        description: Last time the condition transitioned from one status to another.
                        format: date-time
                        type: string
                      lastUpdateTime:
                        description: The last time this condition was updated.
                        format: date-time
                        type: string
                      message:
                        description: A human readable message indicating details about the transition.
                        type: string
                      reason:
                        description: The reason for the condition's last transition.
                        type: string
                      status:
                        description: Status of the condition, one of True, False, Unknown.
                        type: string
                      type:
                        description: Type of MysqlDatabase condition.
                        type: string
                    required:
                      - lastTransitionTime
                      - message
                      - reason
                      - status
                      - type
                    type: object
                  type: array
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
  preserveUnknownFields: false
