cloudstack

package module
v0.0.0-...-81da56f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 26, 2016 License: MIT Imports: 19 Imported by: 5

README

golang-cloudstack-library

Build Status

Go language library for CloudStack API

Installation

go get github.com/atsaki/golang-cloudstack-library

Usage

package main

import (
	"encoding/json"
	"fmt"
	"io/ioutil"
	"log"
	"net/url"

	"github.com/atsaki/golang-cloudstack-library"
)

func main() {

	log.SetOutput(ioutil.Discard)

	endpoint, _ := url.Parse("http://localhost:8080/client/api")
	apikey := ""
	secretkey := ""
	username := "admin"
	password := "password"

	client, _ := cloudstack.NewClient(endpoint, apikey, secretkey, username, password)

	params := cloudstack.NewListZonesParameter()
	params.Name.Set("zone1")

	zones, _ := client.ListZones(params)
	b, _ := json.MarshalIndent(zones, "", "    ")

	fmt.Println("Count:", len(zones))
	fmt.Println(string(b))
}

This returns JSON response as follows.

Count: 1
[
    {
        "allocationstate": "Enabled",
        "capacity": null,
        "description": null,
        "dhcpprovider": "VirtualRouter",
        "displaytext": null,
        "dns1": "8.8.8.8",
        "dns2": null,
        "domain": null,
        "domainid": null,
        "domainname": null,
        "guestcidraddress": "10.1.1.0/24",
        "id": "7fdea428-8228-4dfd-850b-d60eed5004a4",
        "internaldns1": "8.8.4.4",
        "internaldns2": null,
        "ip6dns1": null,
        "ip6dns2": null,
        "localstorageenabled": false,
        "name": "zone1",
        "networktype": "Advanced",
        "resourcedetails": null,
        "securitygroupsenabled": false,
        "tags": [],
        "vlan": null,
        "zonetoken": "c263e076-5887-355b-afe9-cc988a1ccac7"
    }
]

Projects Using This Library

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type APIParameter

type APIParameter interface{}

type Account

type Account struct {
	ResourceBase
	// details for the account
	AccountDetails map[string]string `json:"accountdetails"`
	// account type (admin, domain-admin, user)
	AccountType NullNumber `json:"accounttype"`
	// the total number of cpu cores available to be created for this account
	CpuAvailable NullString `json:"cpuavailable"`
	// the total number of cpu cores the account can own
	CpuLimit NullString `json:"cpulimit"`
	// the total number of cpu cores owned by account
	CpuTotal NullNumber `json:"cputotal"`
	// the default zone of the account
	DefaultZoneId ID `json:"defaultzoneid"`
	// name of the Domain the account belongs too
	Domain NullString `json:"domain"`
	// id of the Domain the account belongs too
	DomainId ID `json:"domainid"`
	// the list of acl groups that account belongs to
	Groups []NullString `json:"groups"`
	// the id of the account
	Id ID `json:"id"`
	// the total number of public ip addresses available for this account to acquire
	IpAvailable NullString `json:"ipavailable"`
	// the total number of public ip addresses this account can acquire
	IpLimit NullString `json:"iplimit"`
	// the total number of public ip addresses allocated for this account
	IpTotal NullNumber `json:"iptotal"`
	// true if the account requires cleanup
	IsCleanupRequired NullBool `json:"iscleanuprequired"`
	// true if account is default, false otherwise
	IsDefault NullBool `json:"isdefault"`
	// the total memory (in MB) available to be created for this account
	MemoryAvailable NullString `json:"memoryavailable"`
	// the total memory (in MB) the account can own
	MemoryLimit NullString `json:"memorylimit"`
	// the total memory (in MB) owned by account
	MemoryTotal NullNumber `json:"memorytotal"`
	// the name of the account
	Name NullString `json:"name"`
	// the total number of networks available to be created for this account
	NetworkAvailable NullString `json:"networkavailable"`
	// the network domain
	NetworkDomain NullString `json:"networkdomain"`
	// the total number of networks the account can own
	NetworkLimit NullString `json:"networklimit"`
	// the total number of networks owned by account
	NetworkTotal NullNumber `json:"networktotal"`
	// the total primary storage space (in GiB) available to be used for this
	// account
	PrimaryStorageAvailable NullString `json:"primarystorageavailable"`
	// the total primary storage space (in GiB) the account can own
	PrimaryStorageLimit NullString `json:"primarystoragelimit"`
	// the total primary storage space (in GiB) owned by account
	PrimaryStorageTotal NullNumber `json:"primarystoragetotal"`
	// the total number of projects available for administration by this account
	ProjectAvailable NullString `json:"projectavailable"`
	// the total number of projects the account can own
	ProjectLimit NullString `json:"projectlimit"`
	// the total number of projects being administrated by this account
	ProjectTotal NullNumber `json:"projecttotal"`
	// the total number of network traffic bytes received
	ReceivedBytes NullNumber `json:"receivedbytes"`
	// the total secondary storage space (in GiB) available to be used for this
	// account
	SecondaryStorageAvailable NullString `json:"secondarystorageavailable"`
	// the total secondary storage space (in GiB) the account can own
	SecondaryStorageLimit NullString `json:"secondarystoragelimit"`
	// the total secondary storage space (in GiB) owned by account
	SecondaryStorageTotal NullNumber `json:"secondarystoragetotal"`
	// the total number of network traffic bytes sent
	SentBytes NullNumber `json:"sentbytes"`
	// the total number of snapshots available for this account
	SnapshotAvailable NullString `json:"snapshotavailable"`
	// the total number of snapshots which can be stored by this account
	SnapshotLimit NullString `json:"snapshotlimit"`
	// the total number of snapshots stored by this account
	SnapshotTotal NullNumber `json:"snapshottotal"`
	// the state of the account
	State NullString `json:"state"`
	// the total number of templates available to be created by this account
	TemplateAvailable NullString `json:"templateavailable"`
	// the total number of templates which can be created by this account
	TemplateLimit NullString `json:"templatelimit"`
	// the total number of templates which have been created by this account
	TemplateTotal NullNumber `json:"templatetotal"`
	// the list of users associated with account
	User []User `json:"user"`
	// the total number of virtual machines available for this account to acquire
	VmAvailable NullString `json:"vmavailable"`
	// the total number of virtual machines that can be deployed by this account
	VmLimit NullString `json:"vmlimit"`
	// the total number of virtual machines running for this account
	VmRunning NullNumber `json:"vmrunning"`
	// the total number of virtual machines stopped for this account
	VmStopped NullNumber `json:"vmstopped"`
	// the total number of virtual machines deployed by this account
	VmTotal NullNumber `json:"vmtotal"`
	// the total volume available for this account
	VolumeAvailable NullString `json:"volumeavailable"`
	// the total volume which can be used by this account
	VolumeLimit NullString `json:"volumelimit"`
	// the total volume being used by this account
	VolumeTotal NullNumber `json:"volumetotal"`
	// the total number of vpcs available to be created for this account
	VpcAvailable NullString `json:"vpcavailable"`
	// the total number of vpcs the account can own
	VpcLimit NullString `json:"vpclimit"`
	// the total number of vpcs owned by account
	VpcTotal NullNumber `json:"vpctotal"`
}

type ActivateProjectParameter

type ActivateProjectParameter struct {
	// id of the project to be modified
	Id ID
}

ActivateProject represents the paramter of ActivateProject

func NewActivateProjectParameter

func NewActivateProjectParameter(id string) (p *ActivateProjectParameter)

type AddAccountToProjectParameter

type AddAccountToProjectParameter struct {
	// name of the account to be added to the project
	Account NullString
	// email to which invitation to the project is going to be sent
	Email NullString
	// id of the project to add the account to
	ProjectId ID
}

AddAccountToProject represents the paramter of AddAccountToProject

func NewAddAccountToProjectParameter

func NewAddAccountToProjectParameter(projectid string) (p *AddAccountToProjectParameter)

type AddBaremetalHostParameter

type AddBaremetalHostParameter struct {
	// Allocation state of this Host for allocation of new resources
	AllocationState NullString
	// the cluster ID for the host
	ClusterId ID
	// the cluster name for the host
	ClusterName NullString
	// list of tags to be added to the host
	HostTags []string
	// hypervisor type of the host
	Hypervisor NullString
	// ip address intentionally allocated to this host after provisioning
	IpAddress NullString
	// the password for the host
	Password NullString
	// the Pod ID for the host
	PodId ID
	// the host URL
	Url NullString
	// the username for the host
	UserName NullString
	// the Zone ID for the host
	ZoneId ID
}

AddBaremetalHost represents the paramter of AddBaremetalHost

func NewAddBaremetalHostParameter

func NewAddBaremetalHostParameter(hypervisor string, password string, podid string, url string, username string, zoneid string) (p *AddBaremetalHostParameter)

type AddClusterParameter

type AddClusterParameter struct {
	// Allocation state of this cluster for allocation of new resources
	AllocationState NullString
	// the cluster name
	ClusterName NullString
	// type of the cluster: CloudManaged, ExternalManaged
	ClusterType NullString
	// Name of virtual switch used for guest traffic in the cluster. This would
	// override zone wide traffic label setting.
	GuestVswitchName NullString
	// Type of virtual switch used for guest traffic in the cluster. Allowed values
	// are, vmwaresvs (for VMware standard vSwitch) and vmwaredvs (for VMware
	// distributed vSwitch)
	GuestVswitchType NullString
	// hypervisor type of the cluster:
	// XenServer,KVM,VMware,Hyperv,BareMetal,Simulator
	Hypervisor NullString
	// the password for the host
	Password NullString
	// the Pod ID for the host
	PodId ID
	// Name of virtual switch used for public traffic in the cluster.  This would
	// override zone wide traffic label setting.
	PublicVswitchName NullString
	// Type of virtual switch used for public traffic in the cluster. Allowed values
	// are, vmwaresvs (for VMware standard vSwitch) and vmwaredvs (for VMware
	// distributed vSwitch)
	PublicVswitchType NullString
	// the URL
	Url NullString
	// the username for the cluster
	UserName NullString
	// the ipaddress of the VSM associated with this cluster
	VsmIpAddress NullString
	// the password for the VSM associated with this cluster
	VsmPassword NullString
	// the username for the VSM associated with this cluster
	VsmUserName NullString
	// the Zone ID for the cluster
	ZoneId ID
}

AddCluster represents the paramter of AddCluster

func NewAddClusterParameter

func NewAddClusterParameter(clustername string, clustertype string, hypervisor string, podid string, zoneid string) (p *AddClusterParameter)

type AddHostParameter

type AddHostParameter struct {
	// Allocation state of this Host for allocation of new resources
	AllocationState NullString
	// the cluster ID for the host
	ClusterId ID
	// the cluster name for the host
	ClusterName NullString
	// list of tags to be added to the host
	HostTags []string
	// hypervisor type of the host
	Hypervisor NullString
	// the password for the host
	Password NullString
	// the Pod ID for the host
	PodId ID
	// the host URL
	Url NullString
	// the username for the host
	UserName NullString
	// the Zone ID for the host
	ZoneId ID
}

AddHost represents the paramter of AddHost

func NewAddHostParameter

func NewAddHostParameter(hypervisor string, password string, podid string, url string, username string, zoneid string) (p *AddHostParameter)

type AddImageStoreParameter

type AddImageStoreParameter struct {
	// the details for the image store. Example:
	// details[0].key=accesskey&details[0].value=s389ddssaa&details[1].key=secretkey&details[1].value=8dshfsss
	Details map[string]string
	// the name for the image store
	Name NullString
	// the image store provider name
	Provider NullString
	// the URL for the image store
	Url NullString
	// the Zone ID for the image store
	ZoneId ID
}

AddImageStore represents the paramter of AddImageStore

func NewAddImageStoreParameter

func NewAddImageStoreParameter(provider string) (p *AddImageStoreParameter)

type AddNicToVirtualMachineParameter

type AddNicToVirtualMachineParameter struct {
	// IP Address for the new network
	IpAddress NullString
	// Network ID
	NetworkId ID
	// Virtual Machine ID
	VirtualMachineId ID
}

AddNicToVirtualMachine represents the paramter of AddNicToVirtualMachine

func NewAddNicToVirtualMachineParameter

func NewAddNicToVirtualMachineParameter(networkid string, virtualmachineid string) (p *AddNicToVirtualMachineParameter)

type AddSecondaryStorageParameter

type AddSecondaryStorageParameter struct {
	// the URL for the secondary storage
	Url NullString
	// the Zone ID for the secondary storage
	ZoneId ID
}

AddSecondaryStorage represents the paramter of AddSecondaryStorage

func NewAddSecondaryStorageParameter

func NewAddSecondaryStorageParameter(url string) (p *AddSecondaryStorageParameter)

type AffinityGroup

type AffinityGroup struct {
	ResourceBase
	// the account owning the affinity group
	Account NullString `json:"account"`
	// the description of the affinity group
	Description NullString `json:"description"`
	// the domain name of the affinity group
	Domain NullString `json:"domain"`
	// the domain ID of the affinity group
	DomainId ID `json:"domainid"`
	// the ID of the affinity group
	Id ID `json:"id"`
	// the name of the affinity group
	Name NullString `json:"name"`
	// the type of the affinity group
	Type NullString `json:"type"`
	// virtual machine Ids associated with this affinity group
	VirtualMachineIds []ID `json:"virtualmachineids"`
}

type AffinityGroupType

type AffinityGroupType struct {
	ResourceBase
	// the type of the affinity group
	Type NullString `json:"type"`
}

type AssignToLoadBalancerRuleParameter

type AssignToLoadBalancerRuleParameter struct {
	// the ID of the load balancer rule
	Id ID
	// the list of IDs of the virtual machine that are being assigned to the load
	// balancer rule(i.e. virtualMachineIds=1,2,3)
	VirtualMachineIds []string
	// VM ID and IP map, vmidipmap[0].vmid=1 vmidipmap[0].ip=10.1.1.75
	VmIdIpmap map[string]string
}

AssignToLoadBalancerRule represents the paramter of AssignToLoadBalancerRule

func NewAssignToLoadBalancerRuleParameter

func NewAssignToLoadBalancerRuleParameter(id string) (p *AssignToLoadBalancerRuleParameter)

type AssignVirtualMachineParameter

type AssignVirtualMachineParameter struct {
	// account name of the new VM owner.
	Account NullString
	// domain id of the new VM owner.
	DomainId ID
	// list of new network ids in which the moved VM will participate. In case no
	// network ids are provided the VM will be part of the default network for that
	// zone. In case there is no network yet created for the new account the default
	// network will be created.
	NetworkIds []string
	// list of security group ids to be applied on the virtual machine. In case no
	// security groups are provided the VM is part of the default security group.
	SecurityGroupIds []string
	// id of the VM to be moved
	VirtualMachineId ID
}

AssignVirtualMachine represents the paramter of AssignVirtualMachine

func NewAssignVirtualMachineParameter

func NewAssignVirtualMachineParameter(account string, domainid string, virtualmachineid string) (p *AssignVirtualMachineParameter)

type AssociateIpAddressParameter

type AssociateIpAddressParameter struct {
	// the account to associate with this IP address
	Account NullString
	// the ID of the domain to associate with this IP address
	DomainId ID
	// an optional field, whether to the display the ip to the end user or not
	ForDisplay NullBool
	// should be set to true if public IP is required to be transferable across
	// zones, if not specified defaults to false
	IsPortable NullBool
	// The network this ip address should be associated to.
	NetworkId ID
	// Deploy vm for the project
	ProjectId ID
	// region ID from where portable ip is to be associated.
	RegionId ID
	// the VPC you want the ip address to be associated with
	VpcId ID
	// the ID of the availability zone you want to acquire an public IP address from
	ZoneId ID
}

AssociateIpAddress represents the paramter of AssociateIpAddress

func NewAssociateIpAddressParameter

func NewAssociateIpAddressParameter() (p *AssociateIpAddressParameter)

type AsyncApiResponse

type AsyncApiResponse struct {
	Id    ID `json:"id"`
	JobId ID `json:"jobid"`
}

type AsyncJobResult

type AsyncJobResult struct {
	AccountId       NullString      `json:"accountid"`
	Cmd             NullString      `json:"cmd"`
	Created         NullString      `json:"created"`
	JobId           ID              `json:"jobid"`
	JobInstanceId   ID              `json:"jobinstanceid"`
	JobInstanceType NullString      `json:"jobinstancetype"`
	JobProcsSatus   NullNumber      `json:"jobprocstatus"`
	JobResult       json.RawMessage `json:"jobresult"`
	JobResultCode   NullNumber      `json:"jobresultcode"`
	JobResultType   NullString      `json:"jobresulttype"`
	JobStatus       NullNumber      `json:"jobstatus"`
	UserId          ID              `json:"userid"`
}

type AttachVolumeParameter

type AttachVolumeParameter struct {
	// the ID of the device to map the volume to within the guest OS. If no deviceId
	// is passed in, the next available deviceId will be chosen. Possible values for
	// a Linux OS are:* 0 - /dev/xvda* 1 - /dev/xvdb* 2 - /dev/xvdc* 4 - /dev/xvde*
	// 5 - /dev/xvdf* 6 - /dev/xvdg* 7 - /dev/xvdh* 8 - /dev/xvdi* 9 - /dev/xvdj
	DeviceId ID
	// the ID of the disk volume
	Id ID
	//     the ID of the virtual machine
	VirtualMachineId ID
}

AttachVolume represents the paramter of AttachVolume

func NewAttachVolumeParameter

func NewAttachVolumeParameter(id string, virtualmachineid string) (p *AttachVolumeParameter)

type AuthorizeSecurityGroupEgressParameter

type AuthorizeSecurityGroupEgressParameter struct {
	// an optional account for the security group. Must be used with domainId.
	Account NullString
	// the cidr list associated
	CidrList []string
	// an optional domainId for the security group. If the account parameter is
	// used, domainId must also be used.
	DomainId ID
	// end port for this egress rule
	EndPort NullNumber
	// error code for this icmp message
	IcmpCode NullNumber
	// type of the icmp message being sent
	IcmpType NullNumber
	// an optional project of the security group
	ProjectId ID
	// TCP is default. UDP is the other supported protocol
	Protocol NullString
	// The ID of the security group. Mutually exclusive with securityGroupName
	// parameter
	SecurityGroupId ID
	// The name of the security group. Mutually exclusive with securityGroupName
	// parameter
	SecurityGroupName NullString
	// start port for this egress rule
	StartPort NullNumber
	// user to security group mapping
	UserSecurityGroupList map[string]string
}

AuthorizeSecurityGroupEgress represents the paramter of AuthorizeSecurityGroupEgress

func NewAuthorizeSecurityGroupEgressParameter

func NewAuthorizeSecurityGroupEgressParameter() (p *AuthorizeSecurityGroupEgressParameter)

type AuthorizeSecurityGroupIngressParameter

type AuthorizeSecurityGroupIngressParameter struct {
	// an optional account for the security group. Must be used with domainId.
	Account NullString
	// the cidr list associated
	CidrList []string
	// an optional domainId for the security group. If the account parameter is
	// used, domainId must also be used.
	DomainId ID
	// end port for this ingress rule
	EndPort NullNumber
	// error code for this icmp message
	IcmpCode NullNumber
	// type of the icmp message being sent
	IcmpType NullNumber
	// an optional project of the security group
	ProjectId ID
	// TCP is default. UDP is the other supported protocol
	Protocol NullString
	// The ID of the security group. Mutually exclusive with securityGroupName
	// parameter
	SecurityGroupId ID
	// The name of the security group. Mutually exclusive with securityGroupName
	// parameter
	SecurityGroupName NullString
	// start port for this ingress rule
	StartPort NullNumber
	// user to security group mapping
	UserSecurityGroupList map[string]string
}

AuthorizeSecurityGroupIngress represents the paramter of AuthorizeSecurityGroupIngress

func NewAuthorizeSecurityGroupIngressParameter

func NewAuthorizeSecurityGroupIngressParameter() (p *AuthorizeSecurityGroupIngressParameter)

type CancelHostMaintenanceParameter

type CancelHostMaintenanceParameter struct {
	// the host ID
	Id ID
}

CancelHostMaintenance represents the paramter of CancelHostMaintenance

func NewCancelHostMaintenanceParameter

func NewCancelHostMaintenanceParameter(id string) (p *CancelHostMaintenanceParameter)

type CancelStorageMaintenanceParameter

type CancelStorageMaintenanceParameter struct {
	// the primary storage ID
	Id ID
}

CancelStorageMaintenance represents the paramter of CancelStorageMaintenance

func NewCancelStorageMaintenanceParameter

func NewCancelStorageMaintenanceParameter(id string) (p *CancelStorageMaintenanceParameter)

type Capacity

type Capacity struct {
	ResourceBase
	// the total capacity available
	CapacityTotal NullNumber `json:"capacitytotal"`
	// the capacity currently in use
	CapacityUsed NullNumber `json:"capacityused"`
	// the Cluster ID
	ClusterId ID `json:"clusterid"`
	// the Cluster name
	ClusterName NullString `json:"clustername"`
	// the percentage of capacity currently in use
	PercentUsed NullString `json:"percentused"`
	// the Pod ID
	PodId ID `json:"podid"`
	// the Pod name
	PodName NullString `json:"podname"`
	// the capacity type
	Type NullNumber `json:"type"`
	// the Zone ID
	ZoneId ID `json:"zoneid"`
	// the Zone name
	ZoneName NullString `json:"zonename"`
}

type ChangeServiceForVirtualMachineParameter

type ChangeServiceForVirtualMachineParameter struct {
	// name value pairs of custom parameters for cpu, memory and cpunumber. example
	// details[i].name=value
	Details map[string]string
	// The ID of the virtual machine
	Id ID
	// the service offering ID to apply to the virtual machine
	ServiceOfferingId ID
}

ChangeServiceForVirtualMachine represents the paramter of ChangeServiceForVirtualMachine

func NewChangeServiceForVirtualMachineParameter

func NewChangeServiceForVirtualMachineParameter(id string, serviceofferingid string) (p *ChangeServiceForVirtualMachineParameter)

type CleanVMReservationsParameter

type CleanVMReservationsParameter struct {
}

CleanVMReservations represents the paramter of CleanVMReservations

func NewCleanVMReservationsParameter

func NewCleanVMReservationsParameter() (p *CleanVMReservationsParameter)

type Client

type Client struct {
	EndPoint        *url.URL
	APIKey          string
	SecretKey       string
	Username        string
	Password        string
	SessionKey      string
	PollingInterval time.Duration
	HTTPClient      *http.Client
}

func NewClient

func NewClient(endpoint *url.URL, apikey string, secretkey string,
	username string, password string) (*Client, error)

func (*Client) ActivateProject

func (c *Client) ActivateProject(p *ActivateProjectParameter) (*Project, error)

Activates a project

func (*Client) AddAccountToProject

func (c *Client) AddAccountToProject(p *AddAccountToProjectParameter) (*Result, error)

Adds acoount to a project

func (*Client) AddBaremetalHost

func (c *Client) AddBaremetalHost(p *AddBaremetalHostParameter) (*Host, error)

add a baremetal host

func (*Client) AddCluster

func (c *Client) AddCluster(p *AddClusterParameter) (*Cluster, error)

Adds a new cluster

func (*Client) AddHost

func (c *Client) AddHost(p *AddHostParameter) (*Host, error)

Adds a new host.

func (*Client) AddImageStore

func (c *Client) AddImageStore(p *AddImageStoreParameter) (*ImageStore, error)

Adds backup image store.

func (*Client) AddNicToVirtualMachine

func (c *Client) AddNicToVirtualMachine(p *AddNicToVirtualMachineParameter) (*VirtualMachine, error)

Adds VM to specified network by creating a NIC

func (*Client) AddSecondaryStorage

func (c *Client) AddSecondaryStorage(p *AddSecondaryStorageParameter) (*ImageStore, error)

Adds secondary storage.

func (*Client) AssignToLoadBalancerRule

func (c *Client) AssignToLoadBalancerRule(p *AssignToLoadBalancerRuleParameter) (*Result, error)

Assigns virtual machine or a list of virtual machines to a load balancer rule.

func (*Client) AssignVirtualMachine

func (c *Client) AssignVirtualMachine(p *AssignVirtualMachineParameter) (*VirtualMachine, error)

Change ownership of a VM from one account to another. This API is available for Basic zones with security groups and Advanced zones with guest networks. A root administrator can reassign a VM from any account to any other account in any domain. A domain administrator can reassign a VM to any account in the same domain.

func (*Client) AssociateIpAddress

func (c *Client) AssociateIpAddress(p *AssociateIpAddressParameter) (*PublicIpAddress, error)

Acquires and associates a public IP to an account.

func (*Client) AsyncRequest

func (c *Client) AsyncRequest(command string, params map[string]interface{}) (interface{}, error)

func (*Client) AsyncRequestJson

func (c *Client) AsyncRequestJson(command string, params map[string]interface{}) (resp []byte, err error)

func (*Client) AttachVolume

func (c *Client) AttachVolume(p *AttachVolumeParameter) (*Volume, error)

Attaches a disk volume to a virtual machine.

func (*Client) AuthorizeSecurityGroupEgress

func (c *Client) AuthorizeSecurityGroupEgress(p *AuthorizeSecurityGroupEgressParameter) (*SecurityGroupEgress, error)

Authorizes a particular egress rule for this security group

func (*Client) AuthorizeSecurityGroupIngress

func (c *Client) AuthorizeSecurityGroupIngress(p *AuthorizeSecurityGroupIngressParameter) (*SecurityGroupIngress, error)

Authorizes a particular ingress rule for this security group

func (*Client) CancelHostMaintenance

func (c *Client) CancelHostMaintenance(p *CancelHostMaintenanceParameter) (*Host, error)

Cancels host maintenance.

func (*Client) CancelStorageMaintenance

func (c *Client) CancelStorageMaintenance(p *CancelStorageMaintenanceParameter) (*StoragePool, error)

Cancels maintenance for primary storage

func (*Client) ChangeServiceForVirtualMachine

func (c *Client) ChangeServiceForVirtualMachine(p *ChangeServiceForVirtualMachineParameter) (*VirtualMachine, error)

Changes the service offering for a virtual machine. The virtual machine must be in a "Stopped" state for this command to take effect.

func (*Client) CleanVMReservations

func (c *Client) CleanVMReservations(p *CleanVMReservationsParameter) (*Result, error)

Cleanups VM reservations in the database.

func (*Client) CopyTemplate

func (c *Client) CopyTemplate(p *CopyTemplateParameter) (*Template, error)

Copies a template from one zone to another.

func (*Client) CreateAccount

func (c *Client) CreateAccount(p *CreateAccountParameter) (*Account, error)

Creates an account

func (*Client) CreateAffinityGroup

func (c *Client) CreateAffinityGroup(p *CreateAffinityGroupParameter) (*AffinityGroup, error)

Creates an affinity/anti-affinity group

func (*Client) CreateDiskOffering

func (c *Client) CreateDiskOffering(p *CreateDiskOfferingParameter) (*DiskOffering, error)

Creates a disk offering.

func (*Client) CreateDomain

func (c *Client) CreateDomain(p *CreateDomainParameter) (*Domain, error)

Creates a domain

func (*Client) CreateEgressFirewallRule

func (c *Client) CreateEgressFirewallRule(p *CreateEgressFirewallRuleParameter) (*FirewallRule, error)

Creates a egress firewall rule for a given network

func (*Client) CreateFirewallRule

func (c *Client) CreateFirewallRule(p *CreateFirewallRuleParameter) (*FirewallRule, error)

Creates a firewall rule for a given ip address

func (*Client) CreateIpForwardingRule

func (c *Client) CreateIpForwardingRule(p *CreateIpForwardingRuleParameter) (*IpForwardingRule, error)

Creates an ip forwarding rule

func (*Client) CreateLoadBalancerRule

func (c *Client) CreateLoadBalancerRule(p *CreateLoadBalancerRuleParameter) (*LoadBalancerRule, error)

Creates a load balancer rule

func (*Client) CreateNetwork

func (c *Client) CreateNetwork(p *CreateNetworkParameter) (*Network, error)

Creates a network

func (*Client) CreateNetworkOffering

func (c *Client) CreateNetworkOffering(p *CreateNetworkOfferingParameter) (*NetworkOffering, error)

Creates a network offering.

func (*Client) CreatePod

func (c *Client) CreatePod(p *CreatePodParameter) (*Pod, error)

Creates a new Pod.

func (*Client) CreatePortForwardingRule

func (c *Client) CreatePortForwardingRule(p *CreatePortForwardingRuleParameter) (*PortForwardingRule, error)

Creates a port forwarding rule

func (*Client) CreateProject

func (c *Client) CreateProject(p *CreateProjectParameter) (*Project, error)

Creates a project

func (*Client) CreateSecondaryStagingStore

func (c *Client) CreateSecondaryStagingStore(p *CreateSecondaryStagingStoreParameter) (*ImageStore, error)

create secondary staging store.

func (*Client) CreateSecurityGroup

func (c *Client) CreateSecurityGroup(p *CreateSecurityGroupParameter) (*SecurityGroup, error)

Creates a security group

func (*Client) CreateServiceOffering

func (c *Client) CreateServiceOffering(p *CreateServiceOfferingParameter) (*ServiceOffering, error)

Creates a service offering.

func (*Client) CreateStoragePool

func (c *Client) CreateStoragePool(p *CreateStoragePoolParameter) (*StoragePool, error)

Creates a storage pool.

func (*Client) CreateTags

func (c *Client) CreateTags(p *CreateTagsParameter) (*Result, error)

Creates resource tag(s)

func (*Client) CreateTemplate

func (c *Client) CreateTemplate(p *CreateTemplateParameter) (*Template, error)

Creates a template of a virtual machine. The virtual machine must be in a STOPPED state. A template created from this command is automatically designated as a private template visible to the account that created it.

func (*Client) CreateUser

func (c *Client) CreateUser(p *CreateUserParameter) (*User, error)

Creates a user for an account that already exists

func (*Client) CreateVolume

func (c *Client) CreateVolume(p *CreateVolumeParameter) (*Volume, error)

Creates a disk volume from a disk offering. This disk volume must still be attached to a virtual machine to make use of it.

func (*Client) CreateZone

func (c *Client) CreateZone(p *CreateZoneParameter) (*Zone, error)

Creates a Zone.

