content: // Licensed to the Apache Software Foundation (ASF) under one
  // or more contributor license agreements.  See the NOTICE file
  // distributed with this work for additional information
  // regarding copyright ownership.  The ASF licenses this file
  // to you 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.
  package com.cloud.vm;
  
  public interface VmDetailConstants {
      String KEYBOARD = "keyboard";
      String CPU_CORE_PER_SOCKET = "cpu.corespersocket";
      String CPU_THREAD_PER_CORE = "cpu.threadspercore";
      String ROOT_DISK_SIZE = "rootdisksize";
      String BOOT_MODE = "boot.mode";
      String NAME_ON_HYPERVISOR= "nameonhypervisor";
  
      // VMware specific
      String NIC_ADAPTER = "nicAdapter";
      String ROOT_DISK_CONTROLLER = "rootDiskController";
      String DATA_DISK_CONTROLLER = "dataDiskController";
      String SVGA_VRAM_SIZE = "svga.vramSize";
      String NESTED_VIRTUALIZATION_FLAG = "nestedVirtualizationFlag";
      String RAM_RESERVATION = "ramReservation";
  
      // XenServer specific (internal)
      String HYPERVISOR_TOOLS_VERSION = "hypervisortoolsversion";
      String PLATFORM = "platform";
      String TIME_OFFSET = "timeoffset";
  
      // KVM specific (internal)
      String KVM_VNC_PORT = "kvm.vnc.port";
      String KVM_VNC_ADDRESS = "kvm.vnc.address";
      String KVM_VNC_PASSWORD = "kvm.vnc.password";
      String KVM_GUEST_OS_MACHINE_TYPE = "kvm.guest.os.machine.type";
  
      // KVM specific, custom virtual GPU hardware
      String VIDEO_HARDWARE = "video.hardware";
      String VIDEO_RAM = "video.ram";
  
      //KVM specific, loop threads for block IO requests
      String IOTHREADS = "iothreads";
      String IO_POLICY = "io.policy";
  
      // KVM specific, the number of queues for multiqueue NICs
      String NIC_MULTIQUEUE_NUMBER = "nic.multiqueue.number";
      String NIC_PACKED_VIRTQUEUES_ENABLED = "nic.packed.virtqueues.enabled";
  
      // Mac OSX guest specific (internal)
      String SMC_PRESENT = "smc.present";
      String FIRMWARE = "firmware";
  
      // VM deployment with custom compute offering params
      String CPU_NUMBER = "cpuNumber";
      String CPU_SPEED = "cpuSpeed";
      String MEMORY = "memory";
  
      // Misc details for internal usage (not to be set/changed by user or admin)
      String CPU_OVER_COMMIT_RATIO = "cpuOvercommitRatio";
      String MEMORY_OVER_COMMIT_RATIO = "memoryOvercommitRatio";
      String MESSAGE_RESERVED_CAPACITY_FREED_FLAG = "Message.ReservedCapacityFreed.Flag";
      String DEPLOY_VM = "deployvm";
      String SSH_PUBLIC_KEY = "SSH.PublicKey";
      String SSH_KEY_PAIR_NAMES = "SSH.KeyPairNames";
      String PASSWORD = "password";
      String ENCRYPTED_PASSWORD = "Encrypted.Password";
  
      String CONFIG_DRIVE_LOCATION = "configDriveLocation";
      String LAST_CONFIG_DRIVE_LOCATION = "lastConfigDriveLocation";
  
      String SKIP_DRS = "skipFromDRS";
  
      // VM import with nic, disk and custom params for custom compute offering
      String NIC = "nic";
      String NETWORK = "network";
      String IP4_ADDRESS = "ip4Address";
      String IP6_ADDRESS = "ip6Address";
      String DISK = "disk";
      String DISK_OFFERING = "diskOffering";
  
      String DEPLOY_AS_IS_CONFIGURATION = "configurationId";
      String KEY_PAIR_NAMES = "keypairnames";
      String CKS_CONTROL_NODE_LOGIN_USER = "controlNodeLoginUser";
      String CKS_NODE_TYPE = "node";
      String OFFERING = "offering";
      String TEMPLATE = "template";
  
      // VMware to KVM VM migrations specific
      String VMWARE_TO_KVM_PREFIX = "vmware-to-kvm";
      String VMWARE_VCENTER_HOST = String.format("%s-vcenter", VMWARE_TO_KVM_PREFIX);
      String VMWARE_DATACENTER_NAME = String.format("%s-datacenter", VMWARE_TO_KVM_PREFIX);
      String VMWARE_CLUSTER_NAME = String.format("%s-cluster", VMWARE_TO_KVM_PREFIX);
      String VMWARE_VCENTER_USERNAME = String.format("%s-username", VMWARE_TO_KVM_PREFIX);
      String VMWARE_VCENTER_PASSWORD = String.format("%s-password", VMWARE_TO_KVM_PREFIX);
      String VMWARE_VM_NAME = String.format("%s-vmname", VMWARE_TO_KVM_PREFIX);
      String VMWARE_HOST_NAME = String.format("%s-host", VMWARE_TO_KVM_PREFIX);
      String VMWARE_DISK = String.format("%s-disk", VMWARE_TO_KVM_PREFIX);
      String VMWARE_MAC_ADDRESSES = String.format("%s-mac-addresses", VMWARE_TO_KVM_PREFIX);
  
      // TPM
      String VIRTUAL_TPM_ENABLED = "virtual.tpm.enabled";
      String VIRTUAL_TPM_MODEL = "virtual.tpm.model";
      String VIRTUAL_TPM_VERSION = "virtual.tpm.version";
  
      // CPU mode and model, ADMIN only
      String GUEST_CPU_MODE = "guest.cpu.mode";
      String GUEST_CPU_MODEL = "guest.cpu.model";
  
      // Lease related
      String INSTANCE_LEASE_EXPIRY_DATE = "leaseexpirydate";
      String INSTANCE_LEASE_EXPIRY_ACTION = "leaseexpiryaction";
      String INSTANCE_LEASE_EXECUTION = "leaseactionexecution";
  
      // External orchestrator related
      String MAC_ADDRESS = "mac_address";
      String EXPUNGE_EXTERNAL_VM = "expunge.external.vm";
      String EXTERNAL_DETAIL_PREFIX = "External:";
      String CLOUDSTACK_VM_DETAILS = "cloudstack.vm.details";
      String CLOUDSTACK_VLAN = "cloudstack.vlan";
  }
  