
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.3.0
  creationTimestamp: null
  name: podvolumerestores.velero.io
spec:
  group: velero.io
  names:
    kind: PodVolumeRestore
    listKind: PodVolumeRestoreList
    plural: podvolumerestores
    singular: podvolumerestore
  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: PodVolumeRestoreSpec is the specification for a PodVolumeRestore.
          properties:
            backupStorageLocation:
              description: BackupStorageLocation is the name of the backup storage
                location where the restic repository is stored.
              type: string
            pod:
              description: Pod is a reference to the pod containing the volume to
                be restored.
              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
            snapshotID:
              description: SnapshotID is the ID of the volume snapshot to be restored.
              type: string
            volume:
              description: Volume is the name of the volume within the Pod to be restored.
              type: string
          required:
          - backupStorageLocation
          - pod
          - repoIdentifier
          - snapshotID
          - volume
          type: object
        status:
          description: PodVolumeRestoreStatus is the current status of a PodVolumeRestore.
          properties:
            completionTimestamp:
              description: CompletionTimestamp records the time a restore was completed.
                Completion time is recorded even on failed restores. 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 restore's status.
              type: string
            phase:
              description: Phase is the current state of the PodVolumeRestore.
              enum:
              - New
              - InProgress
              - Completed
              - Failed
              type: string
            progress:
              description: Progress holds the total number of bytes of the snapshot
                and the current number of restored bytes. This can be used to display
                progress information about the restore operation.
              properties:
                bytesDone:
                  format: int64
                  type: integer
                totalBytes:
                  format: int64
                  type: integer
              type: object
            startTimestamp:
              description: StartTimestamp records the time a restore was started.
                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: []