func (*Client) DedicateCluster

func (c *Client) DedicateCluster(p *DedicateClusterParameter) (*DedicatedCluster, error)

Dedicate an existing cluster

func (*Client) DedicateHost

func (c *Client) DedicateHost(p *DedicateHostParameter) (*DedicatedHost, error)

Dedicates a host.

func (*Client) DedicatePod

func (c *Client) DedicatePod(p *DedicatePodParameter) (*DedicatedPod, error)

Dedicates a Pod.

func (*Client) DeleteAccount

func (c *Client) DeleteAccount(p *DeleteAccountParameter) (*Result, error)

Deletes a account, and all users associated with this account

func (*Client) DeleteAccountFromProject

func (c *Client) DeleteAccountFromProject(p *DeleteAccountFromProjectParameter) (*Result, error)

Deletes account from the project

func (*Client) DeleteAffinityGroup

func (c *Client) DeleteAffinityGroup(p *DeleteAffinityGroupParameter) (*Result, error)

Deletes affinity group

func (*Client) DeleteCluster

func (c *Client) DeleteCluster(p *DeleteClusterParameter) (*Result, error)

Deletes a cluster.

func (*Client) DeleteDiskOffering

func (c *Client) DeleteDiskOffering(p *DeleteDiskOfferingParameter) (*Result, error)

Updates a disk offering.

func (*Client) DeleteDomain

func (c *Client) DeleteDomain(p *DeleteDomainParameter) (*Result, error)

Deletes a specified domain

func (*Client) DeleteEgressFirewallRule

func (c *Client) DeleteEgressFirewallRule(p *DeleteEgressFirewallRuleParameter) (*Result, error)

Deletes an ggress firewall rule

func (*Client) DeleteFirewallRule

func (c *Client) DeleteFirewallRule(p *DeleteFirewallRuleParameter) (*Result, error)

Deletes a firewall rule

func (*Client) DeleteHost

func (c *Client) DeleteHost(p *DeleteHostParameter) (*Result, error)

Deletes a host.

func (*Client) DeleteImageStore

func (c *Client) DeleteImageStore(p *DeleteImageStoreParameter) (*Result, error)

Deletes an image store .

func (*Client) DeleteIpForwardingRule

func (c *Client) DeleteIpForwardingRule(p *DeleteIpForwardingRuleParameter) (*Result, error)

Deletes an ip forwarding rule

func (*Client) DeleteLoadBalancerRule

func (c *Client) DeleteLoadBalancerRule(p *DeleteLoadBalancerRuleParameter) (*Result, error)

Deletes a load balancer rule.

func (*Client) DeleteNetwork

func (c *Client) DeleteNetwork(p *DeleteNetworkParameter) (*Result, error)

Deletes a network

func (*Client) DeleteNetworkOffering

func (c *Client) DeleteNetworkOffering(p *DeleteNetworkOfferingParameter) (*Result, error)

Deletes a network offering.

func (*Client) DeletePod

func (c *Client) DeletePod(p *DeletePodParameter) (*Result, error)

Deletes a Pod.

func (*Client) DeletePortForwardingRule

func (c *Client) DeletePortForwardingRule(p *DeletePortForwardingRuleParameter) (*Result, error)

Deletes a port forwarding rule

func (*Client) DeleteProject

func (c *Client) DeleteProject(p *DeleteProjectParameter) (*Result, error)

Deletes a project

func (*Client) DeleteProjectInvitation

func (c *Client) DeleteProjectInvitation(p *DeleteProjectInvitationParameter) (*Result, error)

Deletes project invitation

func (*Client) DeleteSecondaryStagingStore

func (c *Client) DeleteSecondaryStagingStore(p *DeleteSecondaryStagingStoreParameter) (*Result, error)

Deletes a secondary staging store .

func (*Client) DeleteSecurityGroup

func (c *Client) DeleteSecurityGroup(p *DeleteSecurityGroupParameter) (*Result, error)

Deletes security group

func (*Client) DeleteServiceOffering

func (c *Client) DeleteServiceOffering(p *DeleteServiceOfferingParameter) (*Result, error)

Deletes a service offering.

func (*Client) DeleteStoragePool

func (c *Client) DeleteStoragePool(p *DeleteStoragePoolParameter) (*Result, error)

Deletes a storage pool.

func (*Client) DeleteTags

func (c *Client) DeleteTags(p *DeleteTagsParameter) (*Result, error)

Deleting resource tag(s)

func (*Client) DeleteTemplate

func (c *Client) DeleteTemplate(p *DeleteTemplateParameter) (*Result, error)

Deletes a template from the system. All virtual machines using the deleted template will not be affected.

func (*Client) DeleteUser

func (c *Client) DeleteUser(p *DeleteUserParameter) (*Result, error)

Deletes a user for an account

func (*Client) DeleteVolume

func (c *Client) DeleteVolume(p *DeleteVolumeParameter) (*Result, error)

Deletes a detached disk volume.

func (*Client) DeleteZone

func (c *Client) DeleteZone(p *DeleteZoneParameter) (*Result, error)

Deletes a Zone.

func (*Client) DeployVirtualMachine

func (c *Client) DeployVirtualMachine(p *DeployVirtualMachineParameter) (*VirtualMachine, error)

Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.

func (*Client) DestroyVirtualMachine

func (c *Client) DestroyVirtualMachine(p *DestroyVirtualMachineParameter) (*VirtualMachine, error)

Destroys a virtual machine. Once destroyed, only the administrator can recover it.

func (*Client) DetachVolume

func (c *Client) DetachVolume(p *DetachVolumeParameter) (*Volume, error)

Detaches a disk volume from a virtual machine.

func (*Client) DisableAccount

func (c *Client) DisableAccount(p *DisableAccountParameter) (*Account, error)

Disables an account

func (*Client) DisableStaticNat

func (c *Client) DisableStaticNat(p *DisableStaticNatParameter) (*Result, error)

Disables static rule for given ip address

func (*Client) DisableUser

func (c *Client) DisableUser(p *DisableUserParameter) (*User, error)

Disables a user account

func (*Client) DisassociateIpAddress

func (c *Client) DisassociateIpAddress(p *DisassociateIpAddressParameter) (*Result, error)

Disassociates an ip address from the account.

func (*Client) EnableAccount

func (c *Client) EnableAccount(p *EnableAccountParameter) (*Account, error)

Enables an account

func (*Client) EnableStaticNat

func (c *Client) EnableStaticNat(p *EnableStaticNatParameter) (*Result, error)

Enables static nat for given ip address

func (*Client) EnableStorageMaintenance

func (c *Client) EnableStorageMaintenance(p *EnableStorageMaintenanceParameter) (*StoragePool, error)

Puts storage pool into maintenance state

func (*Client) EnableUser

func (c *Client) EnableUser(p *EnableUserParameter) (*User, error)

Enables a user account

func (*Client) ExpungeVirtualMachine

func (c *Client) ExpungeVirtualMachine(p *ExpungeVirtualMachineParameter) (*Result, error)

Expunge a virtual machine. Once expunged, it cannot be recoverd.

func (*Client) ExtractTemplate

func (c *Client) ExtractTemplate(p *ExtractTemplateParameter) (*Template, error)

Extracts a template

func (*Client) ExtractVolume

func (c *Client) ExtractVolume(p *ExtractVolumeParameter) (*Volume, error)

Extracts volume

func (*Client) FindHostsForMigration

func (c *Client) FindHostsForMigration(p *FindHostsForMigrationParameter) (*Host, error)

Find hosts suitable for migrating a virtual machine.

func (*Client) FindStoragePoolsForMigration

func (c *Client) FindStoragePoolsForMigration(p *FindStoragePoolsForMigrationParameter) (*StoragePool, error)

Lists storage pools available for migration of a volume.

func (*Client) GenerateQueryURL

func (c *Client) GenerateQueryURL(command string, params map[string]interface{}) string

Generate Query URL from command and paramters

func (*Client) GetUser

func (c *Client) GetUser(p *GetUserParameter) (*User, error)

Find user account by API key

func (*Client) GetVMPassword

func (c *Client) GetVMPassword(p *GetVMPasswordParameter) (*VMPassword, error)

Returns an encrypted password for the VM

func (*Client) GetVirtualMachine

func (c *Client) GetVirtualMachine(id string) (*VirtualMachine, error)

func (*Client) GetVirtualMachineUserData

func (c *Client) GetVirtualMachineUserData(p *GetVirtualMachineUserDataParameter) (*VirtualMachineUserData, error)

Returns user data associated with the VM

func (*Client) ImportLdapUsers

func (c *Client) ImportLdapUsers(p *ImportLdapUsersParameter) (*LdapUser, error)

Import LDAP users

func (*Client) ListAccounts

func (c *Client) ListAccounts(p *ListAccountsParameter) ([]*Account, error)

Lists accounts and provides detailed account information for listed accounts

func (*Client) ListAffinityGroupTypes

func (c *Client) ListAffinityGroupTypes(p *ListAffinityGroupTypesParameter) ([]*AffinityGroupType, error)

Lists affinity group types available

func (*Client) ListAffinityGroups

func (c *Client) ListAffinityGroups(p *ListAffinityGroupsParameter) ([]*AffinityGroup, error)

Lists affinity groups

func (*Client) ListClusters

func (c *Client) ListClusters(p *ListClustersParameter) ([]*Cluster, error)

Lists clusters.

func (*Client) ListDedicatedClusters

func (c *Client) ListDedicatedClusters(p *ListDedicatedClustersParameter) ([]*DedicatedCluster, error)

Lists dedicated clusters.

func (*Client) ListDedicatedHosts

func (c *Client) ListDedicatedHosts(p *ListDedicatedHostsParameter) ([]*DedicatedHost, error)

Lists dedicated hosts.

func (*Client) ListDedicatedPods

func (c *Client) ListDedicatedPods(p *ListDedicatedPodsParameter) ([]*DedicatedPod, error)

Lists dedicated pods.

func (*Client) ListDiskOfferings

func (c *Client) ListDiskOfferings(p *ListDiskOfferingsParameter) ([]*DiskOffering, error)

Lists all available disk offerings.

func (*Client) ListDomainChildren

func (c *Client) ListDomainChildren(p *ListDomainChildrenParameter) ([]*Domain, error)

Lists all children domains belonging to a specified domain

func (*Client) ListDomains

func (c *Client) ListDomains(p *ListDomainsParameter) ([]*Domain, error)

Lists domains and provides detailed information for listed domains

func (*Client) ListEgressFirewallRules

func (c *Client) ListEgressFirewallRules(p *ListEgressFirewallRulesParameter) ([]*FirewallRule, error)

Lists all egress firewall rules for network id.

func (*Client) ListFirewallRules

func (c *Client) ListFirewallRules(p *ListFirewallRulesParameter) ([]*FirewallRule, error)

Lists all firewall rules for an IP address.

func (*Client) ListHostTags

func (c *Client) ListHostTags(p *ListHostTagsParameter) ([]*HostTag, error)

Lists host tags

func (*Client) ListHosts

func (c *Client) ListHosts(p *ListHostsParameter) ([]*Host, error)

Lists hosts.

func (*Client) ListImageStores

func (c *Client) ListImageStores(p *ListImageStoresParameter) ([]*ImageStore, error)

Lists image stores.

func (*Client) ListIpForwardingRules

func (c *Client) ListIpForwardingRules(p *ListIpForwardingRulesParameter) ([]*IpForwardingRule, error)

List the ip forwarding rules

func (*Client) ListLdapUsers

func (c *Client) ListLdapUsers(p *ListLdapUsersParameter) ([]*LdapUser, error)

Lists all LDAP Users

func (*Client) ListLoadBalancerRuleInstances

func (c *Client) ListLoadBalancerRuleInstances(p *ListLoadBalancerRuleInstancesParameter) ([]*LoadBalancerRuleInstance, error)

List all virtual machine instances that are assigned to a load balancer rule.

func (*Client) ListLoadBalancerRules

func (c *Client) ListLoadBalancerRules(p *ListLoadBalancerRulesParameter) ([]*LoadBalancerRule, error)

Lists load balancer rules.

func (*Client) ListNetworkOfferings

func (c *Client) ListNetworkOfferings(p *ListNetworkOfferingsParameter) ([]*NetworkOffering, error)

Lists all available network offerings.

func (*Client) ListNetworks

func (c *Client) ListNetworks(p *ListNetworksParameter) ([]*Network, error)

Lists all available networks.

func (*Client) ListPods

func (c *Client) ListPods(p *ListPodsParameter) ([]*Pod, error)

Lists all Pods.

func (*Client) ListPortForwardingRules

func (c *Client) ListPortForwardingRules(p *ListPortForwardingRulesParameter) ([]*PortForwardingRule, error)

Lists all port forwarding rules for an IP address.

func (*Client) ListProjectAccounts

func (c *Client) ListProjectAccounts(p *ListProjectAccountsParameter) ([]*ProjectAccount, error)

Lists project's accounts

func (*Client) ListProjectInvitations

func (c *Client) ListProjectInvitations(p *ListProjectInvitationsParameter) ([]*ProjectInvitation, error)

Lists project invitations and provides detailed information for listed invitations

func (*Client) ListProjects

func (c *Client) ListProjects(p *ListProjectsParameter) ([]*Project, error)

Lists projects and provides detailed information for listed projects

func (*Client) ListPublicIpAddresses

func (c *Client) ListPublicIpAddresses(p *ListPublicIpAddressesParameter) ([]*PublicIpAddress, error)

Lists all public ip addresses

func (*Client) ListSecondaryStagingStores

func (c *Client) ListSecondaryStagingStores(p *ListSecondaryStagingStoresParameter) ([]*ImageStore, error)

Lists secondary staging stores.

func (*Client) ListSecurityGroups

func (c *Client) ListSecurityGroups(p *ListSecurityGroupsParameter) ([]*SecurityGroup, error)

Lists security groups

func (*Client) ListServiceOfferings

func (c *Client) ListServiceOfferings(p *ListServiceOfferingsParameter) ([]*ServiceOffering, error)

Lists all available service offerings.

func (*Client) ListStoragePools

func (c *Client) ListStoragePools(p *ListStoragePoolsParameter) ([]*StoragePool, error)

Lists storage pools.

func (*Client) ListStorageProviders

func (c *Client) ListStorageProviders(p *ListStorageProvidersParameter) ([]*StorageProvider, error)

Lists storage providers.

func (*Client) ListStorageTags

func (c *Client) ListStorageTags(p *ListStorageTagsParameter) ([]*StorageTag, error)

Lists storage tags

func (*Client) ListTags

func (c *Client) ListTags(p *ListTagsParameter) ([]*Tag, error)

List resource tag(s)

func (*Client) ListTemplatePermissions

func (c *Client) ListTemplatePermissions(p *ListTemplatePermissionsParameter) (*TemplatePermission, error)

List template visibility and all accounts that have permissions to view this template.

func (*Client) ListTemplates

func (c *Client) ListTemplates(p *ListTemplatesParameter) ([]*Template, error)

List all public, private, and privileged templates.

func (*Client) ListUsers

func (c *Client) ListUsers(p *ListUsersParameter) ([]*User, error)

Lists user accounts

func (*Client) ListVirtualMachines

func (c *Client) ListVirtualMachines(p *ListVirtualMachinesParameter) ([]*VirtualMachine, error)

List the virtual machines owned by the account.

func (*Client) ListVolumes

func (c *Client) ListVolumes(p *ListVolumesParameter) ([]*Volume, error)

Lists all volumes.

func (*Client) ListZones

func (c *Client) ListZones(p *ListZonesParameter) ([]*Zone, error)

Lists zones

func (*Client) LockAccount

func (c *Client) LockAccount(p *LockAccountParameter) (*Account, error)

Locks an account

func (*Client) LockUser

func (c *Client) LockUser(p *LockUserParameter) (*User, error)

Locks a user account

func (*Client) LogIn

func (c *Client) LogIn() (err error)

func (*Client) LogOut

func (c *Client) LogOut() error

func (*Client) MarkDefaultZoneForAccount

func (c *Client) MarkDefaultZoneForAccount(p *MarkDefaultZoneForAccountParameter) (*Account, error)

Marks a default zone for this account

func (*Client) MigrateVirtualMachine

func (c *Client) MigrateVirtualMachine(p *MigrateVirtualMachineParameter) (*VirtualMachine, error)

Attempts Migration of a VM to a different host or Root volume of the vm to a different storage pool

func (*Client) MigrateVirtualMachineWithVolume

func (c *Client) MigrateVirtualMachineWithVolume(p *MigrateVirtualMachineWithVolumeParameter) (*VirtualMachine, error)

Attempts Migration of a VM with its volumes to a different host

func (*Client) MigrateVolume

func (c *Client) MigrateVolume(p *MigrateVolumeParameter) (*Volume, error)

Migrate volume

func (*Client) PrepareHostForMaintenance

func (c *Client) PrepareHostForMaintenance(p *PrepareHostForMaintenanceParameter) (*Host, error)

Prepares a host for maintenance.

func (*Client) PrepareTemplate

func (c *Client) PrepareTemplate(p *PrepareTemplateParameter) (*Template, error)

load template into primary storage

func (*Client) QueryAsyncJobResult

func (c *Client) QueryAsyncJobResult(jobid string) (job *AsyncJobResult, err error)

func (*Client) RebootVirtualMachine

func (c *Client) RebootVirtualMachine(p *RebootVirtualMachineParameter) (*VirtualMachine, error)

Reboots a virtual machine.

func (*Client) ReconnectHost

func (c *Client) ReconnectHost(p *ReconnectHostParameter) (*Host, error)

Reconnects a host.

func (*Client) RecoverVirtualMachine

func (c *Client) RecoverVirtualMachine(p *RecoverVirtualMachineParameter) (*VirtualMachine, error)

Recovers a virtual machine.

func (*Client) RegisterTemplate

func (c *Client) RegisterTemplate(p *RegisterTemplateParameter) (*Template, error)

Registers an existing template into the CloudStack cloud.

func (*Client) RegisterUserKeys

func (c *Client) RegisterUserKeys(p *RegisterUserKeysParameter) (*UserKeys, error)

This command allows a user to register for the developer API, returning a secret key and an API key. This request is made through the integration API port, so it is a privileged command and must be made on behalf of a user. It is up to the implementer just how the username and password are entered, and then how that translates to an integration API request. Both secret key and API key should be returned to the user

func (*Client) ReleaseDedicatedCluster

func (c *Client) ReleaseDedicatedCluster(p *ReleaseDedicatedClusterParameter) (*Result, error)

Release the dedication for cluster

func (*Client) ReleaseDedicatedHost

func (c *Client) ReleaseDedicatedHost(p *ReleaseDedicatedHostParameter) (*Result, error)

Release the dedication for host

func (*Client) ReleaseDedicatedPod

func (c *Client) ReleaseDedicatedPod(p *ReleaseDedicatedPodParameter) (*Result, error)

Release the dedication for the pod

func (*Client) ReleaseHostReservation

func (c *Client) ReleaseHostReservation(p *ReleaseHostReservationParameter) (*Result, error)

Releases host reservation.

func (*Client) RemoveFromLoadBalancerRule

func (c *Client) RemoveFromLoadBalancerRule(p *RemoveFromLoadBalancerRuleParameter) (*Result, error)

Removes a virtual machine or a list of virtual machines from a load balancer rule.

func (*Client) RemoveNicFromVirtualMachine

func (c *Client) RemoveNicFromVirtualMachine(p *RemoveNicFromVirtualMachineParameter) (*VirtualMachine, error)

Removes VM from specified network by deleting a NIC

func (*Client) Request

func (c *Client) Request(command string, params map[string]interface{}) (interface{}, error)

func (*Client) RequestJson

func (c *Client) RequestJson(command string, params map[string]interface{}) ([]byte, error)

func (*Client) ResetPasswordForVirtualMachine

func (c *Client) ResetPasswordForVirtualMachine(p *ResetPasswordForVirtualMachineParameter) (*VirtualMachine, error)

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. [async]

func (*Client) ResizeVolume

func (c *Client) ResizeVolume(p *ResizeVolumeParameter) (*Volume, error)

Resizes a volume

func (*Client) RestartNetwork

func (c *Client) RestartNetwork(p *RestartNetworkParameter) (*Network, error)

Restarts the network; includes 1) restarting network elements - virtual routers, dhcp servers 2) reapplying all public ips 3) reapplying loadBalancing/portForwarding rules

func (*Client) RestoreVirtualMachine

func (c *Client) RestoreVirtualMachine(p *RestoreVirtualMachineParameter) (*VirtualMachine, error)

Restore a VM to original template/ISO or new template/ISO

func (*Client) RevokeSecurityGroupEgress

func (c *Client) RevokeSecurityGroupEgress(p *RevokeSecurityGroupEgressParameter) (*Result, error)

Deletes a particular egress rule from this security group

func (*Client) RevokeSecurityGroupIngress

func (c *Client) RevokeSecurityGroupIngress(p *RevokeSecurityGroupIngressParameter) (*Result, error)

Deletes a particular ingress rule from this security group

func (*Client) ScaleVirtualMachine

func (c *Client) ScaleVirtualMachine(p *ScaleVirtualMachineParameter) (*Result, error)

Scales the virtual machine to a new service offering.

func (*Client) StartVirtualMachine

func (c *Client) StartVirtualMachine(p *StartVirtualMachineParameter) (*VirtualMachine, error)

Starts a virtual machine.

func (*Client) StopVirtualMachine

func (c *Client) StopVirtualMachine(p *StopVirtualMachineParameter) (*VirtualMachine, error)

Stops a virtual machine.

func (*Client) SuspendProject

func (c *Client) SuspendProject(p *SuspendProjectParameter) (*Project, error)

Suspends a project

func (*Client) UpdateAccount

func (c *Client) UpdateAccount(p *UpdateAccountParameter) (*Account, error)

Updates account information for the authenticated user

func (*Client) UpdateCloudToUseObjectStore

func (c *Client) UpdateCloudToUseObjectStore(p *UpdateCloudToUseObjectStoreParameter) (*ImageStore, error)

Migrate current NFS secondary storages to use object store.

func (*Client) UpdateCluster

func (c *Client) UpdateCluster(p *UpdateClusterParameter) (*Cluster, error)

Updates an existing cluster

func (*Client) UpdateDefaultNicForVirtualMachine

func (c *Client) UpdateDefaultNicForVirtualMachine(p *UpdateDefaultNicForVirtualMachineParameter) (*VirtualMachine, error)

Changes the default NIC on a VM

func (*Client) UpdateDiskOffering

func (c *Client) UpdateDiskOffering(p *UpdateDiskOfferingParameter) (*DiskOffering, error)

Updates a disk offering.

func (*Client) UpdateDomain

func (c *Client) UpdateDomain(p *UpdateDomainParameter) (*Domain, error)

Updates a domain with a new name

func (*Client) UpdateEgressFirewallRule

func (c *Client) UpdateEgressFirewallRule(p *UpdateEgressFirewallRuleParameter) (*FirewallRule, error)

Updates egress firewall rule

func (*Client) UpdateFirewallRule

func (c *Client) UpdateFirewallRule(p *UpdateFirewallRuleParameter) (*FirewallRule, error)

Updates firewall rule

func (*Client) UpdateHost

func (c *Client) UpdateHost(p *UpdateHostParameter) (*Host, error)

Updates a host.

func (*Client) UpdateHostPassword

func (c *Client) UpdateHostPassword(p *UpdateHostPasswordParameter) (*Result, error)

Update password of a host/pool on management server.

func (*Client) UpdateIpAddress

func (c *Client) UpdateIpAddress(p *UpdateIpAddressParameter) (*PublicIpAddress, error)

Updates an ip address

func (*Client) UpdateLoadBalancerRule

func (c *Client) UpdateLoadBalancerRule(p *UpdateLoadBalancerRuleParameter) (*LoadBalancerRule, error)

Updates load balancer

func (*Client) UpdateNetwork

func (c *Client) UpdateNetwork(p *UpdateNetworkParameter) (*Network, error)

Updates a network

func (*Client) UpdateNetworkOffering

func (c *Client) UpdateNetworkOffering(p *UpdateNetworkOfferingParameter) (*NetworkOffering, error)

Updates a network offering.

func (*Client) UpdatePod

func (c *Client) UpdatePod(p *UpdatePodParameter) (*Pod, error)

Updates a Pod.

func (*Client) UpdatePortForwardingRule

func (c *Client) UpdatePortForwardingRule(p *UpdatePortForwardingRuleParameter) (*PortForwardingRule, error)

Updates a port forwarding rule. Only the private port and the virtual machine can be updated.

func (*Client) UpdateProject

func (c *Client) UpdateProject(p *UpdateProjectParameter) (*Project, error)

Updates a project

func (*Client) UpdateProjectInvitation

func (c *Client) UpdateProjectInvitation(p *UpdateProjectInvitationParameter) (*Result, error)

Accepts or declines project invitation

func (*Client) UpdateServiceOffering

func (c *Client) UpdateServiceOffering(p *UpdateServiceOfferingParameter) (*ServiceOffering, error)

Updates a service offering.

func (*Client) UpdateStoragePool

func (c *Client) UpdateStoragePool(p *UpdateStoragePoolParameter) (*StoragePool, error)

Updates a storage pool.

func (*Client) UpdateTemplate

func (c *Client) UpdateTemplate(p *UpdateTemplateParameter) (*Template, error)

Updates attributes of a template.

func (*Client) UpdateTemplatePermissions

func (c *Client) UpdateTemplatePermissions(p *UpdateTemplatePermissionsParameter) (*Result, error)

Updates a template visibility permissions. A public template is visible to all accounts within the same domain. A private template is visible only to the owner of the template. A priviledged template is a private template with account permissions added. Only accounts specified under the template permissions are visible to them.

func (*Client) UpdateUser

func (c *Client) UpdateUser(p *UpdateUserParameter) (*User, error)

Updates a user account

func (*Client) UpdateVMAffinityGroup

func (c *Client) UpdateVMAffinityGroup(p *UpdateVMAffinityGroupParameter) (*VirtualMachine, error)

Updates the affinity/anti-affinity group associations of a virtual machine. The VM has to be stopped and restarted for the new properties to take effect.

func (*Client) UpdateVirtualMachine

func (c *Client) UpdateVirtualMachine(p *UpdateVirtualMachineParameter) (*VirtualMachine, error)

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.

func (*Client) UpdateVolume

func (c *Client) UpdateVolume(p *UpdateVolumeParameter) (*Volume, error)

Updates the volume.

func (*Client) UpdateZone

func (c *Client) UpdateZone(p *UpdateZoneParameter) (*Zone, error)

Updates a Zone.

func (*Client) UploadVolume

func (c *Client) UploadVolume(p *UploadVolumeParameter) (*Volume, error)

Uploads a data disk.

func (*Client) Wait

func (c *Client) Wait(jobid string) (job *AsyncJobResult, err error)

type Cluster

type Cluster struct {
	ResourceBase
	// the allocation state of the cluster
	AllocationState NullString `json:"allocationstate"`
	// the capacity of the Cluster
	Capacity []Capacity `json:"capacity"`
	// the type of the cluster
	ClusterType NullString `json:"clustertype"`
	// The cpu overcommit ratio of the cluster
	CpuOverCommitRatio NullString `json:"cpuovercommitratio"`
	// the hypervisor type of the cluster
	HypervisorType NullString `json:"hypervisortype"`
	// the cluster ID
	Id ID `json:"id"`
	// whether this cluster is managed by cloudstack
	ManagedState NullString `json:"managedstate"`
	// The memory overcommit ratio of the cluster
	MemoryOverCommitRatio NullString `json:"memoryovercommitratio"`
	// the cluster name
	Name NullString `json:"name"`
	// the Pod ID of the cluster
	PodId ID `json:"podid"`
	// the Pod name of the cluster
	PodName NullString `json:"podname"`
	// the Zone ID of the cluster
	ZoneId ID `json:"zoneid"`
	// the Zone name of the cluster
	ZoneName NullString `json:"zonename"`
}

type Command

type Command struct {
	Name       string
	IsAsync    bool
	IsList     bool
	ObjectType string
}

func (Command) Pointer

func (cmd Command) Pointer() interface{}

func (Command) ReflectType

func (cmd Command) ReflectType() reflect.Type

type CopyTemplateParameter

type CopyTemplateParameter struct {
	// ID of the zone the template is being copied to.
	DestZoneId ID
	// Template ID.
	Id ID
	// ID of the zone the template is currently hosted on. If not specified and
	// template is cross-zone, then we will sync this template to region wide image
	// store.
	SourceZoneId ID
}

CopyTemplate represents the paramter of CopyTemplate

func NewCopyTemplateParameter

func NewCopyTemplateParameter(destzoneid string, id string) (p *CopyTemplateParameter)

type CreateAccountParameter

type CreateAccountParameter struct {
	// Creates the user under the specified account. If no account is specified, the
	// username will be used as the account name.
	Account NullString
	// details for account used to store specific parameters
	AccountDetails map[string]string
	// Account UUID, required for adding account from external provisioning system
	AccountId ID
	// Type of the account.  Specify 0 for user, 1 for root admin, and 2 for domain
	// admin
	AccountType NullNumber
	// Creates the user under the specified domain.
	DomainId ID
	// email
	Email NullString
	// firstname
	FirstName NullString
	// lastname
	LastName NullString
	// Network domain for the account's networks
	NetworkDomain NullString
	// Clear text password (Default hashed to SHA256SALT). If you wish to use any
	// other hashing algorithm, you would need to write a custom authentication
	// adapter See Docs section.
	Password NullString
	// Specifies a timezone for this command. For more information on the timezone
	// parameter, see Time Zone Format.
	TimeZone NullString
	// User UUID, required for adding account from external provisioning system
	UserId ID
	// Unique username.
	UserName NullString
}

CreateAccount represents the paramter of CreateAccount

func NewCreateAccountParameter

func NewCreateAccountParameter(accounttype int, email string, firstname string, lastname string, password string, username string) (p *CreateAccountParameter)

type CreateAffinityGroupParameter

type CreateAffinityGroupParameter struct {
	// an account for the affinity group. Must be used with domainId.
	Account NullString
	// optional description of the affinity group
	Description NullString
	// domainId of the account owning the affinity group
	DomainId ID
	// name of the affinity group
	Name NullString
	// Type of the affinity group from the available affinity/anti-affinity group
	// types
	Type NullString
}

