
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.3.0
  creationTimestamp: null
  name: podvolumebackups.velero.io
spec:
  group: velero.io
  names:
    kind: PodVolumeBackup
    listKind: PodVolumeBackupList
    plural: podvolumebackups
    singular: podvolumebackup
  preserveUnknownFields: false
  scope: Namespaced
  validation:
    openAPIV3Schema:
      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: PodVolumeBackupSpec is the specification for a PodVolumeBackup.
          properties:
            backupStorageLocation:
              description: BackupStorageLocation is the name of the backup storage
                location where the restic repository is stored.
              type: string
            node:
              description: Node is the name of the node that the Pod is running on.
              type: string
            pod:
              description: Pod is a reference to the pod containing the volume to
                be backed up.
              properties:
                apiVersion:
                  description: API version of the referent.
                  type: string
                fieldPath:
                  description: 'If referring to a piece of an object instead of an
                    entire object, this string should contain a valid JSON/Go field
                    access statement, such as desiredState.manifest.containers[2].
                    For example, if the object reference is to a container within
                    a pod, this would take on a value like: "spec.containers{name}"
                    (where "name" refers to the name of the container that triggered
                    the event) or if no container name is specified "spec.containers[2]"
                    (container with index 2 in this pod). This syntax is chosen only
                    to have some well-defined way of referencing a part of an object.
                    TODO: this design is not final and this field is subject to change
                    in the future.'
                  type: string
                kind:
                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                  type: string
                name:
                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                  type: string
                namespace:
                  description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
                  type: string
                resourceVersion:
                  description: 'Specific resourceVersion to which this reference is
                    made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
                  type: string
                uid:
                  description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
                  type: string
              type: object
            repoIdentifier:
              description: RepoIdentifier is the restic repository identifier.
              type: string
            tags:
              additionalProperties:
                type: string
              description: Tags are a map of key-value pairs that should be applied
                to the volume backup as tags.
              type: object
            volume:
              description: Volume is the name of the volume within the Pod to be backed
                up.
              type: string
          required:
          - backupStorageLocation
          - node
          - pod
          - repoIdentifier
          - volume
          type: object
        status:
          description: PodVolumeBackupStatus is the current status of a PodVolumeBackup.
          properties:
            completionTimestamp:
              description: CompletionTimestamp records the time a backup was completed.
                Completion time is recorded even on failed backups. Completion time
                is recorded before uploading the backup object. The server's time
                is used for CompletionTimestamps
              format: date-time
              nullable: true
              type: string
            message:
              description: Message is a message about the pod volume backup's status.
              type: string
            path:
              description: Path is the full path within the controller pod being backed
                up.
              type: string
            phase:
              description: Phase is the current state of the PodVolumeBackup.
              enum:
              - New
              - InProgress
              - Completed
              - Failed
              type: string
            progress:
              description: Progress holds the total number of bytes of the volume
                and the current number of backed up bytes. This can be used to display
                progress information about the backup operation.
              properties:
                bytesDone:
                  format: int64
                  type: integer
                totalBytes:
                  format: int64
                  type: integer
              type: object
            snapshotID:
              description: SnapshotID is the identifier for the snapshot of the pod
                volume.
              type: string
            startTimestamp:
              description: StartTimestamp records the time a backup was started. Separate
                from CreationTimestamp, since that value changes on restores. The
                server's time is used for StartTimestamps
              format: date-time
              nullable: true
              type: string
          type: object
      type: object
  version: v1
  versions:
  - name: v1
    served: true
    storage: true
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
