apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    kubevirt.io/generation: "1"
    kubevirt.io/install-strategy-identifier: c51bc47ef3eccba54f764552d24801eb8388b36e
    kubevirt.io/install-strategy-registry: quay.io/kubevirt
    kubevirt.io/install-strategy-version: v1.0.1
  generation: 1
  labels:
    app.kubernetes.io/component: kubevirt
    app.kubernetes.io/managed-by: virt-operator
    kubevirt.io: ""
  name: virtualmachinesnapshots.snapshot.kubevirt.io
spec:
  conversion:
    strategy: None
  group: snapshot.kubevirt.io
  names:
    categories:
      - all
    kind: VirtualMachineSnapshot
    listKind: VirtualMachineSnapshotList
    plural: virtualmachinesnapshots
    shortNames:
      - vmsnapshot
      - vmsnapshots
    singular: virtualmachinesnapshot
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .spec.source.kind
          name: SourceKind
          type: string
        - jsonPath: .spec.source.name
          name: SourceName
          type: string
        - jsonPath: .status.phase
          name: Phase
          type: string
        - jsonPath: .status.readyToUse
          name: ReadyToUse
          type: boolean
        - jsonPath: .status.creationTime
          name: CreationTime
          type: date
        - jsonPath: .status.error.message
          name: Error
          type: string
      name: v1alpha1
      schema:
        openAPIV3Schema:
          description: VirtualMachineSnapshot defines the operation of snapshotting 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: VirtualMachineSnapshotSpec is the spec for a VirtualMachineSnapshot resource
              properties:
                deletionPolicy:
                  description: DeletionPolicy defines that to do with VirtualMachineSnapshot when VirtualMachineSnapshot is deleted
                  type: string
                failureDeadline:
                  description: This time represents the number of seconds we permit the vm snapshot to take. In case we pass this deadline we mark this snapshot as failed. Defaults to DefaultFailureDeadline - 5min
                  type: string
                source:
                  description: TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.
                  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
              required:
                - source
              type: object
            status:
              description: VirtualMachineSnapshotStatus is the status for a VirtualMachineSnapshot resource
              properties:
                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
                creationTime:
                  format: date-time
                  nullable: true
                  type: string
                error:
                  description: Error is the last error encountered during the snapshot/restore
                  properties:
                    message:
                      type: string
                    time:
                      format: date-time
                      type: string
                  type: object
                indications:
                  items:
                    description: Indication is a way to indicate the state of the vm when taking the snapshot
                    type: string
                  type: array
                  x-kubernetes-list-type: set
                phase:
                  description: VirtualMachineSnapshotPhase is the current phase of the VirtualMachineSnapshot
                  type: string
                readyToUse:
                  type: boolean
                snapshotVolumes:
                  description: SnapshotVolumesLists includes the list of volumes which were included in the snapshot and volumes which were excluded from the snapshot
                  properties:
                    excludedVolumes:
                      items:
                        type: string
                      type: array
                      x-kubernetes-list-type: set
                    includedVolumes:
                      items:
                        type: string
                      type: array
                      x-kubernetes-list-type: set
                  type: object
                sourceUID:
                  description: UID is a type that holds unique ID values, including UUIDs.  Because we don't ONLY use UUIDs, this is an alias to string.  Being a type captures intent and helps make sure that UIDs and names do not get conflated.
                  type: string
                virtualMachineSnapshotContentName:
                  type: string
              type: object
          required:
            - spec
          type: object
      served: true
      storage: true