CreateAffinityGroup represents the paramter of CreateAffinityGroup

func NewCreateAffinityGroupParameter

func NewCreateAffinityGroupParameter(name string, typ string) (p *CreateAffinityGroupParameter)

type CreateDiskOfferingParameter

type CreateDiskOfferingParameter struct {
	// bytes read rate of the disk offering
	BytesReadRate NullNumber
	// bytes write rate of the disk offering
	BytesWriteRate NullNumber
	// whether disk offering size is custom or not
	Customized NullBool
	// whether disk offering iops is custom or not
	CustomizedIops NullBool
	// size of the disk offering in GB
	DiskSize NullNumber
	// an optional field, whether to display the offering to the end user or not.
	DisplayOffering NullBool
	// alternate display text of the disk offering
	DisplayText NullString
	// the ID of the containing domain, null for public offerings
	DomainId ID
	// Hypervisor snapshot reserve space as a percent of a volume (for managed
	// storage using Xen or VMware)
	HypervisorSnapshotReserve NullNumber
	// io requests read rate of the disk offering
	IopsReadRate NullNumber
	// io requests write rate of the disk offering
	IopsWriteRate NullNumber
	// max iops of the disk offering
	MaxIops NullNumber
	// min iops of the disk offering
	MinIops NullNumber
	// name of the disk offering
	Name NullString
	// provisioning type used to create volumes. Valid values are thin, sparse, fat.
	ProvisioningType NullString
	// the storage type of the disk offering. Values are local and shared.
	StorageType NullString
	// tags for the disk offering
	Tags NullString
}

CreateDiskOffering represents the paramter of CreateDiskOffering

func NewCreateDiskOfferingParameter

func NewCreateDiskOfferingParameter(displaytext string, name string) (p *CreateDiskOfferingParameter)

type CreateDomainParameter

type CreateDomainParameter struct {
	// Domain UUID, required for adding domain from another Region
	DomainId ID
	// creates domain with this name
	Name NullString
	// Network domain for networks in the domain
	NetworkDomain NullString
	// assigns new domain a parent domain by domain ID of the parent.  If no parent
	// domain is specied, the ROOT domain is assumed.
	ParentDomainId ID
}

CreateDomain represents the paramter of CreateDomain

func NewCreateDomainParameter

func NewCreateDomainParameter(name string) (p *CreateDomainParameter)

type CreateEgressFirewallRuleParameter

type CreateEgressFirewallRuleParameter struct {
	// the cidr list to forward traffic from
	CidrList []string
	// the ending port of firewall rule
	EndPort NullNumber
	// an optional field, whether to the display the rule to the end user or not
	ForDisplay NullBool
	// error code for this icmp message
	IcmpCode NullNumber
	// type of the icmp message being sent
	IcmpType NullNumber
	// the network id of the port forwarding rule
	NetworkId ID
	// the protocol for the firewall rule. Valid values are TCP/UDP/ICMP.
	Protocol NullString
	// the starting port of firewall rule
	StartPort NullNumber
	// type of firewallrule: system/user
	Type NullString
}

CreateEgressFirewallRule represents the paramter of CreateEgressFirewallRule

func NewCreateEgressFirewallRuleParameter

func NewCreateEgressFirewallRuleParameter(networkid string, protocol string) (p *CreateEgressFirewallRuleParameter)

type CreateFirewallRuleParameter

type CreateFirewallRuleParameter struct {
	// the cidr list to forward traffic from
	CidrList []string
	// the ending port of firewall rule
	EndPort NullNumber
	// an optional field, whether to the display the rule to the end user or not
	ForDisplay NullBool
	// error code for this icmp message
	IcmpCode NullNumber
	// type of the icmp message being sent
	IcmpType NullNumber
	// the IP address id of the port forwarding rule
	IpAddressId ID
	// the protocol for the firewall rule. Valid values are TCP/UDP/ICMP.
	Protocol NullString
	// the starting port of firewall rule
	StartPort NullNumber
	// type of firewallrule: system/user
	Type NullString
}

CreateFirewallRule represents the paramter of CreateFirewallRule

func NewCreateFirewallRuleParameter

func NewCreateFirewallRuleParameter(ipaddressid string, protocol string) (p *CreateFirewallRuleParameter)

type CreateIpForwardingRuleParameter

type CreateIpForwardingRuleParameter struct {
	// the cidr list to forward traffic from
	CidrList []string
	// the end port for the rule
	EndPort NullNumber
	// the public IP address id of the forwarding rule, already associated via
	// associateIp
	IpAddressId ID
	// if true, firewall rule for source/end pubic port is automatically created; if
	// false - firewall rule has to be created explicitely. Has value true by
	// default
	OpenFirewall NullBool
	// the protocol for the rule. Valid values are TCP or UDP.
	Protocol NullString
	// the start port for the rule
	StartPort NullNumber
}

CreateIpForwardingRule represents the paramter of CreateIpForwardingRule

func NewCreateIpForwardingRuleParameter

func NewCreateIpForwardingRuleParameter(ipaddressid string, protocol string, startport int) (p *CreateIpForwardingRuleParameter)

type CreateLoadBalancerRuleParameter

type CreateLoadBalancerRuleParameter struct {
	// the account associated with the load balancer. Must be used with the domainId
	// parameter.
	Account NullString
	// load balancer algorithm (source, roundrobin, leastconn)
	Algorithm NullString
	// the cidr list to forward traffic from
	CidrList []string
	// the description of the load balancer rule
	Description NullString
	// the domain ID associated with the load balancer
	DomainId ID
	// an optional field, whether to the display the rule to the end user or not
	ForDisplay NullBool
	// name of the load balancer rule
	Name NullString
	// The guest network this rule will be created for. Required when public Ip
	// address is not associated with any Guest network yet (VPC case)
	NetworkId ID
	// if true, firewall rule for source/end pubic port is automatically created; if
	// false - firewall rule has to be created explicitely. If not specified 1)
	// defaulted to false when LB rule is being created for VPC guest network 2) in
	// all other cases defaulted to true
	OpenFirewall NullBool
	// the private port of the private ip address/virtual machine where the network
	// traffic will be load balanced to
	PrivatePort NullNumber
	// The protocol for the LB
	Protocol NullString
	// public ip address id from where the network traffic will be load balanced
	// from
	PublicIpId ID
	// the public port from where the network traffic will be load balanced from
	PublicPort NullNumber
	// zone where the load balancer is going to be created. This parameter is
	// required when LB service provider is ElasticLoadBalancerVm
	ZoneId ID
}

CreateLoadBalancerRule represents the paramter of CreateLoadBalancerRule

func NewCreateLoadBalancerRuleParameter

func NewCreateLoadBalancerRuleParameter(algorithm string, name string, privateport int, publicport int) (p *CreateLoadBalancerRuleParameter)

type CreateNetworkOfferingParameter

type CreateNetworkOfferingParameter struct {
	// the availability of network offering. Default value is Optional
	Availability NullString
	// true if the network offering is IP conserve mode enabled
	ConserveMode NullBool
	// Network offering details in key/value pairs. Supported keys are
	// internallbprovider/publiclbprovider with service provider as a value
	Details map[string]string
	// the display text of the network offering
	DisplayText NullString
	// true if guest network default egress policy is allow; false if default egress
	// policy is deny
	EgressDefaultPolicy NullBool
	// guest type of the network offering: Shared or Isolated
	GuestIpType NullString
	// true if network offering supports persistent networks; defaulted to false if
	// not specified
	IsPersistent NullBool
	// if true keepalive will be turned on in the loadbalancer. At the time of
	// writing this has only an effect on haproxy; the mode http and httpclose
	// options are unset in the haproxy conf file.
	KeepaliveEnabled NullBool
	// maximum number of concurrent connections supported by the network offering
	MaxConnections NullNumber
	// the name of the network offering
	Name NullString
	// data transfer rate in megabits per second allowed
	NetworkRate NullNumber
	// desired service capabilities as part of network offering
	ServiceCapabilityList map[string]string
	// the service offering ID used by virtual router provider
	ServiceOfferingId ID
	// provider to service mapping. If not specified, the provider for the service
	// will be mapped to the default provider on the physical network
	ServiceProviderList map[string]string
	// true if network offering supports specifying ip ranges; defaulted to false if
	// not specified
	SpecifyIpRanges NullBool
	// true if network offering supports vlans
	SpecifyVlan NullBool
	// services supported by the network offering
	SupportedServices []string
	// the tags for the network offering.
	Tags NullString
	// the traffic type for the network offering. Supported type in current release
	// is GUEST only
	TrafficType NullString
}

CreateNetworkOffering represents the paramter of CreateNetworkOffering

func NewCreateNetworkOfferingParameter

func NewCreateNetworkOfferingParameter(displaytext string, guestiptype string, name string, supportedservices []string, traffictype string) (p *CreateNetworkOfferingParameter)

type CreateNetworkParameter

type CreateNetworkParameter struct {
	// account who will own the network
	Account NullString
	// Network ACL Id associated for the network
	AclId ID
	// Access control type; supported values are account and domain. In 3.0 all
	// shared networks should have aclType=Domain, and all Isolated networks -
	// Account. Account means that only the account owner can use the network,
	// domain - all accouns in the domain can use the network
	AclType NullString
	// an optional field, whether to the display the network to the end user or not.
	DisplayNetwork NullBool
	// the display text of the network
	DisplayText NullString
	// domain ID of the account owning a network
	DomainId ID
	// the ending IP address in the network IP range. If not specified, will be
	// defaulted to startIP
	EndIp NullString
	// the ending IPv6 address in the IPv6 network range
	EndIpv6 NullString
	// the gateway of the network. Required for Shared networks and Isolated
	// networks when it belongs to VPC
	Gateway NullString
	// the CIDR of IPv6 network, must be at least /64
	Ip6Cidr NullString
	// the gateway of the IPv6 network. Required for Shared networks
	Ip6Gateway NullString
	// the isolated private vlan for this network
	IsolatedPvlan NullString
	// the name of the network
	Name NullString
	// the netmask of the network. Required for Shared networks and Isolated
	// networks when it belongs to VPC
	Netmask NullString
	// network domain
	NetworkDomain NullString
	// the network offering id
	NetworkOfferingId ID
	// the Physical Network ID the network belongs to
	PhysicalNetworkId ID
	// an optional project for the ssh key
	ProjectId ID
	// the beginning IP address in the network IP range
	StartIp NullString
	// the beginning IPv6 address in the IPv6 network range
	StartIpv6 NullString
	// Defines whether to allow subdomains to use networks dedicated to their parent
	// domain(s). Should be used with aclType=Domain, defaulted to
	// allow.subdomain.network.access global config if not specified
	SubDomainAccess NullBool
	// the ID or VID of the network
	Vlan NullString
	// the VPC network belongs to
	VpcId ID
	// the Zone ID for the network
	ZoneId ID
}

CreateNetwork represents the paramter of CreateNetwork

func NewCreateNetworkParameter

func NewCreateNetworkParameter(displaytext string, name string, networkofferingid string, zoneid string) (p *CreateNetworkParameter)

type CreatePodParameter

type CreatePodParameter struct {
	// Allocation state of this Pod for allocation of new resources
	AllocationState NullString
	// the ending IP address for the Pod
	EndIp NullString
	// the gateway for the Pod
	Gateway NullString
	// the name of the Pod
	Name NullString
	// the netmask for the Pod
	Netmask NullString
	// the starting IP address for the Pod
	StartIp NullString
	// the Zone ID in which the Pod will be created
	ZoneId ID
}

CreatePod represents the paramter of CreatePod

func NewCreatePodParameter

func NewCreatePodParameter(gateway string, name string, netmask string, startip string, zoneid string) (p *CreatePodParameter)

type CreatePortForwardingRuleParameter

type CreatePortForwardingRuleParameter struct {
	// the cidr list to forward traffic from
	CidrList []string
	// an optional field, whether to the display the rule to the end user or not
	ForDisplay NullBool
	// the IP address id of the port forwarding rule
	IpAddressId ID
	// the network of the virtual machine the port forwarding rule will be created
	// for. Required when public IP address is not associated with any guest network
	// yet (VPC case).
	NetworkId ID
	// if true, firewall rule for source/end public port is automatically created;
	// if false - firewall rule has to be created explicitly. If not specified 1)
	// defaulted to false when PF rule is being created for VPC guest network 2) in
	// all other cases defaulted to true
	OpenFirewall NullBool
	// the ending port of port forwarding rule's private port range
	PrivateEndPort NullNumber
	// the starting port of port forwarding rule's private port range
	PrivatePort NullNumber
	// the protocol for the port fowarding rule. Valid values are TCP or UDP.
	Protocol NullString
	// the ending port of port forwarding rule's private port range
	PublicEndPort NullNumber
	// the starting port of port forwarding rule's public port range
	PublicPort NullNumber
	// the ID of the virtual machine for the port forwarding rule
	VirtualMachineId ID
	// VM guest nic secondary IP address for the port forwarding rule
	VmGuestIp NullString
}

CreatePortForwardingRule represents the paramter of CreatePortForwardingRule

func NewCreatePortForwardingRuleParameter

func NewCreatePortForwardingRuleParameter(ipaddressid string, privateport int, protocol string, publicport int, virtualmachineid string) (p *CreatePortForwardingRuleParameter)

type CreateProjectParameter

type CreateProjectParameter struct {
	// account who will be Admin for the project
	Account NullString
	// display text of the project
	DisplayText NullString
	// domain ID of the account owning a project
	DomainId ID
	// name of the project
	Name NullString
}

CreateProject represents the paramter of CreateProject

func NewCreateProjectParameter

func NewCreateProjectParameter(displaytext string, name string) (p *CreateProjectParameter)

type CreateSecondaryStagingStoreParameter

type CreateSecondaryStagingStoreParameter struct {
	// the details for the staging store
	Details map[string]string
	// the staging store provider name
	Provider NullString
	// the scope of the staging store: zone only for now
	Scope NullString
	// the URL for the staging store
	Url NullString
	// the Zone ID for the staging store
	ZoneId ID
}

CreateSecondaryStagingStore represents the paramter of CreateSecondaryStagingStore

func NewCreateSecondaryStagingStoreParameter

func NewCreateSecondaryStagingStoreParameter(url string) (p *CreateSecondaryStagingStoreParameter)

type CreateSecurityGroupParameter

type CreateSecurityGroupParameter struct {
	// an optional account for the security group. Must be used with domainId.
	Account NullString
	// the description of the security group
	Description NullString
	// an optional domainId for the security group. If the account parameter is
	// used, domainId must also be used.
	DomainId ID
	// name of the security group
	Name NullString
	// Create security group for project
	ProjectId ID
}

CreateSecurityGroup represents the paramter of CreateSecurityGroup

func NewCreateSecurityGroupParameter

func NewCreateSecurityGroupParameter(name string) (p *CreateSecurityGroupParameter)

type CreateServiceOfferingParameter

type CreateServiceOfferingParameter struct {
	// bytes read rate of the disk offering
	BytesReadRate NullNumber
	// bytes write rate of the disk offering
	BytesWriteRate NullNumber
	// the CPU number of the service offering
	CpuNumber NullNumber
	// the CPU speed of the service offering in MHz.
	CpuSpeed NullNumber
	// whether compute offering iops is custom or not
	CustomizedIops NullBool
	// The deployment planner heuristics used to deploy a VM of this offering. If
	// null, value of global config vm.deployment.planner is used
	DeploymentPlanner NullString
	// the display text of the service offering
	DisplayText NullString
	// the ID of the containing domain, null for public offerings
	DomainId ID
	// the host tag for this service offering.
	HostTags NullString
	// Hypervisor snapshot reserve space as a percent of a volume (for managed
	// storage using Xen or VMware)
	HypervisorSnapshotReserve NullNumber
	// io requests read rate of the disk offering
	IopsReadRate NullNumber
	// io requests write rate of the disk offering
	IopsWriteRate NullNumber
	// is this a system vm offering
	IsSystem NullBool
	// true if the virtual machine needs to be volatile so that on every reboot of
	// VM, original root disk is dettached then destroyed and a fresh root disk is
	// created and attached to VM
	IsVolatile NullBool
	// restrict the CPU usage to committed service offering
	LimitCpuUse NullBool
	// max iops of the compute offering
	MaxIops NullNumber
	// the total memory of the service offering in MB
	Memory NullNumber
	// min iops of the compute offering
	MinIops NullNumber
	// the name of the service offering
	Name NullString
	// data transfer rate in megabits per second allowed. Supported only for
	// non-System offering and system offerings having "domainrouter" systemvmtype
	NetworkRate NullNumber
	// the HA for the service offering
	OfferHa NullBool
	// details for planner, used to store specific parameters
	ServiceOfferingDetails map[string]string
	// the storage type of the service offering. Values are local and shared.
	StorageType NullString
	// the system VM type. Possible types are "domainrouter", "consoleproxy" and
	// "secondarystoragevm".
	SystemVmType NullString
	// the tags for this service offering.
	Tags NullString
}

CreateServiceOffering represents the paramter of CreateServiceOffering

func NewCreateServiceOfferingParameter

func NewCreateServiceOfferingParameter(displaytext string, name string) (p *CreateServiceOfferingParameter)

type CreateStoragePoolParameter

type CreateStoragePoolParameter struct {
	// bytes CloudStack can provision from this storage pool
	CapacityBytes NullNumber
	// IOPS CloudStack can provision from this storage pool
	CapacityIops NullNumber
	// the cluster ID for the storage pool
	ClusterId ID
	// the details for the storage pool
	Details map[string]string
	// hypervisor type of the hosts in zone that will be attached to this storage
	// pool. KVM, VMware supported as of now.
	Hypervisor NullString
	// whether the storage should be managed by CloudStack
	Managed NullBool
	// the name for the storage pool
	Name NullString
	// the Pod ID for the storage pool
	PodId ID
	// the storage provider name
	Provider NullString
	// the scope of the storage: cluster or zone
	Scope NullString
	// the tags for the storage pool
	Tags NullString
	// the URL of the storage pool
	Url NullString
	// the Zone ID for the storage pool
	ZoneId ID
}

CreateStoragePool represents the paramter of CreateStoragePool

func NewCreateStoragePoolParameter

func NewCreateStoragePoolParameter(name string, url string, zoneid string) (p *CreateStoragePoolParameter)

type CreateTagsParameter

type CreateTagsParameter struct {
	// identifies client specific tag. When the value is not null, the tag can't be
	// used by cloudStack code internally
	Customer NullString
	// list of resources to create the tags for
	ResourceIds []string
	// type of the resource
	ResourceType NullString
	// Map of tags (key/value pairs)
	Tags map[string]string
}

CreateTags represents the paramter of CreateTags

func NewCreateTagsParameter

func NewCreateTagsParameter(resourceids []string, resourcetype string, tags map[string]string) (p *CreateTagsParameter)

type CreateTemplateParameter

type CreateTemplateParameter struct {
	// 32 or 64 bit
	Bits NullNumber
	// Template details in key/value pairs.
	Details map[string]string
	// the display text of the template. This is usually used for display purposes.
	DisplayText NullString
	// true if template contains XS/VMWare tools inorder to support dynamic scaling
	// of VM cpu/memory
	IsDynamicallyScalable NullBool
	// true if this template is a featured template, false otherwise
	IsFeatured NullBool
	// true if this template is a public template, false otherwise
	IsPublic NullBool
	// the name of the template
	Name NullString
	// the ID of the OS Type that best represents the OS of this template.
	OsTypeId ID
	// true if the template supports the password reset feature; default is false
	PasswordEnabled NullBool
	// true if the template requres HVM, false otherwise
	RequiresHvm NullBool
	// the ID of the snapshot the template is being created from. Either this
	// parameter, or volumeId has to be passed in
	SnapshotId ID
	// the tag for this template.
	Templatetag NullString
	// Optional, only for baremetal hypervisor. The directory name where template
	// stored on CIFS server
	Url NullString
	// Optional, VM ID. If this presents, it is going to create a baremetal template
	// for VM this ID refers to. This is only for VM whose hypervisor type is
	// BareMetal
	VirtualMachineId ID
	// the ID of the disk volume the template is being created from. Either this
	// parameter, or snapshotId has to be passed in
	VolumeId ID
}

CreateTemplate represents the paramter of CreateTemplate

func NewCreateTemplateParameter

func NewCreateTemplateParameter(displaytext string, name string, ostypeid string) (p *CreateTemplateParameter)

type CreateUserParameter

type CreateUserParameter struct {
	// Creates the user under the specified account. If no account is specified, the
	// username will be used as the account name.
	Account NullString
	// Creates the user under the specified domain. Has to be accompanied with the
	// account parameter
	DomainId ID
	// email
	Email NullString
	// firstname
	FirstName NullString
	// lastname
	LastName NullString
	// Clear text password (Default hashed to SHA256SALT). If you wish to use any
	// other hashing algorithm, you would need to write a custom authentication
	// adapter See Docs section.
	Password NullString
	// Specifies a timezone for this command. For more information on the timezone
	// parameter, see Time Zone Format.
	TimeZone NullString
	// User UUID, required for adding account from external provisioning system
	UserId ID
	// Unique username.
	UserName NullString
}

CreateUser represents the paramter of CreateUser

func NewCreateUserParameter

func NewCreateUserParameter(account string, email string, firstname string, lastname string, password string, username string) (p *CreateUserParameter)

type CreateVolumeParameter

type CreateVolumeParameter struct {
	// the account associated with the disk volume. Must be used with the domainId
	// parameter.
	Account NullString
	// an optional field, in case you want to set a custom id to the resource.
	// Allowed to Root Admins only
	CustomId ID
	// the ID of the disk offering. Either diskOfferingId or snapshotId must be
	// passed in.
	DiskOfferingId ID
	// an optional field, whether to display the volume to the end user or not.
	DisplayVolume NullBool
	// the domain ID associated with the disk offering. If used with the account
	// parameter returns the disk volume associated with the account for the
	// specified domain.
	DomainId ID
	// max iops
	MaxIops NullNumber
	// min iops
	MinIops NullNumber
	// the name of the disk volume
	Name NullString
	// the project associated with the volume. Mutually exclusive with account
	// parameter
	ProjectId ID
	// Arbitrary volume size
	Size NullNumber
	// the snapshot ID for the disk volume. Either diskOfferingId or snapshotId must
	// be passed in.
	SnapshotId ID
	// the ID of the virtual machine; to be used with snapshot Id, VM to which the
	// volume gets attached after creation
	VirtualMachineId ID
	// the ID of the availability zone
	ZoneId ID
}

CreateVolume represents the paramter of CreateVolume

func NewCreateVolumeParameter

func NewCreateVolumeParameter(name string) (p *CreateVolumeParameter)

type CreateZoneParameter

type CreateZoneParameter struct {
	// Allocation state of this Zone for allocation of new resources
	AllocationState NullString
	// the first DNS for the Zone
	Dns1 NullString
	// the second DNS for the Zone
	Dns2 NullString
	// Network domain name for the networks in the zone
	Domain NullString
	// the ID of the containing domain, null for public zones
	DomainId ID
	// the guest CIDR address for the Zone
	GuestCidrAddress NullString
	// the first internal DNS for the Zone
	InternalDns1 NullString
	// the second internal DNS for the Zone
	InternalDns2 NullString
	// the first DNS for IPv6 network in the Zone
	Ip6Dns1 NullString
	// the second DNS for IPv6 network in the Zone
	Ip6Dns2 NullString
	// true if local storage offering enabled, false otherwise
	LocalStorageEnabled NullBool
	// the name of the Zone
	Name NullString
	// network type of the zone, can be Basic or Advanced
	NetworkType NullString
	// true if network is security group enabled, false otherwise
	SecurityGroupEnabled NullBool
}

CreateZone represents the paramter of CreateZone

func NewCreateZoneParameter

func NewCreateZoneParameter(dns1 string, internaldns1 string, name string, networktype string) (p *CreateZoneParameter)

type DedicateClusterParameter

type DedicateClusterParameter struct {
	// the name of the account which needs dedication. Must be used with domainId.
	Account NullString
	// the ID of the Cluster
	ClusterId ID
	// the ID of the containing domain
	DomainId ID
}

DedicateCluster represents the paramter of DedicateCluster

func NewDedicateClusterParameter

func NewDedicateClusterParameter(clusterid string, domainid string) (p *DedicateClusterParameter)

type DedicateHostParameter

type DedicateHostParameter struct {
	// the name of the account which needs dedication. Must be used with domainId.
	Account NullString
	// the ID of the containing domain
	DomainId ID
	// the ID of the host to update
	HostId ID
}

DedicateHost represents the paramter of DedicateHost

func NewDedicateHostParameter

func NewDedicateHostParameter(domainid string, hostid string) (p *DedicateHostParameter)

type DedicatePodParameter

type DedicatePodParameter struct {
	// the name of the account which needs dedication. Must be used with domainId.
	Account NullString
	// the ID of the containing domain
	DomainId ID
	// the ID of the Pod
	PodId ID
}

DedicatePod represents the paramter of DedicatePod

func NewDedicatePodParameter

func NewDedicatePodParameter(domainid string, podid string) (p *DedicatePodParameter)

type DedicatedCluster

type DedicatedCluster struct {
	ResourceBase
	// the Account ID of the cluster
	AccountId ID `json:"accountid"`
	// the Dedication Affinity Group ID of the cluster
	AffinityGroupId ID `json:"affinitygroupid"`
	// the ID of the cluster
	ClusterId ID `json:"clusterid"`
	// the name of the cluster
	ClusterName NullString `json:"clustername"`
	// the domain ID of the cluster
	DomainId ID `json:"domainid"`
	// the ID of the dedicated resource
	Id ID `json:"id"`
}

type DedicatedHost

type DedicatedHost struct {
	ResourceBase
	// the Account ID of the host
	AccountId ID `json:"accountid"`
	// the Dedication Affinity Group ID of the host
	AffinityGroupId ID `json:"affinitygroupid"`
	// the domain ID of the host
	DomainId ID `json:"domainid"`
	// the ID of the host
	HostId ID `json:"hostid"`
	// the name of the host
	HostName NullString `json:"hostname"`
	// the ID of the dedicated resource
	Id ID `json:"id"`
}

type DedicatedPod

type DedicatedPod struct {
	ResourceBase
	// the Account Id to which the Pod is dedicated
	AccountId ID `json:"accountid"`
	// the Dedication Affinity Group ID of the pod
	AffinityGroupId ID `json:"affinitygroupid"`
	// the domain ID to which the Pod is dedicated
	DomainId ID `json:"domainid"`
	// the ID of the dedicated resource
	Id ID `json:"id"`
	// the ID of the Pod
	PodId ID `json:"podid"`
	// the Name of the Pod
	PodName NullString `json:"podname"`
}

type DeleteAccountFromProjectParameter

type DeleteAccountFromProjectParameter struct {
	// name of the account to be removed from the project
	Account NullString
	// id of the project to remove the account from
	ProjectId ID
}

DeleteAccountFromProject represents the paramter of DeleteAccountFromProject

func NewDeleteAccountFromProjectParameter

func NewDeleteAccountFromProjectParameter(account string, projectid string) (p *DeleteAccountFromProjectParameter)

type DeleteAccountParameter

type DeleteAccountParameter struct {
	// Account id
	Id ID
}

DeleteAccount represents the paramter of DeleteAccount

func NewDeleteAccountParameter

func NewDeleteAccountParameter(id string) (p *DeleteAccountParameter)

type DeleteAffinityGroupParameter

type DeleteAffinityGroupParameter struct {
	// the account of the affinity group. Must be specified with domain ID
	Account NullString
	// the domain ID of account owning the affinity group
	DomainId ID
	// The ID of the affinity group. Mutually exclusive with name parameter
	Id ID
	// The name of the affinity group. Mutually exclusive with id parameter
	Name NullString
}

DeleteAffinityGroup represents the paramter of DeleteAffinityGroup

func NewDeleteAffinityGroupParameter

func NewDeleteAffinityGroupParameter() (p *DeleteAffinityGroupParameter)

type DeleteClusterParameter

type DeleteClusterParameter struct {
	// the cluster ID
	Id ID
}

DeleteCluster represents the paramter of DeleteCluster

func NewDeleteClusterParameter

func NewDeleteClusterParameter(id string) (p *DeleteClusterParameter)

type DeleteDiskOfferingParameter

type DeleteDiskOfferingParameter struct {
	// ID of the disk offering
	Id ID
}

DeleteDiskOffering represents the paramter of DeleteDiskOffering

func NewDeleteDiskOfferingParameter

func NewDeleteDiskOfferingParameter(id string) (p *DeleteDiskOfferingParameter)

type DeleteDomainParameter

type DeleteDomainParameter struct {
	// true if all domain resources (child domains, accounts) have to be cleaned up,
	// false otherwise
	Cleanup NullBool
	// ID of domain to delete
	Id ID
}

DeleteDomain represents the paramter of DeleteDomain

func NewDeleteDomainParameter

func NewDeleteDomainParameter(id string) (p *DeleteDomainParameter)

type DeleteEgressFirewallRuleParameter

type DeleteEgressFirewallRuleParameter struct {
	// the ID of the firewall rule
	Id ID
}

DeleteEgressFirewallRule represents the paramter of DeleteEgressFirewallRule

func NewDeleteEgressFirewallRuleParameter

func NewDeleteEgressFirewallRuleParameter(id string) (p *DeleteEgressFirewallRuleParameter)

type DeleteFirewallRuleParameter

type DeleteFirewallRuleParameter struct {
	// the ID of the firewall rule
	Id ID
}

DeleteFirewallRule represents the paramter of DeleteFirewallRule

func NewDeleteFirewallRuleParameter

func NewDeleteFirewallRuleParameter(id string) (p *DeleteFirewallRuleParameter)

type DeleteHostParameter

type DeleteHostParameter struct {
	// Force delete the host. All HA enabled vms running on the host will be put to
	// HA; HA disabled ones will be stopped
	Forced NullBool
	// Force destroy local storage on this host. All VMs created on this local
	// storage will be destroyed
	ForceDestroyLocalStorage NullBool
	// the host ID
	Id ID
}

DeleteHost represents the paramter of DeleteHost

func NewDeleteHostParameter

func NewDeleteHostParameter(id string) (p *DeleteHostParameter)

type DeleteImageStoreParameter

type DeleteImageStoreParameter struct {
	// the image store ID
	Id ID
}

