---
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: couchbasecollections.couchbase.com
spec:
  group: couchbase.com
  names:
    kind: CouchbaseCollection
    listKind: CouchbaseCollectionList
    plural: couchbasecollections
    singular: couchbasecollection
  scope: Namespaced
  versions:
  - name: v2
    schema:
      openAPIV3Schema:
        description: CouchbaseCollection represent the finest grained size of data
          storage in Couchbase. Collections contain all documents and indexes in the
          system.  Collections also form the finest grain basis for role-based access
          control (RBAC) and cross-datacenter replication (XDCR).  In order to be
          considered by the Operator, every collection must be referenced by a `CouchbaseScope`
          or `CouchbaseScopeGroup` resource.
        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: Spec defines the desired state of the resource.
            properties:
              maxTTL:
                description: 'MaxTTL defines how long a document is permitted to exist
                  for, without modification, until it is automatically deleted.  This
                  field takes precedence over any TTL defined at the bucket level.  This
                  is a default, and maximum time-to-live and may be set to a lower
                  value by the client.  If the client specifies a higher value, then
                  it is truncated to the maximum durability.  Documents are removed
                  by Couchbase, after they have expired, when either accessed, the
                  expiry pager is run, or the bucket is compacted.  When set to 0,
                  then documents are not expired by default.  This field must be a
                  duration in the range 0-2147483648s, defaulting to 0.  More info:
                  https://golang.org/pkg/time/#ParseDuration'
                type: string
              name:
                description: Name specifies the name of the collection.  By default,
                  the metadata.name is used to define the collection name, however,
                  due to the limited character set, this field can be used to override
                  the default and provide the full functionality. Additionally the
                  `metadata.name` field is a DNS label, and thus limited to 63 characters,
                  this field must be used if the name is longer than this limit. Collection
                  names must be 1-251 characters in length, contain only [a-zA-Z0-9_-%]
                  and not start with either _ or %.
                maxLength: 251
                minLength: 1
                pattern: ^[a-zA-Z0-9\-][a-zA-Z0-9\-%_]{0,250}$
                type: string
            type: object
        type: object
    served: true
    storage: true
