apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    kubevirt.io/generation: "3"
    kubevirt.io/install-strategy-identifier: 5dc642dcafc20b388aac8893d36db44393e586b9
    kubevirt.io/install-strategy-registry: ""
    kubevirt.io/install-strategy-version: sha256:031a34ff7b451f8588ed2960c576d6a835a749de7c168e88eaec45d180be6a21
  creationTimestamp: "2025-10-29T11:53:45Z"
  generation: 1
  labels:
    app.kubernetes.io/component: compute
    app.kubernetes.io/managed-by: virt-operator
    app.kubernetes.io/part-of: hyperconverged-cluster
    app.kubernetes.io/version: 4.19.12
    kubevirt.io: ""
  managedFields:
  - apiVersion: apiextensions.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:status:
        f:acceptedNames:
          f:categories: {}
          f:kind: {}
          f:listKind: {}
          f:plural: {}
          f:shortNames: {}
          f:singular: {}
        f:conditions:
          k:{"type":"Established"}:
            .: {}
            f:lastTransitionTime: {}
            f:message: {}
            f:reason: {}
            f:status: {}
            f:type: {}
          k:{"type":"NamesAccepted"}:
            .: {}
            f:lastTransitionTime: {}
            f:message: {}
            f:reason: {}
            f:status: {}
            f:type: {}
    manager: kube-apiserver
    operation: Update
    subresource: status
    time: "2025-10-29T11:53:45Z"
  - apiVersion: apiextensions.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .: {}
          f:kubevirt.io/generation: {}
          f:kubevirt.io/install-strategy-identifier: {}
          f:kubevirt.io/install-strategy-registry: {}
          f:kubevirt.io/install-strategy-version: {}
        f:labels:
          .: {}
          f:app.kubernetes.io/component: {}
          f:app.kubernetes.io/managed-by: {}
          f:app.kubernetes.io/part-of: {}
          f:app.kubernetes.io/version: {}
          f:kubevirt.io: {}
      f:spec:
        f:conversion:
          .: {}
          f:strategy: {}
        f:group: {}
        f:names:
          f:categories: {}
          f:kind: {}
          f:listKind: {}
          f:plural: {}
          f:shortNames: {}
          f:singular: {}
        f:scope: {}
        f:versions: {}
    manager: virt-operator
    operation: Update
    time: "2025-10-29T13:20:45Z"
  name: virtualmachinerestores.snapshot.kubevirt.io
  resourceVersion: "2228630"
  uid: 5bbdf648-6d8e-4529-9d92-630853fd2a8a