DeleteImageStore represents the paramter of DeleteImageStore

func NewDeleteImageStoreParameter

func NewDeleteImageStoreParameter(id string) (p *DeleteImageStoreParameter)

type DeleteIpForwardingRuleParameter

type DeleteIpForwardingRuleParameter struct {
	// the id of the forwarding rule
	Id ID
}

DeleteIpForwardingRule represents the paramter of DeleteIpForwardingRule

func NewDeleteIpForwardingRuleParameter

func NewDeleteIpForwardingRuleParameter(id string) (p *DeleteIpForwardingRuleParameter)

type DeleteLoadBalancerRuleParameter

type DeleteLoadBalancerRuleParameter struct {
	// the ID of the load balancer rule
	Id ID
}

DeleteLoadBalancerRule represents the paramter of DeleteLoadBalancerRule

func NewDeleteLoadBalancerRuleParameter

func NewDeleteLoadBalancerRuleParameter(id string) (p *DeleteLoadBalancerRuleParameter)

type DeleteNetworkOfferingParameter

type DeleteNetworkOfferingParameter struct {
	// the ID of the network offering
	Id ID
}

DeleteNetworkOffering represents the paramter of DeleteNetworkOffering

func NewDeleteNetworkOfferingParameter

func NewDeleteNetworkOfferingParameter(id string) (p *DeleteNetworkOfferingParameter)

type DeleteNetworkParameter

type DeleteNetworkParameter struct {
	// Force delete a network. Network will be marked as 'Destroy' even when
	// commands to shutdown and cleanup to the backend fails.
	Forced NullBool
	// the ID of the network
	Id ID
}

DeleteNetwork represents the paramter of DeleteNetwork

func NewDeleteNetworkParameter

func NewDeleteNetworkParameter(id string) (p *DeleteNetworkParameter)

type DeletePodParameter

type DeletePodParameter struct {
	// the ID of the Pod
	Id ID
}

DeletePod represents the paramter of DeletePod

func NewDeletePodParameter

func NewDeletePodParameter(id string) (p *DeletePodParameter)

type DeletePortForwardingRuleParameter

type DeletePortForwardingRuleParameter struct {
	// the ID of the port forwarding rule
	Id ID
}

DeletePortForwardingRule represents the paramter of DeletePortForwardingRule

func NewDeletePortForwardingRuleParameter

func NewDeletePortForwardingRuleParameter(id string) (p *DeletePortForwardingRuleParameter)

type DeleteProjectInvitationParameter

type DeleteProjectInvitationParameter struct {
	// id of the invitation
	Id ID
}

DeleteProjectInvitation represents the paramter of DeleteProjectInvitation

func NewDeleteProjectInvitationParameter

func NewDeleteProjectInvitationParameter(id string) (p *DeleteProjectInvitationParameter)

type DeleteProjectParameter

type DeleteProjectParameter struct {
	// id of the project to be deleted
	Id ID
}

DeleteProject represents the paramter of DeleteProject

func NewDeleteProjectParameter

func NewDeleteProjectParameter(id string) (p *DeleteProjectParameter)

type DeleteSecondaryStagingStoreParameter

type DeleteSecondaryStagingStoreParameter struct {
	// the staging store ID
	Id ID
}

DeleteSecondaryStagingStore represents the paramter of DeleteSecondaryStagingStore

func NewDeleteSecondaryStagingStoreParameter

func NewDeleteSecondaryStagingStoreParameter(id string) (p *DeleteSecondaryStagingStoreParameter)

type DeleteSecurityGroupParameter

type DeleteSecurityGroupParameter struct {
	// the account of the security group. Must be specified with domain ID
	Account NullString
	// the domain ID of account owning the security group
	DomainId ID
	// The ID of the security group. Mutually exclusive with name parameter
	Id ID
	// The ID of the security group. Mutually exclusive with id parameter
	Name NullString
	// the project of the security group
	ProjectId ID
}

DeleteSecurityGroup represents the paramter of DeleteSecurityGroup

func NewDeleteSecurityGroupParameter

func NewDeleteSecurityGroupParameter() (p *DeleteSecurityGroupParameter)

type DeleteServiceOfferingParameter

type DeleteServiceOfferingParameter struct {
	// the ID of the service offering
	Id ID
}

DeleteServiceOffering represents the paramter of DeleteServiceOffering

func NewDeleteServiceOfferingParameter

func NewDeleteServiceOfferingParameter(id string) (p *DeleteServiceOfferingParameter)

type DeleteStoragePoolParameter

type DeleteStoragePoolParameter struct {
	// Force destroy storage pool (force expunge volumes in Destroyed state as a
	// part of pool removal)
	Forced NullBool
	// Storage pool id
	Id ID
}

DeleteStoragePool represents the paramter of DeleteStoragePool

func NewDeleteStoragePoolParameter

func NewDeleteStoragePoolParameter(id string) (p *DeleteStoragePoolParameter)

type DeleteTagsParameter

type DeleteTagsParameter struct {
	// Delete tags for resource id(s)
	ResourceIds []string
	// Delete tag by resource type
	ResourceType NullString
	// Delete tags matching key/value pairs
	Tags map[string]string
}

DeleteTags represents the paramter of DeleteTags

func NewDeleteTagsParameter

func NewDeleteTagsParameter(resourceids []string, resourcetype string) (p *DeleteTagsParameter)

type DeleteTemplateParameter

type DeleteTemplateParameter struct {
	// the ID of the template
	Id ID
	// the ID of zone of the template
	ZoneId ID
}

DeleteTemplate represents the paramter of DeleteTemplate

func NewDeleteTemplateParameter

func NewDeleteTemplateParameter(id string) (p *DeleteTemplateParameter)

type DeleteUserParameter

type DeleteUserParameter struct {
	// id of the user to be deleted
	Id ID
}

DeleteUser represents the paramter of DeleteUser

func NewDeleteUserParameter

func NewDeleteUserParameter(id string) (p *DeleteUserParameter)

type DeleteVolumeParameter

type DeleteVolumeParameter struct {
	// The ID of the disk volume
	Id ID
}

DeleteVolume represents the paramter of DeleteVolume

func NewDeleteVolumeParameter

func NewDeleteVolumeParameter(id string) (p *DeleteVolumeParameter)

type DeleteZoneParameter

type DeleteZoneParameter struct {
	// the ID of the Zone
	Id ID
}

DeleteZone represents the paramter of DeleteZone

func NewDeleteZoneParameter

func NewDeleteZoneParameter(id string) (p *DeleteZoneParameter)

type DeployVirtualMachineParameter

type DeployVirtualMachineParameter struct {
	// an optional account for the virtual machine. Must be used with domainId.
	Account NullString
	// comma separated list of affinity groups id that are going to be applied to
	// the virtual machine. Mutually exclusive with affinitygroupnames parameter
	AffinityGroupIds []string
	// comma separated list of affinity groups names that are going to be applied to
	// the virtual machine.Mutually exclusive with affinitygroupids parameter
	AffinityGroupNames []string
	// an optional field, in case you want to set a custom id to the resource.
	// Allowed to Root Admins only
	CustomId ID
	// Deployment planner to use for vm allocation. Available to ROOT admin only
	DeploymentPlanner NullString
	// used to specify the custom parameters.
	Details map[string]string
	// 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.
	DiskOfferingId ID
	// an optional user generated name for the virtual machine
	DisplayName NullString
	// an optional field, whether to the display the vm to the end user or not.
	DisplayVm NullBool
	// an optional domainId for the virtual machine. If the account parameter is
	// used, domainId must also be used.
	DomainId ID
	// an optional group for the virtual machine
	Group NullString
	// destination Host ID to deploy the VM to - parameter available for root admin
	// only
	HostId ID
	// the hypervisor on which to deploy the virtual machine
	Hypervisor NullString
	// the ipv6 address for default vm's network
	Ip6Address NullString
	// the ip address for default vm's network
	IpAddress NullString
	// ip to network mapping. Can't be specified with networkIds parameter. Example:
	// iptonetworklist[0].ip=10.10.10.11&iptonetworklist[0].ipv6=fc00:1234:5678::abcd&iptonetworklist[0].networkid=uuid
	// - requests to use ip 10.10.10.11 in network id=uuid
	IpToNetworkList map[string]string
	// 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
	Keyboard NullString
	// name of the ssh key pair used to login to the virtual machine
	KeyPair NullString
	// host name for the virtual machine
	Name NullString
	// list of network ids used by virtual machine. Can't be specified with
	// ipToNetworkList parameter
	NetworkIds []string
	// Deploy vm for the project
	ProjectId ID
	// Optional field to resize root disk on deploy. Only applies to template-based
	// deployments. Analogous to details[0].rootdisksize, which takes precedence
	// over this parameter if both are provided
	RootDiskSize NullNumber
	// 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
	SecurityGroupIds []string
	// 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
	SecurityGroupNames []string
	// the ID of the service offering for the virtual machine
	ServiceOfferingId ID
	// the arbitrary size for the DATADISK volume. Mutually exclusive with
	// diskOfferingId
	Size NullNumber
	// true if network offering supports specifying ip ranges; defaulted to true if
	// not specified
	StartVm NullBool
	// the ID of the template for the virtual machine
	TemplateId ID
	// 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.
	UserData NullString
	// availability zone for the virtual machine
	ZoneId ID
}

DeployVirtualMachine represents the paramter of DeployVirtualMachine

func NewDeployVirtualMachineParameter

func NewDeployVirtualMachineParameter(serviceofferingid string, templateid string, zoneid string) (p *DeployVirtualMachineParameter)

type DestroyVirtualMachineParameter

type DestroyVirtualMachineParameter struct {
	// If true is passed, the vm is expunged immediately. False by default.
	// Parameter can be passed to the call by ROOT/Domain admin only
	Expunge NullBool
	// The ID of the virtual machine
	Id ID
}

DestroyVirtualMachine represents the paramter of DestroyVirtualMachine

func NewDestroyVirtualMachineParameter

func NewDestroyVirtualMachineParameter(id string) (p *DestroyVirtualMachineParameter)

type DetachVolumeParameter

type DetachVolumeParameter struct {
	// the device ID on the virtual machine where volume is detached from
	DeviceId ID
	// the ID of the disk volume
	Id ID
	// the ID of the virtual machine where the volume is detached from
	VirtualMachineId ID
}

DetachVolume represents the paramter of DetachVolume

func NewDetachVolumeParameter

func NewDetachVolumeParameter() (p *DetachVolumeParameter)

type DisableAccountParameter

type DisableAccountParameter struct {
	// Disables specified account.
	Account NullString
	// Disables specified account in this domain.
	DomainId ID
	// Account id
	Id ID
	// If true, only lock the account; else disable the account
	Lock NullBool
}

DisableAccount represents the paramter of DisableAccount

func NewDisableAccountParameter

func NewDisableAccountParameter(lock bool) (p *DisableAccountParameter)

type DisableStaticNatParameter

type DisableStaticNatParameter struct {
	// the public IP address id for which static nat feature is being disableed
	IpAddressId ID
}

DisableStaticNat represents the paramter of DisableStaticNat

func NewDisableStaticNatParameter

func NewDisableStaticNatParameter(ipaddressid string) (p *DisableStaticNatParameter)

type DisableUserParameter

type DisableUserParameter struct {
	// Disables user by user ID.
	Id ID
}

DisableUser represents the paramter of DisableUser

func NewDisableUserParameter

func NewDisableUserParameter(id string) (p *DisableUserParameter)

type DisassociateIpAddressParameter

type DisassociateIpAddressParameter struct {
	// the id of the public ip address to disassociate
	Id ID
}

DisassociateIpAddress represents the paramter of DisassociateIpAddress

func NewDisassociateIpAddressParameter

func NewDisassociateIpAddressParameter(id string) (p *DisassociateIpAddressParameter)

type DiskOffering

type DiskOffering struct {
	ResourceBase
	// the cache mode to use for this disk offering. none, writeback or writethrough
	CacheMode NullString `json:"cachemode"`
	// the date this disk offering was created
	Created NullString `json:"created"`
	// bytes read rate of the disk offering
	DiskBytesReadRate NullNumber `json:"diskbytesreadrate"`
	// bytes write rate of the disk offering
	DiskBytesWriteRate NullNumber `json:"diskbyteswriterate"`
	// io requests read rate of the disk offering
	DiskIopsReadRate NullNumber `json:"diskiopsreadrate"`
	// io requests write rate of the disk offering
	DiskIopsWriteRate NullNumber `json:"diskiopswriterate"`
	// the size of the disk offering in GB
	DiskSize NullNumber `json:"disksize"`
	// whether to display the offering to the end user or not.
	DisplayOffering NullBool `json:"displayoffering"`
	// an alternate display text of the disk offering.
	DisplayText NullString `json:"displaytext"`
	// the domain name this disk offering belongs to. Ignore this information as it
	// is not currently applicable.
	Domain NullString `json:"domain"`
	// the domain ID this disk offering belongs to. Ignore this information as it is
	// not currently applicable.
	DomainId ID `json:"domainid"`
	// Hypervisor snapshot reserve space as a percent of a volume (for managed
	// storage using Xen or VMware)
	HypervisorSnapshotReserve NullNumber `json:"hypervisorsnapshotreserve"`
	// unique ID of the disk offering
	Id ID `json:"id"`
	// true if disk offering uses custom size, false otherwise
	IsCustomized NullBool `json:"iscustomized"`
	// true if disk offering uses custom iops, false otherwise
	IsCustomizedIops NullBool `json:"iscustomizediops"`
	// the max iops of the disk offering
	MaxIops NullNumber `json:"maxiops"`
	// the min iops of the disk offering
	MinIops NullNumber `json:"miniops"`
	// the name of the disk offering
	Name NullString `json:"name"`
	// provisioning type used to create volumes. Valid values are thin, sparse, fat.
	ProvisioningType NullString `json:"provisioningtype"`
	// the storage type for this disk offering
	StorageType NullString `json:"storagetype"`
	// the tags for the disk offering
	Tags NullString `json:"tags"`
}

type Domain

type Domain struct {
	ResourceBase
	// whether the domain has one or more sub-domains
	HasChild NullBool `json:"haschild"`
	// the ID of the domain
	Id ID `json:"id"`
	// the level of the domain
	Level NullNumber `json:"level"`
	// the name of the domain
	Name NullString `json:"name"`
	// the network domain
	NetworkDomain NullString `json:"networkdomain"`
	// the domain ID of the parent domain
	ParentDomainId ID `json:"parentdomainid"`
	// the domain name of the parent domain
	ParentDomainName NullString `json:"parentdomainname"`
	// the path of the domain
	Path NullString `json:"path"`
}

type EnableAccountParameter

type EnableAccountParameter struct {
	// Enables specified account.
	Account NullString
	// Enables specified account in this domain.
	DomainId ID
	// Account id
	Id ID
}

EnableAccount represents the paramter of EnableAccount

func NewEnableAccountParameter

func NewEnableAccountParameter() (p *EnableAccountParameter)

type EnableStaticNatParameter

type EnableStaticNatParameter struct {
	// the public IP address id for which static nat feature is being enabled
	IpAddressId ID
	// The network of the vm the static nat will be enabled for. Required when
	// public Ip address is not associated with any Guest network yet (VPC case)
	NetworkId ID
	// the ID of the virtual machine for enabling static nat feature
	VirtualMachineId ID
	// VM guest nic Secondary ip address for the port forwarding rule
	VmGuestIp NullString
}

EnableStaticNat represents the paramter of EnableStaticNat

func NewEnableStaticNatParameter

func NewEnableStaticNatParameter(ipaddressid string, virtualmachineid string) (p *EnableStaticNatParameter)

type EnableStorageMaintenanceParameter

type EnableStorageMaintenanceParameter struct {
	// Primary storage ID
	Id ID
}

EnableStorageMaintenance represents the paramter of EnableStorageMaintenance

func NewEnableStorageMaintenanceParameter

func NewEnableStorageMaintenanceParameter(id string) (p *EnableStorageMaintenanceParameter)

type EnableUserParameter

type EnableUserParameter struct {
	// Enables user by user ID.
	Id ID
}

EnableUser represents the paramter of EnableUser

func NewEnableUserParameter

func NewEnableUserParameter(id string) (p *EnableUserParameter)

type ExpungeVirtualMachineParameter

type ExpungeVirtualMachineParameter struct {
	// The ID of the virtual machine
	Id ID
}

ExpungeVirtualMachine represents the paramter of ExpungeVirtualMachine

func NewExpungeVirtualMachineParameter

func NewExpungeVirtualMachineParameter(id string) (p *ExpungeVirtualMachineParameter)

type ExtractTemplateParameter

type ExtractTemplateParameter struct {
	// the ID of the template
	Id ID
	// the mode of extraction - HTTP_DOWNLOAD or FTP_UPLOAD
	Mode NullString
	// the url to which the ISO would be extracted
	Url NullString
	// the ID of the zone where the ISO is originally located
	ZoneId ID
}

ExtractTemplate represents the paramter of ExtractTemplate

func NewExtractTemplateParameter

func NewExtractTemplateParameter(id string, mode string) (p *ExtractTemplateParameter)

type ExtractVolumeParameter

type ExtractVolumeParameter struct {
	// the ID of the volume
	Id ID
	// the mode of extraction - HTTP_DOWNLOAD or FTP_UPLOAD
	Mode NullString
	// the url to which the volume would be extracted
	Url NullString
	// the ID of the zone where the volume is located
	ZoneId ID
}

ExtractVolume represents the paramter of ExtractVolume

func NewExtractVolumeParameter

func NewExtractVolumeParameter(id string, mode string, zoneid string) (p *ExtractVolumeParameter)

type FindHostsForMigrationParameter

type FindHostsForMigrationParameter struct {
	// List by keyword
	Keyword  NullString
	Page     NullNumber
	PageSize NullNumber
	// find hosts to which this VM can be migrated and flag the hosts with enough
	// CPU/RAM to host the VM
	VirtualMachineId ID
}

FindHostsForMigration represents the paramter of FindHostsForMigration

func NewFindHostsForMigrationParameter

func NewFindHostsForMigrationParameter(virtualmachineid string) (p *FindHostsForMigrationParameter)

type FindStoragePoolsForMigrationParameter

type FindStoragePoolsForMigrationParameter struct {
	// the ID of the volume
	Id ID
	// List by keyword
	Keyword  NullString
	Page     NullNumber
	PageSize NullNumber
}

FindStoragePoolsForMigration represents the paramter of FindStoragePoolsForMigration

func NewFindStoragePoolsForMigrationParameter

func NewFindStoragePoolsForMigrationParameter(id string) (p *FindStoragePoolsForMigrationParameter)

type FirewallRule

type FirewallRule struct {
	ResourceBase
	// the cidr list to forward traffic from
	CidrList NullString `json:"cidrlist"`
	// the ending port of firewall rule's port range
	EndPort NullString `json:"endport"`
	// is rule for display to the regular user
	ForDisplay NullBool `json:"fordisplay"`
	// error code for this icmp message
	IcmpCode NullNumber `json:"icmpcode"`
	// type of the icmp message being sent
	IcmpType NullNumber `json:"icmptype"`
	// the ID of the firewall rule
	Id ID `json:"id"`
	// the public ip address for the firewall rule
	IpAddress NullString `json:"ipaddress"`
	// the public ip address id for the firewall rule
	IpAddressId ID `json:"ipaddressid"`
	// the network id of the firewall rule
	NetworkId ID `json:"networkid"`
	// the protocol of the firewall rule
	Protocol NullString `json:"protocol"`
	// the starting port of firewall rule's port range
	StartPort NullString `json:"startport"`
	// the state of the rule
	State NullString `json:"state"`
	// the list of resource tags associated with the rule
	Tags []Tag `json:"tags"`
}

type GetUserParameter

type GetUserParameter struct {
	// API key of the user
	UserApiKey NullString
}

GetUser represents the paramter of GetUser

func NewGetUserParameter

func NewGetUserParameter(userapikey string) (p *GetUserParameter)

type GetVMPasswordParameter

type GetVMPasswordParameter struct {
	// The ID of the virtual machine
	Id ID
}

GetVMPassword represents the paramter of GetVMPassword

func NewGetVMPasswordParameter

func NewGetVMPasswordParameter(id string) (p *GetVMPasswordParameter)

type GetVirtualMachineUserDataParameter

type GetVirtualMachineUserDataParameter struct {
	// The ID of the virtual machine
	VirtualMachineId ID
}

GetVirtualMachineUserData represents the paramter of GetVirtualMachineUserData

func NewGetVirtualMachineUserDataParameter

func NewGetVirtualMachineUserDataParameter(virtualmachineid string) (p *GetVirtualMachineUserDataParameter)

type GpuGroup

type GpuGroup struct {
	ResourceBase
	// Remaining capacity in terms of no. of more VMs that can be deployped with
	// this vGPU type
	RemainingCapacity NullNumber `json:"remainingcapacity`
	// Maximum displays per user
	MaxHeads NullNumber `json:"maxheads"`
	// Maximum X resolution per display
	MaxResolutionX NullNumber `json:"maxresolutionx"`
	// Model Name of vGPU
	VgpuType NullString `json:"vgputype"`
	// Maximum no. of vgpu per gpu card (pgpu)
	MaxVgpuPerPgpu NullNumber `json:"maxvgpuperpgpu"`
	// Maximum vgpu can be created with this vgpu type on the given gpu group
	MaxCapacity NullNumber `json:"maxcapacity"`
	// Maximum Y resolution per display
	MaxResolutionY NullNumber `json:"maxresolutiony"`
	// Video RAM for this vGPU type
	VideoRam NullNumber `json:"videoram"`
}

type Host

type Host struct {
	ResourceBase
	// the cpu average load on the host
	AverageLoad NullNumber `json:"averageload"`
	// capabilities of the host
	Capabilities NullString `json:"capabilities"`
	// the cluster ID of the host
	ClusterId ID `json:"clusterid"`
	// the cluster name of the host
	ClusterName NullString `json:"clustername"`
	// the cluster type of the cluster that host belongs to
	ClusterType NullString `json:"clustertype"`
	// the amount of the host's CPU currently allocated
	CpuAllocated NullString `json:"cpuallocated"`
	// the CPU number of the host
	CpuNumber NullNumber `json:"cpunumber"`
	// the number of CPU sockets on the host
	CpuSockets NullNumber `json:"cpusockets"`
	// the CPU speed of the host
	CpuSpeed NullNumber `json:"cpuspeed"`
	// the amount of the host's CPU currently used
	CpuUsed NullString `json:"cpuused"`
	// the amount of the host's CPU after applying the cpu.overprovisioning.factor
	CpuWithOverProvisioning NullString `json:"cpuwithoverprovisioning"`
	// the date and time the host was created
	Created NullString `json:"created"`
	// Host details in key/value pairs.
	Details map[string]string `json:"details"`
	// true if the host is disconnected. False otherwise.
	Disconnected NullString `json:"disconnected"`
	// the host's currently allocated disk size
	DiskSizeAllocated NullNumber `json:"disksizeallocated"`
	// the total disk size of the host
	DiskSizeTotal NullNumber `json:"disksizetotal"`
	// events available for the host
	Events NullString `json:"events"`
	// GPU cards present in the host
	GpuGroup []GpuGroup `json:"gpugroup"`
	// true if the host is Ha host (dedicated to vms started by HA process; false
	// otherwise
	HaHost NullBool `json:"hahost"`
	// true if this host has enough CPU and RAM capacity to migrate a VM to it,
	// false otherwise
	HasEnoughCapacity NullBool `json:"hasenoughcapacity"`
	// comma-separated list of tags for the host
	HostTags NullString `json:"hosttags"`
	// the host hypervisor
	Hypervisor NullString `json:"hypervisor"`
	// the hypervisor version
	HypervisorVersion NullString `json:"hypervisorversion"`
	// the ID of the host
	Id ID `json:"id"`
	// the IP address of the host
	IpAddress NullString `json:"ipaddress"`
	// true if local storage is active, false otherwise
	IsLocalStorageActive NullBool `json:"islocalstorageactive"`
	// the date and time the host was last pinged
	LastPinged NullString `json:"lastpinged"`
	// the management server ID of the host
	ManagementServerId ID `json:"managementserverid"`
	// the amount of the host's memory currently allocated
	MemoryAllocated NullNumber `json:"memoryallocated"`
	// the memory total of the host
	MemoryTotal NullNumber `json:"memorytotal"`
	// the amount of the host's memory currently used
	MemoryUsed NullNumber `json:"memoryused"`
	// the name of the host
	Name NullString `json:"name"`
	// the incoming network traffic on the host
	NetworkKbsRead NullNumber `json:"networkkbsread"`
	// the outgoing network traffic on the host
	NetworkKbsWrite NullNumber `json:"networkkbswrite"`
	// the OS category ID of the host
	OsCategoryId ID `json:"oscategoryid"`
	// the OS category name of the host
	OsCategoryName NullString `json:"oscategoryname"`
	// the Pod ID of the host
	PodId ID `json:"podid"`
	// the Pod name of the host
	PodName NullString `json:"podname"`
	// the date and time the host was removed
	Removed NullString `json:"removed"`
	// true if migrating a vm to this host requires storage motion, false otherwise
	RequiresStorageMotion NullBool `json:"requiresstoragemotion"`
	// the resource state of the host
	ResourceState NullString `json:"resourcestate"`
	// the state of the host
	State NullString `json:"state"`
	// true if this host is suitable(has enough capacity and satisfies all
	// conditions like hosttags, max guests vm limit etc) to migrate a VM to it ,
	// false otherwise
	SuitableForMigration NullBool `json:"suitableformigration"`
	// the host type
	Type NullString `json:"type"`
	// the host version
	Version NullString `json:"version"`
	// the Zone ID of the host
	ZoneId ID `json:"zoneid"`
	// the Zone name of the host
	ZoneName NullString `json:"zonename"`
}

type HostTag

type HostTag struct {
	ResourceBase
	// the host ID of the host tag
	HostId ID `json:"hostid"`
	// the ID of the host tag
	Id ID `json:"id"`
	// the name of the host tag
	Name NullString `json:"name"`
}

type ID

type ID struct {
	NullString
}

UUID or Integer ID

func (*ID) Set

func (id *ID) Set(value interface{}) error

Set Value

func (ID) UUID

func (id ID) UUID() uuid.UUID

func (*ID) UnmarshalJSON

func (id *ID) UnmarshalJSON(b []byte) error

type ImageStore

type ImageStore struct {
	ResourceBase
	// the details of the image store
	Details []NullString `json:"details"`
	// the ID of the image store
	Id ID `json:"id"`
	// the name of the image store
	Name NullString `json:"name"`
	// the protocol of the image store
	Protocol NullString `json:"protocol"`
	// the provider name of the image store
	ProviderName NullString `json:"providername"`
	// the scope of the image store
	Scope NullString `json:"scope"`
	// the url of the image store
	Url NullString `json:"url"`
	// the Zone ID of the image store
	ZoneId ID `json:"zoneid"`
	// the Zone name of the image store
	ZoneName NullString `json:"zonename"`
}

type ImportLdapUsersParameter

type ImportLdapUsersParameter struct {
	// Creates the user under the specified account. If no account is specified, the
	// username will be used as the account name.
	Account NullString
	// details for account used to store specific parameters
	AccountDetails map[string]string
	// Type of the account.  Specify 0 for user, 1 for root admin, and 2 for domain
	// admin
	AccountType NullNumber
	// Specifies the domain to which the ldap users are to be imported. If no domain
	// is specified, a domain will created using group parameter. If the group is
	// also not specified, a domain name based on the OU information will be
	// created. If no OU hierarchy exists, will be defaulted to ROOT domain
	DomainId ID
	// Specifies the group name from which the ldap users are to be imported. If no
	// group is specified, all the users will be imported.
	Group NullString
	// List by keyword
	Keyword  NullString
	Page     NullNumber
	PageSize NullNumber
	// Specifies a timezone for this command. For more information on the timezone
	// parameter, see Time Zone Format.
	TimeZone NullString
}

ImportLdapUsers represents the paramter of ImportLdapUsers

func NewImportLdapUsersParameter

func NewImportLdapUsersParameter(accounttype int) (p *ImportLdapUsersParameter)

type IpForwardingRule

type IpForwardingRule struct {
	ResourceBase
	// the cidr list to forward traffic from
	CidrList NullString `json:"cidrlist"`
	// is firewall for display to the regular user
	ForDisplay NullBool `json:"fordisplay"`
	// the ID of the port forwarding rule
	Id ID `json:"id"`
	// the public ip address for the port forwarding rule
	IpAddress NullString `json:"ipaddress"`
	// the public ip address id for the port forwarding rule
	IpAddressId ID `json:"ipaddressid"`
	// the id of the guest network the port forwarding rule belongs to
	NetworkId ID `json:"networkid"`
	// the ending port of port forwarding rule's private port range
	PrivateEndPort NullString `json:"privateendport"`
	// the starting port of port forwarding rule's private port range
	PrivatePort NullString `json:"privateport"`
	// the protocol of the port forwarding rule
	Protocol NullString `json:"protocol"`
	// the ending port of port forwarding rule's private port range
	PublicEndPort NullString `json:"publicendport"`
	// the starting port of port forwarding rule's public port range
	PublicPort NullString `json:"publicport"`
	// the state of the rule
	State NullString `json:"state"`
	// the list of resource tags associated with the rule
	Tags []Tag `json:"tags"`
	// the VM display name for the port forwarding rule
	VirtualMachineDisplayName NullString `json:"virtualmachinedisplayname"`
	// the VM ID for the port forwarding rule
	VirtualMachineId ID `json:"virtualmachineid"`
	// the VM name for the port forwarding rule
	VirtualMachineName NullString `json:"virtualmachinename"`
	// the vm ip address for the port forwarding rule
	VmGuestIp NullString `json:"vmguestip"`
}

type Keypair

type Keypair struct {
	Privatekey NullString `json:"privatekey"`
}

type LdapUser

type LdapUser struct {
	ResourceBase
	// The user's domain
	Domain NullString `json:"domain"`
	// The user's email
	Email NullString `json:"email"`
	// The user's firstname
	FirstName NullString `json:"firstname"`
	// The user's lastname
	LastName NullString `json:"lastname"`
	// The user's principle
	Principal NullString `json:"principal"`
	// The user's username
	UserName NullString `json:"username"`
}

type ListAccountsParameter

