---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.17.2
    helm.sh/resource-policy: keep
  name: databases.postgresql.cnpg.io
spec:
  group: postgresql.cnpg.io
  names:
    kind: Database
    listKind: DatabaseList
    plural: databases
    singular: database
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
        - jsonPath: .spec.cluster.name
          name: Cluster
          type: string
        - jsonPath: .spec.name
          name: PG Name
          type: string
        - jsonPath: .status.applied
          name: Applied
          type: boolean
        - jsonPath: .status.message
          name: Message
          type: string
      name: v1
      schema:
        openAPIV3Schema:
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
            spec:
              properties:
                allowConnections:
                  type: boolean
                builtinLocale:
                  type: string
                  x-kubernetes-validations:
                    - message: builtinLocale is immutable
                      rule: self == oldSelf
                cluster:
                  properties:
                    name:
                      default: ""
                      type: string
                  type: object
                  x-kubernetes-map-type: atomic
                collationVersion:
                  type: string
                  x-kubernetes-validations:
                    - message: collationVersion is immutable
                      rule: self == oldSelf
                connectionLimit:
                  type: integer
                databaseReclaimPolicy:
                  default: retain
                  enum:
                    - delete
                    - retain
                  type: string
                encoding:
                  type: string
                  x-kubernetes-validations:
                    - message: encoding is immutable
                      rule: self == oldSelf
                ensure:
                  default: present
                  enum:
                    - present
                    - absent
                  type: string
                icuLocale:
                  type: string
                  x-kubernetes-validations:
                    - message: icuLocale is immutable
                      rule: self == oldSelf
                icuRules:
                  type: string
                  x-kubernetes-validations:
                    - message: icuRules is immutable
                      rule: self == oldSelf
                isTemplate:
                  type: boolean
                locale:
                  type: string
                  x-kubernetes-validations:
                    - message: locale is immutable
                      rule: self == oldSelf
                localeCType:
                  type: string
                  x-kubernetes-validations:
                    - message: localeCType is immutable
                      rule: self == oldSelf
                localeCollate:
                  type: string
                  x-kubernetes-validations:
                    - message: localeCollate is immutable
                      rule: self == oldSelf
                localeProvider:
                  type: string
                  x-kubernetes-validations:
                    - message: localeProvider is immutable
                      rule: self == oldSelf
                name:
                  type: string
                  x-kubernetes-validations:
                    - message: name is immutable
                      rule: self == oldSelf
                    - message: the name postgres is reserved
                      rule: self != 'postgres'
                    - message: the name template0 is reserved
                      rule: self != 'template0'
                    - message: the name template1 is reserved
                      rule: self != 'template1'
                owner:
                  type: string
                tablespace:
                  type: string
                template:
                  type: string
                  x-kubernetes-validations:
                    - message: template is immutable
                      rule: self == oldSelf
              required:
                - cluster
                - name
                - owner
              type: object
              x-kubernetes-validations:
                - message: builtinLocale is only available when localeProvider is set to `builtin`
                  rule: '!has(self.builtinLocale) || self.localeProvider == ''builtin'''
                - message: icuLocale is only available when localeProvider is set to `icu`
                  rule: '!has(self.icuLocale) || self.localeProvider == ''icu'''
                - message: icuRules is only available when localeProvider is set to `icu`
                  rule: '!has(self.icuRules) || self.localeProvider == ''icu'''
            status:
              properties:
                applied:
                  type: boolean
                message:
                  type: string
                observedGeneration:
                  format: int64
                  type: integer
              type: object
          required:
            - metadata
            - spec
          type: object
      served: true
      storage: true
      subresources:
        status: {}