spec:
  conversion:
    strategy: None
  group: snapshot.kubevirt.io
  names:
    categories:
    - all
    kind: VirtualMachineRestore
    listKind: VirtualMachineRestoreList
    plural: virtualmachinerestores
    shortNames:
    - vmrestore
    - vmrestores
    singular: virtualmachinerestore
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.target.kind
      name: TargetKind
      type: string
    - jsonPath: .spec.target.name
      name: TargetName
      type: string
    - jsonPath: .status.complete
      name: Complete
      type: boolean
    - jsonPath: .status.restoreTime
      name: RestoreTime
      type: date
    - jsonPath: .status.error.message
      name: Error
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: VirtualMachineRestore defines the operation of restoring a VM
        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: VirtualMachineRestoreSpec is the spec for a VirtualMachineRestoreresource
            properties:
              patches:
                description: |-
                  If the target for the restore does not exist, it will be created. Patches holds JSON patches that would be
                  applied to the target manifest before it's created. Patches should fit the target's Kind.

                  Example for a patch: {"op": "replace", "path": "/metadata/name", "value": "new-vm-name"}
                items:
                  type: string
                type: array
                x-kubernetes-list-type: atomic
              target:
                description: initially only VirtualMachine type supported
                properties:
                  apiGroup:
                    description: |-
                      APIGroup is the group for the resource being referenced.
                      If APIGroup is not specified, the specified Kind must be in the core API group.
                      For any other third-party types, APIGroup is required.
                    type: string
                  kind:
                    description: Kind is the type of resource being referenced
                    type: string
                  name:
                    description: Name is the name of resource being referenced
                    type: string
                required:
                - kind
                - name
                type: object
                x-kubernetes-map-type: atomic
              targetReadinessPolicy:
                description: |-
                  TargetReadinessPolicy defines how to handle the restore in case
                  the target is not ready
                type: string
              virtualMachineSnapshotName:
                type: string
            required:
            - target
            - virtualMachineSnapshotName
            type: object
          status:
            description: VirtualMachineRestoreStatus is the spec for a VirtualMachineRestoreresource
            properties:
              complete:
                type: boolean
              conditions:
                items:
                  description: Condition defines conditions
                  properties:
                    lastProbeTime:
                      format: date-time
                      nullable: true
                      type: string
                    lastTransitionTime:
                      format: date-time
                      nullable: true
                      type: string
                    message:
                      type: string
                    reason:
                      type: string
                    status:
                      type: string
                    type:
                      description: ConditionType is the const type for Conditions
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
                x-kubernetes-list-type: atomic
              deletedDataVolumes:
                items:
                  type: string
                type: array
                x-kubernetes-list-type: set
              restoreTime:
                format: date-time
                type: string
              restores:
                items:
                  description: VolumeRestore contains the data neeed to restore a
                    PVC
                  properties:
                    dataVolumeName:
                      type: string
                    persistentVolumeClaim:
                      type: string
                    volumeName:
                      type: string
                    volumeSnapshotName:
                      type: string
                  required:
                  - persistentVolumeClaim
                  - volumeName
                  - volumeSnapshotName
                  type: object
                type: array
                x-kubernetes-list-type: atomic
            type: object
        required:
        - spec
        type: object
    served: true
    storage: false
    subresources:
      status: {}
  - additionalPrinterColumns:
    - jsonPath: .spec.target.kind
      name: TargetKind
      type: string
    - jsonPath: .spec.target.name
      name: TargetName
      type: string
    - jsonPath: .status.complete
      name: Complete
      type: boolean
    - jsonPath: .status.restoreTime
      name: RestoreTime
      type: date
    - jsonPath: .status.error.message
      name: Error
      type: string
    name: v1beta1
    schema:
      openAPIV3Schema:
        description: VirtualMachineRestore defines the operation of restoring a VM
        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: VirtualMachineRestoreSpec is the spec for a VirtualMachineRestoreresource
            properties:
              patches:
                description: |-
                  If the target for the restore does not exist, it will be created. Patches holds JSON patches that would be
                  applied to the target manifest before it's created. Patches should fit the target's Kind.

                  Example for a patch: {"op": "replace", "path": "/metadata/name", "value": "new-vm-name"}
                items:
                  type: string
                type: array
                x-kubernetes-list-type: atomic
              target:
                description: initially only VirtualMachine type supported
                properties:
                  apiGroup:
                    description: |-
                      APIGroup is the group for the resource being referenced.
                      If APIGroup is not specified, the specified Kind must be in the core API group.
                      For any other third-party types, APIGroup is required.
                    type: string
                  kind:
                    description: Kind is the type of resource being referenced
                    type: string
                  name:
                    description: Name is the name of resource being referenced
                    type: string
                required:
                - kind
                - name
                type: object
                x-kubernetes-map-type: atomic
              targetReadinessPolicy:
                description: |-
                  TargetReadinessPolicy defines how to handle the restore in case
                  the target is not ready
                type: string
              virtualMachineSnapshotName:
                type: string
            required:
            - target
            - virtualMachineSnapshotName
            type: object
          status:
            description: VirtualMachineRestoreStatus is the spec for a VirtualMachineRestoreresource
            properties:
              complete:
                type: boolean
              conditions:
                items:
                  description: Condition defines conditions
                  properties:
                    lastProbeTime:
                      format: date-time
                      nullable: true
                      type: string
                    lastTransitionTime:
                      format: date-time
                      nullable: true
                      type: string
                    message:
                      type: string
                    reason:
                      type: string
                    status:
                      type: string
                    type:
                      description: ConditionType is the const type for Conditions
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
                x-kubernetes-list-type: atomic
              deletedDataVolumes:
                items:
                  type: string
                type: array
                x-kubernetes-list-type: set
              restoreTime:
                format: date-time
                type: string
              restores:
                items:
                  description: VolumeRestore contains the data neeed to restore a
                    PVC
                  properties:
                    dataVolumeName:
                      type: string
                    persistentVolumeClaim:
                      type: string
                    volumeName:
                      type: string
                    volumeSnapshotName:
                      type: string
                  required:
                  - persistentVolumeClaim
                  - volumeName
                  - volumeSnapshotName
                  type: object
                type: array
                x-kubernetes-list-type: atomic
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    categories:
    - all
    kind: VirtualMachineRestore
    listKind: VirtualMachineRestoreList
    plural: virtualmachinerestores
    shortNames:
    - vmrestore
    - vmrestores
    singular: virtualmachinerestore
  conditions:
  - lastTransitionTime: "2025-10-29T11:53:45Z"
    message: no conflicts found
    reason: NoConflicts
    status: "True"
    type: NamesAccepted
  - lastTransitionTime: "2025-10-29T11:53:45Z"
    message: the initial names have been accepted
    reason: InitialNamesAccepted
    status: "True"
    type: Established
  storedVersions:
  - v1beta1