type ListAccountsParameter struct {
	// list accounts by account type. Valid account types are 1 (admin), 2
	// (domain-admin), and 0 (user).
	AccountType NullNumber
	// list only resources belonging to the domain specified
	DomainId ID
	// list account by account ID
	Id ID
	// list accounts by cleanuprequred attribute (values are true or false)
	IsCleanupRequired NullBool
	// defaults to false, but if true, lists all resources from the parent specified
	// by the domainId till leaves.
	IsRecursive NullBool
	// List by keyword
	Keyword NullString
	// If set to false, list only resources belonging to the command's caller; if
	// set to true - list resources that the caller is authorized to see. Default
	// value is false
	ListAll NullBool
	// list account by account name
	Name     NullString
	Page     NullNumber
	PageSize NullNumber
	// list accounts by state. Valid states are enabled, disabled, and locked.
	State NullString
}

ListAccounts represents the paramter of ListAccounts

func NewListAccountsParameter

func NewListAccountsParameter() (p *ListAccountsParameter)

type ListAffinityGroupTypesParameter

type ListAffinityGroupTypesParameter struct {
	// List by keyword
	Keyword  NullString
	Page     NullNumber
	PageSize NullNumber
}

ListAffinityGroupTypes represents the paramter of ListAffinityGroupTypes

func NewListAffinityGroupTypesParameter

func NewListAffinityGroupTypesParameter() (p *ListAffinityGroupTypesParameter)

type ListAffinityGroupsParameter

type ListAffinityGroupsParameter struct {
	// list resources by account. Must be used with the domainId parameter.
	Account NullString
	// list only resources belonging to the domain specified
	DomainId ID
	// list the affinity group by the id provided
	Id ID
	// defaults to false, but if true, lists all resources from the parent specified
	// by the domainId till leaves.
	IsRecursive NullBool
	// List by keyword
	Keyword NullString
	// If set to false, list only resources belonging to the command's caller; if
	// set to true - list resources that the caller is authorized to see. Default
	// value is false
	ListAll NullBool
	// lists affinity groups by name
	Name     NullString
	Page     NullNumber
	PageSize NullNumber
	// lists affinity groups by type
	Type NullString
	// lists affinity groups by virtual machine id
	VirtualMachineId ID
}

ListAffinityGroups represents the paramter of ListAffinityGroups

func NewListAffinityGroupsParameter

func NewListAffinityGroupsParameter() (p *ListAffinityGroupsParameter)

type ListClustersParameter

type ListClustersParameter struct {
	// lists clusters by allocation state
	AllocationState NullString
	// lists clusters by cluster type
	ClusterType NullString
	// lists clusters by hypervisor type
	Hypervisor NullString
	// lists clusters by the cluster ID
	Id ID
	// List by keyword
	Keyword NullString
	// whether this cluster is managed by cloudstack
	ManagedState NullString
	// lists clusters by the cluster name
	Name     NullString
	Page     NullNumber
	PageSize NullNumber
	// lists clusters by Pod ID
	PodId ID
	// flag to display the capacity of the clusters
	ShowCapacities NullBool
	// lists clusters by Zone ID
	ZoneId ID
}

ListClusters represents the paramter of ListClusters

func NewListClustersParameter

func NewListClustersParameter() (p *ListClustersParameter)

type ListDedicatedClustersParameter

type ListDedicatedClustersParameter struct {
	// the name of the account associated with the cluster. Must be used with
	// domainId.
	Account NullString
	// list dedicated clusters by affinity group
	AffinityGroupId ID
	// the ID of the cluster
	ClusterId ID
	// the ID of the domain associated with the cluster
	DomainId ID
	// List by keyword
	Keyword  NullString
	Page     NullNumber
	PageSize NullNumber
}

ListDedicatedClusters represents the paramter of ListDedicatedClusters

func NewListDedicatedClustersParameter

func NewListDedicatedClustersParameter() (p *ListDedicatedClustersParameter)

type ListDedicatedHostsParameter

type ListDedicatedHostsParameter struct {
	// the name of the account associated with the host. Must be used with domainId.
	Account NullString
	// list dedicated hosts by affinity group
	AffinityGroupId ID
	// the ID of the domain associated with the host
	DomainId ID
	// the ID of the host
	HostId ID
	// List by keyword
	Keyword  NullString
	Page     NullNumber
	PageSize NullNumber
}

ListDedicatedHosts represents the paramter of ListDedicatedHosts

func NewListDedicatedHostsParameter

func NewListDedicatedHostsParameter() (p *ListDedicatedHostsParameter)

type ListDedicatedPodsParameter

type ListDedicatedPodsParameter struct {
	// the name of the account associated with the pod. Must be used with domainId.
	Account NullString
	// list dedicated pods by affinity group
	AffinityGroupId ID
	// the ID of the domain associated with the pod
	DomainId ID
	// List by keyword
	Keyword  NullString
	Page     NullNumber
	PageSize NullNumber
	// the ID of the pod
	PodId ID
}

ListDedicatedPods represents the paramter of ListDedicatedPods

func NewListDedicatedPodsParameter

func NewListDedicatedPodsParameter() (p *ListDedicatedPodsParameter)

type ListDiskOfferingsParameter

type ListDiskOfferingsParameter struct {
	// the ID of the domain of the disk offering.
	DomainId ID
	// ID of the disk offering
	Id ID
	// List by keyword
	Keyword NullString
	// name of the disk offering
	Name     NullString
	Page     NullNumber
	PageSize NullNumber
}

ListDiskOfferings represents the paramter of ListDiskOfferings

func NewListDiskOfferingsParameter

func NewListDiskOfferingsParameter() (p *ListDiskOfferingsParameter)

type ListDomainChildrenParameter

type ListDomainChildrenParameter struct {
	// list children domain by parent domain ID.
	Id ID
	// to return the entire tree, use the value "true". To return the first level
	// children, use the value "false".
	IsRecursive NullBool
	// List by keyword
	Keyword NullString
	// If set to false, list only resources belonging to the command's caller; if
	// set to true - list resources that the caller is authorized to see. Default
	// value is false
	ListAll NullBool
	// list children domains by name
	Name     NullString
	Page     NullNumber
	PageSize NullNumber
}

ListDomainChildren represents the paramter of ListDomainChildren

func NewListDomainChildrenParameter

func NewListDomainChildrenParameter() (p *ListDomainChildrenParameter)

type ListDomainsParameter

type ListDomainsParameter struct {
	// List domain by domain ID.
	Id ID
	// List by keyword
	Keyword NullString
	// List domains by domain level.
	Level NullNumber
	// If set to false, list only resources belonging to the command's caller; if
	// set to true - list resources that the caller is authorized to see. Default
	// value is false
	ListAll NullBool
	// List domain by domain name.
	Name     NullString
	Page     NullNumber
	PageSize NullNumber
}

ListDomains represents the paramter of ListDomains

func NewListDomainsParameter

func NewListDomainsParameter() (p *ListDomainsParameter)

type ListEgressFirewallRulesParameter

type ListEgressFirewallRulesParameter struct {
	// list resources by account. Must be used with the domainId parameter.
	Account NullString
	// list only resources belonging to the domain specified
	DomainId ID
	// list resources by display flag; only ROOT admin is eligible to pass this
	// parameter
	ForDisplay NullBool
	// Lists rule with the specified ID.
	Id ID
	// the id of IP address of the firwall services
	IpAddressId ID
	// defaults to false, but if true, lists all resources from the parent specified
	// by the domainId till leaves.
	IsRecursive NullBool
	// List by keyword
	Keyword NullString
	// If set to false, list only resources belonging to the command's caller; if
	// set to true - list resources that the caller is authorized to see. Default
	// value is false
	ListAll NullBool
	// list firewall rules for ceratin network
	NetworkId ID
	Page      NullNumber
	PageSize  NullNumber
	// list objects by project
	ProjectId ID
	// List resources by tags (key/value pairs)
	Tags map[string]string
}

ListEgressFirewallRules represents the paramter of ListEgressFirewallRules

func NewListEgressFirewallRulesParameter

func NewListEgressFirewallRulesParameter() (p *ListEgressFirewallRulesParameter)

type ListFirewallRulesParameter

type ListFirewallRulesParameter struct {
	// list resources by account. Must be used with the domainId parameter.
	Account NullString
	// list only resources belonging to the domain specified
	DomainId ID
	// list resources by display flag; only ROOT admin is eligible to pass this
	// parameter
	ForDisplay NullBool
	// Lists rule with the specified ID.
	Id ID
	// the id of IP address of the firwall services
	IpAddressId ID
	// defaults to false, but if true, lists all resources from the parent specified
	// by the domainId till leaves.
	IsRecursive NullBool
	// List by keyword
	Keyword NullString
	// If set to false, list only resources belonging to the command's caller; if
	// set to true - list resources that the caller is authorized to see. Default
	// value is false
	ListAll NullBool
	// list firewall rules for ceratin network
	NetworkId ID
	Page      NullNumber
	PageSize  NullNumber
	// list objects by project
	ProjectId ID
	// List resources by tags (key/value pairs)
	Tags map[string]string
}

ListFirewallRules represents the paramter of ListFirewallRules

func NewListFirewallRulesParameter

func NewListFirewallRulesParameter() (p *ListFirewallRulesParameter)

type ListHostTagsParameter

type ListHostTagsParameter struct {
	// List by keyword
	Keyword  NullString
	Page     NullNumber
	PageSize NullNumber
}

ListHostTags represents the paramter of ListHostTags

func NewListHostTagsParameter

func NewListHostTagsParameter() (p *ListHostTagsParameter)

type ListHostsParameter

type ListHostsParameter struct {
	// lists hosts existing in particular cluster
	ClusterId ID
	// comma separated list of host details requested, value can be a list of [ min,
	// all, capacity, events, stats]
	Details []string
	// if true, list only hosts dedicated to HA
	HaHost NullBool
	// hypervisor type of host: XenServer,KVM,VMware,Hyperv,BareMetal,Simulator
	Hypervisor NullString
	// the id of the host
	Id ID
	// List by keyword
	Keyword NullString
	// the name of the host
	Name     NullString
	Page     NullNumber
	PageSize NullNumber
	// the Pod ID for the host
	PodId ID
	// list hosts by resource state. Resource state represents current state
	// determined by admin of host, valule can be one of [Enabled, Disabled,
	// Unmanaged, PrepareForMaintenance, ErrorInMaintenance, Maintenance, Error]
	ResourceState NullString
	// the state of the host
	State NullString
	// the host type
	Type NullString
	// lists hosts in the same cluster as this VM and flag hosts with enough CPU/RAm
	// to host this VM
	VirtualMachineId ID
	// the Zone ID for the host
	ZoneId ID
}

ListHosts represents the paramter of ListHosts

func NewListHostsParameter

func NewListHostsParameter() (p *ListHostsParameter)

type ListImageStoresParameter

type ListImageStoresParameter struct {
	// the ID of the storage pool
	Id ID
	// List by keyword
	Keyword NullString
	// the name of the image store
	Name     NullString
	Page     NullNumber
	PageSize NullNumber
	// the image store protocol
	Protocol NullString
	// the image store provider
	Provider NullString
	// the Zone ID for the image store
	ZoneId ID
}

ListImageStores represents the paramter of ListImageStores

func NewListImageStoresParameter

func NewListImageStoresParameter() (p *ListImageStoresParameter)

type ListIpForwardingRulesParameter

type ListIpForwardingRulesParameter struct {
	// list resources by account. Must be used with the domainId parameter.
	Account NullString
	// list only resources belonging to the domain specified
	DomainId ID
	// Lists rule with the specified ID.
	Id ID
	// list the rule belonging to this public ip address
	IpAddressId ID
	// defaults to false, but if true, lists all resources from the parent specified
	// by the domainId till leaves.
	IsRecursive NullBool
	// List by keyword
	Keyword NullString
	// If set to false, list only resources belonging to the command's caller; if
	// set to true - list resources that the caller is authorized to see. Default
	// value is false
	ListAll  NullBool
	Page     NullNumber
	PageSize NullNumber
	// list objects by project
	ProjectId ID
	// Lists all rules applied to the specified Vm.
	VirtualMachineId ID
}

ListIpForwardingRules represents the paramter of ListIpForwardingRules

func NewListIpForwardingRulesParameter

func NewListIpForwardingRulesParameter() (p *ListIpForwardingRulesParameter)

type ListLdapUsersParameter

type ListLdapUsersParameter struct {
	// List by keyword
	Keyword NullString
	// Determines whether all ldap users are returned or just non-cloudstack users
	ListType NullString
	Page     NullNumber
	PageSize NullNumber
}

ListLdapUsers represents the paramter of ListLdapUsers

func NewListLdapUsersParameter

func NewListLdapUsersParameter() (p *ListLdapUsersParameter)

type ListLoadBalancerRuleInstancesParameter

type ListLoadBalancerRuleInstancesParameter struct {
	// true if listing all virtual machines currently applied to the load balancer
	// rule; default is true
	Applied NullBool
	// the ID of the load balancer rule
	Id ID
	// List by keyword
	Keyword NullString
	// true if lb rule vm ip information to be included; default is false
	LbVmIps  NullBool
	Page     NullNumber
	PageSize NullNumber
}

ListLoadBalancerRuleInstances represents the paramter of ListLoadBalancerRuleInstances

func NewListLoadBalancerRuleInstancesParameter

func NewListLoadBalancerRuleInstancesParameter(id string) (p *ListLoadBalancerRuleInstancesParameter)

type ListLoadBalancerRulesParameter

type ListLoadBalancerRulesParameter struct {
	// list resources by account. Must be used with the domainId parameter.
	Account NullString
	// list only resources belonging to the domain specified
	DomainId ID
	// list resources by display flag; only ROOT admin is eligible to pass this
	// parameter
	ForDisplay NullBool
	// the ID of the load balancer rule
	Id ID
	// defaults to false, but if true, lists all resources from the parent specified
	// by the domainId till leaves.
	IsRecursive NullBool
	// List by keyword
	Keyword NullString
	// If set to false, list only resources belonging to the command's caller; if
	// set to true - list resources that the caller is authorized to see. Default
	// value is false
	ListAll NullBool
	// the name of the load balancer rule
	Name NullString
	// list by network id the rule belongs to
	NetworkId ID
	Page      NullNumber
	PageSize  NullNumber
	// list objects by project
	ProjectId ID
	// the public IP address id of the load balancer rule
	PublicIpId ID
	// List resources by tags (key/value pairs)
	Tags map[string]string
	// the ID of the virtual machine of the load balancer rule
	VirtualMachineId ID
	// the availability zone ID
	ZoneId ID
}

ListLoadBalancerRules represents the paramter of ListLoadBalancerRules

func NewListLoadBalancerRulesParameter

func NewListLoadBalancerRulesParameter() (p *ListLoadBalancerRulesParameter)

type ListNetworkOfferingsParameter

type ListNetworkOfferingsParameter struct {
	// the availability of network offering. Default value is Required
	Availability NullString
	// list network offerings by display text
	DisplayText NullString
	// the network offering can be used only for network creation inside the VPC
	ForVpc NullBool
	// list network offerings by guest type: Shared or Isolated
	GuestIpType NullString
	// list network offerings by id
	Id ID
	// true if need to list only default network offerings. Default value is false
	IsDefault NullBool
	// true if offering has tags specified
	IsTagged NullBool
	// List by keyword
	Keyword NullString
	// list network offerings by name
	Name NullString
	// the ID of the network. Pass this in if you want to see the available network
	// offering that a network can be changed to.
	NetworkId ID
	Page      NullNumber
	PageSize  NullNumber
	// true if need to list only netwok offerings where source nat is supported,
	// false otherwise
	Sourcenatsupported NullBool
	// true if need to list only network offerings which support specifying ip
	// ranges
	SpecifyIpRanges NullBool
	// the tags for the network offering.
	SpecifyVlan NullBool
	// list network offerings by state
	State NullString
	// list network offerings supporting certain services
	SupportedServices []string
	// list network offerings by tags
	Tags NullString
	// list by traffic type
	TrafficType NullString
	// list netowrk offerings available for network creation in specific zone
	ZoneId ID
}

ListNetworkOfferings represents the paramter of ListNetworkOfferings

func NewListNetworkOfferingsParameter

func NewListNetworkOfferingsParameter() (p *ListNetworkOfferingsParameter)

type ListNetworksParameter

type ListNetworksParameter struct {
	// list resources by account. Must be used with the domainId parameter.
	Account NullString
	// list networks by ACL (access control list) type. Supported values are Account
	// and Domain
	AclType NullString
	// list networks available for vm deployment
	CanUseForDeploy NullBool
	// list resources by display flag; only ROOT admin is eligible to pass this
	// parameter
	DisplayNetwork NullBool
	// list only resources belonging to the domain specified
	DomainId ID
	// the network belongs to vpc
	ForVpc NullBool
	// list networks by id
	Id ID
	// defaults to false, but if true, lists all resources from the parent specified
	// by the domainId till leaves.
	IsRecursive NullBool
	// true if network is system, false otherwise
	IsSystem NullBool
	// List by keyword
	Keyword NullString
	// If set to false, list only resources belonging to the command's caller; if
	// set to true - list resources that the caller is authorized to see. Default
	// value is false
	ListAll  NullBool
	Page     NullNumber
	PageSize NullNumber
	// list networks by physical network id
	PhysicalNetworkId ID
	// list objects by project
	ProjectId ID
	// list networks by restartRequired
	ReStartRequired NullBool
	// true if need to list only networks which support specifying ip ranges
	SpecifyIpRanges NullBool
	// list networks supporting certain services
	SupportedServices []string
	// List resources by tags (key/value pairs)
	Tags map[string]string
	// type of the traffic
	TrafficType NullString
	// the type of the network. Supported values are: Isolated and Shared
	Type NullString
	// List networks by VPC
	VpcId ID
	// the Zone ID of the network
	ZoneId ID
}

ListNetworks represents the paramter of ListNetworks

func NewListNetworksParameter

func NewListNetworksParameter() (p *ListNetworksParameter)

type ListPodsParameter

type ListPodsParameter struct {
	// list pods by allocation state
	AllocationState NullString
	// list Pods by ID
	Id ID
	// List by keyword
	Keyword NullString
	// list Pods by name
	Name     NullString
	Page     NullNumber
	PageSize NullNumber
	// flag to display the capacity of the pods
	ShowCapacities NullBool
	// list Pods by Zone ID
	ZoneId ID
}

ListPods represents the paramter of ListPods

func NewListPodsParameter

func NewListPodsParameter() (p *ListPodsParameter)

type ListPortForwardingRulesParameter

type ListPortForwardingRulesParameter struct {
	// list resources by account. Must be used with the domainId parameter.
	Account NullString
	// list only resources belonging to the domain specified
	DomainId ID
	// list resources by display flag; only ROOT admin is eligible to pass this
	// parameter
	ForDisplay NullBool
	// Lists rule with the specified ID.
	Id ID
	// the id of IP address of the port forwarding services
	IpAddressId ID
	// defaults to false, but if true, lists all resources from the parent specified
	// by the domainId till leaves.
	IsRecursive NullBool
	// List by keyword
	Keyword NullString
	// If set to false, list only resources belonging to the command's caller; if
	// set to true - list resources that the caller is authorized to see. Default
	// value is false
	ListAll NullBool
	// list port forwarding rules for certain network
	NetworkId ID
	Page      NullNumber
	PageSize  NullNumber
	// list objects by project
	ProjectId ID
	// List resources by tags (key/value pairs)
	Tags map[string]string
}

ListPortForwardingRules represents the paramter of ListPortForwardingRules

func NewListPortForwardingRulesParameter

func NewListPortForwardingRulesParameter() (p *ListPortForwardingRulesParameter)

type ListProjectAccountsParameter

type ListProjectAccountsParameter struct {
	// list accounts of the project by account name
	Account NullString
	// List by keyword
	Keyword  NullString
	Page     NullNumber
	PageSize NullNumber
	// id of the project
	ProjectId ID
	// list accounts of the project by role
	Role NullString
}

ListProjectAccounts represents the paramter of ListProjectAccounts

func NewListProjectAccountsParameter

func NewListProjectAccountsParameter(projectid string) (p *ListProjectAccountsParameter)

type ListProjectInvitationsParameter

type ListProjectInvitationsParameter struct {
	// list resources by account. Must be used with the domainId parameter.
	Account NullString
	// if true, list only active invitations - having Pending state and ones that
	// are not timed out yet
	ActiveOnly NullBool
	// list only resources belonging to the domain specified
	DomainId ID
	// list invitations by id
	Id ID
	// defaults to false, but if true, lists all resources from the parent specified
	// by the domainId till leaves.
	IsRecursive NullBool
	// List by keyword
	Keyword NullString
	// If set to false, list only resources belonging to the command's caller; if
	// set to true - list resources that the caller is authorized to see. Default
	// value is false
	ListAll  NullBool
	Page     NullNumber
	PageSize NullNumber
	// list by project id
	ProjectId ID
	// list invitations by state
	State NullString
}

ListProjectInvitations represents the paramter of ListProjectInvitations

func NewListProjectInvitationsParameter

func NewListProjectInvitationsParameter() (p *ListProjectInvitationsParameter)

type ListProjectsParameter

type ListProjectsParameter struct {
	// list resources by account. Must be used with the domainId parameter.
	Account NullString
	// list projects by display text
	DisplayText NullString
	// list only resources belonging to the domain specified
	DomainId ID
	// list projects by project ID
	Id ID
	// defaults to false, but if true, lists all resources from the parent specified
	// by the domainId till leaves.
	IsRecursive NullBool
	// List by keyword
	Keyword NullString
	// If set to false, list only resources belonging to the command's caller; if
	// set to true - list resources that the caller is authorized to see. Default
	// value is false
	ListAll NullBool
	// list projects by name
	Name     NullString
	Page     NullNumber
	PageSize NullNumber
	// list projects by state
	State NullString
	// List projects by tags (key/value pairs)
	Tags map[string]string
}

ListProjects represents the paramter of ListProjects

func NewListProjectsParameter

func NewListProjectsParameter() (p *ListProjectsParameter)

type ListPublicIpAddressesParameter

type ListPublicIpAddressesParameter struct {
	// list resources by account. Must be used with the domainId parameter.
	Account NullString
	// limits search results to allocated public IP addresses
	AllocatedOnly NullBool
	// lists all public IP addresses associated to the network specified
	AssociatedNetworkId ID
	// list only resources belonging to the domain specified
	DomainId ID
	// list resources by display flag; only ROOT admin is eligible to pass this
	// parameter
	ForDisplay NullBool
	// list only ips used for load balancing
	ForLoadBalancing NullBool
	// the virtual network for the IP address
	ForVirtualNetwork NullBool
	// lists ip address by id
	Id ID
	// lists the specified IP address
	IpAddress NullString
	// defaults to false, but if true, lists all resources from the parent specified
	// by the domainId till leaves.
	IsRecursive NullBool
	// list only source nat ip addresses
	IsSourceNat NullBool
	// list only static nat ip addresses
	IsStaticNat NullBool
	// List by keyword
	Keyword NullString
	// If set to false, list only resources belonging to the command's caller; if
	// set to true - list resources that the caller is authorized to see. Default
	// value is false
	ListAll  NullBool
	Page     NullNumber
	PageSize NullNumber
	// lists all public IP addresses by physical network id
	PhysicalNetworkId ID
	// list objects by project
	ProjectId ID
	// lists all public IP addresses by state
	State NullString
	// List resources by tags (key/value pairs)
	Tags map[string]string
	// lists all public IP addresses by VLAN ID
	VlanId ID
	// List ips belonging to the VPC
	VpcId ID
	// lists all public IP addresses by Zone ID
	ZoneId ID
}

ListPublicIpAddresses represents the paramter of ListPublicIpAddresses

func NewListPublicIpAddressesParameter

func NewListPublicIpAddressesParameter() (p *ListPublicIpAddressesParameter)

type ListSecondaryStagingStoresParameter

type ListSecondaryStagingStoresParameter struct {
	// the ID of the staging store
	Id ID
	// List by keyword
	Keyword NullString
	// the name of the staging store
	Name     NullString
	Page     NullNumber
	PageSize NullNumber
	// the staging store protocol
	Protocol NullString
	// the staging store provider
	Provider NullString
	// the Zone ID for the staging store
	ZoneId ID
}

ListSecondaryStagingStores represents the paramter of ListSecondaryStagingStores

func NewListSecondaryStagingStoresParameter

func NewListSecondaryStagingStoresParameter() (p *ListSecondaryStagingStoresParameter)

type ListSecurityGroupsParameter

type ListSecurityGroupsParameter struct {
	// list resources by account. Must be used with the domainId parameter.
	Account NullString
	// list only resources belonging to the domain specified
	DomainId ID
	// list the security group by the id provided
	Id ID
	// defaults to false, but if true, lists all resources from the parent specified
	// by the domainId till leaves.
	IsRecursive NullBool
	// List by keyword
	Keyword NullString
	// If set to false, list only resources belonging to the command's caller; if
	// set to true - list resources that the caller is authorized to see. Default
	// value is false
	ListAll  NullBool
	Page     NullNumber
	PageSize NullNumber
	// list objects by project
	ProjectId ID
	// lists security groups by name
	SecurityGroupName NullString
	// List resources by tags (key/value pairs)
	Tags map[string]string
	// lists security groups by virtual machine id
	VirtualMachineId ID
}

ListSecurityGroups represents the paramter of ListSecurityGroups

func NewListSecurityGroupsParameter

func NewListSecurityGroupsParameter() (p *ListSecurityGroupsParameter)

type ListServiceOfferingsParameter

type ListServiceOfferingsParameter struct {
	// the ID of the domain associated with the service offering
	DomainId ID
	// ID of the service offering
	Id ID
	// is this a system vm offering
	IsSystem NullBool
	// List by keyword
	Keyword NullString
	// name of the service offering
	Name     NullString
	Page     NullNumber
	PageSize NullNumber
	// the system VM type. Possible types are "consoleproxy", "secondarystoragevm"
	// or "domainrouter".
	SystemVmType NullString
	// the ID of the virtual machine. Pass this in if you want to see the available
	// service offering that a virtual machine can be changed to.
	VirtualMachineId ID
}

ListServiceOfferings represents the paramter of ListServiceOfferings

func NewListServiceOfferingsParameter

func NewListServiceOfferingsParameter() (p *ListServiceOfferingsParameter)

type ListStoragePoolsParameter

type ListStoragePoolsParameter struct {
	// list storage pools belongig to the specific cluster
	ClusterId ID
	// the ID of the storage pool
	Id ID
	// the IP address for the storage pool
	IpAddress NullString
	// List by keyword
	Keyword NullString
	// the name of the storage pool
	Name     NullString
	Page     NullNumber
	PageSize NullNumber
	// the storage pool path
	Path NullString
	// the Pod ID for the storage pool
	PodId ID
	// the ID of the storage pool
	Scope NullString
	// the Zone ID for the storage pool
	ZoneId ID
}

ListStoragePools represents the paramter of ListStoragePools

func NewListStoragePoolsParameter

func NewListStoragePoolsParameter() (p *ListStoragePoolsParameter)

type ListStorageProvidersParameter

type ListStorageProvidersParameter struct {
	// List by keyword
	Keyword  NullString
	Page     NullNumber
	PageSize NullNumber
	// the type of storage provider: either primary or image
	Type NullString
}

ListStorageProviders represents the paramter of ListStorageProviders

func NewListStorageProvidersParameter

func NewListStorageProvidersParameter(typ string) (p *ListStorageProvidersParameter)

type ListStorageTagsParameter

type ListStorageTagsParameter struct {
	// List by keyword
	Keyword  NullString
	Page     NullNumber
	PageSize NullNumber
}

ListStorageTags represents the paramter of ListStorageTags

func NewListStorageTagsParameter

func NewListStorageTagsParameter() (p *ListStorageTagsParameter)

type ListTagsParameter

type ListTagsParameter struct {
	// list resources by account. Must be used with the domainId parameter.
	Account NullString
	// list by customer name
	Customer NullString
	// list only resources belonging to the domain specified
	DomainId ID
	// defaults to false, but if true, lists all resources from the parent specified
	// by the domainId till leaves.
	IsRecursive NullBool
	// list by key
	Key NullString
	// List by keyword
	Keyword NullString
	// If set to false, list only resources belonging to the command's caller; if
	// set to true - list resources that the caller is authorized to see. Default
	// value is false
	ListAll  NullBool
	Page     NullNumber
	PageSize NullNumber
	// list objects by project
	ProjectId ID
	// list by resource id
	ResourceId ID
	// list by resource type
	ResourceType NullString
	// list by value
	Value NullString
}

ListTags represents the paramter of ListTags

func NewListTagsParameter

func NewListTagsParameter() (p *ListTagsParameter)

type ListTemplatePermissionsParameter

type ListTemplatePermissionsParameter struct {
	// the template ID
	Id ID
}

ListTemplatePermissions represents the paramter of ListTemplatePermissions

func NewListTemplatePermissionsParameter

func NewListTemplatePermissionsParameter(id string) (p *ListTemplatePermissionsParameter)

type ListTemplatesParameter

type ListTemplatesParameter struct {
	// list resources by account. Must be used with the domainId parameter.
	Account NullString
	// list only resources belonging to the domain specified
	DomainId ID
	// the hypervisor for which to restrict the search
	Hypervisor NullString
	// the template ID
	Id ID
	// defaults to false, but if true, lists all resources from the parent specified
	// by the domainId till leaves.
	IsRecursive NullBool
	// List by keyword
	Keyword NullString
	// If set to false, list only resources belonging to the command's caller; if
	// set to true - list resources that the caller is authorized to see. Default
	// value is false
	ListAll NullBool
	// the template name
	Name     NullString
	Page     NullNumber
	PageSize NullNumber
	// list objects by project
	ProjectId ID
	// show removed templates as well
	ShowRemoved NullBool
	// List resources by tags (key/value pairs)
	Tags map[string]string
	// possible values are "featured", "self",
	// "selfexecutable","sharedexecutable","executable", and "community". * featured
	// : templates that have been marked as featured and public. * self : templates
	// that have been registered or created by the calling user. * selfexecutable :
	// same as self, but only returns templates that can be used to deploy a new VM.
	// * sharedexecutable : templates ready to be deployed that have been granted to
	// the calling user by another user. * executable : templates that are owned by
	// the calling user, or public templates, that can be used to deploy a VM. *
	// community : templates that have been marked as public but not featured. * all
	// : all templates (only usable by admins).
	Templatefilter NullString
	// list templates by zoneId
	ZoneId ID
}

