apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/component: kubevirt
    app.kubernetes.io/managed-by: virt-operator
    kubevirt.io: ""
  name: virtualmachineclones.clone.kubevirt.io
spec:
  conversion:
    strategy: None
  group: clone.kubevirt.io
  names:
    categories:
      - all
    kind: VirtualMachineClone
    listKind: VirtualMachineCloneList
    plural: virtualmachineclones
    shortNames:
      - vmclone
      - vmclones
    singular: virtualmachineclone
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .status.phase
          name: Phase
          type: string
        - jsonPath: .spec.source.name
          name: SourceVirtualMachine
          type: string
        - jsonPath: .spec.target.name
          name: TargetVirtualMachine
          type: string
      name: v1alpha1
      schema:
        openAPIV3Schema:
          description: VirtualMachineClone is a CRD that clones one VM into another.
          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:
              properties:
                annotationFilters:
                  items:
                    type: string
                  type: array
                  x-kubernetes-list-type: atomic
                labelFilters:
                  items:
                    type: string
                  type: array
                  x-kubernetes-list-type: atomic
                newMacAddresses:
                  additionalProperties:
                    type: string
                  description: NewMacAddresses manually sets that target interfaces' mac addresses. The key is the interface name and the value is the new mac address. If this field is not specified, a new MAC address will be generated automatically, as for any interface that is not included in this map.
                  type: object
                newSMBiosSerial:
                  description: NewSMBiosSerial manually sets that target's SMbios serial. If this field is not specified, a new serial will be generated automatically.
                  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
                target:
                  description: If the target is not provided, a random name would be generated for the target. The target's name can be viewed by inspecting status "TargetName" field below.
                  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:
              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
                  x-kubernetes-list-type: atomic
                creationTime:
                  format: date-time
                  nullable: true
                  type: string
                phase:
                  type: string
                restoreName:
                  nullable: true
                  type: string
                snapshotName:
                  nullable: true
                  type: string
                targetName:
                  nullable: true
                  type: string
              type: object
          required:
            - spec
          type: object
      served: true
      storage: true
      subresources:
        status: {}