apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/component: kubevirt
    app.kubernetes.io/managed-by: virt-operator
    kubevirt.io: ""
  name: migrationpolicies.migrations.kubevirt.io
spec:
  conversion:
    strategy: None
  group: migrations.kubevirt.io
  names:
    categories:
      - all
    kind: MigrationPolicy
    listKind: MigrationPolicyList
    plural: migrationpolicies
    singular: migrationpolicy
  scope: Cluster
  versions:
    - name: v1alpha1
      schema:
        openAPIV3Schema:
          description: MigrationPolicy holds migration policy (i.e. configurations) to apply to a VM or group of VMs
          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:
                allowAutoConverge:
                  type: boolean
                allowPostCopy:
                  type: boolean
                bandwidthPerMigration:
                  anyOf:
                    - type: integer
                    - type: string
                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                  x-kubernetes-int-or-string: true
                completionTimeoutPerGiB:
                  format: int64
                  type: integer
                selectors:
                  properties:
                    namespaceSelector:
                      additionalProperties:
                        type: string
                      type: object
                    virtualMachineInstanceSelector:
                      additionalProperties:
                        type: string
                      type: object
                  type: object
              required:
                - selectors
              type: object
            status:
              nullable: true
              type: object
          required:
            - spec
          type: object
      served: true
      storage: true
      subresources:
        status: {}