ListTemplates represents the paramter of ListTemplates

func NewListTemplatesParameter

func NewListTemplatesParameter(templatefilter string) (p *ListTemplatesParameter)

type ListUsersParameter

type ListUsersParameter struct {
	// list resources by account. Must be used with the domainId parameter.
	Account NullString
	// List users by account type. Valid types include admin, domain-admin,
	// read-only-admin, or user.
	AccountType NullNumber
	// list only resources belonging to the domain specified
	DomainId ID
	// List user by ID.
	Id ID
	// defaults to false, but if true, lists all resources from the parent specified
	// by the domainId till leaves.
	IsRecursive NullBool
	// List by keyword
	Keyword NullString
	// If set to false, list only resources belonging to the command's caller; if
	// set to true - list resources that the caller is authorized to see. Default
	// value is false
	ListAll  NullBool
	Page     NullNumber
	PageSize NullNumber
	// List users by state of the user account.
	State NullString
	// List user by the username
	UserName NullString
}

ListUsers represents the paramter of ListUsers

func NewListUsersParameter

func NewListUsersParameter() (p *ListUsersParameter)

type ListVirtualMachinesParameter

type ListVirtualMachinesParameter struct {
	// list resources by account. Must be used with the domainId parameter.
	Account NullString
	// list vms by affinity group
	AffinityGroupId ID
	// 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
	Details []string
	// list resources by display flag; only ROOT admin is eligible to pass this
	// parameter
	DisplayVm NullBool
	// list only resources belonging to the domain specified
	DomainId ID
	// list by network type; true if need to list vms using Virtual Network, false
	// otherwise
	ForVirtualNetwork NullBool
	// the group ID
	GroupId ID
	// the host ID
	HostId ID
	// the target hypervisor for the template
	Hypervisor NullString
	// the ID of the virtual machine
	Id ID
	// the IDs of the virtual machines, mutually exclusive with id
	Ids []string
	// list vms by iso
	IsoId ID
	// defaults to false, but if true, lists all resources from the parent specified
	// by the domainId till leaves.
	IsRecursive NullBool
	// List by keyword
	Keyword NullString
	// If set to false, list only resources belonging to the command's caller; if
	// set to true - list resources that the caller is authorized to see. Default
	// value is false
	ListAll NullBool
	// name of the virtual machine
	Name NullString
	// list by network id
	NetworkId ID
	Page      NullNumber
	PageSize  NullNumber
	// the pod ID
	PodId ID
	// list objects by project
	ProjectId ID
	// list by the service offering
	ServiceOfferingId ID
	// state of the virtual machine
	State NullString
	// the storage ID where vm's volumes belong to
	StorageId ID
	// List resources by tags (key/value pairs)
	Tags map[string]string
	// list vms by template
	TemplateId ID
	// list vms by vpc
	VpcId ID
	// the availability zone ID
	ZoneId ID
}

ListVirtualMachines represents the paramter of ListVirtualMachines

func NewListVirtualMachinesParameter

func NewListVirtualMachinesParameter() (p *ListVirtualMachinesParameter)

type ListVolumesParameter

type ListVolumesParameter struct {
	// list resources by account. Must be used with the domainId parameter.
	Account NullString
	// list volumes by disk offering
	DiskOfferingId ID
	// list resources by display flag; only ROOT admin is eligible to pass this
	// parameter
	DisplayVolume NullBool
	// list only resources belonging to the domain specified
	DomainId ID
	// list volumes on specified host
	HostId ID
	// the ID of the disk volume
	Id ID
	// defaults to false, but if true, lists all resources from the parent specified
	// by the domainId till leaves.
	IsRecursive NullBool
	// List by keyword
	Keyword NullString
	// If set to false, list only resources belonging to the command's caller; if
	// set to true - list resources that the caller is authorized to see. Default
	// value is false
	ListAll NullBool
	// the name of the disk volume
	Name     NullString
	Page     NullNumber
	PageSize NullNumber
	// the pod id the disk volume belongs to
	PodId ID
	// list objects by project
	ProjectId ID
	// the ID of the storage pool, available to ROOT admin only
	StorageId ID
	// List resources by tags (key/value pairs)
	Tags map[string]string
	// the type of disk volume
	Type NullString
	// the ID of the virtual machine
	VirtualMachineId ID
	// the ID of the availability zone
	ZoneId ID
}

ListVolumes represents the paramter of ListVolumes

func NewListVolumesParameter

func NewListVolumesParameter() (p *ListVolumesParameter)

type ListZonesParameter

type ListZonesParameter struct {
	// true if you want to retrieve all available Zones. False if you only want to
	// return the Zones from which you have at least one VM. Default is false.
	Available NullBool
	// the ID of the domain associated with the zone
	DomainId ID
	// the ID of the zone
	Id ID
	// List by keyword
	Keyword NullString
	// the name of the zone
	Name NullString
	// the network type of the zone that the virtual machine belongs to
	NetworkType NullString
	Page        NullNumber
	PageSize    NullNumber
	// flag to display the capacity of the zones
	ShowCapacities NullBool
	// List zones by resource tags (key/value pairs)
	Tags map[string]string
}

ListZones represents the paramter of ListZones

func NewListZonesParameter

func NewListZonesParameter() (p *ListZonesParameter)

type LoadBalancerRule

type LoadBalancerRule struct {
	ResourceBase
	// the account of the load balancer rule
	Account NullString `json:"account"`
	// the load balancer algorithm (source, roundrobin, leastconn)
	Algorithm NullString `json:"algorithm"`
	// the cidr list to forward traffic from
	CidrList NullString `json:"cidrlist"`
	// the description of the load balancer
	Description NullString `json:"description"`
	// the domain of the load balancer rule
	Domain NullString `json:"domain"`
	// the domain ID of the load balancer rule
	DomainId ID `json:"domainid"`
	// is rule for display to the regular user
	ForDisplay NullBool `json:"fordisplay"`
	// the load balancer rule ID
	Id ID `json:"id"`
	// the name of the load balancer
	Name NullString `json:"name"`
	// the id of the guest network the lb rule belongs to
	NetworkId ID `json:"networkid"`
	// the private port
	PrivatePort NullString `json:"privateport"`
	// the project name of the load balancer
	Project NullString `json:"project"`
	// the project id of the load balancer
	ProjectId ID `json:"projectid"`
	// the protocol of the loadbalanacer rule
	Protocol NullString `json:"protocol"`
	// the public ip address
	PublicIp NullString `json:"publicip"`
	// the public ip address id
	PublicIpId ID `json:"publicipid"`
	// the public port
	PublicPort NullString `json:"publicport"`
	// the state of the rule
	State NullString `json:"state"`
	// the list of resource tags associated with load balancer
	Tags []Tag `json:"tags"`
	// the id of the zone the rule belongs to
	ZoneId ID `json:"zoneid"`
}

type LoadBalancerRuleInstance

type LoadBalancerRuleInstance struct {
	ResourceBase
	// IP addresses of the vm set of lb rule
	LbVmIpAddresses []NullString `json:"lbvmipaddresses"`
	// the user vm set for lb rule
	LoadBalancerRuleInstance NullString `json:"loadbalancerruleinstance"`
}

type LockAccountParameter

type LockAccountParameter struct {
	// Locks the specified account.
	Account NullString
	// Locks the specified account on this domain.
	DomainId ID
}

LockAccount represents the paramter of LockAccount

func NewLockAccountParameter

func NewLockAccountParameter(account string, domainid string) (p *LockAccountParameter)

type LockUserParameter

type LockUserParameter struct {
	// Locks user by user ID.
	Id ID
}

LockUser represents the paramter of LockUser

func NewLockUserParameter

func NewLockUserParameter(id string) (p *LockUserParameter)

type LogInResponse

type LogInResponse struct {
	Username       NullString `json:"username"`
	UserId         ID         `json:"userid"`
	Password       NullString `json:"password"`
	DomainId       ID         `json:"domainid"`
	Timeout        NullString `json:"timeout"`
	Account        NullString `json:"account"`
	FirstName      NullString `json:"firstname"`
	LastName       NullString `json:"lastname"`
	Type           NullString `json:"type"`
	TimeZone       NullString `json:"timezone"`
	TimeZoneOffset NullString `json:"timezoneoffset"`
	SessionKey     NullString `json:"sessionkey"`
}

type LogOutResponse

type LogOutResponse struct {
	Description NullString `json:"description"`
}

type MarkDefaultZoneForAccountParameter

type MarkDefaultZoneForAccountParameter struct {
	// Name of the account that is to be marked.
	Account NullString
	// Marks the account that belongs to the specified domain.
	DomainId ID
	// The Zone ID with which the account is to be marked.
	ZoneId ID
}

MarkDefaultZoneForAccount represents the paramter of MarkDefaultZoneForAccount

func NewMarkDefaultZoneForAccountParameter

func NewMarkDefaultZoneForAccountParameter(account string, domainid string, zoneid string) (p *MarkDefaultZoneForAccountParameter)

type MigrateVirtualMachineParameter

type MigrateVirtualMachineParameter struct {
	// Destination Host ID to migrate VM to. Required for live migrating a VM from
	// host to host
	HostId ID
	// Destination storage pool ID to migrate VM volumes to. Required for migrating
	// the root disk volume
	StorageId ID
	// the ID of the virtual machine
	VirtualMachineId ID
}

MigrateVirtualMachine represents the paramter of MigrateVirtualMachine

func NewMigrateVirtualMachineParameter

func NewMigrateVirtualMachineParameter(virtualmachineid string) (p *MigrateVirtualMachineParameter)

type MigrateVirtualMachineWithVolumeParameter

type MigrateVirtualMachineWithVolumeParameter struct {
	// Destination Host ID to migrate VM to.
	HostId ID
	// Map of pool to which each volume should be migrated (volume/pool pair)
	MigrateTo map[string]string
	// the ID of the virtual machine
	VirtualMachineId ID
}

MigrateVirtualMachineWithVolume represents the paramter of MigrateVirtualMachineWithVolume

func NewMigrateVirtualMachineWithVolumeParameter

func NewMigrateVirtualMachineWithVolumeParameter(hostid string, virtualmachineid string) (p *MigrateVirtualMachineWithVolumeParameter)

type MigrateVolumeParameter

type MigrateVolumeParameter struct {
	// if the volume should be live migrated when it is attached to a running vm
	LiveMigrate NullBool
	// destination storage pool ID to migrate the volume to
	StorageId ID
	// the ID of the volume
	VolumeId ID
}

MigrateVolume represents the paramter of MigrateVolume

func NewMigrateVolumeParameter

func NewMigrateVolumeParameter(storageid string, volumeid string) (p *MigrateVolumeParameter)

type Network

type Network struct {
	ResourceBase
	// the owner of the network
	Account NullString `json:"account"`
	// ACL Id associated with the VPC network
	AclId ID `json:"aclid"`
	// acl type - access type to the network
	AclType NullString `json:"acltype"`
	// Broadcast domain type of the network
	BroadcastDomainType NullString `json:"broadcastdomaintype"`
	// broadcast uri of the network. This parameter is visible to ROOT admins only
	BroadcastUri NullString `json:"broadcasturi"`
	// list networks available for vm deployment
	CanUseForDeploy NullBool `json:"canusefordeploy"`
	// Cloudstack managed address space, all CloudStack managed VMs get IP address
	// from CIDR
	Cidr NullString `json:"cidr"`
	// an optional field, whether to the display the network to the end user or not.
	DisplayNetwork NullBool `json:"displaynetwork"`
	// the displaytext of the network
	DisplayText NullString `json:"displaytext"`
	// the first DNS for the network
	Dns1 NullString `json:"dns1"`
	// the second DNS for the network
	Dns2 NullString `json:"dns2"`
	// the domain name of the network owner
	Domain NullString `json:"domain"`
	// the domain id of the network owner
	DomainId ID `json:"domainid"`
	// the network's gateway
	Gateway NullString `json:"gateway"`
	// the id of the network
	Id ID `json:"id"`
	// the cidr of IPv6 network
	Ip6Cidr NullString `json:"ip6cidr"`
	// the gateway of IPv6 network
	Ip6Gateway NullString `json:"ip6gateway"`
	// true if network is default, false otherwise
	IsDefault NullBool `json:"isdefault"`
	// list networks that are persistent
	IsPersistent NullBool `json:"ispersistent"`
	// true if network is system, false otherwise
	IsSystem NullBool `json:"issystem"`
	// the name of the network
	Name NullString `json:"name"`
	// the network's netmask
	Netmask NullString `json:"netmask"`
	// the network CIDR of the guest network configured with IP reservation. It is
	// the summation of CIDR and RESERVED_IP_RANGE
	NetworkCidr NullString `json:"networkcidr"`
	// the network domain
	NetworkDomain NullString `json:"networkdomain"`
	// availability of the network offering the network is created from
	NetworkOfferingAvailability NullString `json:"networkofferingavailability"`
	// true if network offering is ip conserve mode enabled
	NetworkOfferingconserveMode NullBool `json:"networkofferingconservemode"`
	// display text of the network offering the network is created from
	NetworkOfferingDisplayText NullString `json:"networkofferingdisplaytext"`
	// network offering id the network is created from
	NetworkOfferingId ID `json:"networkofferingid"`
	// name of the network offering the network is created from
	NetworkOfferingName NullString `json:"networkofferingname"`
	// the physical network id
	PhysicalNetworkId ID `json:"physicalnetworkid"`
	// the project name of the address
	Project NullString `json:"project"`
	// the project id of the ipaddress
	ProjectId ID `json:"projectid"`
	// related to what other network configuration
	Related NullString `json:"related"`
	// the network's IP range not to be used by CloudStack guest VMs and can be used
	// for non CloudStack purposes
	ReservedIpRange NullString `json:"reservediprange"`
	// true network requires restart
	ReStartRequired NullBool `json:"restartrequired"`
	// the list of services
	Service []NetworkService `json:"service"`
	// true if network supports specifying ip ranges, false otherwise
	SpecifyIpRanges NullBool `json:"specifyipranges"`
	// state of the network
	State NullString `json:"state"`
	// true if network can span multiple zones
	StrechedL2Subnet NullBool `json:"strechedl2subnet"`
	// true if users from subdomains can access the domain level network
	SubDomainAccess NullBool `json:"subdomainaccess"`
	// the list of resource tags associated with network
	Tags []Tag `json:"tags"`
	// the traffic type of the network
	TrafficType NullString `json:"traffictype"`
	// the type of the network
	Type NullString `json:"type"`
	// The vlan of the network. This parameter is visible to ROOT admins only
	Vlan NullString `json:"vlan"`
	// VPC the network belongs to
	VpcId ID `json:"vpcid"`
	// zone id of the network
	ZoneId ID `json:"zoneid"`
	// the name of the zone the network belongs to
	ZoneName NullString `json:"zonename"`
	// If a network is enabled for 'streched l2 subnet' then represents zones on
	// which network currently spans
	ZonesNetworkspans []NullString `json:"zonesnetworkspans"`
}

type NetworkOffering

type NetworkOffering struct {
	ResourceBase
	// availability of the network offering
	Availability NullString `json:"availability"`
	// true if network offering is ip conserve mode enabled
	ConserveMode NullBool `json:"conservemode"`
	// the date this network offering was created
	Created NullString `json:"created"`
	// additional key/value details tied with network offering
	Details NullString `json:"details"`
	// an alternate display text of the network offering.
	DisplayText NullString `json:"displaytext"`
	// true if guest network default egress policy is allow; false if default egress
	// policy is deny
	EgressDefaultPolicy NullBool `json:"egressdefaultpolicy"`
	// true if network offering can be used by VPC networks only
	ForVpc NullBool `json:"forvpc"`
	// guest type of the network offering, can be Shared or Isolated
	GuestIpType NullString `json:"guestiptype"`
	// the id of the network offering
	Id ID `json:"id"`
	// true if network offering is default, false otherwise
	IsDefault NullBool `json:"isdefault"`
	// true if network offering supports persistent networks, false otherwise
	IsPersistent NullBool `json:"ispersistent"`
	// maximum number of concurrents connections to be handled by lb
	MaxConnections NullNumber `json:"maxconnections"`
	// the name of the network offering
	Name NullString `json:"name"`
	// data transfer rate in megabits per second allowed.
	NetworkRate NullNumber `json:"networkrate"`
	// the list of supported services
	Service []NetworkService `json:"service"`
	// the ID of the service offering used by virtual router provider
	ServiceOfferingId ID `json:"serviceofferingid"`
	// true if network offering supports specifying ip ranges, false otherwise
	SpecifyIpRanges NullBool `json:"specifyipranges"`
	// true if network offering supports vlans, false otherwise
	SpecifyVlan NullBool `json:"specifyvlan"`
	// state of the network offering. Can be Disabled/Enabled/Inactive
	State NullString `json:"state"`
	// true if network offering supports network that span multiple zones
	SupportsStrechedL2Subnet NullBool `json:"supportsstrechedl2subnet"`
	// the tags for the network offering
	Tags NullString `json:"tags"`
	// the traffic type for the network offering, supported types are Public,
	// Management, Control, Guest, Vlan or Storage.
	TrafficType NullString `json:"traffictype"`
}

type NetworkService

type NetworkService struct {
	ResourceBase
	// the list of capabilities
	Capability []NetworkServiceCapability `json:"capability"`
	// the service name
	Name NullString `json:"name"`
	// the service provider name
	Provider []NetworkServiceProvider `json:"provider"`
}

type NetworkServiceCapability

type NetworkServiceCapability struct {
	// the capability name
	Name NullString `json:"name"`
	// the capability value
	Value NullString `json:"value"`
	// can this service capability value can be choosable while creatine network offerings
	CanChooseServiceCapability NullBool `json:"canchooseservicecapability"`
}

type NetworkServiceProvider

type NetworkServiceProvider struct {
	ResourceBase
	// true if individual services can be enabled/disabled
	CanEnableIndividualService NullBool `json:"canenableindividualservice"`
	// the destination physical network
	DestinationPhysicalNetworkId ID `json:"destinationphysicalnetworkid"`
	// uuid of the network provider
	Id ID `json:"id"`
	// the provider name
	Name NullString `json:"name"`
	// the physical network this belongs to
	PhysicalNetworkId ID `json:"physicalnetworkid"`
	// services for this provider
	ServiceList []NullString `json:"servicelist"`
	// state of the network provider
	State NullString `json:"state"`
}

type Nic

type Nic struct {
	ResourceBase
	// the broadcast uri of the nic
	BroadcastUri NullString `json:"broadcasturi"`
	// device id for the network when plugged into the virtual machine
	DeviceId ID `json:"deviceid"`
	// the gateway of the nic
	Gateway NullString `json:"gateway"`
	// the ID of the nic
	Id ID `json:"id"`
	// the IPv6 address of network
	Ip6Address NullString `json:"ip6address"`
	// the cidr of IPv6 network
	Ip6Cidr NullString `json:"ip6cidr"`
	// the gateway of IPv6 network
	Ip6Gateway NullString `json:"ip6gateway"`
	// the ip address of the nic
	IpAddress NullString `json:"ipaddress"`
	// true if nic is default, false otherwise
	IsDefault NullBool `json:"isdefault"`
	// the isolation uri of the nic
	IsolationUri NullString `json:"isolationuri"`
	// true if nic is default, false otherwise
	MacAddress NullString `json:"macaddress"`
	// the netmask of the nic
	Netmask NullString `json:"netmask"`
	// the ID of the corresponding network
	NetworkId ID `json:"networkid"`
	// the name of the corresponding network
	NetworkName NullString `json:"networkname"`
	// the Secondary ipv4 addr of nic
	SecondaryIp []NullString `json:"secondaryip"`
	// the traffic type of the nic
	TrafficType NullString `json:"traffictype"`
	// the type of the nic
	Type NullString `json:"type"`
	// Id of the vm to which the nic belongs
	VirtualMachineId ID `json:"virtualmachineid"`
}

type NullBase

type NullBase struct {
	// contains filtered or unexported fields
}

Base struct of Nullable

func (NullBase) IsNil

func (nb NullBase) IsNil() bool

Check if value is nil.

func (NullBase) MarshalJSON

func (n NullBase) MarshalJSON() ([]byte, error)

func (*NullBase) Set

func (nb *NullBase) Set(value interface{}) error

Set value. If nil is given, value is cleared.

func (NullBase) String

func (nb NullBase) String() string

Return Value as String. If no value is set, return "null".

func (*NullBase) UnmarshalJSON

func (nb *NullBase) UnmarshalJSON(b []byte) error

func (NullBase) Value

func (nb NullBase) Value() interface{}

Return Value. If no value is set, return nil.

type NullBool

type NullBool struct {
	NullBase
}

Nullable Bool

func (NullBool) Bool

func (nb NullBool) Bool() bool

Return Value as bool

func (*NullBool) Set

func (nb *NullBool) Set(value interface{}) error

Set Value. Value is converted by strconv.ParseBool

func (*NullBool) UnmarshalJSON

func (nb *NullBool) UnmarshalJSON(b []byte) error

type NullNumber

type NullNumber struct {
	NullString
}

Nullable Number Value is stored as string.

func (NullNumber) Float64

func (nn NullNumber) Float64() (float64, error)

Return Value as float64

func (NullNumber) Int64

func (nn NullNumber) Int64() (int64, error)

Return Value as int64

func (NullNumber) MarshalJSON

func (nn NullNumber) MarshalJSON() ([]byte, error)

func (*NullNumber) Set

func (nn *NullNumber) Set(value interface{}) error

Set Value. Value is converted to string by fmt.Sprint

func (NullNumber) UInt64

func (nn NullNumber) UInt64() (uint64, error)

Return Value as uint64

func (*NullNumber) UnmarshalJSON

func (nn *NullNumber) UnmarshalJSON(b []byte) error

type NullString

type NullString struct {
	NullBase
}

Nullable String

func (*NullString) Set

func (ns *NullString) Set(value interface{}) error

Set Value. Value is converted by fmt.Sprint

func (*NullString) UnmarshalJSON

func (ns *NullString) UnmarshalJSON(b []byte) error

type Nullable

type Nullable interface {
	Value() interface{}
	String() string
	IsNil() bool
}

type Pod

type Pod struct {
	ResourceBase
	// the allocation state of the Pod
	AllocationState NullString `json:"allocationstate"`
	// the capacity of the Pod
	Capacity []Capacity `json:"capacity"`
	// the ending IP for the Pod
	EndIp NullString `json:"endip"`
	// the gateway of the Pod
	Gateway NullString `json:"gateway"`
	// the ID of the Pod
	Id ID `json:"id"`
	// the name of the Pod
	Name NullString `json:"name"`
	// the netmask of the Pod
	Netmask NullString `json:"netmask"`
	// the starting IP for the Pod
	StartIp NullString `json:"startip"`
	// the Zone ID of the Pod
	ZoneId ID `json:"zoneid"`
	// the Zone name of the Pod
	ZoneName NullString `json:"zonename"`
}

type PortForwardingRule

type PortForwardingRule struct {
	ResourceBase
	// the cidr list to forward traffic from
	CidrList NullString `json:"cidrlist"`
	// is firewall for display to the regular user
	ForDisplay NullBool `json:"fordisplay"`
	// the ID of the port forwarding rule
	Id ID `json:"id"`
	// the public ip address for the port forwarding rule
	IpAddress NullString `json:"ipaddress"`
	// the public ip address id for the port forwarding rule
	IpAddressId ID `json:"ipaddressid"`
	// the id of the guest network the port forwarding rule belongs to
	NetworkId ID `json:"networkid"`
	// the ending port of port forwarding rule's private port range
	PrivateEndPort NullString `json:"privateendport"`
	// the starting port of port forwarding rule's private port range
	PrivatePort NullString `json:"privateport"`
	// the protocol of the port forwarding rule
	Protocol NullString `json:"protocol"`
	// the ending port of port forwarding rule's private port range
	PublicEndPort NullString `json:"publicendport"`
	// the starting port of port forwarding rule's public port range
	PublicPort NullString `json:"publicport"`
	// the state of the rule
	State NullString `json:"state"`
	// the list of resource tags associated with the rule
	Tags []Tag `json:"tags"`
	// the VM display name for the port forwarding rule
	VirtualMachineDisplayName NullString `json:"virtualmachinedisplayname"`
	// the VM ID for the port forwarding rule
	VirtualMachineId ID `json:"virtualmachineid"`
	// the VM name for the port forwarding rule
	VirtualMachineName NullString `json:"virtualmachinename"`
	// the vm ip address for the port forwarding rule
	VmGuestIp NullString `json:"vmguestip"`
}

type PrepareHostForMaintenanceParameter

type PrepareHostForMaintenanceParameter struct {
	// the host ID
	Id ID
}

PrepareHostForMaintenance represents the paramter of PrepareHostForMaintenance

func NewPrepareHostForMaintenanceParameter

func NewPrepareHostForMaintenanceParameter(id string) (p *PrepareHostForMaintenanceParameter)

type PrepareTemplateParameter

type PrepareTemplateParameter struct {
	// template ID of the template to be prepared in primary storage(s).
	TemplateId ID
	// zone ID of the template to be prepared in primary storage(s).
	ZoneId ID
}

PrepareTemplate represents the paramter of PrepareTemplate

func NewPrepareTemplateParameter

func NewPrepareTemplateParameter(templateid string, zoneid string) (p *PrepareTemplateParameter)

type Project

type Project struct {
	ResourceBase
	// the account name of the project's owner
	Account NullString `json:"account"`
	// the total number of cpu cores available to be created for this project
	CpuAvailable NullString `json:"cpuavailable"`
	// the total number of cpu cores the project can own
	CpuLimit NullString `json:"cpulimit"`
	// the total number of cpu cores owned by project
	CpuTotal NullNumber `json:"cputotal"`
	// the displaytext of the project
	DisplayText NullString `json:"displaytext"`
	// the domain name where the project belongs to
	Domain NullString `json:"domain"`
	// the domain id the project belongs to
	DomainId ID `json:"domainid"`
	// the id of the project
	Id ID `json:"id"`
	// the total number of public ip addresses available for this project to acquire
	IpAvailable NullString `json:"ipavailable"`
	// the total number of public ip addresses this project can acquire
	IpLimit NullString `json:"iplimit"`
	// the total number of public ip addresses allocated for this project
	IpTotal NullNumber `json:"iptotal"`
	// the total memory (in MB) available to be created for this project
	MemoryAvailable NullString `json:"memoryavailable"`
	// the total memory (in MB) the project can own
	MemoryLimit NullString `json:"memorylimit"`
	// the total memory (in MB) owned by project
	MemoryTotal NullNumber `json:"memorytotal"`
	// the name of the project
	Name NullString `json:"name"`
	// the total number of networks available to be created for this project
	NetworkAvailable NullString `json:"networkavailable"`
	// the total number of networks the project can own
	NetworkLimit NullString `json:"networklimit"`
	// the total number of networks owned by project
	NetworkTotal NullNumber `json:"networktotal"`
	// the total primary storage space (in GiB) available to be used for this
	// project
	PrimaryStorageAvailable NullString `json:"primarystorageavailable"`
	// the total primary storage space (in GiB) the project can own
	PrimaryStorageLimit NullString `json:"primarystoragelimit"`
	// the total primary storage space (in GiB) owned by project
	PrimaryStorageTotal NullNumber `json:"primarystoragetotal"`
	// the total secondary storage space (in GiB) available to be used for this
	// project
	SecondaryStorageAvailable NullString `json:"secondarystorageavailable"`
	// the total secondary storage space (in GiB) the project can own
	SecondaryStorageLimit NullString `json:"secondarystoragelimit"`
	// the total secondary storage space (in GiB) owned by project
	SecondaryStorageTotal NullNumber `json:"secondarystoragetotal"`
	// the total number of snapshots available for this project
	SnapshotAvailable NullString `json:"snapshotavailable"`
	// the total number of snapshots which can be stored by this project
	SnapshotLimit NullString `json:"snapshotlimit"`
	// the total number of snapshots stored by this project
	SnapshotTotal NullNumber `json:"snapshottotal"`
	// the state of the project
	State NullString `json:"state"`
	// the list of resource tags associated with vm
	Tags []Tag `json:"tags"`
	// the total number of templates available to be created by this project
	TemplateAvailable NullString `json:"templateavailable"`
	// the total number of templates which can be created by this project
	TemplateLimit NullString `json:"templatelimit"`
	// the total number of templates which have been created by this project
	TemplateTotal NullNumber `json:"templatetotal"`
	// the total number of virtual machines available for this project to acquire
	VmAvailable NullString `json:"vmavailable"`
	// the total number of virtual machines that can be deployed by this project
	VmLimit NullString `json:"vmlimit"`
	// the total number of virtual machines running for this project
	VmRunning NullNumber `json:"vmrunning"`
	// the total number of virtual machines stopped for this project
	VmStopped NullNumber `json:"vmstopped"`
	// the total number of virtual machines deployed by this project
	VmTotal NullNumber `json:"vmtotal"`
	// the total volume available for this project
	VolumeAvailable NullString `json:"volumeavailable"`
	// the total volume which can be used by this project
	VolumeLimit NullString `json:"volumelimit"`
	// the total volume being used by this project
	VolumeTotal NullNumber `json:"volumetotal"`
	// the total number of vpcs available to be created for this project
	VpcAvailable NullString `json:"vpcavailable"`
	// the total number of vpcs the project can own
	VpcLimit NullString `json:"vpclimit"`
	// the total number of vpcs owned by project
	VpcTotal NullNumber `json:"vpctotal"`
}

type ProjectAccount

type ProjectAccount struct {
	ResourceBase
	// project id
	ProjectId ID `json:"projectid"`
	// project name
	Project NullString `json:"project"`
	// the id of the account
	AccountId ID `json:"accountid"`
	// the name of the account
	Account NullString `json:"account"`
	// account type (admin, domain-admin, user)
	AccountType NullNumber `json:"accounttype"`
	// account role in the project (regular,owner)
	Role NullString `json:"role"`
	// id of the Domain the account belongs too
	DomainId ID `json:"domainid"`
	// name of the Domain the account belongs too
	Domain NullString `json:"domain"`
	// the list of users associated with account
	User []User `json:"user"`
}

