---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.16.5
  labels:
    component: velero
  name: podvolumebackups.velero.io
spec:
  group: velero.io
  names:
    kind: PodVolumeBackup
    listKind: PodVolumeBackupList
    plural: podvolumebackups
    singular: podvolumebackup
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: Pod Volume Backup status such as New/InProgress
      jsonPath: .status.phase
      name: Status
      type: string
    - description: Time when this backup was started
      jsonPath: .status.startTimestamp
      name: Created
      type: date
    - description: Namespace of the pod containing the volume to be backed up
      jsonPath: .spec.pod.namespace
      name: Namespace
      type: string
    - description: Name of the pod containing the volume to be backed up
      jsonPath: .spec.pod.name
      name: Pod
      type: string
    - description: Name of the volume to be backed up
      jsonPath: .spec.volume
      name: Volume
      type: string
    - description: The type of the uploader to handle data transfer
      jsonPath: .spec.uploaderType
      name: Uploader Type
      type: string
    - description: Name of the Backup Storage Location where this backup should
        be stored
      jsonPath: .spec.backupStorageLocation
      name: Storage Location
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1
    schema:
      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 backup 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.
                    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
                x-kubernetes-map-type: atomic
              repoIdentifier:
                description: RepoIdentifier is the backup 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
              uploaderSettings:
                additionalProperties:
                  type: string
                description: |-
                  UploaderSettings are a map of key-value pairs that should be applied to the
                  uploader configuration.
                nullable: true
                type: object
              uploaderType:
                description: UploaderType is the type of the uploader to handle
                  the data transfer.
                enum:
                - kopia
                - restic
                - ""
                type: string
              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
    served: true
    storage: true
    subresources: {}
