Memoryint`json:"memory,omitempty" doc:"the memory allocated for the virtual machine"`
Namestring`json:"name,omitempty" doc:"the name of the virtual machine"`
NetworkKbsReadint64`json:"networkkbsread,omitempty" doc:"the incoming network traffic on the vm"`
NetworkKbsWriteint64`json:"networkkbswrite,omitempty" doc:"the outgoing network traffic on the host"`
Nic[]Nic`json:"nic,omitempty" doc:"the list of nics associated with vm"`
OSCategoryID*UUID`json:"oscategoryid,omitempty" doc:"Os category ID of the virtual machine"`
OSCategoryNamestring`json:"oscategoryname,omitempty" doc:"Os category name of the virtual machine"`
OSTypeID*UUID`json:"ostypeid,omitempty" doc:"OS type id of the vm"`
Passwordstring`json:"password,omitempty" doc:"the password (if exists) of the virtual machine"`
PasswordEnabledbool`json:"passwordenabled,omitempty" doc:"true if the password rest feature is enabled, false otherwise"`
PCIDevices[]PCIDevice`json:"pcidevices,omitempty" doc:"list of PCI devices"`
PodID*UUID`json:"podid,omitempty" doc:"the ID of the vm's pod"`
PodNamestring`json:"podname,omitempty" doc:"the name of the vm's pod"`
PublicIPstring`json:"publicip,omitempty" doc:"public IP address id associated with vm via Static nat rule"`
PublicIPID*UUID`json:"publicipid,omitempty" doc:"public IP address id associated with vm via Static nat rule"`
RootDeviceIDint64`json:"rootdeviceid,omitempty" doc:"device ID of the root volume"`
RootDeviceTypestring`json:"rootdevicetype,omitempty" doc:"device type of the root volume"`
SecurityGroup[]SecurityGroup`json:"securitygroup,omitempty" doc:"list of security groups associated with the virtual machine"`
ServiceOfferingID*UUID`json:"serviceofferingid,omitempty" doc:"the ID of the service offering of the virtual machine"`
ServiceOfferingNamestring`json:"serviceofferingname,omitempty" doc:"the name of the service offering of the virtual machine"`
ServiceStatestring`json:"servicestate,omitempty" doc:"State of the Service from LB rule"`
Statestring`json:"state,omitempty" doc:"the state of the virtual machine"`
Tags[]ResourceTag`json:"tags,omitempty" doc:"the list of resource tags associated with vm"`
TemplateDisplayTextstring`json:"templatedisplaytext,omitempty" doc:"an alternate display text of the template for the virtual machine"`
TemplateID*UUID`json:"templateid,omitempty" doc:"the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file."`
TemplateNamestring`json:"templatename,omitempty" doc:"the name of the template for the virtual machine"`
ZoneID*UUID`json:"zoneid,omitempty" doc:"the ID of the availablility zone for the virtual machine"`
ZoneNamestring`json:"zonename,omitempty" doc:"the name of the availability zone for the virtual machine"`
RemainingCapacityint`json:"remainingcapacity,omitempty" doc:"Remaining capacity in terms of no. of more VMs that can be deployped with this vGPU type"`
MaxCapacityint`json:"maxcapacity,omitempty" doc:"Maximum vgpu can be created with this vgpu type on the given pci group"`
// DeployVirtualMachine (Async) represents the machine creation
//
// Regarding the UserData field, the client is responsible to base64 (and probably gzip) it. Doing it within this library would make the integration with other tools, e.g. Terraform harder.
typeDeployVirtualMachinestruct{
AffinityGroupIDs[]UUID`json:"affinitygroupids,omitempty" doc:"comma separated list of affinity groups id that are going to be applied to the virtual machine. Mutually exclusive with affinitygroupnames parameter"`
AffinityGroupNames[]string`json:"affinitygroupnames,omitempty" doc:"comma separated list of affinity groups names that are going to be applied to the virtual machine.Mutually exclusive with affinitygroupids parameter"`
Detailsmap[string]string`json:"details,omitempty" doc:"used to specify the custom parameters."`
DiskOfferingID*UUID`json:"diskofferingid,omitempty" doc:"the ID of the disk offering for the virtual machine. If the template is of ISO format, the diskofferingid is for the root disk volume. Otherwise this parameter is used to indicate the offering for the data disk volume. If the templateid parameter passed is from a Template object, the diskofferingid refers to a DATA Disk Volume created. If the templateid parameter passed is from an ISO object, the diskofferingid refers to a ROOT Disk Volume created."`
DisplayNamestring`json:"displayname,omitempty" doc:"an optional user generated name for the virtual machine"`
Groupstring`json:"group,omitempty" doc:"an optional group for the virtual machine"`
IP4*bool`json:"ip4,omitempty" doc:"True to set an IPv4 to the default interface"`
IP6*bool`json:"ip6,omitempty" doc:"True to set an IPv6 to the default interface"`
IP6Addressnet.IP`json:"ip6address,omitempty" doc:"the ipv6 address for default vm's network"`
IPAddressnet.IP`json:"ipaddress,omitempty" doc:"the ip address for default vm's network"`
Keyboardstring`json:"keyboard,omitempty" doc:"an optional keyboard device type for the virtual machine. valid value can be one of de,de-ch,es,fi,fr,fr-be,fr-ch,is,it,jp,nl-be,no,pt,uk,us"`
KeyPairstring`json:"keypair,omitempty" doc:"name of the ssh key pair used to login to the virtual machine"`
Namestring`json:"name,omitempty" doc:"host name for the virtual machine"`
NetworkIDs[]UUID`json:"networkids,omitempty" doc:"list of network ids used by virtual machine. Can't be specified with ipToNetworkList parameter"`
RootDiskSizeint64`json:"rootdisksize,omitempty" doc:"Optional field to resize root disk on deploy. Value is in GB. Only applies to template-based deployments. Analogous to details[0].rootdisksize, which takes precedence over this parameter if both are provided"`
SecurityGroupIDs[]UUID`json:"securitygroupids,omitempty" doc:"comma separated list of security groups id that going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupnames parameter"`
SecurityGroupNames[]string`json:"securitygroupnames,omitempty" doc:"comma separated list of security groups names that going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupids parameter"`
ServiceOfferingID*UUID`json:"serviceofferingid" doc:"the ID of the service offering for the virtual machine"`
StartVM*bool`json:"startvm,omitempty" doc:"true if start vm after creating. Default value is true"`
TemplateID*UUID`json:"templateid" doc:"the ID of the template for the virtual machine"`
UserDatastring`json:"userdata,omitempty" doc:"an optional binary data that can be sent to the virtual machine upon a successful deployment. This binary data must be base64 encoded before adding it to the request. Using HTTP GET (via querystring), you can send up to 2KB of data after base64 encoding. Using HTTP POST(via POST body), you can send up to 32K of data after base64 encoding."`
ZoneID*UUID`json:"zoneid" doc:"availability zone for the virtual machine"`
_bool`name:"deployVirtualMachine" description:"Creates and automatically starts a virtual machine based on a service offering, disk offering, and template."`
// StopVirtualMachine (Async) represents the stopping of the virtual machine
typeStopVirtualMachinestruct{
ID*UUID`json:"id" doc:"The ID of the virtual machine"`
Forced*bool`json:"forced,omitempty" doc:"Force stop the VM (vm is marked as Stopped even when command fails to be send to the backend). The caller knows the VM is stopped."`
_bool`name:"stopVirtualMachine" description:"Stops a virtual machine."`
TemplateID*UUID`json:"templateid,omitempty" doc:"an optional template Id to restore vm from the new template. This can be an ISO id in case of restore vm deployed using ISO"`
RootDiskSizeint64`json:"rootdisksize,omitempty" doc:"Optional field to resize root disk on restore. Value is in GB. Only applies to template-based deployments."`
_bool`name:"restoreVirtualMachine" description:"Restore a VM to original template/ISO or new template/ISO"`
Groupstring`json:"group,omitempty" doc:"group of the virtual machine"`
Namestring`json:"name,omitempty" doc:"new host name of the vm. The VM has to be stopped/started for this update to take affect"`
SecurityGroupIDs[]UUID`json:"securitygroupids,omitempty" doc:"list of security group ids to be applied on the virtual machine."`
UserDatastring`json:"userdata,omitempty" doc:"an optional binary data that can be sent to the virtual machine upon a successful deployment. This binary data must be base64 encoded before adding it to the request. Using HTTP GET (via querystring), you can send up to 2KB of data after base64 encoding. Using HTTP POST(via POST body), you can send up to 32K of data after base64 encoding."`
_bool`name:"updateVirtualMachine" description:"Updates properties of a virtual machine. The VM has to be stopped and restarted for the new properties to take effect. UpdateVirtualMachine does not first check whether the VM is stopped. Therefore, stop the VM manually before issuing this call."`
// ScaleVirtualMachine (Async) scales the virtual machine to a new service offering.
//
// ChangeServiceForVirtualMachine does the same thing but returns the
// new Virtual Machine which is more consistent with the rest of the API.
typeScaleVirtualMachinestruct{
ID*UUID`json:"id" doc:"The ID of the virtual machine"`
ServiceOfferingID*UUID`json:"serviceofferingid" doc:"the ID of the service offering for the virtual machine"`
Detailsmap[string]string`json:"details,omitempty" doc:"name value pairs of custom parameters for cpu,memory and cpunumber. example details[i].name=value"`
_bool`name:"scaleVirtualMachine" description:"Scales the virtual machine to a new service offering."`
// ChangeServiceForVirtualMachine changes the service offering for a virtual machine. The virtual machine must be in a "Stopped" state for this command to take effect.
typeChangeServiceForVirtualMachinestruct{
ID*UUID`json:"id" doc:"The ID of the virtual machine"`
ServiceOfferingID*UUID`json:"serviceofferingid" doc:"the service offering ID to apply to the virtual machine"`
Detailsmap[string]string`json:"details,omitempty" doc:"name value pairs of custom parameters for cpu, memory and cpunumber. example details[i].name=value"`
_bool`name:"changeServiceForVirtualMachine" description:"Changes the service offering for a virtual machine. The virtual machine must be in a \"Stopped\" state for this command to take effect."`
// ResetPasswordForVirtualMachine resets the password for virtual machine. The virtual machine must be in a "Stopped" state...
typeResetPasswordForVirtualMachinestruct{
ID*UUID`json:"id" doc:"The ID of the virtual machine"`
_bool`name:"resetPasswordForVirtualMachine" description:"Resets the password for virtual machine. The virtual machine must be in a \"Stopped\" state and the template must already support this feature for this command to take effect."`
// ListVirtualMachines represents a search for a VM
typeListVirtualMachinesstruct{
AffinityGroupID*UUID`json:"affinitygroupid,omitempty" doc:"list vms by affinity group"`
Details[]string`json:"details,omitempty" doc:"comma separated list of host details requested, value can be a list of [all, group, nics, stats, secgrp, tmpl, servoff, diskoff, iso, volume, min, affgrp]. If no parameter is passed in, the details will be defaulted to all"`
ForVirtualNetwork*bool`json:"forvirtualnetwork,omitempty" doc:"list by network type; true if need to list vms using Virtual Network, false otherwise"`
GroupID*UUID`json:"groupid,omitempty" doc:"the group ID"`
ID*UUID`json:"id,omitempty" doc:"the ID of the virtual machine"`
IDs[]string`json:"ids,omitempty" doc:"the IDs of the virtual machines, mutually exclusive with id"`
IPAddressnet.IP`json:"ipaddress,omitempty" doc:"an IP address to filter the result"`
IsoID*UUID`json:"isoid,omitempty" doc:"list vms by iso"`
Keywordstring`json:"keyword,omitempty" doc:"List by keyword"`
Namestring`json:"name,omitempty" doc:"name of the virtual machine"`
NetworkID*UUID`json:"networkid,omitempty" doc:"list by network id"`
Pageint`json:"page,omitempty"`
PageSizeint`json:"pagesize,omitempty"`
ServiceOfferindID*UUID`json:"serviceofferingid,omitempty" doc:"list by the service offering"`
Statestring`json:"state,omitempty" doc:"state of the virtual machine"`
Tags[]ResourceTag`json:"tags,omitempty" doc:"List resources by tags (key/value pairs)"`
TemplateID*UUID`json:"templateid,omitempty" doc:"list vms by template"`
ZoneID*UUID`json:"zoneid,omitempty" doc:"the availability zone ID"`
_bool`name:"listVirtualMachines" description:"List the virtual machines owned by the account."`
IPAddressnet.IP`json:"ipaddress,omitempty" doc:"Static IP address lease for the corresponding NIC and network which should be in the range defined in the network"`
IPAddressnet.IP`json:"ipaddress,omitempty" doc:"Static IP address lease for the corresponding NIC and network which should be in the range defined in the network. If absent, the call removes the lease associated with the nic."`