type ProjectInvitation

type ProjectInvitation struct {
	ResourceBase
	// the account name of the project's owner
	Account NullString `json:"account"`
	// the domain name where the project belongs to
	Domain NullString `json:"domain"`
	// the domain id the project belongs to
	DomainId ID `json:"domainid"`
	// the email the invitation was sent to
	Email NullString `json:"email"`
	// the id of the invitation
	Id ID `json:"id"`
	// the name of the project
	Project NullString `json:"project"`
	// the id of the project
	ProjectId ID `json:"projectid"`
	// the invitation state
	State NullString `json:"state"`
}

type PublicIpAddress

type PublicIpAddress struct {
	ResourceBase
	// the account the public IP address is associated with
	Account NullString `json:"account"`
	// date the public IP address was acquired
	Allocated NullString `json:"allocated"`
	// the ID of the Network associated with the IP address
	AssociatedNetworkId ID `json:"associatednetworkid"`
	// the name of the Network associated with the IP address
	AssociatedNetworkName NullString `json:"associatednetworkname"`
	// the domain the public IP address is associated with
	Domain NullString `json:"domain"`
	// the domain ID the public IP address is associated with
	DomainId ID `json:"domainid"`
	// is public ip for display to the regular user
	ForDisplay NullBool `json:"fordisplay"`
	// the virtual network for the IP address
	ForVirtualNetwork NullBool `json:"forvirtualnetwork"`
	// public IP address id
	Id ID `json:"id"`
	// public IP address
	IpAddress NullString `json:"ipaddress"`
	// is public IP portable across the zones
	IsPortable NullBool `json:"isportable"`
	// true if the IP address is a source nat address, false otherwise
	IsSourceNat NullBool `json:"issourcenat"`
	// true if this ip is for static nat, false otherwise
	IsStaticNat NullBool `json:"isstaticnat"`
	// true if this ip is system ip (was allocated as a part of deployVm or
	// createLbRule)
	IsSystem NullBool `json:"issystem"`
	// the ID of the Network where ip belongs to
	NetworkId ID `json:"networkid"`
	// the physical network this belongs to
	PhysicalNetworkId ID `json:"physicalnetworkid"`
	// the project name of the address
	Project NullString `json:"project"`
	// the project id of the ipaddress
	ProjectId ID `json:"projectid"`
	// purpose of the IP address. In Acton this value is not null for Ips with
	// isSystem=true, and can have either StaticNat or LB value
	Purpose NullString `json:"purpose"`
	// State of the ip address. Can be: Allocatin, Allocated and Releasing
	State NullString `json:"state"`
	// the list of resource tags associated with ip address
	Tags []Tag `json:"tags"`
	// virutal machine display name the ip address is assigned to (not null only for
	// static nat Ip)
	VirtualMachineDisplayName NullString `json:"virtualmachinedisplayname"`
	// virutal machine id the ip address is assigned to (not null only for static
	// nat Ip)
	VirtualMachineId ID `json:"virtualmachineid"`
	// virutal machine name the ip address is assigned to (not null only for static
	// nat Ip)
	VirtualMachineName NullString `json:"virtualmachinename"`
	// the ID of the VLAN associated with the IP address. This parameter is visible
	// to ROOT admins only
	VlanId ID `json:"vlanid"`
	// the VLAN associated with the IP address
	VlanName NullString `json:"vlanname"`
	// virutal machine (dnat) ip address (not null only for static nat Ip)
	VmIpAddress NullString `json:"vmipaddress"`
	// VPC the ip belongs to
	VpcId ID `json:"vpcid"`
	// the ID of the zone the public IP address belongs to
	ZoneId ID `json:"zoneid"`
	// the name of the zone the public IP address belongs to
	ZoneName NullString `json:"zonename"`
}

type RebootVirtualMachineParameter

type RebootVirtualMachineParameter struct {
	// The ID of the virtual machine
	Id ID
}

RebootVirtualMachine represents the paramter of RebootVirtualMachine

func NewRebootVirtualMachineParameter

func NewRebootVirtualMachineParameter(id string) (p *RebootVirtualMachineParameter)

type ReconnectHostParameter

type ReconnectHostParameter struct {
	// the host ID
	Id ID
}

ReconnectHost represents the paramter of ReconnectHost

func NewReconnectHostParameter

func NewReconnectHostParameter(id string) (p *ReconnectHostParameter)

type RecoverVirtualMachineParameter

type RecoverVirtualMachineParameter struct {
	// The ID of the virtual machine
	Id ID
}

RecoverVirtualMachine represents the paramter of RecoverVirtualMachine

func NewRecoverVirtualMachineParameter

func NewRecoverVirtualMachineParameter(id string) (p *RecoverVirtualMachineParameter)

type RegisterTemplateParameter

type RegisterTemplateParameter struct {
	// an optional accountName. Must be used with domainId.
	Account NullString
	// 32 or 64 bits support. 64 by default
	Bits NullNumber
	// the MD5 checksum value of this template
	Checksum NullString
	// Template details in key/value pairs.
	Details map[string]string
	// the display text of the template. This is usually used for display purposes.
	DisplayText NullString
	// an optional domainId. If the account parameter is used, domainId must also be
	// used.
	DomainId ID
	// the format for the template. Possible values include QCOW2, RAW, VHD and OVA.
	Format NullString
	// the target hypervisor for the template
	Hypervisor NullString
	// true if template contains XS/VMWare tools inorder to support dynamic scaling
	// of VM cpu/memory
	IsDynamicallyScalable NullBool
	// true if the template or its derivatives are extractable; default is false
	IsExtractable NullBool
	// true if this template is a featured template, false otherwise
	IsFeatured NullBool
	// true if the template is available to all accounts; default is true
	IsPublic NullBool
	// true if the template type is routing i.e., if template is used to deploy
	// router
	IsRouting NullBool
	// the name of the template
	Name NullString
	// the ID of the OS Type that best represents the OS of this template.
	OsTypeId ID
	// true if the template supports the password reset feature; default is false
	PasswordEnabled NullBool
	// Register template for the project
	ProjectId ID
	// true if this template requires HVM
	RequiresHvm NullBool
	// true if the template supports the sshkey upload feature; default is false
	SshKeyEnabled NullBool
	// the tag for this template.
	Templatetag NullString
	// the URL of where the template is hosted. Possible URL include http:// and
	// https://
	Url NullString
	// the ID of the zone the template is to be hosted on
	ZoneId ID
}

RegisterTemplate represents the paramter of RegisterTemplate

func NewRegisterTemplateParameter

func NewRegisterTemplateParameter(displaytext string, format string, hypervisor string, name string, ostypeid string, url string, zoneid string) (p *RegisterTemplateParameter)

type RegisterUserKeysParameter

type RegisterUserKeysParameter struct {
	// User id
	Id ID
}

RegisterUserKeys represents the paramter of RegisterUserKeys

func NewRegisterUserKeysParameter

func NewRegisterUserKeysParameter(id string) (p *RegisterUserKeysParameter)

type ReleaseDedicatedClusterParameter

type ReleaseDedicatedClusterParameter struct {
	// the ID of the Cluster
	ClusterId ID
}

ReleaseDedicatedCluster represents the paramter of ReleaseDedicatedCluster

func NewReleaseDedicatedClusterParameter

func NewReleaseDedicatedClusterParameter(clusterid string) (p *ReleaseDedicatedClusterParameter)

type ReleaseDedicatedHostParameter

type ReleaseDedicatedHostParameter struct {
	// the ID of the host
	HostId ID
}

ReleaseDedicatedHost represents the paramter of ReleaseDedicatedHost

func NewReleaseDedicatedHostParameter

func NewReleaseDedicatedHostParameter(hostid string) (p *ReleaseDedicatedHostParameter)

type ReleaseDedicatedPodParameter

type ReleaseDedicatedPodParameter struct {
	// the ID of the Pod
	PodId ID
}

ReleaseDedicatedPod represents the paramter of ReleaseDedicatedPod

func NewReleaseDedicatedPodParameter

func NewReleaseDedicatedPodParameter(podid string) (p *ReleaseDedicatedPodParameter)

type ReleaseHostReservationParameter

type ReleaseHostReservationParameter struct {
	// the host ID
	Id ID
}

ReleaseHostReservation represents the paramter of ReleaseHostReservation

func NewReleaseHostReservationParameter

func NewReleaseHostReservationParameter(id string) (p *ReleaseHostReservationParameter)

type RemoveFromLoadBalancerRuleParameter

type RemoveFromLoadBalancerRuleParameter struct {
	// The ID of the load balancer rule
	Id ID
	// the list of IDs of the virtual machines that are being removed from the load
	// balancer rule (i.e. virtualMachineIds=1,2,3)
	VirtualMachineIds []string
	// VM ID and IP map, vmidipmap[0].vmid=1 vmidipmap[0].ip=10.1.1.75
	VmIdIpmap map[string]string
}

RemoveFromLoadBalancerRule represents the paramter of RemoveFromLoadBalancerRule

func NewRemoveFromLoadBalancerRuleParameter

func NewRemoveFromLoadBalancerRuleParameter(id string) (p *RemoveFromLoadBalancerRuleParameter)

type RemoveNicFromVirtualMachineParameter

type RemoveNicFromVirtualMachineParameter struct {
	// NIC ID
	NicId ID
	// Virtual Machine ID
	VirtualMachineId ID
}

RemoveNicFromVirtualMachine represents the paramter of RemoveNicFromVirtualMachine

func NewRemoveNicFromVirtualMachineParameter

func NewRemoveNicFromVirtualMachineParameter(nicid string, virtualmachineid string) (p *RemoveNicFromVirtualMachineParameter)

type ResetPasswordForVirtualMachineParameter

type ResetPasswordForVirtualMachineParameter struct {
	// The ID of the virtual machine
	Id ID
}

ResetPasswordForVirtualMachine represents the paramter of ResetPasswordForVirtualMachine

func NewResetPasswordForVirtualMachineParameter

func NewResetPasswordForVirtualMachineParameter(id string) (p *ResetPasswordForVirtualMachineParameter)

type ResizeVolumeParameter

type ResizeVolumeParameter struct {
	// new disk offering id
	DiskOfferingId ID
	// the ID of the disk volume
	Id ID
	// New maximum number of IOPS
	MaxIops NullNumber
	// New minimum number of IOPS
	MinIops NullNumber
	// Verify OK to Shrink
	ShrinkOk NullBool
	// New volume size in GB
	Size NullNumber
}

ResizeVolume represents the paramter of ResizeVolume

func NewResizeVolumeParameter

func NewResizeVolumeParameter(id string) (p *ResizeVolumeParameter)

type Resource

type Resource interface {
	// refresh information about the resource
	Refresh() error
	// update the resource with specified args
	Update(args map[string]interface{}) error
	// delete the resource
	Delete() error
	// contains filtered or unexported methods
}

type ResourceBase

type ResourceBase struct {
	// contains filtered or unexported fields
}

func (*ResourceBase) Delete

func (*ResourceBase) Delete() error

func (*ResourceBase) Refresh

func (*ResourceBase) Refresh() error

func (*ResourceBase) Update

func (*ResourceBase) Update(map[string]interface{}) error

type RestartNetworkParameter

type RestartNetworkParameter struct {
	// If cleanup old network elements
	Cleanup NullBool
	// The id of the network to restart.
	Id ID
}

RestartNetwork represents the paramter of RestartNetwork

func NewRestartNetworkParameter

func NewRestartNetworkParameter(id string) (p *RestartNetworkParameter)

type RestoreVirtualMachineParameter

type RestoreVirtualMachineParameter struct {
	// 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
	TemplateId ID
	// Virtual Machine ID
	VirtualMachineId ID
}

RestoreVirtualMachine represents the paramter of RestoreVirtualMachine

func NewRestoreVirtualMachineParameter

func NewRestoreVirtualMachineParameter(virtualmachineid string) (p *RestoreVirtualMachineParameter)

type Result

type Result struct {
	ResourceBase
	// any text associated with the success or failure
	DisplayText NullString `json:"displaytext"`
	// true if operation is executed successfully
	Success NullBool `json:"success"`
}

type RevokeSecurityGroupEgressParameter

type RevokeSecurityGroupEgressParameter struct {
	// The ID of the egress rule
	Id ID
}

RevokeSecurityGroupEgress represents the paramter of RevokeSecurityGroupEgress

func NewRevokeSecurityGroupEgressParameter

func NewRevokeSecurityGroupEgressParameter(id string) (p *RevokeSecurityGroupEgressParameter)

type RevokeSecurityGroupIngressParameter

type RevokeSecurityGroupIngressParameter struct {
	// The ID of the ingress rule
	Id ID
}

RevokeSecurityGroupIngress represents the paramter of RevokeSecurityGroupIngress

func NewRevokeSecurityGroupIngressParameter

func NewRevokeSecurityGroupIngressParameter(id string) (p *RevokeSecurityGroupIngressParameter)

type ScaleVirtualMachineParameter

type ScaleVirtualMachineParameter struct {
	// name value pairs of custom parameters for cpu,memory and cpunumber. example
	// details[i].name=value
	Details map[string]string
	// The ID of the virtual machine
	Id ID
	// the ID of the service offering for the virtual machine
	ServiceOfferingId ID
}

ScaleVirtualMachine represents the paramter of ScaleVirtualMachine

func NewScaleVirtualMachineParameter

func NewScaleVirtualMachineParameter(id string, serviceofferingid string) (p *ScaleVirtualMachineParameter)

type SecurityGroup

type SecurityGroup struct {
	ResourceBase
	// the account owning the security group
	Account NullString `json:"account"`
	// the description of the security group
	Description NullString `json:"description"`
	// the domain name of the security group
	Domain NullString `json:"domain"`
	// the domain ID of the security group
	DomainId ID `json:"domainid"`
	// the list of egress rules associated with the security group
	EgressRule []SecurityGroupEgress `json:"egressrule"`
	// the ID of the security group
	Id ID `json:"id"`
	// the list of ingress rules associated with the security group
	IngressRule []SecurityGroupIngress `json:"ingressrule"`
	// the name of the security group
	Name NullString `json:"name"`
	// the project name of the group
	Project NullString `json:"project"`
	// the project id of the group
	ProjectId ID `json:"projectid"`
	// the list of resource tags associated with the rule
	Tags []Tag `json:"tags"`
}

type SecurityGroupEgress

type SecurityGroupEgress struct {
	ResourceBase
	// account owning the security group rule
	Account NullString `json:"account"`
	// the CIDR notation for the base IP address of the security group rule
	Cidr NullString `json:"cidr"`
	// the ending IP of the security group rule
	EndPort NullNumber `json:"endport"`
	// the code for the ICMP message response
	IcmpCode NullNumber `json:"icmpcode"`
	// the type of the ICMP message response
	IcmpType NullNumber `json:"icmptype"`
	// the protocol of the security group rule
	Protocol NullString `json:"protocol"`
	// the id of the security group rule
	RuleId ID `json:"ruleid"`
	// security group name
	SecurityGroupName NullString `json:"securitygroupname"`
	// the starting IP of the security group rule
	StartPort NullNumber `json:"startport"`
	// the list of resource tags associated with the rule
	Tags []Tag `json:"tags"`
}

type SecurityGroupIngress

type SecurityGroupIngress struct {
	ResourceBase
	// account owning the security group rule
	Account NullString `json:"account"`
	// the CIDR notation for the base IP address of the security group rule
	Cidr NullString `json:"cidr"`
	// the ending IP of the security group rule
	EndPort NullNumber `json:"endport"`
	// the code for the ICMP message response
	IcmpCode NullNumber `json:"icmpcode"`
	// the type of the ICMP message response
	IcmpType NullNumber `json:"icmptype"`
	// the protocol of the security group rule
	Protocol NullString `json:"protocol"`
	// the id of the security group rule
	RuleId ID `json:"ruleid"`
	// security group name
	SecurityGroupName NullString `json:"securitygroupname"`
	// the starting IP of the security group rule
	StartPort NullNumber `json:"startport"`
	// the list of resource tags associated with the rule
	Tags []Tag `json:"tags"`
}

type ServiceOffering

type ServiceOffering struct {
	ResourceBase
	// the number of CPU
	CpuNumber NullNumber `json:"cpunumber"`
	// the clock rate CPU speed in Mhz
	CpuSpeed NullNumber `json:"cpuspeed"`
	// the date this service offering was created
	Created NullString `json:"created"`
	// is this a  default system vm offering
	DefaultUse NullBool `json:"defaultuse"`
	// deployment strategy used to deploy VM.
	DeploymentPlanner NullString `json:"deploymentplanner"`
	// bytes read rate of the service offering
	DiskBytesReadRate NullNumber `json:"diskbytesreadrate"`
	// bytes write rate of the service offering
	DiskBytesWriteRate NullNumber `json:"diskbyteswriterate"`
	// io requests read rate of the service offering
	DiskIopsReadRate NullNumber `json:"diskiopsreadrate"`
	// io requests write rate of the service offering
	DiskIopsWriteRate NullNumber `json:"diskiopswriterate"`
	// an alternate display text of the service offering.
	DisplayText NullString `json:"displaytext"`
	// Domain name for the offering
	Domain NullString `json:"domain"`
	// the domain id of the service offering
	DomainId ID `json:"domainid"`
	// the host tag for the service offering
	HostTags NullString `json:"hosttags"`
	// Hypervisor snapshot reserve space as a percent of a volume (for managed
	// storage using Xen or VMware)
	HypervisorSnapshotReserve NullNumber `json:"hypervisorsnapshotreserve"`
	// the id of the service offering
	Id ID `json:"id"`
	// is true if the offering is customized
	IsCustomized NullBool `json:"iscustomized"`
	// true if disk offering uses custom iops, false otherwise
	IsCustomizedIops NullBool `json:"iscustomizediops"`
	// is this a system vm offering
	IsSystem NullBool `json:"issystem"`
	// true if the vm needs to be volatile, i.e., on every reboot of vm from API
	// root disk is discarded and creates a new root disk
	IsVolatile NullBool `json:"isvolatile"`
	// restrict the CPU usage to committed service offering
	LimitCpuUse NullBool `json:"limitcpuuse"`
	// the max iops of the disk offering
	MaxIops NullNumber `json:"maxiops"`
	// the memory in MB
	Memory NullNumber `json:"memory"`
	// the min iops of the disk offering
	MinIops NullNumber `json:"miniops"`
	// the name of the service offering
	Name NullString `json:"name"`
	// data transfer rate in megabits per second allowed.
	NetworkRate NullNumber `json:"networkrate"`
	// the ha support in the service offering
	OfferHa NullBool `json:"offerha"`
	// provisioning type used to create volumes. Valid values are thin, sparse, fat.
	ProvisioningType NullString `json:"provisioningtype"`
	// additional key/value details tied with this service offering
	ServiceOfferingDetails map[string]string `json:"serviceofferingdetails"`
	// the storage type for this service offering
	StorageType NullString `json:"storagetype"`
	// is this a the systemvm type for system vm offering
	SystemVmType NullString `json:"systemvmtype"`
	// the tags for the service offering
	Tags NullString `json:"tags"`
}

type Setter

type Setter interface {
	Set(interface{}) error
}

type StartVirtualMachineParameter

type StartVirtualMachineParameter struct {
	// Deployment planner to use for vm allocation. Available to ROOT admin only
	DeploymentPlanner NullString
	// destination Host ID to deploy the VM to - parameter available for root admin
	// only
	HostId ID
	// The ID of the virtual machine
	Id ID
}

StartVirtualMachine represents the paramter of StartVirtualMachine

func NewStartVirtualMachineParameter

func NewStartVirtualMachineParameter(id string) (p *StartVirtualMachineParameter)

type StopVirtualMachineParameter

type StopVirtualMachineParameter struct {
	// 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.
	Forced NullBool
	// The ID of the virtual machine
	Id ID
}

StopVirtualMachine represents the paramter of StopVirtualMachine

func NewStopVirtualMachineParameter

func NewStopVirtualMachineParameter(id string) (p *StopVirtualMachineParameter)

type StoragePool

type StoragePool struct {
	ResourceBase
	// IOPS CloudStack can provision from this storage pool
	CapacityIops NullNumber `json:"capacityiops"`
	// the ID of the cluster for the storage pool
	ClusterId ID `json:"clusterid"`
	// the name of the cluster for the storage pool
	ClusterName NullString `json:"clustername"`
	// the date and time the storage pool was created
	Created NullString `json:"created"`
	// the host's currently allocated disk size
	DiskSizeAllocated NullNumber `json:"disksizeallocated"`
	// the total disk size of the storage pool
	DiskSizeTotal NullNumber `json:"disksizetotal"`
	// the host's currently used disk size
	DiskSizeUsed NullNumber `json:"disksizeused"`
	// the hypervisor type of the storage pool
	Hypervisor NullString `json:"hypervisor"`
	// the ID of the storage pool
	Id ID `json:"id"`
	// the IP address of the storage pool
	IpAddress NullString `json:"ipaddress"`
	// the name of the storage pool
	Name NullString `json:"name"`
	// the overprovisionfactor for the storage pool
	OverProvisionFactor NullString `json:"overprovisionfactor"`
	// the storage pool path
	Path NullString `json:"path"`
	// the Pod ID of the storage pool
	PodId ID `json:"podid"`
	// the Pod name of the storage pool
	PodName NullString `json:"podname"`
	// the scope of the storage pool
	Scope NullString `json:"scope"`
	// the state of the storage pool
	State NullString `json:"state"`
	// the storage pool capabilities
	StorageCapabilities map[string]string `json:"storagecapabilities"`
	// true if this pool is suitable to migrate a volume, false otherwise
	SuitableForMigration NullBool `json:"suitableformigration"`
	// the tags for the storage pool
	Tags NullString `json:"tags"`
	// the storage pool type
	Type NullString `json:"type"`
	// the Zone ID of the storage pool
	ZoneId ID `json:"zoneid"`
	// the Zone name of the storage pool
	ZoneName NullString `json:"zonename"`
}

type StorageProvider

type StorageProvider struct {
	ResourceBase
	// the name of the storage provider
	Name NullString `json:"name"`
	// the type of the storage provider: primary or image provider
	Type NullString `json:"type"`
}

type StorageTag

type StorageTag struct {
	ResourceBase
	// the ID of the storage tag
	Id ID `json:"id"`
	// the name of the storage tag
	Name NullString `json:"name"`
	// the pool ID of the storage tag
	PoolId ID `json:"poolid"`
}

type SuspendProjectParameter

type SuspendProjectParameter struct {
	// id of the project to be suspended
	Id ID
}

SuspendProject represents the paramter of SuspendProject

func NewSuspendProjectParameter

func NewSuspendProjectParameter(id string) (p *SuspendProjectParameter)

type Tag

type Tag struct {
	ResourceBase
	// the account associated with the tag
	Account NullString `json:"account"`
	// customer associated with the tag
	Customer NullString `json:"customer"`
	// the domain associated with the tag
	Domain NullString `json:"domain"`
	// the ID of the domain associated with the tag
	DomainId ID `json:"domainid"`
	// tag key name
	Key NullString `json:"key"`
	// the project name where tag belongs to
	Project NullString `json:"project"`
	// the project id the tag belongs to
	ProjectId ID `json:"projectid"`
	// id of the resource
	ResourceId ID `json:"resourceid"`
	// resource type
	ResourceType NullString `json:"resourcetype"`
	// tag value
	Value NullString `json:"value"`
}

type Template

type Template struct {
	ResourceBase
	// the account name to which the template belongs
	Account NullString `json:"account"`
	// the account id to which the template belongs
	AccountId ID `json:"accountid"`
	// true if the ISO is bootable, false otherwise
	Bootable NullBool `json:"bootable"`
	// checksum of the template
	Checksum NullString `json:"checksum"`
	// the date this template was created
	Created NullString `json:"created"`
	// true if the template is managed across all Zones, false otherwise
	CrossZones NullBool `json:"crosszones"`
	// additional key/value details tied with template
	Details map[string]string `json:"details"`
	// the template display text
	DisplayText NullString `json:"displaytext"`
	// the name of the domain to which the template belongs
	Domain NullString `json:"domain"`
	// the ID of the domain to which the template belongs
	DomainId ID `json:"domainid"`
	// the format of the template.
	Format NullString `json:"format"`
	// the ID of the secondary storage host for the template
	HostId ID `json:"hostid"`
	// the name of the secondary storage host for the template
	HostName NullString `json:"hostname"`
	// the hypervisor on which the template runs
	Hypervisor NullString `json:"hypervisor"`
	// the template ID
	Id ID `json:"id"`
	// true if template contains XS/VMWare tools inorder to support dynamic scaling
	// of VM cpu/memory
	IsDynamicallyScalable NullBool `json:"isdynamicallyscalable"`
	// true if the template is extractable, false otherwise
	IsExtractable NullBool `json:"isextractable"`
	// true if this template is a featured template, false otherwise
	IsFeatured NullBool `json:"isfeatured"`
	// true if this template is a public template, false otherwise
	IsPublic NullBool `json:"ispublic"`
	// true if the template is ready to be deployed from, false otherwise.
	IsReady NullBool `json:"isready"`
	// the template name
	Name NullString `json:"name"`
	// the ID of the OS type for this template.
	OsTypeId ID `json:"ostypeid"`
	// the name of the OS type for this template.
	OsTypeName NullString `json:"ostypename"`
	// true if the reset password feature is enabled, false otherwise
	PasswordEnabled NullBool `json:"passwordenabled"`
	// the project name of the template
	Project NullString `json:"project"`
	// the project id of the template
	ProjectId ID `json:"projectid"`
	// the date this template was removed
	Removed NullString `json:"removed"`
	// the size of the template
	Size NullNumber `json:"size"`
	// the template ID of the parent template if present
	SourceTemplateId ID `json:"sourcetemplateid"`
	// true if template is sshkey enabled, false otherwise
	SshKeyEnabled NullBool `json:"sshkeyenabled"`
	// the status of the template
	Status NullString `json:"status"`
	// the list of resource tags associated with tempate
	Tags []Tag `json:"tags"`
	// the tag of this template
	Templatetag NullString `json:"templatetag"`
	// the type of the template
	TemplateType NullString `json:"templatetype"`
	// the ID of the zone for this template
	ZoneId ID `json:"zoneid"`
	// the name of the zone for this template
	ZoneName NullString `json:"zonename"`
}

type TemplatePermission

type TemplatePermission struct {
	ResourceBase
	// the list of accounts the template is available for
	Account []NullString `json:"account"`
	// the ID of the domain to which the template belongs
	DomainId ID `json:"domainid"`
	// the template ID
	Id ID `json:"id"`
	// true if this template is a public template, false otherwise
	IsPublic NullBool `json:"ispublic"`
	// the list of projects the template is available for
	ProjectIds []ID `json:"projectids"`
}

type UpdateAccountParameter

type UpdateAccountParameter struct {
	// the current account name
	Account NullString
	// details for account used to store specific parameters
	AccountDetails map[string]string
	// the ID of the domain where the account exists
	DomainId ID
	// Account id
	Id ID
	// Network domain for the account's networks; empty string will update
	// domainName with NULL value
	NetworkDomain NullString
	// new name for the account
	NewName NullString
}

UpdateAccount represents the paramter of UpdateAccount

func NewUpdateAccountParameter

func NewUpdateAccountParameter(newname string) (p *UpdateAccountParameter)

type UpdateCloudToUseObjectStoreParameter

type UpdateCloudToUseObjectStoreParameter struct {
	// the details for the image store. Example:
	// details[0].key=accesskey&details[0].value=s389ddssaa&details[1].key=secretkey&details[1].value=8dshfsss
	Details map[string]string
	// the name for the image store
	Name NullString
	// the image store provider name
	Provider NullString
	// the URL for the image store
	Url NullString
}

UpdateCloudToUseObjectStore represents the paramter of UpdateCloudToUseObjectStore

func NewUpdateCloudToUseObjectStoreParameter

func NewUpdateCloudToUseObjectStoreParameter(provider string) (p *UpdateCloudToUseObjectStoreParameter)

type UpdateClusterParameter

type UpdateClusterParameter struct {
	// Allocation state of this cluster for allocation of new resources
	AllocationState NullString
	// the cluster name
	ClusterName NullString
	// hypervisor type of the cluster
	ClusterType NullString
	// hypervisor type of the cluster
	Hypervisor NullString
	// the ID of the Cluster
	Id ID
	// whether this cluster is managed by cloudstack
	ManagedState NullString
}

UpdateCluster represents the paramter of UpdateCluster

func NewUpdateClusterParameter

func NewUpdateClusterParameter(id string) (p *UpdateClusterParameter)

type UpdateDefaultNicForVirtualMachineParameter

type UpdateDefaultNicForVirtualMachineParameter struct {
	// NIC ID
	NicId ID
	// Virtual Machine ID
	VirtualMachineId ID
}

UpdateDefaultNicForVirtualMachine represents the paramter of UpdateDefaultNicForVirtualMachine

func NewUpdateDefaultNicForVirtualMachineParameter

func NewUpdateDefaultNicForVirtualMachineParameter(nicid string, virtualmachineid string) (p *UpdateDefaultNicForVirtualMachineParameter)

type UpdateDiskOfferingParameter

type UpdateDiskOfferingParameter struct {
	// an optional field, whether to display the offering to the end user or not.
	DisplayOffering NullBool
	// updates alternate display text of the disk offering with this value
	DisplayText NullString
	// ID of the disk offering
	Id ID
	// updates name of the disk offering with this value
	Name NullString
	// sort key of the disk offering, integer
	SortKey NullNumber
}

UpdateDiskOffering represents the paramter of UpdateDiskOffering

func NewUpdateDiskOfferingParameter

func NewUpdateDiskOfferingParameter(id string) (p *UpdateDiskOfferingParameter)

type UpdateDomainParameter

type UpdateDomainParameter struct {
	// ID of domain to update
	Id ID
	// updates domain with this name
	Name NullString
	// Network domain for the domain's networks; empty string will update domainName
	// with NULL value
	NetworkDomain NullString
}

UpdateDomain represents the paramter of UpdateDomain

func NewUpdateDomainParameter

func NewUpdateDomainParameter(id string) (p *UpdateDomainParameter)

type UpdateEgressFirewallRuleParameter

