---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    config.couchbase.com/version: 2.3.0
    controller-gen.kubebuilder.io/version: v0.8.0
  name: couchbasememcachedbuckets.couchbase.com
spec:
  group: couchbase.com
  names:
    kind: CouchbaseMemcachedBucket
    listKind: CouchbaseMemcachedBucketList
    plural: couchbasememcachedbuckets
    singular: couchbasememcachedbucket
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.memoryQuota
      name: memory quota
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: age
      type: date
    name: v2
    schema:
      openAPIV3Schema:
        description: The CouchbaseMemcachedBucket resource defines a set of documents
          in Couchbase server. A Couchbase client connects to and operates on a bucket,
          which provides independent management of a set documents and a security
          boundary for role based access control. A CouchbaseEphemeralBucket provides
          in-memory only storage for documents contained by it.
        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:
            default: {}
            description: CouchbaseMemcachedBucketSpec is the specification for a Memcached
              bucket resource, and allows the bucket to be customized.
            properties:
              enableFlush:
                description: EnableFlush defines whether a client can delete all documents
                  in a bucket. This field defaults to false.
                type: boolean
              memoryQuota:
                anyOf:
                - type: integer
                - type: string
                default: 100Mi
                description: 'MemoryQuota is a memory limit to the size of a bucket.
                  The memory quota is defined per Couchbase pod running the data service.  This
                  field defaults to, and must be greater than or equal to 100Mi.  More
                  info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-units-in-kubernetes'
                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                type: string
                x-kubernetes-int-or-string: true
              name:
                description: Name is the name of the bucket within Couchbase server.  By
                  default the Operator will use the `metadata.name` field to define
                  the bucket name.  The `metadata.name` field only supports a subset
                  of the supported character set.  When specified, this field overrides
                  `metadata.name`.  Legal bucket names have a maximum length of 100
                  characters and may be composed of any character from "a-z", "A-Z",
                  "0-9" and "-_%\.".
                maxLength: 100
                pattern: ^[a-zA-Z0-9-_%\.]{1,100}$
                type: string
            type: object
        type: object
    served: true
    storage: true
