{{- if .Values.zfsLocalPv.enabled -}}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.19.0
    {{- include "crds.extraAnnotations" .Values.zfsLocalPv | nindent 4 }}
  name: zfsbackups.zfs.openebs.io
spec:
  group: zfs.openebs.io
  names:
    kind: ZFSBackup
    listKind: ZFSBackupList
    plural: zfsbackups
    shortNames:
    - zb
    singular: zfsbackup
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: Previous snapshot for backup
      jsonPath: .spec.prevSnapName
      name: PrevSnap
      type: string
    - description: Backup status
      jsonPath: .status
      name: Status
      type: string
    - description: Age of the volume
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1
    schema:
      openAPIV3Schema:
        description: ZFSBackup describes a zfs backup resource created as a custom
          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:
            description: ZFSBackupSpec is the spec for a ZFSBackup resource
            properties:
              backupDest:
                description: BackupDest is the remote address for backup transfer
                minLength: 1
                pattern: ^([0-9]+.[0-9]+.[0-9]+.[0-9]+:[0-9]+)$
                type: string
              ownerNodeID:
                description: OwnerNodeID is a name of the nodes where the source volume
                  is
                minLength: 1
                type: string
              prevSnapName:
                description: PrevSnapName is the last completed-backup's snapshot
                  name
                type: string
              snapName:
                description: SnapName is the snapshot name for backup
                minLength: 1
                type: string
              volumeName:
                description: VolumeName is a name of the volume for which this backup
                  is destined
                minLength: 1
                type: string
            required:
            - backupDest
            - ownerNodeID
            - volumeName
            type: object
          status:
            description: ZFSBackupStatus is to hold status of backup
            enum:
            - Init
            - Done
            - Failed
            - Pending
            - InProgress
            - Invalid
            type: string
        required:
        - spec
        - status
        type: object
    served: true
    storage: true
    subresources: {}
{{- end -}}