type UpdateEgressFirewallRuleParameter struct {
	// an optional field, in case you want to set a custom id to the resource.
	// Allowed to Root Admins only
	CustomId ID
	// an optional field, whether to the display the rule to the end user or not
	ForDisplay NullBool
	// the ID of the egress firewall rule
	Id ID
}

UpdateEgressFirewallRule represents the paramter of UpdateEgressFirewallRule

func NewUpdateEgressFirewallRuleParameter

func NewUpdateEgressFirewallRuleParameter(id string) (p *UpdateEgressFirewallRuleParameter)

type UpdateFirewallRuleParameter

type UpdateFirewallRuleParameter struct {
	// an optional field, in case you want to set a custom id to the resource.
	// Allowed to Root Admins only
	CustomId ID
	// an optional field, whether to the display the rule to the end user or not
	ForDisplay NullBool
	// the ID of the firewall rule
	Id ID
}

UpdateFirewallRule represents the paramter of UpdateFirewallRule

func NewUpdateFirewallRuleParameter

func NewUpdateFirewallRuleParameter(id string) (p *UpdateFirewallRuleParameter)

type UpdateHostParameter

type UpdateHostParameter struct {
	// Change resource state of host, valid values are [Enable, Disable]. Operation
	// may failed if host in states not allowing Enable/Disable
	AllocationState NullString
	// list of tags to be added to the host
	HostTags []string
	// the ID of the host to update
	Id ID
	// the id of Os category to update the host with
	OsCategoryId ID
	// the new uri for the secondary storage: nfs://host/path
	Url NullString
}

UpdateHost represents the paramter of UpdateHost

func NewUpdateHostParameter

func NewUpdateHostParameter(id string) (p *UpdateHostParameter)

type UpdateHostPasswordParameter

type UpdateHostPasswordParameter struct {
	// the cluster ID
	ClusterId ID
	// the host ID
	HostId ID
	// the new password for the host/cluster
	Password NullString
	// the username for the host/cluster
	UserName NullString
}

UpdateHostPassword represents the paramter of UpdateHostPassword

func NewUpdateHostPasswordParameter

func NewUpdateHostPasswordParameter(password string, username string) (p *UpdateHostPasswordParameter)

type UpdateIpAddressParameter

type UpdateIpAddressParameter struct {
	// an optional field, in case you want to set a custom id to the resource.
	// Allowed to Root Admins only
	CustomId ID
	// an optional field, whether to the display the ip to the end user or not
	ForDisplay NullBool
	// the id of the public ip address to update
	Id ID
}

UpdateIpAddress represents the paramter of UpdateIpAddress

func NewUpdateIpAddressParameter

func NewUpdateIpAddressParameter(id string) (p *UpdateIpAddressParameter)

type UpdateLoadBalancerRuleParameter

type UpdateLoadBalancerRuleParameter struct {
	// load balancer algorithm (source, roundrobin, leastconn)
	Algorithm NullString
	// an optional field, in case you want to set a custom id to the resource.
	// Allowed to Root Admins only
	CustomId ID
	// the description of the load balancer rule
	Description NullString
	// an optional field, whether to the display the rule to the end user or not
	ForDisplay NullBool
	// the id of the load balancer rule to update
	Id ID
	// the name of the load balancer rule
	Name NullString
}

UpdateLoadBalancerRule represents the paramter of UpdateLoadBalancerRule

func NewUpdateLoadBalancerRuleParameter

func NewUpdateLoadBalancerRuleParameter(id string) (p *UpdateLoadBalancerRuleParameter)

type UpdateNetworkOfferingParameter

type UpdateNetworkOfferingParameter struct {
	// the availability of network offering. Default value is Required for Guest
	// Virtual network offering; Optional for Guest Direct network offering
	Availability NullString
	// the display text of the network offering
	DisplayText NullString
	// the id of the network offering
	Id ID
	// if true keepalive will be turned on in the loadbalancer. At the time of
	// writing this has only an effect on haproxy; the mode http and httpclose
	// options are unset in the haproxy conf file.
	KeepaliveEnabled NullBool
	// maximum number of concurrent connections supported by the network offering
	MaxConnections NullNumber
	// the name of the network offering
	Name NullString
	// sort key of the network offering, integer
	SortKey NullNumber
	// update state for the network offering
	State NullString
}

UpdateNetworkOffering represents the paramter of UpdateNetworkOffering

func NewUpdateNetworkOfferingParameter

func NewUpdateNetworkOfferingParameter() (p *UpdateNetworkOfferingParameter)

type UpdateNetworkParameter

type UpdateNetworkParameter struct {

	// an optional field, in case you want to set a custom id to the resource.
	// Allowed to Root Admins only
	CustomId ID
	// an optional field, whether to the display the network to the end user or not.
	DisplayNetwork NullBool
	// the new display text for the network
	DisplayText NullString
	// CIDR for Guest VMs,Cloudstack allocates IPs to Guest VMs only from this CIDR
	GuestVmCidr NullString
	// the ID of the network
	Id ID
	// the new name for the network
	Name NullString
	// network domain
	NetworkDomain NullString
	// network offering ID
	NetworkOfferingId ID
	// contains filtered or unexported fields
}

UpdateNetwork represents the paramter of UpdateNetwork

func NewUpdateNetworkParameter

func NewUpdateNetworkParameter(id string) (p *UpdateNetworkParameter)

type UpdatePodParameter

type UpdatePodParameter struct {
	// Allocation state of this cluster for allocation of new resources
	AllocationState NullString
	// the ending IP address for the Pod
	EndIp NullString
	// the gateway for the Pod
	Gateway NullString
	// the ID of the Pod
	Id ID
	// the name of the Pod
	Name NullString
	// the netmask of the Pod
	Netmask NullString
	// the starting IP address for the Pod
	StartIp NullString
}

UpdatePod represents the paramter of UpdatePod

func NewUpdatePodParameter

func NewUpdatePodParameter(id string) (p *UpdatePodParameter)

type UpdatePortForwardingRuleParameter

type UpdatePortForwardingRuleParameter struct {
	// an optional field, in case you want to set a custom id to the resource.
	// Allowed to Root Admins only
	CustomId ID
	// an optional field, whether to the display the rule to the end user or not
	ForDisplay NullBool
	// the ID of the port forwarding rule
	Id ID
	// the IP address id of the port forwarding rule
	IpAddressId ID
	// the private IP address of the port forwarding rule
	PrivateIp NullString
	// the private port of the port forwarding rule
	PrivatePort NullString
	// the protocol for the port fowarding rule. Valid values are TCP or UDP.
	Protocol NullString
	// the public port of the port forwarding rule
	PublicPort NullString
	// the ID of the virtual machine for the port forwarding rule
	VirtualMachineId ID
}

UpdatePortForwardingRule represents the paramter of UpdatePortForwardingRule

func NewUpdatePortForwardingRuleParameter

func NewUpdatePortForwardingRuleParameter(id string) (p *UpdatePortForwardingRuleParameter)

type UpdateProjectInvitationParameter

type UpdateProjectInvitationParameter struct {
	// if true, accept the invitation, decline if false. True by default
	Accept NullBool
	// account that is joining the project
	Account NullString
	// id of the project to join
	ProjectId ID
	// list invitations for specified account; this parameter has to be specified
	// with domainId
	Token NullString
}

UpdateProjectInvitation represents the paramter of UpdateProjectInvitation

func NewUpdateProjectInvitationParameter

func NewUpdateProjectInvitationParameter(projectid string) (p *UpdateProjectInvitationParameter)

type UpdateProjectParameter

type UpdateProjectParameter struct {
	// new Admin account for the project
	Account NullString
	// display text of the project
	DisplayText NullString
	// id of the project to be modified
	Id ID
}

UpdateProject represents the paramter of UpdateProject

func NewUpdateProjectParameter

func NewUpdateProjectParameter(id string) (p *UpdateProjectParameter)

type UpdateServiceOfferingParameter

type UpdateServiceOfferingParameter struct {
	// the display text of the service offering to be updated
	DisplayText NullString
	// the ID of the service offering to be updated
	Id ID
	// the name of the service offering to be updated
	Name NullString
	// sort key of the service offering, integer
	SortKey NullNumber
}

UpdateServiceOffering represents the paramter of UpdateServiceOffering

func NewUpdateServiceOfferingParameter

func NewUpdateServiceOfferingParameter(id string) (p *UpdateServiceOfferingParameter)

type UpdateStoragePoolParameter

type UpdateStoragePoolParameter struct {
	// bytes CloudStack can provision from this storage pool
	CapacityBytes NullNumber
	// IOPS CloudStack can provision from this storage pool
	CapacityIops NullNumber
	// the Id of the storage pool
	Id ID
	// comma-separated list of tags for the storage pool
	Tags []string
}

UpdateStoragePool represents the paramter of UpdateStoragePool

func NewUpdateStoragePoolParameter

func NewUpdateStoragePoolParameter(id string) (p *UpdateStoragePoolParameter)

type UpdateTemplateParameter

type UpdateTemplateParameter struct {
	// true if image is bootable, false otherwise; available only for updateIso API
	Bootable NullBool
	// Details in key/value pairs.
	Details map[string]string
	// the display text of the image
	DisplayText NullString
	// the format for the image
	Format NullString
	// the ID of the image file
	Id ID
	// true if template/ISO contains XS/VMWare tools inorder to support dynamic
	// scaling of VM cpu/memory
	IsDynamicallyScalable NullBool
	// true if the template type is routing i.e., if template is used to deploy
	// router
	IsRouting NullBool
	// the name of the image file
	Name NullString
	// the ID of the OS type that best represents the OS of this image.
	OsTypeId ID
	// true if the image supports the password reset feature; default is false
	PasswordEnabled NullBool
	// true if the template requres HVM, false otherwise; available only for
	// updateTemplate API
	RequiresHvm NullBool
	// sort key of the template, integer
	SortKey NullNumber
}

UpdateTemplate represents the paramter of UpdateTemplate

func NewUpdateTemplateParameter

func NewUpdateTemplateParameter(id string) (p *UpdateTemplateParameter)

type UpdateTemplatePermissionsParameter

type UpdateTemplatePermissionsParameter struct {
	// a comma delimited list of accounts. If specified, "op" parameter has to be
	// passed in.
	Accounts []string
	// the template ID
	Id ID
	// true if the template/iso is extractable, false other wise. Can be set only by
	// root admin
	IsExtractable NullBool
	// true for featured template/iso, false otherwise
	IsFeatured NullBool
	// true for public template/iso, false for private templates/isos
	IsPublic NullBool
	// permission operator (add, remove, reset)
	Op NullString
	// a comma delimited list of projects. If specified, "op" parameter has to be
	// passed in.
	ProjectIds []string
}

UpdateTemplatePermissions represents the paramter of UpdateTemplatePermissions

func NewUpdateTemplatePermissionsParameter

func NewUpdateTemplatePermissionsParameter(id string) (p *UpdateTemplatePermissionsParameter)

type UpdateUserParameter

type UpdateUserParameter struct {
	// email
	Email NullString
	// first name
	FirstName NullString
	// User uuid
	Id ID
	// last name
	LastName NullString
	// Clear text password (default hashed to SHA256SALT). If you wish to use any
	// other hasing algorithm, you would need to write a custom authentication
	// adapter
	Password NullString
	// Specifies a timezone for this command. For more information on the timezone
	// parameter, see Time Zone Format.
	TimeZone NullString
	// The API key for the user. Must be specified with userSecretKey
	UserApiKey NullString
	// Unique username
	UserName NullString
	// The secret key for the user. Must be specified with userSecretKey
	UserSecretKey NullString
}

UpdateUser represents the paramter of UpdateUser

func NewUpdateUserParameter

func NewUpdateUserParameter(id string) (p *UpdateUserParameter)

type UpdateVMAffinityGroupParameter

type UpdateVMAffinityGroupParameter struct {
	// comma separated list of affinity groups id that are 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
	AffinityGroupIds []string
	// comma separated list of affinity groups names that are 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
	AffinityGroupNames []string
	// The ID of the virtual machine
	Id ID
}

UpdateVMAffinityGroup represents the paramter of UpdateVMAffinityGroup

func NewUpdateVMAffinityGroupParameter

func NewUpdateVMAffinityGroupParameter(id string) (p *UpdateVMAffinityGroupParameter)

type UpdateVirtualMachineParameter

type UpdateVirtualMachineParameter struct {
	// an optional field, in case you want to set a custom id to the resource.
	// Allowed to Root Admins only
	CustomId ID
	// user generated name
	DisplayName NullString
	// an optional field, whether to the display the vm to the end user or not.
	DisplayVm NullBool
	// group of the virtual machine
	Group NullString
	// true if high-availability is enabled for the virtual machine, false otherwise
	HaEnable NullBool
	// The ID of the virtual machine
	Id ID
	// true if VM contains XS/VMWare tools inorder to support dynamic scaling of VM
	// cpu/memory
	IsDynamicallyScalable NullBool
	// new host name of the vm. The VM has to be stopped/started for this update to
	// take affect
	Name NullString
	// the ID of the OS type that best represents this VM.
	OsTypeId ID
	// 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.
	UserData NullString
}

UpdateVirtualMachine represents the paramter of UpdateVirtualMachine

func NewUpdateVirtualMachineParameter

func NewUpdateVirtualMachineParameter(id string) (p *UpdateVirtualMachineParameter)

type UpdateVolumeParameter

type UpdateVolumeParameter struct {
	// The chain info of the volume
	ChainInfo NullString
	// an optional field, in case you want to set a custom id to the resource.
	// Allowed to Root Admins only
	CustomId ID
	// an optional field, whether to the display the volume to the end user or not.
	DisplayVolume NullBool
	// the ID of the disk volume
	Id ID
	// The path of the volume
	Path NullString
	// The state of the volume
	State NullString
	// Destination storage pool UUID for the volume
	StorageId ID
}

UpdateVolume represents the paramter of UpdateVolume

func NewUpdateVolumeParameter

func NewUpdateVolumeParameter() (p *UpdateVolumeParameter)

type UpdateZoneParameter

type UpdateZoneParameter struct {
	// Allocation state of this cluster for allocation of new resources
	AllocationState NullString
	// the details for the Zone
	Details map[string]string
	// the dhcp Provider for the Zone
	DhcpProvider NullString
	// the first DNS for the Zone
	Dns1 NullString
	// the second DNS for the Zone
	Dns2 NullString
	// the dns search order list
	Dnssearchorder []string
	// Network domain name for the networks in the zone; empty string will update
	// domain with NULL value
	Domain NullString
	// the guest CIDR address for the Zone
	GuestCidrAddress NullString
	// the ID of the Zone
	Id ID
	// the first internal DNS for the Zone
	InternalDns1 NullString
	// the second internal DNS for the Zone
	InternalDns2 NullString
	// the first DNS for IPv6 network in the Zone
	Ip6Dns1 NullString
	// the second DNS for IPv6 network in the Zone
	Ip6Dns2 NullString
	// updates a private zone to public if set, but not vice-versa
	IsPublic NullBool
	// true if local storage offering enabled, false otherwise
	LocalStorageEnabled NullBool
	// the name of the Zone
	Name NullString
}

UpdateZone represents the paramter of UpdateZone

func NewUpdateZoneParameter

func NewUpdateZoneParameter(id string) (p *UpdateZoneParameter)

type UploadVolumeParameter

type UploadVolumeParameter struct {
	// an optional accountName. Must be used with domainId.
	Account NullString
	// the MD5 checksum value of this volume
	Checksum NullString
	// the ID of the disk offering. This must be a custom sized offering since
	// during uploadVolume volume size is unknown.
	DiskOfferingId ID
	// an optional domainId. If the account parameter is used, domainId must also be
	// used.
	DomainId ID
	// the format for the volume. Possible values include QCOW2, OVA, and VHD.
	Format NullString
	// Image store uuid
	ImageStoreUuid ID
	// the name of the volume
	Name NullString
	// Upload volume for the project
	ProjectId ID
	// the URL of where the volume is hosted. Possible URL include http:// and
	// https://
	Url NullString
	// the ID of the zone the volume is to be hosted on
	ZoneId ID
}

UploadVolume represents the paramter of UploadVolume

func NewUploadVolumeParameter

func NewUploadVolumeParameter(format string, name string, url string, zoneid string) (p *UploadVolumeParameter)

type User

type User struct {
	ResourceBase
	// the account name of the user
	Account NullString `json:"account"`
	// the account ID of the user
	AccountId ID `json:"accountid"`
	// the account type of the user
	AccountType NullNumber `json:"accounttype"`
	// the api key of the user
	ApiKey NullString `json:"apikey"`
	// the date and time the user account was created
	Created NullString `json:"created"`
	// the domain name of the user
	Domain NullString `json:"domain"`
	// the domain ID of the user
	DomainId ID `json:"domainid"`
	// the user email address
	Email NullString `json:"email"`
	// the user firstname
	FirstName NullString `json:"firstname"`
	// the user ID
	Id ID `json:"id"`
	// the boolean value representing if the updating target is in caller's child
	// domain
	IsCallerChildDomain NullBool `json:"iscallerchilddomain"`
	// true if user is default, false otherwise
	IsDefault NullBool `json:"isdefault"`
	// the user lastname
	LastName NullString `json:"lastname"`
	// the secret key of the user
	SecretKey NullString `json:"secretkey"`
	// the user state
	State NullString `json:"state"`
	// the timezone user was created in
	TimeZone NullString `json:"timezone"`
	// the user name
	UserName NullString `json:"username"`
}

type UserKeys

type UserKeys struct {
	ResourceBase
	// the api key of the registered user
	ApiKey NullString `json:"apikey"`
	// the secret key of the registered user
	SecretKey NullString `json:"secretkey"`
}

type VMPassword

type VMPassword struct {
	ResourceBase
	// The base64 encoded encrypted password of the VM
	EncryptedPassword NullString `json:"encryptedpassword"`
}

type VirtualMachine

type VirtualMachine struct {
	ResourceBase
	// the account associated with the virtual machine
	Account NullString `json:"account"`
	// list of affinity groups associated with the virtual machine
	AffinityGroup []AffinityGroup `json:"affinitygroup"`
	// the number of cpu this virtual machine is running with
	CpuNumber NullNumber `json:"cpunumber"`
	// the speed of each cpu
	CpuSpeed NullNumber `json:"cpuspeed"`
	// the amount of the vm's CPU currently used
	CpuUsed NullString `json:"cpuused"`
	// the date when this virtual machine was created
	Created NullString `json:"created"`
	// Vm details in key/value pairs.
	Details map[string]string `json:"details"`
	// the read (io) of disk on the vm
	DiskIoRead NullNumber `json:"diskioread"`
	// the write (io) of disk on the vm
	DiskIoWrite NullNumber `json:"diskiowrite"`
	// the read (bytes) of disk on the vm
	DiskKbsRead NullNumber `json:"diskkbsread"`
	// the write (bytes) of disk on the vm
	DiskKbsWrite NullNumber `json:"diskkbswrite"`
	// the ID of the disk offering of the virtual machine
	DiskOfferingId ID `json:"diskofferingid"`
	// the name of the disk offering of the virtual machine
	DiskOfferingName NullString `json:"diskofferingname"`
	// user generated name. The name of the virtual machine is returned if no
	// displayname exists.
	DisplayName NullString `json:"displayname"`
	// an optional field whether to the display the vm to the end user or not.
	DisplayVm NullBool `json:"displayvm"`
	// the name of the domain in which the virtual machine exists
	Domain NullString `json:"domain"`
	// the ID of the domain in which the virtual machine exists
	DomainId ID `json:"domainid"`
	// the virtual network for the service offering
	ForVirtualNetwork NullBool `json:"forvirtualnetwork"`
	// the group name of the virtual machine
	Group NullString `json:"group"`
	// the group ID of the virtual machine
	GroupId ID `json:"groupid"`
	// Os type ID of the virtual machine
	GuestOsId ID `json:"guestosid"`
	// true if high-availability is enabled, false otherwise
	HaEnable NullBool `json:"haenable"`
	// the ID of the host for the virtual machine
	HostId ID `json:"hostid"`
	// the name of the host for the virtual machine
	HostName NullString `json:"hostname"`
	// the hypervisor on which the template runs
	Hypervisor NullString `json:"hypervisor"`
	// the ID of the virtual machine
	Id ID `json:"id"`
	// instance name of the user vm; this parameter is returned to the ROOT admin
	// only
	InstanceName NullString `json:"instancename"`
	// true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM
	// cpu/memory.
	IsDynamicallyScalable NullBool `json:"isdynamicallyscalable"`
	// an alternate display text of the ISO attached to the virtual machine
	IsoDisplayText NullString `json:"isodisplaytext"`
	// the ID of the ISO attached to the virtual machine
	IsoId ID `json:"isoid"`
	// the name of the ISO attached to the virtual machine
	IsoName NullString `json:"isoname"`
	// ssh key-pair
	KeyPair NullString `json:"keypair"`
	// the memory allocated for the virtual machine
	Memory NullNumber `json:"memory"`
	// the name of the virtual machine
	Name NullString `json:"name"`
	// the incoming network traffic on the vm
	NetworkKbsRead NullNumber `json:"networkkbsread"`
	// the outgoing network traffic on the host
	NetworkKbsWrite NullNumber `json:"networkkbswrite"`
	// the list of nics associated with vm
	Nic []Nic `json:"nic"`
	// OS type id of the vm
	OsTypeId ID `json:"ostypeid"`
	// the password (if exists) of the virtual machine
	Password NullString `json:"password"`
	// true if the password rest feature is enabled, false otherwise
	PasswordEnabled NullBool `json:"passwordenabled"`
	// the project name of the vm
	Project NullString `json:"project"`
	// the project id of the vm
	ProjectId ID `json:"projectid"`
	// public IP address id associated with vm via Static nat rule
	PublicIp NullString `json:"publicip"`
	// public IP address id associated with vm via Static nat rule
	PublicIpId ID `json:"publicipid"`
	// device ID of the root volume
	RootDeviceId ID `json:"rootdeviceid"`
	// device type of the root volume
	RootDeviceType NullString `json:"rootdevicetype"`
	// list of security groups associated with the virtual machine
	SecurityGroup []SecurityGroup `json:"securitygroup"`
	// the ID of the service offering of the virtual machine
	ServiceOfferingId ID `json:"serviceofferingid"`
	// the name of the service offering of the virtual machine
	ServiceOfferingName NullString `json:"serviceofferingname"`
	// State of the Service from LB rule
	ServiceState NullString `json:"servicestate"`
	// the state of the virtual machine
	State NullString `json:"state"`
	// the list of resource tags associated with vm
	Tags []Tag `json:"tags"`
	//  an alternate display text of the template for the virtual machine
	TemplateDisplayText NullString `json:"templatedisplaytext"`
	// the ID of the template for the virtual machine. A -1 is returned if the
	// virtual machine was created from an ISO file.
	TemplateId ID `json:"templateid"`
	// the name of the template for the virtual machine
	TemplateName NullString `json:"templatename"`
	// the vgpu type used by the virtual machine
	Vgpu NullString `json:"vgpu"`
	// the ID of the availablility zone for the virtual machine
	ZoneId ID `json:"zoneid"`
	// the name of the availability zone for the virtual machine
	ZoneName NullString `json:"zonename"`
}

func (*VirtualMachine) Delete

func (r *VirtualMachine) Delete() (err error)

func (*VirtualMachine) Refresh

func (r *VirtualMachine) Refresh() (err error)

func (*VirtualMachine) Update

func (r *VirtualMachine) Update(args map[string]interface{}) (err error)

type VirtualMachineUserData

type VirtualMachineUserData struct {
	ResourceBase
	// Base 64 encoded VM user data
	UserData NullString `json:"userdata"`
	// the ID of the virtual machine
	VirtualMachineId ID `json:"virtualmachineid"`
}

type Volume

type Volume struct {
	ResourceBase
	// the account associated with the disk volume
	Account NullString `json:"account"`
	// the date the volume was attached to a VM instance
	Attached NullString `json:"attached"`
	// the chain info of the volume
	ChainInfo NullString `json:"chaininfo"`
	// the date the disk volume was created
	Created NullString `json:"created"`
	// the boolean state of whether the volume is destroyed or not
	Destroyed NullBool `json:"destroyed"`
	// the ID of the device on user vm the volume is attahed to. This tag is not
	// returned when the volume is detached.
	DeviceId ID `json:"deviceid"`
	// bytes read rate of the disk volume
	DiskBytesReadRate NullNumber `json:"diskbytesreadrate"`
	// bytes write rate of the disk volume
	DiskBytesWriteRate NullNumber `json:"diskbyteswriterate"`
	// io requests read rate of the disk volume
	DiskIopsReadRate NullNumber `json:"diskiopsreadrate"`
	// io requests write rate of the disk volume
	DiskIopsWriteRate NullNumber `json:"diskiopswriterate"`
	// the display text of the disk offering
	DiskOfferingDisplayText NullString `json:"diskofferingdisplaytext"`
	// ID of the disk offering
	DiskOfferingId ID `json:"diskofferingid"`
	// name of the disk offering
	DiskOfferingName NullString `json:"diskofferingname"`
	// an optional field whether to the display the volume to the end user or not.
	DisplayVolume NullBool `json:"displayvolume"`
	// the domain associated with the disk volume
	Domain NullString `json:"domain"`
	// the ID of the domain associated with the disk volume
	DomainId ID `json:"domainid"`
	// Hypervisor the volume belongs to
	Hypervisor NullString `json:"hypervisor"`
	// ID of the disk volume
	Id ID `json:"id"`
	// true if the volume is extractable, false otherwise
	IsExtractable NullBool `json:"isextractable"`
	// an alternate display text of the ISO attached to the virtual machine
	IsoDisplayText NullString `json:"isodisplaytext"`
	// the ID of the ISO attached to the virtual machine
	IsoId ID `json:"isoid"`
	// the name of the ISO attached to the virtual machine
	IsoName NullString `json:"isoname"`
	// max iops of the disk volume
	MaxIops NullNumber `json:"maxiops"`
	// min iops of the disk volume
	MinIops NullNumber `json:"miniops"`
	// name of the disk volume
	Name NullString `json:"name"`
	// the path of the volume
	Path NullString `json:"path"`
	// the project name of the vpn
	Project NullString `json:"project"`
	// the project id of the vpn
	ProjectId ID `json:"projectid"`
	// provisioning type used to create volumes.
	ProvisioningType NullString `json:"provisioningtype"`
	// need quiesce vm or not when taking snapshot
	QuiesceVm NullBool `json:"quiescevm"`
	// the display text of the service offering for root disk
	ServiceOfferingDisplayText NullString `json:"serviceofferingdisplaytext"`
	// ID of the service offering for root disk
	ServiceOfferingId ID `json:"serviceofferingid"`
	// name of the service offering for root disk
	ServiceOfferingName NullString `json:"serviceofferingname"`
	// size of the disk volume
	Size NullNumber `json:"size"`
	// ID of the snapshot from which this volume was created
	SnapshotId ID `json:"snapshotid"`
	// the state of the disk volume
	State NullString `json:"state"`
	// the status of the volume
	Status NullString `json:"status"`
	// name of the primary storage hosting the disk volume
	Storage NullString `json:"storage"`
	// id of the primary storage hosting the disk volume; returned to admin user
	// only
	StorageId ID `json:"storageid"`
	// shared or local storage
	StorageType NullString `json:"storagetype"`
	// the list of resource tags associated with volume
	Tags []Tag `json:"tags"`
	//  an alternate display text of the template for the virtual machine
	TemplateDisplayText NullString `json:"templatedisplaytext"`
	// the ID of the template for the virtual machine. A -1 is returned if the
	// virtual machine was created from an ISO file.
	TemplateId ID `json:"templateid"`
	// the name of the template for the virtual machine
	TemplateName NullString `json:"templatename"`
	// type of the disk volume (ROOT or DATADISK)
	Type NullString `json:"type"`
	// id of the virtual machine
	VirtualMachineId ID `json:"virtualmachineid"`
	// display name of the virtual machine
	VmDisplayName NullString `json:"vmdisplayname"`
	// name of the virtual machine
	VmName NullString `json:"vmname"`
	// state of the virtual machine
	VmState NullString `json:"vmstate"`
	// ID of the availability zone
	ZoneId ID `json:"zoneid"`
	// name of the availability zone
	ZoneName NullString `json:"zonename"`
}

type Zone

type Zone struct {
	ResourceBase
	// the allocation state of the cluster
	AllocationState NullString `json:"allocationstate"`
	// the capacity of the Zone
	Capacity []Capacity `json:"capacity"`
	// Zone description
	Description NullString `json:"description"`
	// the dhcp Provider for the Zone
	DhcpProvider NullString `json:"dhcpprovider"`
	// the display text of the zone
	DisplayText NullString `json:"displaytext"`
	// the first DNS for the Zone
	Dns1 NullString `json:"dns1"`
	// the second DNS for the Zone
	Dns2 NullString `json:"dns2"`
	// Network domain name for the networks in the zone
	Domain NullString `json:"domain"`
	// the UUID of the containing domain, null for public zones
	DomainId ID `json:"domainid"`
	// the name of the containing domain, null for public zones
	DomainName NullString `json:"domainname"`
	// the guest CIDR address for the Zone
	GuestCidrAddress NullString `json:"guestcidraddress"`
	// Zone id
	Id ID `json:"id"`
	// the first internal DNS for the Zone
	InternalDns1 NullString `json:"internaldns1"`
	// the second internal DNS for the Zone
	InternalDns2 NullString `json:"internaldns2"`
	// the first IPv6 DNS for the Zone
	Ip6Dns1 NullString `json:"ip6dns1"`
	// the second IPv6 DNS for the Zone
	Ip6Dns2 NullString `json:"ip6dns2"`
	// true if local storage offering enabled, false otherwise
	LocalStorageEnabled NullBool `json:"localstorageenabled"`
	// Zone name
	Name NullString `json:"name"`
	// the network type of the zone; can be Basic or Advanced
	NetworkType NullString `json:"networktype"`
	// Meta data associated with the zone (key/value pairs)
	ResourceDetails map[string]string `json:"resourcedetails"`
	// true if security groups support is enabled, false otherwise
	SecurityGroupsEnabled NullBool `json:"securitygroupsenabled"`
	// the list of resource tags associated with zone.
	Tags []Tag `json:"tags"`
	// the vlan range of the zone
	Vlan NullString `json:"vlan"`
	// Zone Token
	Zonetoken NullString `json:"zonetoken"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL