diff --git a/pkg/api/v1/openapi_generated.go b/pkg/api/v1/openapi_generated.go new file mode 100644 index 000000000000..0b3dcf2006bf --- /dev/null +++ b/pkg/api/v1/openapi_generated.go @@ -0,0 +1,1781 @@ +// +build !ignore_autogenerated + +/* +Copyright 2018 The KubeVirt Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// This file was autogenerated by openapi-gen. Do not edit it manually! + +package v1 + +import ( + spec "github.com/go-openapi/spec" + common "k8s.io/kube-openapi/pkg/common" +) + +func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition { + return map[string]common.OpenAPIDefinition{ + "kubevirt.io/kubevirt/pkg/api/v1.Affinity": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Affinity groups all the affinity rules related to a VM", + Properties: map[string]spec.Schema{ + "nodeAffinity": { + SchemaProps: spec.SchemaProps{ + Description: "Node affinity support", + Ref: ref("k8s.io/api/core/v1.NodeAffinity"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/api/core/v1.NodeAffinity"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.CDRomTarget": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "bus": { + SchemaProps: spec.SchemaProps{ + Description: "Bus indicates the type of disk device to emulate. supported values: virtio, sata, scsi, ide", + Type: []string{"string"}, + Format: "", + }, + }, + "readonly": { + SchemaProps: spec.SchemaProps{ + Description: "ReadOnly Defaults to true", + Type: []string{"boolean"}, + Format: "", + }, + }, + "tray": { + SchemaProps: spec.SchemaProps{ + Description: "Tray indicates if the tray of the device is open or closed. Allowed values are \"open\" and \"closed\" Defaults to closed", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.CPU": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "CPU allow specifying the CPU topology", + Properties: map[string]spec.Schema{ + "cores": { + SchemaProps: spec.SchemaProps{ + Description: "Cores specifies the number of cores inside the vm. Must be a value greater or equal 1.", + Type: []string{"integer"}, + Format: "int64", + }, + }, + }, + }, + }, + Dependencies: []string{}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.Clock": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Represents the clock and timers of a vm", + Properties: map[string]spec.Schema{ + "utc": { + SchemaProps: spec.SchemaProps{ + Description: "UTC sets the guest clock to UTC on each boot. If an offset is specified, guest changes to the clock will be kept during reboots and are not reset.", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.ClockOffsetUTC"), + }, + }, + "timezone": { + SchemaProps: spec.SchemaProps{ + Description: "Timezone sets the guest clock to the specified timezone. Zone name follows the TZ environment variable format (e.g. 'America/New_York')", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{ + "kubevirt.io/kubevirt/pkg/api/v1.ClockOffsetUTC"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.ClockOffset": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Exactly one of its members must be set.", + Properties: map[string]spec.Schema{ + "utc": { + SchemaProps: spec.SchemaProps{ + Description: "UTC sets the guest clock to UTC on each boot. If an offset is specified, guest changes to the clock will be kept during reboots and are not reset.", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.ClockOffsetUTC"), + }, + }, + "timezone": { + SchemaProps: spec.SchemaProps{ + Description: "Timezone sets the guest clock to the specified timezone. Zone name follows the TZ environment variable format (e.g. 'America/New_York')", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{ + "kubevirt.io/kubevirt/pkg/api/v1.ClockOffsetUTC"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.ClockOffsetUTC": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "UTC sets the guest clock to UTC on each boot.", + Properties: map[string]spec.Schema{ + "offsetSeconds": { + SchemaProps: spec.SchemaProps{ + Description: "OffsetSeconds specifies an offset in seconds, relative to UTC. If set, guest changes to the clock will be kept during reboots and not reset.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + }, + }, + }, + Dependencies: []string{}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.CloudInitNoCloudSource": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Represents a cloud-init nocloud user data source More info: http://cloudinit.readthedocs.io/en/latest/topics/datasources/nocloud.html", + Properties: map[string]spec.Schema{ + "secretRef": { + SchemaProps: spec.SchemaProps{ + Description: "UserDataSecretRef references a k8s secret that contains NoCloud userdata", + Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), + }, + }, + "userDataBase64": { + SchemaProps: spec.SchemaProps{ + Description: "UserDataBase64 contains NoCloud cloud-init userdata as a base64 encoded string", + Type: []string{"string"}, + Format: "", + }, + }, + "userData": { + SchemaProps: spec.SchemaProps{ + Description: "UserData contains NoCloud inline cloud-init userdata", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/api/core/v1.LocalObjectReference"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.Devices": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "disks": { + SchemaProps: spec.SchemaProps{ + Description: "Disks describes disks, cdroms, floppy and luns which are connected to the vm", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.Disk"), + }, + }, + }, + }, + }, + "watchdog": { + SchemaProps: spec.SchemaProps{ + Description: "Watchdog describes a watchdog device which can be added to the vm", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.Watchdog"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "kubevirt.io/kubevirt/pkg/api/v1.Disk", "kubevirt.io/kubevirt/pkg/api/v1.Watchdog"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.Disk": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Description: "Name is the device name", + Type: []string{"string"}, + Format: "", + }, + }, + "volumeName": { + SchemaProps: spec.SchemaProps{ + Description: "Name of the volume which is referenced Must match the Name of a Volume.", + Type: []string{"string"}, + Format: "", + }, + }, + "disk": { + SchemaProps: spec.SchemaProps{ + Description: "Attach a volume as a disk to the vm", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.DiskTarget"), + }, + }, + "lun": { + SchemaProps: spec.SchemaProps{ + Description: "Attach a volume as a LUN to the vm", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.LunTarget"), + }, + }, + "floppy": { + SchemaProps: spec.SchemaProps{ + Description: "Attach a volume as a floppy to the vm", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.FloppyTarget"), + }, + }, + "cdrom": { + SchemaProps: spec.SchemaProps{ + Description: "Attach a volume as a cdrom to the vm", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.CDRomTarget"), + }, + }, + }, + Required: []string{"name", "volumeName"}, + }, + }, + Dependencies: []string{ + "kubevirt.io/kubevirt/pkg/api/v1.CDRomTarget", "kubevirt.io/kubevirt/pkg/api/v1.DiskTarget", "kubevirt.io/kubevirt/pkg/api/v1.FloppyTarget", "kubevirt.io/kubevirt/pkg/api/v1.LunTarget"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.DiskDevice": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Represents the target of a volume to mount. Only one of its members may be specified.", + Properties: map[string]spec.Schema{ + "disk": { + SchemaProps: spec.SchemaProps{ + Description: "Attach a volume as a disk to the vm", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.DiskTarget"), + }, + }, + "lun": { + SchemaProps: spec.SchemaProps{ + Description: "Attach a volume as a LUN to the vm", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.LunTarget"), + }, + }, + "floppy": { + SchemaProps: spec.SchemaProps{ + Description: "Attach a volume as a floppy to the vm", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.FloppyTarget"), + }, + }, + "cdrom": { + SchemaProps: spec.SchemaProps{ + Description: "Attach a volume as a cdrom to the vm", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.CDRomTarget"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "kubevirt.io/kubevirt/pkg/api/v1.CDRomTarget", "kubevirt.io/kubevirt/pkg/api/v1.DiskTarget", "kubevirt.io/kubevirt/pkg/api/v1.FloppyTarget", "kubevirt.io/kubevirt/pkg/api/v1.LunTarget"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.DiskTarget": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "bus": { + SchemaProps: spec.SchemaProps{ + Description: "Bus indicates the type of disk device to emulate. supported values: virtio, sata, scsi, ide", + Type: []string{"string"}, + Format: "", + }, + }, + "readonly": { + SchemaProps: spec.SchemaProps{ + Description: "ReadOnly Defaults to false", + Type: []string{"boolean"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.DomainSpec": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "resources": { + SchemaProps: spec.SchemaProps{ + Description: "Resources describes the Compute Resources required by this vm.", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.ResourceRequirements"), + }, + }, + "cpu": { + SchemaProps: spec.SchemaProps{ + Description: "CPU allow specified the detailed CPU topology inside the vm.", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.CPU"), + }, + }, + "machine": { + SchemaProps: spec.SchemaProps{ + Description: "Machine type", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.Machine"), + }, + }, + "firmware": { + SchemaProps: spec.SchemaProps{ + Description: "Firmware", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.Firmware"), + }, + }, + "clock": { + SchemaProps: spec.SchemaProps{ + Description: "Clock sets the clock and timers of the vm.", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.Clock"), + }, + }, + "features": { + SchemaProps: spec.SchemaProps{ + Description: "Features like acpi, apic, hyperv", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.Features"), + }, + }, + "devices": { + SchemaProps: spec.SchemaProps{ + Description: "Devices allows adding disks, network interfaces, ...", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.Devices"), + }, + }, + }, + Required: []string{"devices"}, + }, + }, + Dependencies: []string{ + "kubevirt.io/kubevirt/pkg/api/v1.CPU", "kubevirt.io/kubevirt/pkg/api/v1.Clock", "kubevirt.io/kubevirt/pkg/api/v1.Devices", "kubevirt.io/kubevirt/pkg/api/v1.Features", "kubevirt.io/kubevirt/pkg/api/v1.Firmware", "kubevirt.io/kubevirt/pkg/api/v1.Machine", "kubevirt.io/kubevirt/pkg/api/v1.ResourceRequirements"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.EphemeralVolumeSource": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "persistentVolumeClaim": { + SchemaProps: spec.SchemaProps{ + Description: "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. Directly attached to the vm via qemu. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.FeatureAPIC": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "enabled": { + SchemaProps: spec.SchemaProps{ + Description: "Enabled determines if the feature should be enabled or disabled on the guest Defaults to true", + Type: []string{"boolean"}, + Format: "", + }, + }, + "endOfInterrupt": { + SchemaProps: spec.SchemaProps{ + Description: "EndOfInterrupt enables the end of interrupt notification in the guest Defaults to false", + Type: []string{"boolean"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.FeatureHyperv": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Hyperv specific features", + Properties: map[string]spec.Schema{ + "relaxed": { + SchemaProps: spec.SchemaProps{ + Description: "Relaxed relaxes constraints on timer Defaults to the machine type setting", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.FeatureState"), + }, + }, + "vapic": { + SchemaProps: spec.SchemaProps{ + Description: "VAPIC indicates whether virtual APIC is enabled Defaults to the machine type setting", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.FeatureState"), + }, + }, + "spinlocks": { + SchemaProps: spec.SchemaProps{ + Description: "Spinlocks indicates if spinlocks should be made available to the guest", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.FeatureSpinlocks"), + }, + }, + "vpindex": { + SchemaProps: spec.SchemaProps{ + Description: "VPIndex enables the Virtual Processor Index to help windows identifying virtual processors Defaults to the machine type setting", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.FeatureState"), + }, + }, + "runtime": { + SchemaProps: spec.SchemaProps{ + Description: "Runtime Defaults to the machine type setting", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.FeatureState"), + }, + }, + "synic": { + SchemaProps: spec.SchemaProps{ + Description: "SyNIC enable Synthetic Interrupt Controller Defaults to the machine type setting", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.FeatureState"), + }, + }, + "synictimer": { + SchemaProps: spec.SchemaProps{ + Description: "SyNICTimer enable Synthetic Interrupt Controller timer Defaults to the machine type setting", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.FeatureState"), + }, + }, + "reset": { + SchemaProps: spec.SchemaProps{ + Description: "Reset enables Hyperv reboot/reset for the vm Defaults to the machine type setting", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.FeatureState"), + }, + }, + "vendorid": { + SchemaProps: spec.SchemaProps{ + Description: "VendorID allows setting the hypervisor vendor id Defaults to the machine type setting", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.FeatureVendorID"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "kubevirt.io/kubevirt/pkg/api/v1.FeatureSpinlocks", "kubevirt.io/kubevirt/pkg/api/v1.FeatureState", "kubevirt.io/kubevirt/pkg/api/v1.FeatureVendorID"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.FeatureSpinlocks": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "enabled": { + SchemaProps: spec.SchemaProps{ + Description: "Enabled determines if the feature should be enabled or disabled on the guest Defaults to true", + Type: []string{"boolean"}, + Format: "", + }, + }, + "spinlocks": { + SchemaProps: spec.SchemaProps{ + Description: "Retries indicates the number of retries Must be a value greater or equal 4096 Defaults to 4096", + Type: []string{"integer"}, + Format: "int64", + }, + }, + }, + }, + }, + Dependencies: []string{}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.FeatureState": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Represents if a feature is enabled or disabled", + Properties: map[string]spec.Schema{ + "enabled": { + SchemaProps: spec.SchemaProps{ + Description: "Enabled determines if the feature should be enabled or disabled on the guest Defaults to true", + Type: []string{"boolean"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.FeatureVendorID": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "enabled": { + SchemaProps: spec.SchemaProps{ + Description: "Enabled determines if the feature should be enabled or disabled on the guest Defaults to true", + Type: []string{"boolean"}, + Format: "", + }, + }, + "vendorid": { + SchemaProps: spec.SchemaProps{ + Description: "VendorID sets the hypervisor vendor id, visible to the vm String up to twelve characters", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.Features": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "acpi": { + SchemaProps: spec.SchemaProps{ + Description: "ACPI enables/disables ACPI insidejsondata guest Defaults to enabled", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.FeatureState"), + }, + }, + "apic": { + SchemaProps: spec.SchemaProps{ + Description: "Defaults to the machine type setting", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.FeatureAPIC"), + }, + }, + "hyperv": { + SchemaProps: spec.SchemaProps{ + Description: "Defaults to the machine type setting", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.FeatureHyperv"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "kubevirt.io/kubevirt/pkg/api/v1.FeatureAPIC", "kubevirt.io/kubevirt/pkg/api/v1.FeatureHyperv", "kubevirt.io/kubevirt/pkg/api/v1.FeatureState"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.Firmware": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "uuid": { + SchemaProps: spec.SchemaProps{ + Description: "UUID reported by the vm bios Defaults to a random generated uid", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.FloppyTarget": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "readonly": { + SchemaProps: spec.SchemaProps{ + Description: "ReadOnly Defaults to false", + Type: []string{"boolean"}, + Format: "", + }, + }, + "tray": { + SchemaProps: spec.SchemaProps{ + Description: "Tray indicates if the tray of the device is open or closed. Allowed values are \"open\" and \"closed\" Defaults to closed", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.HPETTimer": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "tickPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "TickPolicy determines what happens when QEMU misses a deadline for injecting a tick to the guest One of \"delay\", \"catchup\", \"merge\", \"discard\"", + Type: []string{"string"}, + Format: "", + }, + }, + "present": { + SchemaProps: spec.SchemaProps{ + Description: "Enabled set to false makes sure that the machine type or a preset can't add the timer. Defaults to true", + Type: []string{"boolean"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.HypervTimer": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "present": { + SchemaProps: spec.SchemaProps{ + Description: "Enabled set to false makes sure that the machine type or a preset can't add the timer. Defaults to true", + Type: []string{"boolean"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.I6300ESBWatchdog": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "i6300esb watchdog device", + Properties: map[string]spec.Schema{ + "action": { + SchemaProps: spec.SchemaProps{ + Description: "The action to take. Valid values are poweroff, reset, shutdown. Defaults to reset", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.KVMTimer": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "present": { + SchemaProps: spec.SchemaProps{ + Description: "Enabled set to false makes sure that the machine type or a preset can't add the timer. Defaults to true", + Type: []string{"boolean"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.LunTarget": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "bus": { + SchemaProps: spec.SchemaProps{ + Description: "Bus indicates the type of disk device to emulate. supported values: virtio, sata, scsi, ide", + Type: []string{"string"}, + Format: "", + }, + }, + "readonly": { + SchemaProps: spec.SchemaProps{ + Description: "ReadOnly Defaults to false", + Type: []string{"boolean"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.Machine": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Description: "QEMU machine type is the actual chipset of the VM.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"type"}, + }, + }, + Dependencies: []string{}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.OfflineVirtualMachine": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "OfflineVirtualMachine handles the VirtualMachines that are not running or are in a stopped state The OfflineVirtualMachine contains the template to create the VirtualMachine. It also mirrors the running state of the created VirtualMachine in its status.", + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + 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/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + 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/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Description: "Spec contains the specification of VirtualMachine created", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.OfflineVirtualMachineSpec"), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "Status holds the current state of the controller and brief information about its associated VirtualMachine", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.OfflineVirtualMachineStatus"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "kubevirt.io/kubevirt/pkg/api/v1.OfflineVirtualMachineSpec", "kubevirt.io/kubevirt/pkg/api/v1.OfflineVirtualMachineStatus"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.OfflineVirtualMachineCondition": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "OfflineVirtualMachineCondition represents the state of OfflineVirtualMachine", + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "lastProbeTime": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "lastTransitionTime": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"type", "status"}, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.OfflineVirtualMachineList": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "OfflineVirtualMachineList is a list of offlinevirtualmachines", + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + 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/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + 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/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Description: "Items is a list of OfflineVirtualMachines", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.OfflineVirtualMachine"), + }, + }, + }, + }, + }, + }, + Required: []string{"metadata", "items"}, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "kubevirt.io/kubevirt/pkg/api/v1.OfflineVirtualMachine"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.OfflineVirtualMachineSpec": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "OfflineVirtualMachineSpec describes how the proper OfflineVirtualMachine should look like", + Properties: map[string]spec.Schema{ + "running": { + SchemaProps: spec.SchemaProps{ + Description: "Running controlls whether the associatied VirtualMachine is created or not", + Type: []string{"boolean"}, + Format: "", + }, + }, + "template": { + SchemaProps: spec.SchemaProps{ + Description: "Template is the direct specification of VirtualMachine", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.VMTemplateSpec"), + }, + }, + }, + Required: []string{"running", "template"}, + }, + }, + Dependencies: []string{ + "kubevirt.io/kubevirt/pkg/api/v1.VMTemplateSpec"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.OfflineVirtualMachineStatus": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "OfflineVirtualMachineStatus represents the status returned by the controller to describe how the OfflineVirtualMachine is doing", + Properties: map[string]spec.Schema{ + "conditions": { + SchemaProps: spec.SchemaProps{ + Description: "Hold the state information of the OfflineVirtualMachine and its VirtualMachine", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.OfflineVirtualMachineCondition"), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + "kubevirt.io/kubevirt/pkg/api/v1.OfflineVirtualMachineCondition"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.PITTimer": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "tickPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "TickPolicy determines what happens when QEMU misses a deadline for injecting a tick to the guest One of \"delay\", \"catchup\", \"discard\"", + Type: []string{"string"}, + Format: "", + }, + }, + "present": { + SchemaProps: spec.SchemaProps{ + Description: "Enabled set to false makes sure that the machine type or a preset can't add the timer. Defaults to true", + Type: []string{"boolean"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.RTCTimer": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "tickPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "TickPolicy determines what happens when QEMU misses a deadline for injecting a tick to the guest One of \"delay\", \"catchup\"", + Type: []string{"string"}, + Format: "", + }, + }, + "present": { + SchemaProps: spec.SchemaProps{ + Description: "Enabled set to false makes sure that the machine type or a preset can't add the timer. Defaults to true", + Type: []string{"boolean"}, + Format: "", + }, + }, + "track": { + SchemaProps: spec.SchemaProps{ + Description: "Track the guest or the wall clock", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.RegistryDiskSource": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Represents a docker image with an embedded disk", + Properties: map[string]spec.Schema{ + "image": { + SchemaProps: spec.SchemaProps{ + Description: "Image is the name of the image with the embedded disk", + Type: []string{"string"}, + Format: "", + }, + }, + "imagePullSecret": { + SchemaProps: spec.SchemaProps{ + Description: "ImagePullSecret is the name of the Docker registry secret required to pull the image. The secret must already exist.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"image"}, + }, + }, + Dependencies: []string{}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.ResourceRequirements": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "requests": { + SchemaProps: spec.SchemaProps{ + Description: "Requests is a description of the initial vm resources. Valid resource keys are \"memory\" and \"cpu\".", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), + }, + }, + }, + }, + }, + "limits": { + SchemaProps: spec.SchemaProps{ + Description: "Limits describes the maximum amount of compute resources allowed. Valid resource keys are \"memory\" and \"cpu\".", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/api/resource.Quantity"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.Timer": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Represents all available timers in a vm", + Properties: map[string]spec.Schema{ + "hpet": { + SchemaProps: spec.SchemaProps{ + Description: "HPET (High Precision Event Timer) - multiple timers with periodic interrupts.", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.HPETTimer"), + }, + }, + "kvm": { + SchemaProps: spec.SchemaProps{ + Description: "KVM \t(KVM clock) - lets guests read the host’s wall clock time (paravirtualized). For linux guests.", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.KVMTimer"), + }, + }, + "pit": { + SchemaProps: spec.SchemaProps{ + Description: "PIT (Programmable Interval Timer) - a timer with periodic interrupts.", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.PITTimer"), + }, + }, + "rtc": { + SchemaProps: spec.SchemaProps{ + Description: "RTC (Real Time Clock) - a continuously running timer with periodic interrupts.", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.RTCTimer"), + }, + }, + "hyperv": { + SchemaProps: spec.SchemaProps{ + Description: "Hyperv (Hypervclock) - lets guests read the host’s wall clock time (paravirtualized). For windows guests.", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.HypervTimer"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "kubevirt.io/kubevirt/pkg/api/v1.HPETTimer", "kubevirt.io/kubevirt/pkg/api/v1.HypervTimer", "kubevirt.io/kubevirt/pkg/api/v1.KVMTimer", "kubevirt.io/kubevirt/pkg/api/v1.PITTimer", "kubevirt.io/kubevirt/pkg/api/v1.RTCTimer"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.VMReplicaSetCondition": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "lastProbeTime": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "lastTransitionTime": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"type", "status"}, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.VMReplicaSetSpec": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "replicas": { + SchemaProps: spec.SchemaProps{ + Description: "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "selector": { + SchemaProps: spec.SchemaProps{ + Description: "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), + }, + }, + "template": { + SchemaProps: spec.SchemaProps{ + Description: "Template describes the pods that will be created.", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.VMTemplateSpec"), + }, + }, + "paused": { + SchemaProps: spec.SchemaProps{ + Description: "Indicates that the replica set is paused.", + Type: []string{"boolean"}, + Format: "", + }, + }, + }, + Required: []string{"template"}, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector", "kubevirt.io/kubevirt/pkg/api/v1.VMTemplateSpec"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.VMReplicaSetStatus": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "replicas": { + SchemaProps: spec.SchemaProps{ + Description: "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "readyReplicas": { + SchemaProps: spec.SchemaProps{ + Description: "The number of ready replicas for this replica set.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "conditions": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.VMReplicaSetCondition"), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + "kubevirt.io/kubevirt/pkg/api/v1.VMReplicaSetCondition"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.VMTemplateSpec": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "metadata": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Description: "VM Spec contains the VM specification.", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.VirtualMachineSpec"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "kubevirt.io/kubevirt/pkg/api/v1.VirtualMachineSpec"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.VirtualMachine": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "VirtualMachine is *the* VM Definition. It represents a virtual machine in the runtime environment of kubernetes.", + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + 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/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + 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/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Description: "VM Spec contains the VM specification.", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.VirtualMachineSpec"), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "Status is the high level overview of how the VM is doing. It contains information available to controllers and users.", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.VirtualMachineStatus"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "kubevirt.io/kubevirt/pkg/api/v1.VirtualMachineSpec", "kubevirt.io/kubevirt/pkg/api/v1.VirtualMachineStatus"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.VirtualMachineCondition": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "lastProbeTime": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "lastTransitionTime": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"type", "status"}, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.VirtualMachineList": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "VirtualMachineList is a list of VirtualMachines", + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + 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/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + 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/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.VirtualMachine"), + }, + }, + }, + }, + }, + }, + Required: []string{"items"}, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "kubevirt.io/kubevirt/pkg/api/v1.VirtualMachine"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.VirtualMachineNetworkInterface": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "ipAddress": { + SchemaProps: spec.SchemaProps{ + Description: "IP address of a Virtual Machine interface", + Type: []string{"string"}, + Format: "", + }, + }, + "mac": { + SchemaProps: spec.SchemaProps{ + Description: "Hardware address of a Virtual Machine interface", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.VirtualMachinePreset": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + 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/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + 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/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Description: "VM Spec contains the VM specification.", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.VirtualMachinePresetSpec"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "kubevirt.io/kubevirt/pkg/api/v1.VirtualMachinePresetSpec"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.VirtualMachinePresetList": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "VirtualMachinePresetList is a list of VirtualMachinePresets", + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + 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/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + 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/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.VirtualMachinePreset"), + }, + }, + }, + }, + }, + }, + Required: []string{"items"}, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "kubevirt.io/kubevirt/pkg/api/v1.VirtualMachinePreset"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.VirtualMachinePresetSpec": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Properties: map[string]spec.Schema{ + "selector": { + SchemaProps: spec.SchemaProps{ + Description: "Selector is a label query over a set of VMs. Required.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), + }, + }, + "domain": { + SchemaProps: spec.SchemaProps{ + Description: "Domain is the same object type as contained in VirtualMachineSpec", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.DomainSpec"), + }, + }, + }, + Required: []string{"selector"}, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector", "kubevirt.io/kubevirt/pkg/api/v1.DomainSpec"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.VirtualMachineReplicaSet": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "VM is *the* VM Definition. It represents a virtual machine in the runtime environment of kubernetes.", + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + 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/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + 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/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Description: "VM Spec contains the VM specification.", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.VMReplicaSetSpec"), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "Status is the high level overview of how the VM is doing. It contains information available to controllers and users.", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.VMReplicaSetStatus"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "kubevirt.io/kubevirt/pkg/api/v1.VMReplicaSetSpec", "kubevirt.io/kubevirt/pkg/api/v1.VMReplicaSetStatus"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.VirtualMachineReplicaSetList": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "VMList is a list of VMs", + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + 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/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + 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/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.VirtualMachineReplicaSet"), + }, + }, + }, + }, + }, + }, + Required: []string{"items"}, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "kubevirt.io/kubevirt/pkg/api/v1.VirtualMachineReplicaSet"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.VirtualMachineSpec": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "VirtualMachineSpec is a description of a VirtualMachine.", + Properties: map[string]spec.Schema{ + "domain": { + SchemaProps: spec.SchemaProps{ + Description: "Specification of the desired behavior of the VirtualMachine on the host.", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.DomainSpec"), + }, + }, + "nodeSelector": { + SchemaProps: spec.SchemaProps{ + Description: "NodeSelector is a selector which must be true for the vm to fit on a node. Selector which must match a node's labels for the vm to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "affinity": { + SchemaProps: spec.SchemaProps{ + Description: "If affinity is specifies, obey all the affinity rules", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.Affinity"), + }, + }, + "terminationGracePeriodSeconds": { + SchemaProps: spec.SchemaProps{ + Description: "Grace period observed after signalling a VM to stop after which the VM is force terminated.", + Type: []string{"integer"}, + Format: "int64", + }, + }, + "volumes": { + SchemaProps: spec.SchemaProps{ + Description: "List of volumes that can be mounted by disks belonging to the vm.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.Volume"), + }, + }, + }, + }, + }, + }, + Required: []string{"domain"}, + }, + }, + Dependencies: []string{ + "kubevirt.io/kubevirt/pkg/api/v1.Affinity", "kubevirt.io/kubevirt/pkg/api/v1.DomainSpec", "kubevirt.io/kubevirt/pkg/api/v1.Volume"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.VirtualMachineStatus": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "VirtualMachineStatus represents information about the status of a VM. Status may trail the actual state of a system.", + Properties: map[string]spec.Schema{ + "nodeName": { + SchemaProps: spec.SchemaProps{ + Description: "NodeName is the name where the VM is currently running.", + Type: []string{"string"}, + Format: "", + }, + }, + "conditions": { + SchemaProps: spec.SchemaProps{ + Description: "Conditions are specific points in VM's pod runtime.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.VirtualMachineCondition"), + }, + }, + }, + }, + }, + "phase": { + SchemaProps: spec.SchemaProps{ + Description: "Phase is the status of the VM in kubernetes world. It is not the VM status, but partially correlates to it.", + Type: []string{"string"}, + Format: "", + }, + }, + "interfaces": { + SchemaProps: spec.SchemaProps{ + Description: "Interfaces represent the details of available network interfaces.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.VirtualMachineNetworkInterface"), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + "kubevirt.io/kubevirt/pkg/api/v1.VirtualMachineCondition", "kubevirt.io/kubevirt/pkg/api/v1.VirtualMachineNetworkInterface"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.Volume": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Volume represents a named volume in a vm.", + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Description: "Volume's name. Must be a DNS_LABEL and unique within the vm. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + Type: []string{"string"}, + Format: "", + }, + }, + "persistentVolumeClaim": { + SchemaProps: spec.SchemaProps{ + Description: "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. Directly attached to the vm via qemu. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource"), + }, + }, + "cloudInitNoCloud": { + SchemaProps: spec.SchemaProps{ + Description: "CloudInitNoCloud represents a cloud-init NoCloud user-data source. The NoCloud data will be added as a disk to the vm. A proper cloud-init installation is required inside the guest. More info: http://cloudinit.readthedocs.io/en/latest/topics/datasources/nocloud.html", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.CloudInitNoCloudSource"), + }, + }, + "registryDisk": { + SchemaProps: spec.SchemaProps{ + Description: "RegistryDisk references a docker image, embedding a qcow or raw disk More info: https://kubevirt.gitbooks.io/user-guide/registry-disk.html", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.RegistryDiskSource"), + }, + }, + "ephemeral": { + SchemaProps: spec.SchemaProps{ + Description: "Ephemeral is a special volume source that \"wraps\" specified source and provides copy-on-write image on top of it.", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.EphemeralVolumeSource"), + }, + }, + "emptyDisk": { + SchemaProps: spec.SchemaProps{ + Description: "EmptyDisk represents a temporary disk which shares the vms lifecycle More info: https://kubevirt.gitbooks.io/user-guide/disks-and-volumes.html", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.EmptyDiskSource"), + }, + }, + }, + Required: []string{"name"}, + }, + }, + Dependencies: []string{ + "k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource", "kubevirt.io/kubevirt/pkg/api/v1.CloudInitNoCloudSource", "kubevirt.io/kubevirt/pkg/api/v1.EmptyDiskSource", "kubevirt.io/kubevirt/pkg/api/v1.EphemeralVolumeSource", "kubevirt.io/kubevirt/pkg/api/v1.RegistryDiskSource"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.VolumeSource": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Represents the source of a volume to mount. Only one of its members may be specified.", + Properties: map[string]spec.Schema{ + "persistentVolumeClaim": { + SchemaProps: spec.SchemaProps{ + Description: "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. Directly attached to the vm via qemu. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", + Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource"), + }, + }, + "cloudInitNoCloud": { + SchemaProps: spec.SchemaProps{ + Description: "CloudInitNoCloud represents a cloud-init NoCloud user-data source. The NoCloud data will be added as a disk to the vm. A proper cloud-init installation is required inside the guest. More info: http://cloudinit.readthedocs.io/en/latest/topics/datasources/nocloud.html", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.CloudInitNoCloudSource"), + }, + }, + "registryDisk": { + SchemaProps: spec.SchemaProps{ + Description: "RegistryDisk references a docker image, embedding a qcow or raw disk More info: https://kubevirt.gitbooks.io/user-guide/registry-disk.html", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.RegistryDiskSource"), + }, + }, + "ephemeral": { + SchemaProps: spec.SchemaProps{ + Description: "Ephemeral is a special volume source that \"wraps\" specified source and provides copy-on-write image on top of it.", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.EphemeralVolumeSource"), + }, + }, + "emptyDisk": { + SchemaProps: spec.SchemaProps{ + Description: "EmptyDisk represents a temporary disk which shares the vms lifecycle More info: https://kubevirt.gitbooks.io/user-guide/disks-and-volumes.html", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.EmptyDiskSource"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource", "kubevirt.io/kubevirt/pkg/api/v1.CloudInitNoCloudSource", "kubevirt.io/kubevirt/pkg/api/v1.EmptyDiskSource", "kubevirt.io/kubevirt/pkg/api/v1.EphemeralVolumeSource", "kubevirt.io/kubevirt/pkg/api/v1.RegistryDiskSource"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.Watchdog": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Named watchdog device", + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Description: "Name of the watchdog", + Type: []string{"string"}, + Format: "", + }, + }, + "i6300esb": { + SchemaProps: spec.SchemaProps{ + Description: "i6300esb watchdog device", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.I6300ESBWatchdog"), + }, + }, + }, + Required: []string{"name"}, + }, + }, + Dependencies: []string{ + "kubevirt.io/kubevirt/pkg/api/v1.I6300ESBWatchdog"}, + }, + "kubevirt.io/kubevirt/pkg/api/v1.WatchdogDevice": { + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Hardware watchdog device Exactly one of its members must be set.", + Properties: map[string]spec.Schema{ + "i6300esb": { + SchemaProps: spec.SchemaProps{ + Description: "i6300esb watchdog device", + Ref: ref("kubevirt.io/kubevirt/pkg/api/v1.I6300ESBWatchdog"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "kubevirt.io/kubevirt/pkg/api/v1.I6300ESBWatchdog"}, + }, + } +}