Documentation
¶
Index ¶
- Constants
- Variables
- func IsErrNoop(err error) bool
- func IsNotAuthorized(err error) bool
- func IsNotFound(err error) bool
- func IsTimeout(err error) bool
- func MakeTag(v string) string
- type ACL
- type ACLOptions
- type ACLs
- type AgentExecStatus
- type AgentNetworkIPAddress
- type AgentNetworkIface
- type AgentOsInfo
- type Appliance
- type Appliances
- type Backup
- type Backups
- type CPUInfo
- type Ceph
- type CephFsMap
- type CephHealth
- type CephHealthCheck
- type CephHealthCheckDetail
- type CephHealthCheckName
- type CephHealthCheckSummary
- type CephMgrActiveAddresses
- type CephMgrActiveClient
- type CephMgrAddrVector
- type CephMgrAlwaysOnModules
- type CephMgrAvailableModule
- type CephMgrAvailableModuleOption
- type CephMgrAvailableModuleOptions
- type CephMgrMap
- type CephMgrServices
- type CephMgrStandby
- type CephMon
- type CephMonFeatures
- type CephMonMap
- type CephOsdMap
- type CephPgMap
- type CephServiceMap
- type Client
- func (c *Client) ACL(ctx context.Context) (acl ACLs, err error)
- func (c *Client) APIToken(tokenID, secret string)deprecated
- func (c *Client) Cluster(ctx context.Context) (*Cluster, error)
- func (c *Client) ClusterStorage(ctx context.Context, name string) (storage *ClusterStorage, err error)
- func (c *Client) ClusterStorages(ctx context.Context) (storages ClusterStorages, err error)
- func (c *Client) Delete(ctx context.Context, p string, v interface{}) error
- func (c *Client) DeleteClusterStorage(ctx context.Context, name string) (*Task, error)
- func (c *Client) Domain(ctx context.Context, realm string) (domain *Domain, err error)
- func (c *Client) Domains(ctx context.Context) (domains Domains, err error)
- func (c *Client) Get(ctx context.Context, p string, v interface{}) error
- func (c *Client) GetWithParams(ctx context.Context, p string, d interface{}, v interface{}) error
- func (c *Client) Group(ctx context.Context, groupid string) (group *Group, err error)
- func (c *Client) Groups(ctx context.Context) (groups Groups, err error)
- func (c *Client) Login(ctx context.Context, username, password string) errordeprecated
- func (c *Client) NewClusterStorage(ctx context.Context, options ...ClusterStorageOptions) (*Task, error)
- func (c *Client) NewDomain(ctx context.Context, realm string, domainType DomainType) error
- func (c *Client) NewGroup(ctx context.Context, groupid, comment string) error
- func (c *Client) NewPool(ctx context.Context, poolid, comment string) error
- func (c *Client) NewRole(ctx context.Context, roleID string, privs string) (err error)
- func (c *Client) NewUser(ctx context.Context, user *NewUser) (err error)
- func (c *Client) Node(ctx context.Context, name string) (node *Node, err error)
- func (c *Client) Nodes(ctx context.Context) (ns NodeStatuses, err error)
- func (c *Client) Password(ctx context.Context, userid, password string) error
- func (c *Client) Permissions(ctx context.Context, o *PermissionsOptions) (permissions Permissions, err error)
- func (c *Client) Pool(ctx context.Context, poolid string, filters ...string) (pool *Pool, err error)
- func (c *Client) Pools(ctx context.Context) (pools Pools, err error)
- func (c *Client) Post(ctx context.Context, p string, d interface{}, v interface{}) error
- func (c *Client) Put(ctx context.Context, p string, d interface{}, v interface{}) error
- func (c *Client) Req(ctx context.Context, method, path string, data []byte, v interface{}) error
- func (c *Client) Role(ctx context.Context, roleid string) (role Permission, err error)
- func (c *Client) Roles(ctx context.Context) (roles Roles, err error)
- func (c *Client) TermWebSocket(path string, term *Term) (chan []byte, chan []byte, chan error, func() error, error)
- func (c *Client) Ticket(ctx context.Context, credentials *Credentials) (*Session, error)
- func (c *Client) UpdateACL(ctx context.Context, aclOptions ACLOptions) error
- func (c *Client) UpdateClusterStorage(ctx context.Context, name string, options ...ClusterStorageOptions) (*Task, error)
- func (c *Client) Upload(path string, fields map[string]string, file *os.File, v interface{}) error
- func (c *Client) User(ctx context.Context, userid string) (user *User, err error)
- func (c *Client) Users(ctx context.Context) (users Users, err error)
- func (c *Client) VNCWebSocket(path string, vnc *VNC) (chan []byte, chan []byte, chan error, func() error, error)
- func (c *Client) Version(ctx context.Context) (*Version, error)
- type Cluster
- func (cl *Cluster) Ceph(ctx context.Context) (*Ceph, error)
- func (cl *Cluster) CheckID(ctx context.Context, vmid int) (bool, error)
- func (cl *Cluster) DeleteSDNVNet(ctx context.Context, name string) error
- func (cl *Cluster) DeleteSDNZone(ctx context.Context, name string) error
- func (cl *Cluster) FWGroup(ctx context.Context, name string) (group *FirewallSecurityGroup, err error)
- func (cl *Cluster) FWGroups(ctx context.Context) (groups []*FirewallSecurityGroup, err error)
- func (cl *Cluster) NewFWGroup(ctx context.Context, group *FirewallSecurityGroup) error
- func (cl *Cluster) NewSDNVNet(ctx context.Context, vnet *VNetOptions) error
- func (cl *Cluster) NewSDNZone(ctx context.Context, zone *SDNZoneOptions) error
- func (cl *Cluster) NextID(ctx context.Context) (int, error)
- func (cl *Cluster) Resources(ctx context.Context, filters ...string) (rs ClusterResources, err error)
- func (cl *Cluster) SDNApply(ctx context.Context) (*Task, error)
- func (cl *Cluster) SDNSubnets(ctx context.Context, VNetName string) (subnets []*VNetSubnet, err error)
- func (cl *Cluster) SDNVNet(ctx context.Context, name string) (vnet *VNet, err error)
- func (cl *Cluster) SDNVNets(ctx context.Context) (vnets []*VNet, err error)
- func (cl *Cluster) SDNZone(ctx context.Context, name string) (zone *SDNZone, err error)
- func (cl *Cluster) SDNZones(ctx context.Context, filters ...string) (zones []*SDNZone, err error)
- func (cl *Cluster) Status(ctx context.Context) error
- func (cl *Cluster) Tasks(ctx context.Context) (Tasks, error)
- func (cl *Cluster) UnmarshalJSON(b []byte) error
- func (cl *Cluster) UpdateSDNVNet(ctx context.Context, vnet *VNet) error
- func (cl *Cluster) UpdateSDNZone(ctx context.Context, zone *SDNZoneOptions) error
- type ClusterCephStatus
- type ClusterResource
- type ClusterResources
- type ClusterStorage
- type ClusterStorageOptions
- type ClusterStorages
- type ConsolidationFunction
- type Container
- func (c *Container) AddTag(ctx context.Context, value string) (*Task, error)
- func (c *Container) Clone(ctx context.Context, params *ContainerCloneOptions) (newid int, task *Task, err error)
- func (c *Container) Config(ctx context.Context, options ...ContainerOption) (*Task, error)
- func (c *Container) Delete(ctx context.Context) (task *Task, err error)
- func (c *Container) DeleteFirewallAlias(ctx context.Context, name string) error
- func (c *Container) DeleteFirewallIPSet(ctx context.Context, name string, force bool) error
- func (c *Container) DeleteFirewallIPSetEntry(ctx context.Context, name string, cidr string, digest string) error
- func (c *Container) DeleteFirewallRule(ctx context.Context, rulePos int) error
- func (c *Container) DeleteSnapshot(ctx context.Context, snapshot string) (task *Task, err error)
- func (c *Container) Feature(ctx context.Context) (hasFeature bool, err error)
- func (c *Container) Firewall(ctx context.Context) (firewall *Firewall, err error)
- func (c *Container) FirewallRules(ctx context.Context) (rules []*FirewallRule, err error)
- func (c *Container) GetFirewallAlias(ctx context.Context, name string) (alias *FirewallAlias, err error)
- func (c *Container) GetFirewallAliases(ctx context.Context) (aliases []*FirewallAlias, err error)
- func (c *Container) GetFirewallIPSet(ctx context.Context) (ipsets []*FirewallIPSet, err error)
- func (c *Container) GetFirewallIPSetEntries(ctx context.Context, name string) (entries []*FirewallIPSetEntry, err error)
- func (c *Container) GetFirewallIPSetEntry(ctx context.Context, name string, cidr string) (entry *FirewallIPSetEntry, err error)
- func (c *Container) GetFirewallOptions(ctx context.Context) (options *FirewallVirtualMachineOption, err error)
- func (c *Container) GetFirewallRule(ctx context.Context, rulePos int) (rule *FirewallRule, err error)
- func (c *Container) GetSnapshot(ctx context.Context, snapshot string) (snap []*ContainerSnapshot, err error)
- func (c *Container) GetSnapshotConfig(ctx context.Context, snapshot string) (config map[string]interface{}, err error)
- func (c *Container) HasTag(value string) bool
- func (c *Container) Interfaces(ctx context.Context) (interfaces ContainerInterfaces, err error)
- func (c *Container) Migrate(ctx context.Context, params *ContainerMigrateOptions) (task *Task, err error)
- func (c *Container) MoveVolume(ctx context.Context, params *VirtualMachineMoveDiskOptions) (task *Task, err error)
- func (c *Container) NewFirewallAlias(ctx context.Context, alias *FirewallAlias) error
- func (c *Container) NewFirewallIPSet(ctx context.Context, ipset FirewallIPSetCreationOption) error
- func (c *Container) NewFirewallIPSetEntry(ctx context.Context, name string, entry FirewallIPSetEntryCreationOption) error
- func (c *Container) NewFirewallRule(ctx context.Context, rule *FirewallRule) error
- func (c *Container) NewSnapshot(ctx context.Context, snapName string) (task *Task, err error)
- func (c *Container) RRDData(ctx context.Context, timeframe Timeframe, ...) (rrddata []*RRDData, err error)
- func (c *Container) Reboot(ctx context.Context) (task *Task, err error)
- func (c *Container) RemoveTag(ctx context.Context, value string) (*Task, error)
- func (c *Container) Resize(ctx context.Context, disk, size string) (task *Task, err error)
- func (c *Container) Resume(ctx context.Context) (task *Task, err error)
- func (c *Container) RollbackSnapshot(ctx context.Context, snapshot string, start bool) (task *Task, err error)
- func (c *Container) Shutdown(ctx context.Context, force bool, timeout int) (task *Task, err error)
- func (c *Container) Snapshots(ctx context.Context) (snapshots []*ContainerSnapshot, err error)
- func (c *Container) SplitTags()
- func (c *Container) Start(ctx context.Context) (task *Task, err error)
- func (c *Container) Stop(ctx context.Context) (task *Task, err error)
- func (c *Container) Suspend(ctx context.Context) (task *Task, err error)
- func (c *Container) Template(ctx context.Context) error
- func (c *Container) TermProxy(ctx context.Context) (term *Term, err error)
- func (c *Container) TermWebSocket(term *Term) (chan []byte, chan []byte, chan error, func() error, error)
- func (c *Container) UpdateFirewallAlias(ctx context.Context, name string, alias *FirewallAlias) error
- func (c *Container) UpdateFirewallIPSetEntry(ctx context.Context, name string, cidr string, ...) error
- func (c *Container) UpdateFirewallOptions(ctx context.Context, options *FirewallVirtualMachineOption) error
- func (c *Container) UpdateFirewallRule(ctx context.Context, rulePos int, rule *FirewallRule) error
- func (c *Container) UpdateSnapshot(ctx context.Context, snapshot string) error
- func (c *Container) VNCProxy(ctx context.Context, vncOptions VNCProxyOptions) (vnc *VNC, err error)
- func (c *Container) VNCWebSocket(vnc *VNC) (chan []byte, chan []byte, chan error, func() error, error)
- type ContainerCloneOptions
- type ContainerConfig
- type ContainerInterface
- type ContainerInterfaces
- type ContainerMigrateOptions
- type ContainerOption
- type ContainerOptions
- type ContainerSnapshot
- type Containers
- type Content
- type Credentials
- type CustomCertificate
- type Domain
- type DomainSyncOptions
- type DomainType
- type Domains
- type Firewall
- type FirewallAlias
- type FirewallIPSet
- type FirewallIPSetCreationOption
- type FirewallIPSetEntry
- type FirewallIPSetEntryCreationOption
- type FirewallIPSetEntryUpdateOption
- type FirewallNodeOption
- type FirewallRule
- type FirewallSecurityGroup
- func (g *FirewallSecurityGroup) Delete(ctx context.Context) error
- func (g *FirewallSecurityGroup) GetRules(ctx context.Context) ([]*FirewallRule, error)
- func (g *FirewallSecurityGroup) RuleCreate(ctx context.Context, rule *FirewallRule) error
- func (g *FirewallSecurityGroup) RuleDelete(ctx context.Context, rulePos int) error
- func (g *FirewallSecurityGroup) RuleUpdate(ctx context.Context, rule *FirewallRule) error
- type FirewallVirtualMachineOption
- type Group
- type Groups
- type HA
- type IPAM
- type ISO
- type ISOs
- type IntOrBool
- type IsTemplate
- type Ksm
- type LeveledLogger
- type LeveledLoggerInterface
- type Log
- type Memory
- type NetRange
- type NewAPIToken
- type NewUser
- type Node
- func (n *Node) Appliances(ctx context.Context) (appliances Appliances, err error)
- func (n *Node) Container(ctx context.Context, vmid int) (*Container, error)
- func (n *Node) Containers(ctx context.Context) (c Containers, err error)
- func (n *Node) DeleteCustomCertificate(ctx context.Context) error
- func (n *Node) DownloadAppliance(ctx context.Context, template, storage string) (ret string, err error)
- func (n *Node) FirewallGetRules(ctx context.Context) (rules []*FirewallRule, err error)
- func (n *Node) FirewallOptionGet(ctx context.Context) (firewallOption *FirewallNodeOption, err error)
- func (n *Node) FirewallOptionSet(ctx context.Context, firewallOption *FirewallNodeOption) error
- func (n *Node) FirewallRulesCreate(ctx context.Context, rule *FirewallRule) error
- func (n *Node) FirewallRulesDelete(ctx context.Context, rulePos int) error
- func (n *Node) FirewallRulesUpdate(ctx context.Context, rule *FirewallRule) error
- func (n *Node) GetCustomCertificates(ctx context.Context) (certs *NodeCertificates, err error)
- func (n *Node) IPAM(ctx context.Context) (ipam []*IPAM, err error)
- func (n *Node) Network(ctx context.Context, iface string) (network *NodeNetwork, err error)
- func (n *Node) NetworkReload(ctx context.Context) (*Task, error)
- func (n *Node) Networks(ctx context.Context, ifaceType ...string) (networks NodeNetworks, err error)
- func (n *Node) NewContainer(ctx context.Context, vmid int, options ...ContainerOption) (*Task, error)
- func (n *Node) NewNetwork(ctx context.Context, network *NodeNetwork) (task *Task, err error)
- func (n *Node) NewVirtualMachine(ctx context.Context, vmid int, options ...VirtualMachineOption) (*Task, error)
- func (n *Node) Storage(ctx context.Context, name string) (storage *Storage, err error)
- func (n *Node) StorageBackup(ctx context.Context) (*Storage, error)
- func (n *Node) StorageDownloadURL(ctx context.Context, StorageDownloadURLOptions *StorageDownloadURLOptions) (ret string, err error)
- func (n *Node) StorageISO(ctx context.Context) (*Storage, error)
- func (n *Node) StorageImages(ctx context.Context) (*Storage, error)
- func (n *Node) StorageRootDir(ctx context.Context) (*Storage, error)
- func (n *Node) StorageVZTmpl(ctx context.Context) (*Storage, error)
- func (n *Node) Storages(ctx context.Context) (storages Storages, err error)
- func (n *Node) TermProxy(ctx context.Context) (term *Term, err error)
- func (n *Node) TermWebSocket(term *Term) (chan []byte, chan []byte, chan error, func() error, error)
- func (n *Node) UploadCustomCertificate(ctx context.Context, cert *CustomCertificate) error
- func (n *Node) VNCWebSocket(vnc *VNC) (chan []byte, chan []byte, chan error, func() error, error)
- func (n *Node) Version(ctx context.Context) (version *Version, err error)
- func (n *Node) VirtualMachine(ctx context.Context, vmid int) (*VirtualMachine, error)
- func (n *Node) VirtualMachines(ctx context.Context) (vms VirtualMachines, err error)
- func (n *Node) VzTmpl(ctx context.Context, template, storage string) (*VzTmpl, error)
- func (n *Node) VzTmpls(ctx context.Context, storage string) (templates VzTmpls, err error)
- func (n *Node) Vzdump(ctx context.Context, params *VirtualMachineBackupOptions) (task *Task, err error)
- func (n *Node) VzdumpExtractConfig(ctx context.Context, volume string) (*VzdumpConfig, error)
- type NodeCertificate
- type NodeCertificates
- type NodeNetwork
- type NodeNetworks
- type NodeStatus
- type NodeStatuses
- type Option
- func WithAPIToken(tokenID, secret string) Option
- func WithClient(client *http.Client) Optiondeprecated
- func WithCredentials(credentials *Credentials) Option
- func WithHTTPClient(client *http.Client) Option
- func WithLogger(logger LeveledLoggerInterface) Option
- func WithLogins(username, password string) Optiondeprecated
- func WithSession(ticket, CSRFPreventionToken string) Option
- func WithUserAgent(ua string) Option
- type PendingConfigItem
- type PendingConfiguration
- type Permission
- type Permissions
- type PermissionsOptions
- type Pool
- type PoolUpdateOption
- type Pools
- type RRDData
- type Role
- type Roles
- type RootFS
- type SDNZone
- type SDNZoneOptions
- type Separator
- type Session
- type Snapshot
- type Storage
- func (s *Storage) Backup(ctx context.Context, name string) (backup *Backup, err error)
- func (s *Storage) DeleteContent(ctx context.Context, content string) (*Task, error)
- func (s *Storage) DownloadURL(ctx context.Context, content, filename, url string) (*Task, error)
- func (s *Storage) DownloadURLWithHash(ctx context.Context, content, filename, url string, ...) (*Task, error)
- func (s *Storage) GetContent(ctx context.Context) (content []*StorageContent, err error)
- func (s *Storage) ISO(ctx context.Context, name string) (iso *ISO, err error)
- func (s *Storage) Upload(content, file string) (*Task, error)
- func (s *Storage) UploadWithHash(content, file string, storageFilename *string, ...) (*Task, error)
- func (s *Storage) UploadWithName(content, file string, storageFilename string) (*Task, error)
- func (s *Storage) VzTmpl(ctx context.Context, name string) (vztmpl *VzTmpl, err error)
- type StorageContent
- type StorageDownloadURLOptions
- type Storages
- type StringOrFloat64
- type StringOrInt
- type StringOrUint64
- type TFA
- type Task
- func (t *Task) Log(ctx context.Context, start, limit int) (l Log, err error)
- func (t *Task) Ping(ctx context.Context) error
- func (t *Task) Stop(ctx context.Context) error
- func (t *Task) UnmarshalJSON(b []byte) error
- func (t *Task) Wait(ctx context.Context, interval, max time.Duration) error
- func (t *Task) WaitFor(ctx context.Context, seconds int) error
- func (t *Task) WaitForCompleteStatus(ctx context.Context, timesNum int, steps ...int) (status bool, completed bool, err error)
- func (t *Task) Watch(ctx context.Context, start int) (chan string, error)
- type Tasks
- type Term
- type Time
- type Timeframe
- type Token
- type Tokens
- type UPID
- type User
- func (u *User) APIToken(ctx context.Context, tokenid string) (token Token, err error)
- func (u *User) Delete(ctx context.Context) error
- func (u *User) DeleteAPIToken(ctx context.Context, tokenid string) error
- func (u *User) GetAPITokens(ctx context.Context) (tokens Tokens, err error)
- func (u *User) GetTFA(ctx context.Context) (tfa TFA, err error)
- func (u *User) NewAPIToken(ctx context.Context, token Token) (newtoken NewAPIToken, err error)
- func (u *User) UnlockTFA(ctx context.Context) error
- func (u *User) Update(ctx context.Context, options UserOptions) error
- func (u *User) UpdateAPIToken(ctx context.Context, tokenid string) (token Token, err error)
- type UserOptions
- type Users
- type VNC
- type VNCConfig
- type VNCProxyOptions
- type VNet
- type VNetOptions
- type VNetSubnet
- type Version
- type VirtualMachine
- func (v *VirtualMachine) AddTag(ctx context.Context, value string) (*Task, error)
- func (v *VirtualMachine) AgentExec(ctx context.Context, command []string, inputData string) (pid int, err error)
- func (v *VirtualMachine) AgentExecStatus(ctx context.Context, pid int) (status *AgentExecStatus, err error)
- func (v *VirtualMachine) AgentGetNetworkIFaces(ctx context.Context) (iFaces []*AgentNetworkIface, err error)
- func (v *VirtualMachine) AgentOsInfo(ctx context.Context) (info *AgentOsInfo, err error)
- func (v *VirtualMachine) AgentSetUserPassword(ctx context.Context, password string, username string) error
- func (v *VirtualMachine) Clone(ctx context.Context, params *VirtualMachineCloneOptions) (newid int, task *Task, err error)
- func (v *VirtualMachine) CloudInit(ctx context.Context, ...) error
- func (v *VirtualMachine) Config(ctx context.Context, options ...VirtualMachineOption) (*Task, error)
- func (v *VirtualMachine) ConvertToTemplate(ctx context.Context) (task *Task, err error)
- func (v *VirtualMachine) Delete(ctx context.Context) (task *Task, err error)
- func (v *VirtualMachine) DeleteFirewallIPSet(ctx context.Context, name string, force bool) error
- func (v *VirtualMachine) DeleteFirewallIPSetEntry(ctx context.Context, name string, cidr string, digest string) error
- func (v *VirtualMachine) FirewallGetRules(ctx context.Context) (rules []*FirewallRule, err error)
- func (v *VirtualMachine) FirewallOptionGet(ctx context.Context) (firewallOption *FirewallVirtualMachineOption, err error)
- func (v *VirtualMachine) FirewallOptionSet(ctx context.Context, firewallOption *FirewallVirtualMachineOption) error
- func (v *VirtualMachine) FirewallRulesCreate(ctx context.Context, rule *FirewallRule) error
- func (v *VirtualMachine) FirewallRulesDelete(ctx context.Context, rulePos int) error
- func (v *VirtualMachine) FirewallRulesUpdate(ctx context.Context, rule *FirewallRule) error
- func (v *VirtualMachine) GetFirewallIPSet(ctx context.Context) (ipsets []*FirewallIPSet, err error)
- func (v *VirtualMachine) GetFirewallIPSetEntries(ctx context.Context, name string) (entries []*FirewallIPSetEntry, err error)
- func (v *VirtualMachine) GetFirewallIPSetEntry(ctx context.Context, name string, cidr string) (entry *FirewallIPSetEntry, err error)
- func (v *VirtualMachine) HasTag(value string) bool
- func (v *VirtualMachine) Hibernate(ctx context.Context) (task *Task, err error)
- func (v *VirtualMachine) IsHibernated() bool
- func (v *VirtualMachine) IsPaused() bool
- func (v *VirtualMachine) IsRunning() bool
- func (v *VirtualMachine) IsStopped() bool
- func (v *VirtualMachine) Migrate(ctx context.Context, params *VirtualMachineMigrateOptions) (task *Task, err error)
- func (v *VirtualMachine) MoveDisk(ctx context.Context, disk string, params *VirtualMachineMoveDiskOptions) (task *Task, err error)
- func (v *VirtualMachine) NewFirewallIPSet(ctx context.Context, ipset FirewallIPSetCreationOption) error
- func (v *VirtualMachine) NewFirewallIPSetEntry(ctx context.Context, name string, entry FirewallIPSetEntryCreationOption) error
- func (v *VirtualMachine) NewSnapshot(ctx context.Context, name string) (task *Task, err error)
- func (v *VirtualMachine) Pause(ctx context.Context) (task *Task, err error)
- func (v *VirtualMachine) Pending(ctx context.Context) (pending *PendingConfiguration, err error)
- func (v *VirtualMachine) Ping(ctx context.Context) error
- func (v *VirtualMachine) RRDData(ctx context.Context, timeframe Timeframe, ...) (rrddata []*RRDData, err error)
- func (v *VirtualMachine) Reboot(ctx context.Context) (task *Task, err error)
- func (v *VirtualMachine) RemoveTag(ctx context.Context, value string) (*Task, error)
- func (v *VirtualMachine) Reset(ctx context.Context) (task *Task, err error)
- func (v *VirtualMachine) ResizeDisk(ctx context.Context, disk, size string) (*Task, error)
- func (v *VirtualMachine) Resume(ctx context.Context) (task *Task, err error)
- func (v *VirtualMachine) Shutdown(ctx context.Context) (task *Task, err error)
- func (v *VirtualMachine) SnapshotRollback(ctx context.Context, name string) (task *Task, err error)
- func (v *VirtualMachine) Snapshots(ctx context.Context) (snapshots []*Snapshot, err error)
- func (v *VirtualMachine) SplitTags()
- func (v *VirtualMachine) Start(ctx context.Context) (task *Task, err error)
- func (v *VirtualMachine) Stop(ctx context.Context) (task *Task, err error)
- func (v *VirtualMachine) TermProxy(ctx context.Context) (term *Term, err error)
- func (v *VirtualMachine) TermWebSocket(term *Term) (chan []byte, chan []byte, chan error, func() error, error)
- func (v *VirtualMachine) UnlinkDisk(ctx context.Context, diskID string, force bool) (task *Task, err error)
- func (v *VirtualMachine) UnmountCloudInitISO(ctx context.Context, device string) error
- func (v *VirtualMachine) UpdateFirewallIPSetEntry(ctx context.Context, name string, cidr string, ...) error
- func (v *VirtualMachine) VNCProxy(ctx context.Context, config *VNCConfig) (vnc *VNC, err error)
- func (v *VirtualMachine) VNCWebSocket(vnc *VNC) (chan []byte, chan []byte, chan error, func() error, error)
- func (v *VirtualMachine) WaitForAgent(ctx context.Context, seconds int) error
- func (v *VirtualMachine) WaitForAgentExecExit(ctx context.Context, pid, seconds int) (*AgentExecStatus, error)
- type VirtualMachineBackupCompress
- type VirtualMachineBackupMode
- type VirtualMachineBackupNotificationPolicy
- type VirtualMachineBackupOptions
- type VirtualMachineCloneOptions
- type VirtualMachineConfig
- func (vmc *VirtualMachineConfig) MergeDisks() map[string]string
- func (vmc *VirtualMachineConfig) MergeHostPCIs() map[string]string
- func (vmc *VirtualMachineConfig) MergeIDEs() map[string]string
- func (vmc *VirtualMachineConfig) MergeIPConfigs() map[string]string
- func (vmc *VirtualMachineConfig) MergeNets() map[string]string
- func (vmc *VirtualMachineConfig) MergeNumas() map[string]string
- func (vmc *VirtualMachineConfig) MergeParallels() map[string]string
- func (vmc *VirtualMachineConfig) MergeSATAs() map[string]string
- func (vmc *VirtualMachineConfig) MergeSCSIs() map[string]string
- func (vmc *VirtualMachineConfig) MergeSerials() map[string]string
- func (vmc *VirtualMachineConfig) MergeUSBs() map[string]string
- func (vmc *VirtualMachineConfig) MergeUnuseds() map[string]string
- func (vmc *VirtualMachineConfig) MergeVirtIOs() map[string]string
- type VirtualMachineMigrateOptions
- type VirtualMachineMoveDiskOptions
- type VirtualMachineOption
- type VirtualMachineOptions
- type VirtualMachines
- type Volume
- type VzTmpl
- type VzTmpls
- type VzdumpConfig
Constants ¶
const ( LevelError = iota + 1 LevelWarn LevelInfo LevelDebug )
const ( DefaultUserAgent = "go-proxmox/dev" TagFormat = "go-proxmox+%s" )
const ( TimeframeHour = Timeframe("hour") TimeframeDay = Timeframe("day") TimeframeWeek = Timeframe("week") TimeframeMonth = Timeframe("month") TimeframeYear = Timeframe("year") )
const ( AVERAGE = ConsolidationFunction("AVERAGE") MAX = ConsolidationFunction("MAX") )
const ( DomainTypeAD = DomainType("ad") DomainTypeLDAP = DomainType("ldap") DomainTypeOpenID = DomainType("openid") DomainTypePam = DomainType("pam") DomainTypePVE = DomainType("pve") )
const ( VirtualMachineBackupModeSnapshot = VirtualMachineBackupMode("snapshot") VirtualMachineBackupModeSuspend = VirtualMachineBackupMode("suspend") VirtualMachineBackupModeStop = VirtualMachineBackupMode("stop") VirtualMachineBackupCompressZero = VirtualMachineBackupCompress("0") VirtualMachineBackupCompressOne = VirtualMachineBackupCompress("1") VirtualMachineBackupCompressGzip = VirtualMachineBackupCompress("gzip") VirtualMachineBackupCompressLzo = VirtualMachineBackupCompress("lzo") VirtualMachineBackupCompressZstd = VirtualMachineBackupCompress("zstd") VirtualMachineBackupNotificationPolicyAlways = VirtualMachineBackupNotificationPolicy("always") VirtualMachineBackupNotificationPolicyFailure = VirtualMachineBackupNotificationPolicy("failure") VirtualMachineBackupNotificationPolicyNever = VirtualMachineBackupNotificationPolicy("never") )
const ( StringSeparator = Separator("\n") FieldSeparator = Separator(":") SpaceSeparator = Separator(" ") )
const ( StatusVirtualMachineRunning = "running" StatusVirtualMachineStopped = "stopped" StatusVirtualMachinePaused = "paused" UserDataISOFormat = "user-data-%d.iso" TagCloudInit = "cloud-init" TagSeperator = ";" )
const (
TaskRunning = "running"
)
Variables ¶
var DefaultAgentWaitInterval = 100 * time.Millisecond
DefaultAgentWaitInterval is the polling interval when waiting for agent exec commands
var DefaultWaitInterval = 1 * time.Second
var ErrNoop = errors.New("nothing to do")
var ErrNotAuthorized = errors.New("not authorized to access endpoint")
var ErrNotFound = errors.New("unable to find the item you are looking for")
var ErrTimeout = errors.New("the operation has timed out")
Functions ¶
func IsNotAuthorized ¶
func IsNotFound ¶
Types ¶
type ACLOptions ¶
type ACLOptions struct {
Path string `json:"path,omitempty"`
Roles string `json:"roles,omitempty"` // comma separated list of roles
Groups string `json:"groups,omitempty"`
Users string `json:"users,omitempty"`
Tokens string `json:"tokens,omitempty"`
Propagate IntOrBool `json:"propagate"` // Default is true, omitempty would never send false
Delete IntOrBool `json:"delete,omitempty"` // true to delete the ACL
}
type AgentExecStatus ¶
type AgentNetworkIPAddress ¶
type AgentNetworkIface ¶
type AgentNetworkIface struct {
Name string `json:"name"`
HardwareAddress string `json:"hardware-address"`
IPAddresses []*AgentNetworkIPAddress `json:"ip-addresses"`
}
type AgentOsInfo ¶
type AgentOsInfo struct {
Version string `json:"version"`
VersionID string `json:"version-id"`
ID string `json:"id"`
Machine string `json:"machine"`
PrettyName string `json:"pretty-name"`
Name string `json:"name"`
KernelRelease string `json:"kernel-release"`
KernelVersion string `json:"kernel-version"`
}
type Appliance ¶
type Appliance struct {
Node string `json:",omitempty"`
Os string
Source string
Type string
SHA512Sum string
Package string
Template string
Architecture string
InfoPage string
Description string
ManageURL string
Version string
Section string
Headline string
// contains filtered or unexported fields
}
type Appliances ¶
type Appliances []*Appliance
type CephFsMap ¶
type CephFsMap struct {
ByRank []struct {
FilesystemID int `json:"filesystem_id"`
Gid int `json:"gid"`
Name string `json:"name"`
Rank int `json:"rank"`
Status string `json:"status"`
} `json:"by_rank"`
Epoch int `json:"epoch"`
ID int `json:"id"`
In int `json:"in"`
Max int `json:"max"`
Up int `json:"up"`
UpStandby int `json:"up:standby"`
}
type CephHealth ¶
type CephHealth struct {
Checks map[CephHealthCheckName]CephHealthCheck `json:"checks"`
Mutes []interface{} `json:"mutes"`
Status string `json:"status"`
}
type CephHealthCheck ¶
type CephHealthCheck struct {
Detail []CephHealthCheckDetail `json:"detail"`
Muted bool `json:"muted"`
Severity string `json:"severity"`
Summary CephHealthCheckSummary `json:"summary"`
}
type CephHealthCheckDetail ¶
type CephHealthCheckDetail struct {
Message string `json:"message"`
}
type CephHealthCheckName ¶
type CephHealthCheckName string
type CephHealthCheckSummary ¶
type CephMgrActiveAddresses ¶
type CephMgrActiveAddresses struct {
Addrvec []CephMgrAddrVector `json:"addrvec"`
}
type CephMgrActiveClient ¶
type CephMgrActiveClient struct {
Addrvec []CephMgrAddrVector `json:"addrvec"`
Name string `json:"name"`
}
type CephMgrAddrVector ¶
type CephMgrAlwaysOnModules ¶
type CephMgrAvailableModule ¶
type CephMgrAvailableModule struct {
CanRun bool `json:"can_run"`
ErrorString string `json:"error_string"`
ModuleOptions CephMgrAvailableModuleOptions `json:"module_options"`
Name string `json:"name"`
}
type CephMgrAvailableModuleOption ¶
type CephMgrAvailableModuleOption struct {
DefaultValue string `json:"default_value"`
Desc string `json:"desc"`
EnumAllowed []string `json:"enum_allowed"`
Flags int `json:"flags"`
Level string `json:"level"`
LongDesc string `json:"long_desc"`
Max string `json:"max"`
Min string `json:"min"`
Name string `json:"name"`
SeeAlso []interface{} `json:"see_also"`
Tags []interface{} `json:"tags"`
Type string `json:"type"`
}
type CephMgrAvailableModuleOptions ¶
type CephMgrAvailableModuleOptions struct {
Interval CephMgrAvailableModuleOption `json:"interval"`
LogLevel CephMgrAvailableModuleOption `json:"log_level"`
LogToCluster CephMgrAvailableModuleOption `json:"log_to_cluster"`
LogToClusterLevel CephMgrAvailableModuleOption `json:"log_to_cluster_level"`
LogToFile CephMgrAvailableModuleOption `json:"log_to_file"`
SMTPDestination CephMgrAvailableModuleOption `json:"smtp_destination"`
SMTPFromName CephMgrAvailableModuleOption `json:"smtp_from_name"`
SMTPHost CephMgrAvailableModuleOption `json:"smtp_host"`
SMTPPassword CephMgrAvailableModuleOption `json:"smtp_password"`
SMTPPort CephMgrAvailableModuleOption `json:"smtp_port"`
SMTPSender CephMgrAvailableModuleOption `json:"smtp_sender"`
SMTPSsl CephMgrAvailableModuleOption `json:"smtp_ssl"`
SMTPUser CephMgrAvailableModuleOption `json:"smtp_user"`
}
type CephMgrMap ¶
type CephMgrMap struct {
ActiveAddr string `json:"active_addr"`
ActiveAddrs CephMgrActiveAddresses `json:"active_addrs"`
ActiveChange string `json:"active_change"`
ActiveClients []CephMgrActiveClient `json:"active_clients"`
ActiveGid int `json:"active_gid"`
ActiveMgrFeatures int64 `json:"active_mgr_features"`
ActiveName string `json:"active_name"`
AlwaysOnModules CephMgrAlwaysOnModules `json:"always_on_modules"`
Available bool `json:"available"`
AvailableModules []CephMgrAvailableModule `json:"available_modules"`
Epoch int `json:"epoch"`
LastFailureOsdEpoch int `json:"last_failure_osd_epoch"`
Modules []string `json:"modules"`
Services CephMgrServices `json:"services"`
Standbys []CephMgrStandby `json:"standbys"`
}
type CephMgrServices ¶
type CephMgrStandby ¶
type CephMgrStandby struct {
AvailableModules []CephMgrAvailableModule `json:"available_modules"`
Gid int `json:"gid"`
MgrFeatures int64 `json:"mgr_features"`
Name string `json:"name"`
}
type CephMon ¶
type CephMon struct {
Addr string `json:"addr"`
CrushLocation string `json:"crush_location"`
Name string `json:"name"`
Priority int `json:"priority"`
Rank int `json:"rank"`
Weight int `json:"weight"`
PublicAddr string `json:"public_addr"`
PublicAddrs struct {
Addrvec []CephMgrAddrVector `json:"addrvec"`
} `json:"public_addrs"`
}
type CephMonFeatures ¶
type CephMonFeatures struct {
Optional []interface{} `json:"optional"`
Persistent []string `json:"persistent"`
}
type CephMonMap ¶
type CephMonMap struct {
Created time.Time `json:"created"`
DisallowedLeaders string `json:"disallowed_leaders: "`
ElectionStrategy int `json:"election_strategy"`
Epoch int `json:"epoch"`
Features CephMonFeatures `json:"features"`
Fsid string `json:"fsid"`
MinMonRelease int `json:"min_mon_release"`
MinMonReleaseName string `json:"min_mon_release_name"`
Modified time.Time `json:"modified"`
Mons []CephMon `json:"mons"`
Quorum []int `json:"quorum"`
RemovedRanks string `json:"removed_ranks: "`
StretchMode bool `json:"stretch_mode"`
TiebreakerMon string `json:"tiebreaker_mon"`
}
type CephOsdMap ¶
type CephPgMap ¶
type CephPgMap struct {
BytesAvail int64 `json:"bytes_avail"`
BytesTotal int64 `json:"bytes_total"`
BytesUsed int64 `json:"bytes_used"`
DataBytes int64 `json:"data_bytes"`
NumObjects int `json:"num_objects"`
NumPgs int `json:"num_pgs"`
NumPools int `json:"num_pools"`
PgsByState []struct {
Count int `json:"count"`
StateName string `json:"state_name"`
} `json:"pgs_by_state"`
ReadBytesSec int `json:"read_bytes_sec"`
ReadOpPerSec int `json:"read_op_per_sec"`
WriteBytesSec int `json:"write_bytes_sec"`
WriteOpPerSec int `json:"write_op_per_sec"`
}
type CephServiceMap ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func (*Client) ClusterStorage ¶
func (*Client) ClusterStorages ¶
func (c *Client) ClusterStorages(ctx context.Context) (storages ClusterStorages, err error)
func (*Client) DeleteClusterStorage ¶
func (*Client) GetWithParams ¶
GetWithParams is a helper function to append query parameters to the URL
func (*Client) NewClusterStorage ¶
func (*Client) NewDomain ¶
NewDomain create a new domain with the required two parameters pull it and use domain.Update to configure
func (*Client) Permissions ¶
func (c *Client) Permissions(ctx context.Context, o *PermissionsOptions) (permissions Permissions, err error)
Permissions get permissions for the current user for the client which passes no params, use Permission
func (*Client) Pool ¶
func (c *Client) Pool(ctx context.Context, poolid string, filters ...string) (pool *Pool, err error)
Pool optional filter of cluster resources by type, enum can be "qemu", "lxc", "storage".
func (*Client) TermWebSocket ¶
func (*Client) UpdateACL ¶
func (c *Client) UpdateACL(ctx context.Context, aclOptions ACLOptions) error
func (*Client) UpdateClusterStorage ¶
func (*Client) Upload ¶
Upload - There is some weird 16kb limit hardcoded in proxmox for the max POST size, hopefully in the future we make a func to scp the file to the node directly as this API endpoint is kind of janky. For now big ISOs/vztmpl should be put somewhere and a use DownloadUrl. code link for posterity, I think they meant to do 16mb and got the bit math wrong https://git.proxmox.com/?p=pve-manager.git;a=blob;f=PVE/HTTPServer.pm;h=8a0c308ea6d6601b886b0dec2bada3d4c3da65d0;hb=HEAD#l36 the task returned is the imgcopy from the tmp file to where the node actually wants the iso and you should wait for that to complete before using the iso
func (*Client) VNCWebSocket ¶
type Cluster ¶
type Cluster struct {
Version int
Quorate int
Nodes NodeStatuses
Name string
ID string
// contains filtered or unexported fields
}
func (*Cluster) CheckID ¶
CheckID checks if the given vmid is free. CheckID calls the /cluster/nextid endpoint with the "vmid" parameter. The API documentation describes the check as: "Pass a VMID to assert that its free (at time of check)." Returns true if the vmid is free, false otherwise.
func (*Cluster) DeleteSDNVNet ¶
func (*Cluster) DeleteSDNZone ¶
func (*Cluster) FWGroups ¶
func (cl *Cluster) FWGroups(ctx context.Context) (groups []*FirewallSecurityGroup, err error)
func (*Cluster) NewFWGroup ¶
func (cl *Cluster) NewFWGroup(ctx context.Context, group *FirewallSecurityGroup) error
func (*Cluster) NewSDNVNet ¶
func (cl *Cluster) NewSDNVNet(ctx context.Context, vnet *VNetOptions) error
func (*Cluster) NewSDNZone ¶
func (cl *Cluster) NewSDNZone(ctx context.Context, zone *SDNZoneOptions) error
func (*Cluster) Resources ¶
func (cl *Cluster) Resources(ctx context.Context, filters ...string) (rs ClusterResources, err error)
Resources retrieves a summary list of all resources in the cluster. It calls /cluster/resources api v2 endpoint with an optional "type" parameter to filter searched values. It returns a list of ClusterResources.
func (*Cluster) SDNSubnets ¶
func (*Cluster) UnmarshalJSON ¶
func (*Cluster) UpdateSDNVNet ¶
func (*Cluster) UpdateSDNZone ¶
func (cl *Cluster) UpdateSDNZone(ctx context.Context, zone *SDNZoneOptions) error
type ClusterCephStatus ¶
type ClusterCephStatus struct {
ElectionEpoch int `json:"election_epoch"`
Fsid string `json:"fsid"`
Fsmap CephFsMap `json:"fsmap"`
Health CephHealth `json:"health"`
Mgrmap CephMgrMap `json:"mgrmap"`
Monmap CephMonMap `json:"monmap"`
Osdmap CephOsdMap `json:"osdmap"`
Pgmap CephPgMap `json:"pgmap"`
ProgressEvents struct{} `json:"progress_events"`
Quorum []int `json:"quorum"`
QuorumAge int `json:"quorum_age"`
QuorumNames []string `json:"quorum_names"`
Servicemap CephServiceMap `json:"servicemap"`
}
type ClusterResource ¶
type ClusterResource struct {
ID string `json:"id"`
Type string `json:"type"`
CGroupMode uint64 `json:"cgroup-mode,omitempty"`
Content string `json:",omitempty"`
CPU float64 `json:",omitempty"`
Disk uint64 `json:",omitempty"` // documented as string but this is an int
DiskRead uint64 `json:",omitempty"`
DiskWrite uint64 `json:",omitempty"`
HAstate string `json:",omitempty"`
Level string `json:",omitempty"`
MaxCPU uint64 `json:",omitempty"`
MaxDisk uint64 `json:",omitempty"`
MaxMem uint64 `json:",omitempty"`
Mem uint64 `json:",omitempty"` // documented as string but this is an int
Name string `json:",omitempty"`
NetIn uint64 `json:",omitempty"`
NetOut uint64 `json:",omitempty"`
Node string `json:",omitempty"`
PluginType string `json:",omitempty"`
Pool string `json:",omitempty"`
Status string `json:",omitempty"`
Storage string `json:",omitempty"`
Tags string `json:",omitempty"`
Template uint64 `json:",omitempty"`
Uptime uint64 `json:",omitempty"`
VMID uint64 `json:",omitempty"`
}
type ClusterResources ¶
type ClusterResources []*ClusterResource
type ClusterStorage ¶
type ClusterStorageOptions ¶
type ClusterStorages ¶
type ClusterStorages []*ClusterStorage
type ConsolidationFunction ¶
type ConsolidationFunction string
type Container ¶
type Container struct {
ContainerConfig *ContainerConfig
CPUs int
MaxDisk uint64
MaxMem uint64
MaxSwap uint64
Name string
Node string
Status string
Tags string
Uptime uint64
VMID StringOrUint64
// contains filtered or unexported fields
}
func (*Container) AddTag ¶
AddTag appends the passed value to TagsSlice and updates Tags via c.Config If accurate state is important, then reassign the value of Container after the task has completed.
func (*Container) Config ¶
Config sets ContainerOptions for Container see https://pve.proxmox.com/pve-docs/api-viewer/index.html#/nodes/{node}/lxc/{vmid}/config for available attributes
func (*Container) DeleteFirewallAlias ¶
func (*Container) DeleteFirewallIPSet ¶
func (*Container) DeleteFirewallIPSetEntry ¶
func (*Container) DeleteFirewallRule ¶
func (*Container) DeleteSnapshot ¶
func (*Container) FirewallRules ¶
func (c *Container) FirewallRules(ctx context.Context) (rules []*FirewallRule, err error)
func (*Container) GetFirewallAlias ¶
func (*Container) GetFirewallAliases ¶
func (c *Container) GetFirewallAliases(ctx context.Context) (aliases []*FirewallAlias, err error)
func (*Container) GetFirewallIPSet ¶
func (c *Container) GetFirewallIPSet(ctx context.Context) (ipsets []*FirewallIPSet, err error)
func (*Container) GetFirewallIPSetEntries ¶
func (*Container) GetFirewallIPSetEntry ¶
func (*Container) GetFirewallOptions ¶
func (c *Container) GetFirewallOptions(ctx context.Context) (options *FirewallVirtualMachineOption, err error)
func (*Container) GetFirewallRule ¶
func (*Container) GetSnapshot ¶
func (*Container) GetSnapshotConfig ¶
func (*Container) Interfaces ¶
func (c *Container) Interfaces(ctx context.Context) (interfaces ContainerInterfaces, err error)
func (*Container) MoveVolume ¶
func (*Container) NewFirewallAlias ¶
func (c *Container) NewFirewallAlias(ctx context.Context, alias *FirewallAlias) error
func (*Container) NewFirewallIPSet ¶
func (c *Container) NewFirewallIPSet(ctx context.Context, ipset FirewallIPSetCreationOption) error
func (*Container) NewFirewallIPSetEntry ¶
func (*Container) NewFirewallRule ¶
func (c *Container) NewFirewallRule(ctx context.Context, rule *FirewallRule) error
func (*Container) NewSnapshot ¶
func (*Container) RemoveTag ¶
RemoveTag removes the passed value from TagsSlice and updates Tags via c.Config If accurate state is important, then reassign the value of Container after the task has completed.
func (*Container) RollbackSnapshot ¶
func (*Container) Snapshots ¶
func (c *Container) Snapshots(ctx context.Context) (snapshots []*ContainerSnapshot, err error)
func (*Container) SplitTags ¶
func (c *Container) SplitTags()
SplitTags sets ContainerConfig TagsSlice my splitting the value of ContainerConfig.Tags with TagSeparator
func (*Container) TermWebSocket ¶
func (*Container) UpdateFirewallAlias ¶
func (*Container) UpdateFirewallIPSetEntry ¶
func (*Container) UpdateFirewallOptions ¶
func (c *Container) UpdateFirewallOptions(ctx context.Context, options *FirewallVirtualMachineOption) error
func (*Container) UpdateFirewallRule ¶
func (*Container) UpdateSnapshot ¶
type ContainerCloneOptions ¶
type ContainerCloneOptions struct {
NewID int `json:"newid"`
BWLimit uint64 `json:"bwlimit,omitempty"`
Description string `json:"description,omitempty"`
Full uint8 `json:"full,omitempty"`
Hostname string `json:"hostname,omitempty"`
Pool string `json:"pool,omitempty"`
SnapName string `json:"snapname,omitempty"`
Storage string `json:"storage,omitempty"`
Target string `json:"target,omitempty"`
}
type ContainerConfig ¶
type ContainerConfig struct {
Arch string `json:"arch,omitempty"`
CMode string `json:"cmode,omitempty"`
Console IntOrBool `json:"console,omitempty"`
Cores int `json:"cores,omitempty"`
CPULimit int `json:"cpulimit,omitempty"`
CPUUnits int `json:"cpuunits,omitempty"`
Debug IntOrBool `json:"debug,omitempty"`
Description string `json:"description,omitempty"`
Devs map[string]string `json:"-"` // internal helper for Dev0..9
Dev0 string `json:"dev0,omitempty"`
Dev1 string `json:"dev1,omitempty"`
Dev2 string `json:"dev2,omitempty"`
Dev3 string `json:"dev3,omitempty"`
Dev4 string `json:"dev4,omitempty"`
Dev5 string `json:"dev5,omitempty"`
Dev6 string `json:"dev6,omitempty"`
Dev7 string `json:"dev7,omitempty"`
Dev8 string `json:"dev8,omitempty"`
Dev9 string `json:"dev9,omitempty"`
Digest string `json:"digest"`
Features string `json:"features,omitempty"`
HookScript string `json:"hookscript,omitempty"`
LXC [][]string `json:"lxc,omitempty"`
Hostname string `json:"hostname,omitempty"`
Lock string `json:"lock,omitempty"`
Memory int `json:"memory,omitempty"`
Mps map[string]string `json:"-"` // internal helper for Mp0..9
Mp0 string `json:"mp0,omitempty"`
Mp1 string `json:"mp1,omitempty"`
Mp2 string `json:"mp2,omitempty"`
Mp3 string `json:"mp3,omitempty"`
Mp4 string `json:"mp4,omitempty"`
Mp5 string `json:"mp5,omitempty"`
Mp6 string `json:"mp6,omitempty"`
Mp7 string `json:"mp7,omitempty"`
Mp8 string `json:"mp8,omitempty"`
Mp9 string `json:"mp9,omitempty"`
Nameserver string `json:"nameserver,omitempty"`
Nets map[string]string `json:"-"` // internal helper for Net0..9
Net0 string `json:"net0,omitempty"`
Net1 string `json:"net1,omitempty"`
Net2 string `json:"net2,omitempty"`
Net3 string `json:"net3,omitempty"`
Net4 string `json:"net4,omitempty"`
Net5 string `json:"net5,omitempty"`
Net6 string `json:"net6,omitempty"`
Net7 string `json:"net7,omitempty"`
Net8 string `json:"net8,omitempty"`
Net9 string `json:"net9,omitempty"`
OnBoot IntOrBool `json:"onboot,omitempty"`
OSType string `json:"ostype,omitempty"`
Protection IntOrBool `json:"protection,omitempty"`
RootFS string `json:"rootfs,omitempty"`
SearchDomain string `json:"searchdomain:omitempty"`
Startup string `json:"startup:omitempty"`
Swap int `json:"swap,omitempty"`
TagsSlice []string `json:"-"` // internal helper to manage tags easier
Tags string `json:"tags,omitempty"`
Template IntOrBool `json:"template,omitempty"`
Timezone string `json:"timezone,omitempty"`
TTY int `json:"tty,omitempty"`
Unprivileged IntOrBool `json:"unprivileged,omitempty"`
Unuseds map[string]string `json:"-"` // internal helper
Unused0 string `json:"unused0,omitempty"`
Unused1 string `json:"unused1,omitempty"`
Unused2 string `json:"unused2,omitempty"`
Unused3 string `json:"unused3,omitempty"`
Unused4 string `json:"unused4,omitempty"`
Unused5 string `json:"unused5,omitempty"`
Unused6 string `json:"unused6,omitempty"`
Unused7 string `json:"unused7,omitempty"`
Unused8 string `json:"unused8,omitempty"`
Unused9 string `json:"unused9,omitempty"`
}
func (*ContainerConfig) MergeDevs ¶
func (cc *ContainerConfig) MergeDevs() map[string]string
MergeDevs merges and assigns the indexed Dev0..9 fields to a string map
func (*ContainerConfig) MergeMps ¶
func (cc *ContainerConfig) MergeMps() map[string]string
MergeMps merges and assigns the indexed Mp0..9 fields to a string map
func (*ContainerConfig) MergeNets ¶
func (cc *ContainerConfig) MergeNets() map[string]string
MergeNets merges and assigns the indexed Net0..9 fields to a string map
func (*ContainerConfig) MergeUnuseds ¶
func (cc *ContainerConfig) MergeUnuseds() map[string]string
MergeUnuseds merges and assigns the indexed Unused0..9 fields to a string map
func (*ContainerConfig) UnmarshalJSON ¶
func (cc *ContainerConfig) UnmarshalJSON(data []byte) error
type ContainerInterface ¶
type ContainerInterfaces ¶
type ContainerInterfaces []*ContainerInterface
type ContainerMigrateOptions ¶
type ContainerOption ¶
type ContainerOption struct {
Name string
Value interface{}
}
type ContainerOptions ¶
type ContainerOptions []*ContainerOption
ContainerOptions A key/value pair used to modify a container(LXC) config Refer to https://pve.proxmox.com/pve-docs/api-viewer/#/nodes/{node}/lxc/{vmid}/config for a list of valid values
type ContainerSnapshot ¶
type Containers ¶
type Containers []*Container
type Content ¶
type Content struct {
URL string
Node string
Storage string `json:",omitempty"`
Content string `json:",omitempty"`
VolID string `json:",omitempty"`
CTime uint64 `json:",omitempty"`
Format string
Size StringOrUint64
Used StringOrUint64 `json:",omitempty"`
Path string `json:",omitempty"`
Notes string `json:",omitempty"`
// contains filtered or unexported fields
}
type Credentials ¶
type CustomCertificate ¶
type CustomCertificate struct {
Certificates string `json:"certificates,omitempty"` // PEM encoded certificate (chain)
Force bool `json:"force,omitempty"` // overwrite existing certificate
Key string `json:"key,omitempty"` // PEM encoded private key
Restart bool `json:"restart,omitempty"` // restart pveproxy
}
type Domain ¶
type Domain struct {
Realm string `json:",omitempty"`
Type string `json:",omitempty"`
// options https://pve.proxmox.com/pve-docs/api-viewer/#/access/domains
ACRValues string `json:"acr-values,omitempty"`
AutoCreate IntOrBool `json:"autocreate,omitempty"`
BaseDN string `json:"base_dn,omitempty"`
BindDN string `json:"bind_dn,omitempty"`
CAPath string `json:"capath,omitempty"`
CaseSensitive IntOrBool `json:"case-sensitive,omitempty"`
Cert string `json:"cert,omitempty"`
CertKey string `json:"certkey,omitempty"`
ClientID string `json:"client-id,omitempty"`
ClientKey string `json:"client-key,omitempty"`
Comment string `json:"comment,omitempty"`
Default IntOrBool `json:"default,omitempty"`
DeleteList string `json:"delete,omitempty"` // a list of settings you want to delete?
Digest string `json:"digest,omitempty"`
Domain string `json:"domain,omitempty"`
Filter string `json:"filter,omitempty"`
GroupClasses string `json:"group_classes,omitempty"`
GroupDN string `json:"group_dn,omitempty"`
GroupFilter string `json:"group_filter,omitempty"`
GroupName string `json:"group_name,omitempty"`
IssuerURL string `json:"issuer-url,omitempty"`
Mode string `json:"mode,omitempty"` // ldap, ldaps,ldap+starttls
Password string `json:"password,omitempty"`
Port int `json:"port,omitempty"`
Prompt string `json:"prompt,omitempty"`
Scopes string `json:"scopes,omitempty"`
Secure IntOrBool `json:"secure,omitempty"`
Server1 string `json:"server1,omitempty"`
Server2 string `json:"server2,omitempty"`
SSLVersion string `json:"sslversion,omitempty"`
SyncDefaults string `json:"sync-defaults,omitempty"`
SyncAttributes string `json:"sync_attributes,omitempty"`
TFA string `json:"tfa,omitempty"`
UserAttr string `json:"user_attr,omitempty"`
UserClasses string `json:"user_classes,omitempty"`
Verify IntOrBool `json:"verify"`
// contains filtered or unexported fields
}
type DomainSyncOptions ¶
type DomainSyncOptions struct {
DryRun bool `json:"dry-run,omitempty"`
EnableNew bool `json:"enable-new,omitempty"`
RemoveVanished string `json:"remove-vanished,omitempty"`
Scope string `json:"scope,omitempty"` // users, groups, both
}
DomainSyncOptions see details https://pve.proxmox.com/pve-docs/api-viewer/#/access/domains/{realm}/sync
type DomainType ¶
type DomainType string
type Firewall ¶
type Firewall struct {
Aliases []*FirewallAlias `json:"aliases,omitempty"`
Ipset []*FirewallIPSet `json:"ipset,omitempty"`
Rules []*FirewallRule `json:"rules,omitempty"`
Options *FirewallNodeOption `json:"options,omitempty"`
}
type FirewallAlias ¶
type FirewallIPSet ¶
type FirewallIPSetEntry ¶
type FirewallNodeOption ¶
type FirewallNodeOption struct {
Enable bool `json:"enable,omitempty"`
LogLevelIn string `json:"log_level_in,omitempty"`
LogLevelOut string `json:"log_level_out,omitempty"`
LogNfConntrack bool `json:"log_nf_conntrack,omitempty"`
Ntp bool `json:"ntp,omitempty"`
NFConntrackAllowInvalid bool `json:"nf_conntrack_allow_invalid,omitempty"`
NFConntrackMax int `json:"nf_conntrack_max,omitempty"`
NFConntrackTCPTimeoutEstablished int `json:"nf_conntrack_tcp_timeout_established,omitempty"`
NFConntrackTCPTimeoutSynRecv int `json:"nf_conntrack_tcp_timeout_syn_recv,omitempty"`
Nosmurfs bool `json:"nosmurfs,omitempty"`
ProtectionSynflood bool `json:"protection_synflood,omitempty"`
ProtectionSynfloodBurst int `json:"protection_synflood_burst,omitempty"`
ProtectionSynfloodRate int `json:"protection_synflood_rate,omitempty"`
SmurfLogLevel string `json:"smurf_log_level,omitempty"`
TCPFlagsLogLevel string `json:"tcp_flags_log_level,omitempty"`
TCPflags bool `json:"tcpflags,omitempty"`
}
type FirewallRule ¶
type FirewallRule struct {
Type string `json:"type,omitempty"`
Action string `json:"action,omitempty"`
Pos int `json:"pos,omitempty"`
Comment string `json:"comment,omitempty"`
Dest string `json:"dest,omitempty"`
Dport string `json:"dport,omitempty"`
Enable int `json:"enable,omitempty"`
IcmpType string `json:"icmp_type,omitempty"`
Iface string `json:"iface,omitempty"`
Log string `json:"log,omitempty"`
Macro string `json:"macro,omitempty"`
Proto string `json:"proto,omitempty"`
Source string `json:"source,omitempty"`
Sport string `json:"sport,omitempty"`
}
func (*FirewallRule) IsEnable ¶
func (r *FirewallRule) IsEnable() bool
type FirewallSecurityGroup ¶
type FirewallSecurityGroup struct {
Group string `json:"group,omitempty"`
Comment string `json:"comment,omitempty"`
Rules []*FirewallRule `json:"rules,omitempty"`
// contains filtered or unexported fields
}
func (*FirewallSecurityGroup) Delete ¶
func (g *FirewallSecurityGroup) Delete(ctx context.Context) error
func (*FirewallSecurityGroup) GetRules ¶
func (g *FirewallSecurityGroup) GetRules(ctx context.Context) ([]*FirewallRule, error)
func (*FirewallSecurityGroup) RuleCreate ¶
func (g *FirewallSecurityGroup) RuleCreate(ctx context.Context, rule *FirewallRule) error
func (*FirewallSecurityGroup) RuleDelete ¶
func (g *FirewallSecurityGroup) RuleDelete(ctx context.Context, rulePos int) error
func (*FirewallSecurityGroup) RuleUpdate ¶
func (g *FirewallSecurityGroup) RuleUpdate(ctx context.Context, rule *FirewallRule) error
type FirewallVirtualMachineOption ¶
type FirewallVirtualMachineOption struct {
Enable bool `json:"enable,omitempty"`
Dhcp bool `json:"dhcp,omitempty"`
Ipfilter bool `json:"ipfilter,omitempty"`
LogLevelIn string `json:"log_level_in,omitempty"`
LogLevelOut string `json:"log_level_out,omitempty"`
Macfilter bool `json:"macfilter,omitempty"`
Ntp bool `json:"ntp,omitempty"`
PolicyIn string `json:"policy_in,omitempty"`
PolicyOut string `json:"policy_out,omitempty"`
Radv bool `json:"radv,omitempty"`
}
type Group ¶
type IPAM ¶
type IPAM struct {
Hostname string `json:"hostname,omitempty"`
IP string `json:"ip,omitempty"`
Mac string `json:"mac,omitempty"`
Subnet string `json:"subnet,omitempty"`
VMID string `json:"vmid,omitempty"`
VNet string `json:"vnet,omitempty"`
Zone string `json:"zone,omitempty"`
Gateway int `json:"gateway,omitempty"`
}
type IntOrBool ¶
type IntOrBool bool
func (*IntOrBool) MarshalJSON ¶
func (*IntOrBool) UnmarshalJSON ¶
type IsTemplate ¶
type IsTemplate bool
func (*IsTemplate) UnmarshalJSON ¶
func (it *IsTemplate) UnmarshalJSON(b []byte) error
type LeveledLogger ¶
type LeveledLogger struct {
// Level is the minimum logging level that will be emitted by this logger.
//
// For example, a Level set to LevelWarn will emit warnings and errors, but
// not informational or debug messages.
//
// Always set this with a constant like LevelWarn because the individual
// values are not guaranteed to be stable.
Level int
// contains filtered or unexported fields
}
func (*LeveledLogger) Debugf ¶
func (l *LeveledLogger) Debugf(format string, v ...interface{})
Debugf logs a debug message using Printf conventions.
func (*LeveledLogger) Errorf ¶
func (l *LeveledLogger) Errorf(format string, v ...interface{})
Errorf logs a warning message using Printf conventions.
func (*LeveledLogger) Infof ¶
func (l *LeveledLogger) Infof(format string, v ...interface{})
Infof logs an informational message using Printf conventions.
func (*LeveledLogger) Warnf ¶
func (l *LeveledLogger) Warnf(format string, v ...interface{})
Warnf logs a warning message using Printf conventions.
type LeveledLoggerInterface ¶
type Log ¶
func (*Log) UnmarshalJSON ¶
line numbers in the response start a 1 but the start param indexes from 0 so converting to that
type NewAPIToken ¶
type NewUser ¶
type NewUser struct {
UserID string `json:"userid"`
Comment string `json:"comment,omitempty"`
Email string `json:"email,omitempty"`
Enable bool `json:"enable"`
Expire int `json:"expire,omitempty"`
Firstname string `json:"firstname,omitempty"`
Groups []string `json:"groups,omitempty"`
Keys []string `json:"keys,omitempty"`
Lastname string `json:"lastname,omitempty"`
Password string `json:"password,omitempty"`
}
type Node ¶
type Node struct {
Name string
Kversion string
LoadAvg []string
CPU float64
RootFS RootFS
PVEVersion string
CPUInfo CPUInfo
Swap Memory
Idle int
Memory Memory
Ksm Ksm
Uptime uint64
Wait float64
// contains filtered or unexported fields
}
func (*Node) Appliances ¶
func (n *Node) Appliances(ctx context.Context) (appliances Appliances, err error)
func (*Node) Containers ¶
func (n *Node) Containers(ctx context.Context) (c Containers, err error)
func (*Node) DeleteCustomCertificate ¶
func (*Node) DownloadAppliance ¶
func (*Node) FirewallGetRules ¶
func (n *Node) FirewallGetRules(ctx context.Context) (rules []*FirewallRule, err error)
func (*Node) FirewallOptionGet ¶
func (n *Node) FirewallOptionGet(ctx context.Context) (firewallOption *FirewallNodeOption, err error)
func (*Node) FirewallOptionSet ¶
func (n *Node) FirewallOptionSet(ctx context.Context, firewallOption *FirewallNodeOption) error
func (*Node) FirewallRulesCreate ¶
func (n *Node) FirewallRulesCreate(ctx context.Context, rule *FirewallRule) error
func (*Node) FirewallRulesDelete ¶
func (*Node) FirewallRulesUpdate ¶
func (n *Node) FirewallRulesUpdate(ctx context.Context, rule *FirewallRule) error
func (*Node) GetCustomCertificates ¶
func (n *Node) GetCustomCertificates(ctx context.Context) (certs *NodeCertificates, err error)
func (*Node) NewContainer ¶
func (*Node) NewNetwork ¶
func (*Node) NewVirtualMachine ¶
func (*Node) StorageDownloadURL ¶
func (*Node) TermWebSocket ¶
func (*Node) UploadCustomCertificate ¶
func (n *Node) UploadCustomCertificate(ctx context.Context, cert *CustomCertificate) error
func (*Node) VNCWebSocket ¶
VNCWebSocket send, recv, errors, closer, error
func (*Node) VirtualMachine ¶
func (*Node) VirtualMachines ¶
func (n *Node) VirtualMachines(ctx context.Context) (vms VirtualMachines, err error)
func (*Node) VzdumpExtractConfig ¶
type NodeCertificate ¶
type NodeCertificate struct {
Filename string `json:"filename,omitempty"`
Fingerprint string `json:"fingerprint,omitempty"`
Issuer string `json:"issuer,omitempty"`
NotAfter string `json:"not-after,omitempty"`
NotBefore string `json:"not-before,omitempty"`
Pem string `json:"pem,omitempty"`
PublicKeyBits int `json:"public-key-bits,omitempty"`
PublicKeyType string `json:"public-key-type,omitempty"`
San []string `json:"san,omitempty"`
Subject string `json:"subject,omitempty"`
}
type NodeCertificates ¶
type NodeCertificates []*NodeCertificate
type NodeNetwork ¶
type NodeNetwork struct {
Node string `json:"-"`
NodeAPI *Node `json:"-"`
Iface string `json:"iface,omitempty"`
Autostart int `json:"autostart,omitempty"`
CIDR string `json:"cidr,omitempty"`
CIDR6 string `json:"cidr6,omitempty"`
Gateway string `json:"gateway,omitempty"`
Gateway6 string `json:"gateway6,omitempty"`
MTU string `json:"mtu,omitempty"`
Netmask string `json:"netmask,omitempty"`
Netmask6 string `json:"netmask6,omitempty"`
VLANID string `json:"vlan-id,omitempty"`
VLANRawDevice string `json:"vlan-raw-device,omitempty"`
BridgeVLANAware int `json:"bridge_vlan_aware,omitempty"`
BridgePorts string `json:"bridge_ports,omitempty"`
BridgeStp string `json:"bridge_stp,omitempty"` // not in current docs, deprecated?
BridgeFd string `json:"bridge_fd,omitempty"` // not in current docs, deprecated?
Comments string `json:"comments,omitempty"`
Comments6 string `json:"comments6,omitempty"`
BondPrimary string `json:"bond-primary,omitempty"`
BondMode string `json:"bond_mode,omitempty"`
BondXmit string `json:"bond_xmit,omitempty"`
BondXmitHashPolicy string `json:"bond_xmit_hash_policy,omitempty"`
OVSBonds string `json:"ovs_bonds,omitempty"`
OVSBridge string `json:"ovs_bridge,omitempty"`
OVSOptions string `json:"ovs_options,omitempty"`
OVSPorts string `json:"ovs_ports,omitempty"`
OVSTags string `json:"ovs_tag,omitempty"`
Slaves string `json:"slaves,omitempty"`
Address string `json:"address,omitempty"`
Address6 string `json:"address6,omitempty"`
Type string `json:"type,omitempty"`
Active StringOrInt `json:"active,omitempty"`
Method string `json:"method,omitempty"`
Method6 string `json:"method6,omitempty"`
Priority int `json:"priority,omitempty"`
// contains filtered or unexported fields
}
type NodeNetworks ¶
type NodeNetworks []*NodeNetwork
type NodeStatus ¶
type NodeStatus struct {
// shared
Status string `json:",omitempty"`
Level string `json:",omitempty"`
ID string `json:",omitempty"` // format "node/<name>"
// from /nodes endpoint
Node string `json:",omitempty"`
Type string `json:",omitempty"`
MaxCPU int `json:",omitempty"`
MaxMem uint64 `json:",omitempty"`
Disk uint64 `json:",omitempty"`
SSLFingerprint string `json:"ssl_fingerprint,omitempty"`
MaxDisk uint64 `json:",omitempty"`
Mem uint64 `json:",omitempty"`
CPU float64 `json:",omitempty"`
Uptime uint64 `json:",omitempty"`
// from /cluster endpoint
NodeID int `json:",omitempty"` // the internal id of the node
Name string `json:",omitempty"`
IP string `json:",omitempty"`
Online int `json:",omitempty"`
Local int `json:",omitempty"`
}
type NodeStatuses ¶
type NodeStatuses []*NodeStatus
type Option ¶
type Option func(*Client)
func WithAPIToken ¶
func WithClient
deprecated
func WithCredentials ¶
func WithCredentials(credentials *Credentials) Option
func WithHTTPClient ¶
func WithLogger ¶
func WithLogger(logger LeveledLoggerInterface) Option
func WithLogins
deprecated
func WithSession ¶
WithSession experimental
func WithUserAgent ¶
type PendingConfigItem ¶
type PendingConfiguration ¶
type PendingConfiguration []PendingConfigItem
type Permission ¶
type Permissions ¶
type Permissions map[string]Permission
type PermissionsOptions ¶
type Pool ¶
type Pool struct {
PoolID string `json:"poolid,omitempty"`
Comment string `json:"comment,omitempty"`
Members []ClusterResource `json:"members,omitempty"`
// contains filtered or unexported fields
}
type PoolUpdateOption ¶
type PoolUpdateOption struct {
Comment string `json:"comment,omitempty"`
// Delete objects rather than adding them
Delete bool `json:"delete,omitempty"`
// Comma separated lists of Storage names to add/delete to the pool
Storage string `json:"storage,omitempty"`
// Comma separated lists of Virtual Machine IDs to add/delete to the pool
VirtualMachines string `json:"vms,omitempty"`
}
type Role ¶
type SDNZone ¶
type SDNZone struct {
Name string `json:"zone"`
Type string `json:"type"`
DHCP string `json:"dhcp,omitempty"`
DNS string `json:"dns,omitempty"`
DNSZone string `json:"dnszone,omitempty"`
IPAM string `json:"ipam,omitempty"`
MTU int `json:"mtu,omitempty"`
Nodes []string `json:"nodes,omitempty"`
Pending bool `json:"pending,omitempty"`
ReverseDNS string `json:"reversedns,omitempty"`
State string `json:"state,omitempty"`
}
type SDNZoneOptions ¶
type SDNZoneOptions struct {
Name string `json:"zone"`
Type string `json:"type"`
AdvertiseSubnets bool `json:"advertise-subnets,omitempty"`
Bridge string `json:"bridge,omitempty"`
BridgeDisableMACLearning bool `json:"bridge-disable-mac-learning,omitempty"`
Controller string `json:"controller,omitempty"`
DHCP string `json:"dhcp,omitempty"`
DisableARPNDSuppression bool `json:"disable-arp-nd-suppression,omitempty"`
DNS string `json:"dns,omitempty"`
DNSZone string `json:"dnszone,omitempty"`
DPID int `json:"dpid,omitempty"`
ExitNodes string `json:"exit-nodes,omitempty"`
ExitNodesLocalRouting bool `json:"exit-nodes-local-routing,omitempty"`
ExitNodesPrimary string `json:"exit-nodes-primary,omitempty"`
Fabric string `json:"fabric,omitempty"`
IPAM string `json:"ipam,omitempty"`
MAC string `json:"mac,omitempty"`
MTU int `json:"mtu,omitempty"`
Nodes string `json:"nodes,omitempty"`
Peers string `json:"peers,omitempty"`
ReverseDNS string `json:"reversedns,omitempty"`
RTImport string `json:"rt-import,omitempty"`
Tag uint `json:"tag,omitempty"`
VLANProtocol string `json:"vlan-protocol,omitempty"`
VRFVXLAN int `json:"vrf-vxlan,omitempty"`
VXLANPort uint16 `json:"vxlan-port,omitempty"`
}
type Session ¶
type Session struct {
Username string `json:"username"`
CSRFPreventionToken string `json:"CSRFPreventionToken,omitempty"`
// Cap is being returned but not documented in the API docs, likely will get rewritten later with better types
Cap map[string]map[string]int `json:"cap,omitempty"`
ClusterName string `json:"clustername,omitempty"`
Ticket string `json:"ticket,omitempty"`
}
type Storage ¶
type Storage struct {
Node string
Name string `json:"storage"`
Enabled int
UsedFraction float64 `json:"used_fraction"`
Active int
Content string
Avail uint64
Type string
Used uint64
Total uint64
Storage string
// contains filtered or unexported fields
}
func (*Storage) DeleteContent ¶
func (*Storage) DownloadURL ¶
func (*Storage) DownloadURLWithHash ¶
func (*Storage) GetContent ¶
func (s *Storage) GetContent(ctx context.Context) (content []*StorageContent, err error)
func (*Storage) UploadWithHash ¶
func (*Storage) UploadWithName ¶
type StorageContent ¶
type StorageContent struct {
Format string `json:"format,omitempty"`
Size uint64 `json:"size,omitempty"`
Volid string `json:"volid,omitempty"`
Ctime uint64 `json:"ctime,omitempty"`
Encryption string `json:"encryption,omitempty"`
Notes string `json:"notes,omitempty"`
Parent string `json:"parent,omitempty"`
Protection bool `json:"protection,omitempty"`
Used uint64 `json:"used,omitempty"`
Verification string `json:"verification,omitempty"`
VMID uint64 `json:"vmid,omitempty"`
}
type StorageDownloadURLOptions ¶
type StorageDownloadURLOptions struct {
Content string `json:"content,omitempty"`
Filename string `json:"filename,omitempty"`
Node string `json:"node,omitempty"`
Storage string `json:"storage,omitempty"`
URL string `json:"url,omitempty"`
Checksum string `json:"checksum,omitempty"`
ChecksumAlgorithm string `json:"checksum-algorithm,omitempty"`
Compression string `json:"compression,omitempty"`
VerifyCertificates IntOrBool `json:"verify-certificates"`
}
type StringOrFloat64 ¶
type StringOrFloat64 float64
func (*StringOrFloat64) UnmarshalJSON ¶
func (d *StringOrFloat64) UnmarshalJSON(b []byte) error
type StringOrInt ¶
type StringOrInt int
func (*StringOrInt) UnmarshalJSON ¶
func (d *StringOrInt) UnmarshalJSON(b []byte) error
type StringOrUint64 ¶
type StringOrUint64 uint64
func (*StringOrUint64) UnmarshalJSON ¶
func (d *StringOrUint64) UnmarshalJSON(b []byte) error
type Task ¶
type Task struct {
UPID UPID
ID string
Type string
User string
Status string
Node string
PID uint64 `json:",omitempty"`
PStart uint64 `json:",omitempty"`
Saved string `json:",omitempty"`
ExitStatus string `json:",omitempty"`
IsCompleted bool
IsRunning bool
IsFailed bool
IsSuccessful bool
StartTime time.Time `json:"-"`
EndTime time.Time `json:"-"`
Duration time.Duration `json:"-"`
// contains filtered or unexported fields
}
func (*Task) UnmarshalJSON ¶
func (*Task) WaitForCompleteStatus ¶
type User ¶
type User struct {
UserID string `json:"userid,omitempty"`
Comment string `json:"comment,omitempty"`
Email string `json:"email,omitempty"`
Enable IntOrBool `json:"enable"`
Expire int `json:"expire,omitempty"`
Firstname string `json:"firstname,omitempty"`
Lastname string `json:"lastname,omitempty"`
Groups []string `json:"groups,omitempty"`
Keys string `json:"keys,omitempty"`
Tokens map[string]Token `json:"tokens,omitempty"`
RealmType string `json:"realm-type,omitempty"`
TFALockedUntil string `json:"tfa-locked-until,omitempty"`
TOTPLocked IntOrBool `json:"totp-locked,omitempty"`
// contains filtered or unexported fields
}
func (*User) DeleteAPIToken ¶
func (*User) GetAPITokens ¶
func (*User) NewAPIToken ¶
type UserOptions ¶
type UserOptions struct {
Append IntOrBool `json:"append,omitempty"`
Comment string `json:"comment,omitempty"`
Email string `json:"email,omitempty"`
Enable IntOrBool `json:"enable"`
Expire int `json:"expire,omitempty"`
Firstname string `json:"firstname,omitempty"`
Groups []string `json:"groups,omitempty"`
Keys string `json:"keys,omitempty"`
Lastname string `json:"lastname,omitempty"`
}
type VNCProxyOptions ¶
type VNetOptions ¶
type VNetOptions struct {
Name string `json:"vnet"`
Zone string `json:"zone"`
Alias string `json:"alias,omitempty"`
IsolatePorts bool `json:"isolate-ports,omitempty"`
Tag uint32 `json:"tag,omitempty"` // Could be a VLAN or VXLAN tag
Type string `json:"type,omitempty"` // Type must be set to "vnet"
VlanAware bool `json:"vlanaware,omitempty"`
}
type VNetSubnet ¶
type VNetSubnet struct {
CIDR string `json:"cidr,omitempty"`
Gateway string `json:"gateway,omitempty"`
Netmask string `json:"mask,omitempty"`
Type string `json:"type,omitempty"`
Zone string `json:"zone,omitempty"`
VNet string `json:"vnet,omitempty"`
SNAT int `json:"snat,omitempty"`
Network string `json:"network,omitempty"`
ID string `json:"id,omitempty"`
DhcpRange []NetRange `json:"dhcp-range,omitempty"`
}
type VirtualMachine ¶
type VirtualMachine struct {
VirtualMachineConfig *VirtualMachineConfig
Name string
Node string
Agent IntOrBool
NetIn uint64
CPUs int
DiskWrite uint64
Status string
Lock string `json:",omitempty"`
VMID StringOrUint64
PID StringOrUint64
Netout uint64
Disk uint64
Mem uint64
CPU float64
MaxMem uint64
MaxDisk uint64
DiskRead uint64
QMPStatus string `json:"qmpstatus,omitempty"`
RunningMachine string `json:"running-machine,omitempty"`
RunningQemu string `json:"running-qemu,omitempty"`
Tags string `json:"tags,omitempty"`
Uptime uint64
Template IsTemplate // empty str if a vm, int 1 if a template
HA HA `json:",omitempty"`
// contains filtered or unexported fields
}
func (*VirtualMachine) AgentExecStatus ¶
func (v *VirtualMachine) AgentExecStatus(ctx context.Context, pid int) (status *AgentExecStatus, err error)
func (*VirtualMachine) AgentGetNetworkIFaces ¶
func (v *VirtualMachine) AgentGetNetworkIFaces(ctx context.Context) (iFaces []*AgentNetworkIface, err error)
func (*VirtualMachine) AgentOsInfo ¶
func (v *VirtualMachine) AgentOsInfo(ctx context.Context) (info *AgentOsInfo, err error)
func (*VirtualMachine) AgentSetUserPassword ¶
func (*VirtualMachine) Clone ¶
func (v *VirtualMachine) Clone(ctx context.Context, params *VirtualMachineCloneOptions) (newid int, task *Task, err error)
func (*VirtualMachine) CloudInit ¶
func (v *VirtualMachine) CloudInit(ctx context.Context, device, userdata, metadata, vendordata, networkconfig string) error
CloudInit takes four yaml docs as a string and make an ISO, upload it to the data store as <vmid>-user-data.iso and will mount it as a CD-ROM to be used with nocloud cloud-init. This is NOT how proxmox expects a user to do cloud-init which can be found here: https://pve.proxmox.com/wiki/Cloud-Init_Support#:~:text=and%20meta.-,Cloud%2DInit%20specific%20Options,-cicustom%3A%20%5Bmeta If you want to use the proxmox implementation you'll need to use the cloudinit APIs https://pve.proxmox.com/pve-docs/api-viewer/index.html#/nodes/{node}/qemu/{vmid}/cloudinit
func (*VirtualMachine) Config ¶
func (v *VirtualMachine) Config(ctx context.Context, options ...VirtualMachineOption) (*Task, error)
func (*VirtualMachine) ConvertToTemplate ¶
func (v *VirtualMachine) ConvertToTemplate(ctx context.Context) (task *Task, err error)
func (*VirtualMachine) Delete ¶
func (v *VirtualMachine) Delete(ctx context.Context) (task *Task, err error)
func (*VirtualMachine) DeleteFirewallIPSet ¶
func (*VirtualMachine) DeleteFirewallIPSetEntry ¶
func (*VirtualMachine) FirewallGetRules ¶
func (v *VirtualMachine) FirewallGetRules(ctx context.Context) (rules []*FirewallRule, err error)
func (*VirtualMachine) FirewallOptionGet ¶
func (v *VirtualMachine) FirewallOptionGet(ctx context.Context) (firewallOption *FirewallVirtualMachineOption, err error)
func (*VirtualMachine) FirewallOptionSet ¶
func (v *VirtualMachine) FirewallOptionSet(ctx context.Context, firewallOption *FirewallVirtualMachineOption) error
func (*VirtualMachine) FirewallRulesCreate ¶
func (v *VirtualMachine) FirewallRulesCreate(ctx context.Context, rule *FirewallRule) error
func (*VirtualMachine) FirewallRulesDelete ¶
func (v *VirtualMachine) FirewallRulesDelete(ctx context.Context, rulePos int) error
func (*VirtualMachine) FirewallRulesUpdate ¶
func (v *VirtualMachine) FirewallRulesUpdate(ctx context.Context, rule *FirewallRule) error
func (*VirtualMachine) GetFirewallIPSet ¶
func (v *VirtualMachine) GetFirewallIPSet(ctx context.Context) (ipsets []*FirewallIPSet, err error)
func (*VirtualMachine) GetFirewallIPSetEntries ¶
func (v *VirtualMachine) GetFirewallIPSetEntries(ctx context.Context, name string) (entries []*FirewallIPSetEntry, err error)
func (*VirtualMachine) GetFirewallIPSetEntry ¶
func (v *VirtualMachine) GetFirewallIPSetEntry(ctx context.Context, name string, cidr string) (entry *FirewallIPSetEntry, err error)
func (*VirtualMachine) HasTag ¶
func (v *VirtualMachine) HasTag(value string) bool
func (*VirtualMachine) Hibernate ¶
func (v *VirtualMachine) Hibernate(ctx context.Context) (task *Task, err error)
func (*VirtualMachine) IsHibernated ¶
func (v *VirtualMachine) IsHibernated() bool
func (*VirtualMachine) IsPaused ¶
func (v *VirtualMachine) IsPaused() bool
func (*VirtualMachine) IsRunning ¶
func (v *VirtualMachine) IsRunning() bool
func (*VirtualMachine) IsStopped ¶
func (v *VirtualMachine) IsStopped() bool
func (*VirtualMachine) Migrate ¶
func (v *VirtualMachine) Migrate( ctx context.Context, params *VirtualMachineMigrateOptions, ) (task *Task, err error)
func (*VirtualMachine) MoveDisk ¶
func (v *VirtualMachine) MoveDisk(ctx context.Context, disk string, params *VirtualMachineMoveDiskOptions) (task *Task, err error)
func (*VirtualMachine) NewFirewallIPSet ¶
func (v *VirtualMachine) NewFirewallIPSet(ctx context.Context, ipset FirewallIPSetCreationOption) error
func (*VirtualMachine) NewFirewallIPSetEntry ¶
func (v *VirtualMachine) NewFirewallIPSetEntry(ctx context.Context, name string, entry FirewallIPSetEntryCreationOption) error
func (*VirtualMachine) NewSnapshot ¶
func (*VirtualMachine) Pause ¶
func (v *VirtualMachine) Pause(ctx context.Context) (task *Task, err error)
func (*VirtualMachine) Pending ¶
func (v *VirtualMachine) Pending(ctx context.Context) (pending *PendingConfiguration, err error)
func (*VirtualMachine) RRDData ¶
func (v *VirtualMachine) RRDData(ctx context.Context, timeframe Timeframe, consolidationFunction ...ConsolidationFunction) (rrddata []*RRDData, err error)
RRDData takes a timeframe enum and an optional consolidation function usage: vm.RRDData(HOURLY) or vm.RRDData(HOURLY, AVERAGE)
func (*VirtualMachine) Reboot ¶
func (v *VirtualMachine) Reboot(ctx context.Context) (task *Task, err error)
func (*VirtualMachine) Reset ¶
func (v *VirtualMachine) Reset(ctx context.Context) (task *Task, err error)
func (*VirtualMachine) ResizeDisk ¶
func (*VirtualMachine) Resume ¶
func (v *VirtualMachine) Resume(ctx context.Context) (task *Task, err error)
func (*VirtualMachine) Shutdown ¶
func (v *VirtualMachine) Shutdown(ctx context.Context) (task *Task, err error)
func (*VirtualMachine) SnapshotRollback ¶
func (*VirtualMachine) Snapshots ¶
func (v *VirtualMachine) Snapshots(ctx context.Context) (snapshots []*Snapshot, err error)
func (*VirtualMachine) SplitTags ¶
func (v *VirtualMachine) SplitTags()
func (*VirtualMachine) Start ¶
func (v *VirtualMachine) Start(ctx context.Context) (task *Task, err error)
func (*VirtualMachine) Stop ¶
func (v *VirtualMachine) Stop(ctx context.Context) (task *Task, err error)
func (*VirtualMachine) TermProxy ¶
func (v *VirtualMachine) TermProxy(ctx context.Context) (term *Term, err error)
func (*VirtualMachine) TermWebSocket ¶
func (*VirtualMachine) UnlinkDisk ¶
func (*VirtualMachine) UnmountCloudInitISO ¶
func (v *VirtualMachine) UnmountCloudInitISO(ctx context.Context, device string) error
func (*VirtualMachine) UpdateFirewallIPSetEntry ¶
func (v *VirtualMachine) UpdateFirewallIPSetEntry(ctx context.Context, name string, cidr string, entry *FirewallIPSetEntryUpdateOption) error
func (*VirtualMachine) VNCWebSocket ¶
func (v *VirtualMachine) VNCWebSocket(vnc *VNC) (chan []byte, chan []byte, chan error, func() error, error)
VNCWebSocket copy/paste when calling to get the channel names right send, recv, errors, closer, errors := vm.VNCWebSocket(vnc) for this to work you need to first set up a serial terminal on your vm https://pve.proxmox.com/wiki/Serial_Terminal
func (*VirtualMachine) WaitForAgent ¶
func (v *VirtualMachine) WaitForAgent(ctx context.Context, seconds int) error
func (*VirtualMachine) WaitForAgentExecExit ¶
func (v *VirtualMachine) WaitForAgentExecExit(ctx context.Context, pid, seconds int) (*AgentExecStatus, error)
type VirtualMachineBackupCompress ¶
type VirtualMachineBackupCompress = string
type VirtualMachineBackupMode ¶
type VirtualMachineBackupMode = string
type VirtualMachineBackupNotificationPolicy ¶
type VirtualMachineBackupNotificationPolicy = string
type VirtualMachineBackupOptions ¶
type VirtualMachineBackupOptions struct {
All bool `json:"all,omitempty"`
BwLimit uint `json:"bwlimit,omitempty"`
Compress VirtualMachineBackupCompress `json:"compress,omitempty"`
DumpDir string `json:"dumpDir,omitempty"`
Exclude string `json:"exclude,omitempty"`
ExcludePath []string `json:"exclude-path,omitempty"`
IoNice uint `json:"ionice,omitempty"`
LockWait uint `json:"lockwait,omitempty"`
MailTo string `json:"mailto,omitempty"`
Mode VirtualMachineBackupMode `json:"mode,omitempty"`
Node string `json:"node,omitempty"`
NotesTemplate string `json:"notes-template,omitempty"`
NotificationPolicy VirtualMachineBackupNotificationPolicy `json:"notification-policy,omitempty"`
NotificationTarget string `json:"notification-target,omitempty"`
Performance string `json:"performance,omitempty"`
Pigz int `json:"pigz,omitempty"`
Pool string `json:"pool,omitempty"`
Protected string `json:"protected,omitempty"`
PruneBackups string `json:"prune-backups,omitempty"`
Quiet bool `json:"quiet,omitempty"`
Remove bool `json:"remove"`
Script string `json:"script,omitempty"`
StdExcludes bool `json:"stdexcludes"`
StdOut bool `json:"stdout,omitempty"`
Stop bool `json:"stop,omitempty"`
StopWait uint `json:"stopwait,omitempty"`
Storage string `json:"storage,omitempty"`
TmpDir string `json:"tmpdir,omitempty"`
VMID uint64 `json:"vmid,omitempty"`
Zstd uint `json:"zstd,omitempty"`
}
type VirtualMachineCloneOptions ¶
type VirtualMachineCloneOptions struct {
NewID int `json:"newid"`
BWLimit uint64 `json:"bwlimit,omitempty"`
Description string `json:"description,omitempty"`
Format string `json:"format,omitempty"`
Full uint8 `json:"full,omitempty"`
Name string `json:"name,omitempty"`
Pool string `json:"pool,omitempty"`
SnapName string `json:"snapname,omitempty"`
Storage string `json:"storage,omitempty"`
Target string `json:"target,omitempty"`
}
type VirtualMachineConfig ¶
type VirtualMachineConfig struct {
// PVE Metadata
Digest string `json:"digest"`
Name string `json:"name,omitempty"`
Description string `json:"description,omitempty"`
Meta string `json:"meta,omitempty"`
VMGenID string `json:"vmgenid,omitempty"`
Hookscript string `json:"hookscript,omitempty"`
Hotplug string `json:"hotplug,omitempty"`
Template int `json:"template,omitempty"`
Agent string `json:"agent,omitempty"`
Autostart int `json:"autostart,omitempty"`
Tablet int `json:"tablet,omitempty"`
KVM int `json:"kvm,omitempty"`
Tags string `json:"tags,omitempty"`
TagsSlice []string `json:"-"` // internal helper to manage tags easier
Protection int `json:"protection,omitempty"`
Lock string `json:"lock,omitempty"`
// Boot configuration
Boot string `json:"boot,omitempty"`
OnBoot int `json:"onboot,omitempty"`
// Qemu general specs
OSType string `json:"ostype,omitempty"`
Machine string `json:"machine,omitempty"`
Args string `json:"args,omitempty"`
// Qemu firmware specs
Bios string `json:"bios,omitempty"`
EFIDisk0 string `json:"efidisk0,omitempty"`
SMBios1 string `json:"smbios1,omitempty"`
Acpi int `json:"acpi,omitempty"`
// Qemu CPU specs
Sockets int `json:"sockets,omitempty"`
Cores int `json:"cores,omitempty"`
CPU string `json:"cpu,omitempty"`
CPULimit StringOrFloat64 `json:"cpulimit,omitempty"`
CPUUnits int `json:"cpuunits,omitempty"`
Vcpus int `json:"vcpus,omitempty"`
Affinity string `json:"affinity,omitempty"`
// Qemu memory specs
Numa int `json:"numa,omitempty"`
Memory StringOrInt `json:"memory,omitempty"` // See commit 7f8c808772979f274cdfac1dc7264771a3b7a7ae on qemu-server
Hugepages string `json:"hugepages,omitempty"`
Balloon int `json:"balloon,omitempty"`
// Other Qemu devices
VGA string `json:"vga,omitempty"`
SCSIHW string `json:"scsihw,omitempty"`
TPMState0 string `json:"tpmstate0,omitempty"`
Rng0 string `json:"rng0,omitempty"`
Audio0 string `json:"audio0,omitempty"`
// Disk devices
IDEs map[string]string `json:"-"`
IDE0 string `json:"ide0,omitempty"`
IDE1 string `json:"ide1,omitempty"`
IDE2 string `json:"ide2,omitempty"`
IDE3 string `json:"ide3,omitempty"`
SCSIs map[string]string `json:"-"`
SCSI0 string `json:"scsi0,omitempty"`
SCSI1 string `json:"scsi1,omitempty"`
SCSI2 string `json:"scsi2,omitempty"`
SCSI3 string `json:"scsi3,omitempty"`
SCSI4 string `json:"scsi4,omitempty"`
SCSI5 string `json:"scsi5,omitempty"`
SCSI6 string `json:"scsi6,omitempty"`
SCSI7 string `json:"scsi7,omitempty"`
SCSI8 string `json:"scsi8,omitempty"`
SCSI9 string `json:"scsi9,omitempty"`
SCSI10 string `json:"scsi10,omitempty"`
SCSI11 string `json:"scsi11,omitempty"`
SCSI12 string `json:"scsi12,omitempty"`
SCSI13 string `json:"scsi13,omitempty"`
SCSI14 string `json:"scsi14,omitempty"`
SCSI15 string `json:"scsi15,omitempty"`
SCSI16 string `json:"scsi16,omitempty"`
SCSI17 string `json:"scsi17,omitempty"`
SCSI18 string `json:"scsi18,omitempty"`
SCSI19 string `json:"scsi19,omitempty"`
SCSI20 string `json:"scsi20,omitempty"`
SCSI21 string `json:"scsi21,omitempty"`
SCSI22 string `json:"scsi22,omitempty"`
SCSI23 string `json:"scsi23,omitempty"`
SCSI24 string `json:"scsi24,omitempty"`
SCSI25 string `json:"scsi25,omitempty"`
SCSI26 string `json:"scsi26,omitempty"`
SCSI27 string `json:"scsi27,omitempty"`
SCSI28 string `json:"scsi28,omitempty"`
SCSI29 string `json:"scsi29,omitempty"`
SCSI30 string `json:"scsi30,omitempty"`
SATAs map[string]string `json:"-"`
SATA0 string `json:"sata0,omitempty"`
SATA1 string `json:"sata1,omitempty"`
SATA2 string `json:"sata2,omitempty"`
SATA3 string `json:"sata3,omitempty"`
SATA4 string `json:"sata4,omitempty"`
SATA5 string `json:"sata5,omitempty"`
VirtIOs map[string]string `json:"-"`
VirtIO0 string `json:"virtio0,omitempty"`
VirtIO1 string `json:"virtio1,omitempty"`
VirtIO2 string `json:"virtio2,omitempty"`
VirtIO3 string `json:"virtio3,omitempty"`
VirtIO4 string `json:"virtio4,omitempty"`
VirtIO5 string `json:"virtio5,omitempty"`
VirtIO6 string `json:"virtio6,omitempty"`
VirtIO7 string `json:"virtio7,omitempty"`
VirtIO8 string `json:"virtio8,omitempty"`
VirtIO9 string `json:"virtio9,omitempty"`
VirtIO10 string `json:"virtio10,omitempty"`
VirtIO11 string `json:"virtio11,omitempty"`
VirtIO12 string `json:"virtio12,omitempty"`
VirtIO13 string `json:"virtio13,omitempty"`
VirtIO14 string `json:"virtio14,omitempty"`
VirtIO15 string `json:"virtio15,omitempty"`
Unuseds map[string]string `json:"-"`
Unused0 string `json:"unused0,omitempty"`
Unused1 string `json:"unused1,omitempty"`
Unused2 string `json:"unused2,omitempty"`
Unused3 string `json:"unused3,omitempty"`
Unused4 string `json:"unused4,omitempty"`
Unused5 string `json:"unused5,omitempty"`
Unused6 string `json:"unused6,omitempty"`
Unused7 string `json:"unused7,omitempty"`
Unused8 string `json:"unused8,omitempty"`
Unused9 string `json:"unused9,omitempty"`
// Network devices
Nets map[string]string `json:"-"`
Net0 string `json:"net0,omitempty"`
Net1 string `json:"net1,omitempty"`
Net2 string `json:"net2,omitempty"`
Net3 string `json:"net3,omitempty"`
Net4 string `json:"net4,omitempty"`
Net5 string `json:"net5,omitempty"`
Net6 string `json:"net6,omitempty"`
Net7 string `json:"net7,omitempty"`
Net8 string `json:"net8,omitempty"`
Net9 string `json:"net9,omitempty"`
// NUMA topology
Numas map[string]string `json:"-"`
Numa0 string `json:"numa0,omitempty"`
Numa1 string `json:"numa1,omitempty"`
Numa2 string `json:"numa2,omitempty"`
Numa3 string `json:"numa3,omitempty"`
Numa4 string `json:"numa4,omitempty"`
Numa5 string `json:"numa5,omitempty"`
Numa6 string `json:"numa6,omitempty"`
Numa7 string `json:"numa7,omitempty"`
Numa8 string `json:"numa8,omitempty"`
Numa9 string `json:"numa9,omitempty"`
// Host PCI devices
HostPCIs map[string]string `json:"-"`
HostPCI0 string `json:"hostpci0,omitempty"`
HostPCI1 string `json:"hostpci1,omitempty"`
HostPCI2 string `json:"hostpci2,omitempty"`
HostPCI3 string `json:"hostpci3,omitempty"`
HostPCI4 string `json:"hostpci4,omitempty"`
HostPCI5 string `json:"hostpci5,omitempty"`
HostPCI6 string `json:"hostpci6,omitempty"`
HostPCI7 string `json:"hostpci7,omitempty"`
HostPCI8 string `json:"hostpci8,omitempty"`
HostPCI9 string `json:"hostpci9,omitempty"`
// Serial devices
Serials map[string]string `json:"-"`
Serial0 string `json:"serial0,omitempty"`
Serial1 string `json:"serial1,omitempty"`
Serial2 string `json:"serial2,omitempty"`
Serial3 string `json:"serial3,omitempty"`
// USB devices
USBs map[string]string `json:"-"`
USB0 string `json:"usb0,omitempty"`
USB1 string `json:"usb1,omitempty"`
USB2 string `json:"usb2,omitempty"`
USB3 string `json:"usb3,omitempty"`
USB4 string `json:"usb4,omitempty"`
USB5 string `json:"usb5,omitempty"`
USB6 string `json:"usb6,omitempty"`
USB7 string `json:"usb7,omitempty"`
USB8 string `json:"usb8,omitempty"`
USB9 string `json:"usb9,omitempty"`
USB10 string `json:"usb10,omitempty"`
USB11 string `json:"usb11,omitempty"`
USB12 string `json:"usb12,omitempty"`
USB13 string `json:"usb13,omitempty"`
USB14 string `json:"usb14,omitempty"`
// Parallel devices
Parallels map[string]string `json:"-"`
Parallel0 string `json:"parallel0,omitempty"`
Parallel1 string `json:"parallel1,omitempty"`
Parallel2 string `json:"parallel2,omitempty"`
// Cloud-init
CIType string `json:"citype,omitempty"`
CIUser string `json:"ciuser,omitempty"`
CIPassword string `json:"cipassword,omitempty"`
Nameserver string `json:"nameserver,omitempty"`
Searchdomain string `json:"searchdomain,omitempty"`
SSHKeys string `json:"sshkeys,omitempty"`
CICustom string `json:"cicustom,omitempty"`
CIUpgrade int `json:"ciupgrade,omitempty"`
// Cloud-init interfaces
IPConfigs map[string]string `json:"-"`
IPConfig0 string `json:"ipconfig0,omitempty"`
IPConfig1 string `json:"ipconfig1,omitempty"`
IPConfig2 string `json:"ipconfig2,omitempty"`
IPConfig3 string `json:"ipconfig3,omitempty"`
IPConfig4 string `json:"ipconfig4,omitempty"`
IPConfig5 string `json:"ipconfig5,omitempty"`
IPConfig6 string `json:"ipconfig6,omitempty"`
IPConfig7 string `json:"ipconfig7,omitempty"`
IPConfig8 string `json:"ipconfig8,omitempty"`
IPConfig9 string `json:"ipconfig9,omitempty"`
}
func (*VirtualMachineConfig) MergeDisks ¶
func (vmc *VirtualMachineConfig) MergeDisks() map[string]string
func (*VirtualMachineConfig) MergeHostPCIs ¶
func (vmc *VirtualMachineConfig) MergeHostPCIs() map[string]string
func (*VirtualMachineConfig) MergeIDEs ¶
func (vmc *VirtualMachineConfig) MergeIDEs() map[string]string
func (*VirtualMachineConfig) MergeIPConfigs ¶
func (vmc *VirtualMachineConfig) MergeIPConfigs() map[string]string
func (*VirtualMachineConfig) MergeNets ¶
func (vmc *VirtualMachineConfig) MergeNets() map[string]string
func (*VirtualMachineConfig) MergeNumas ¶
func (vmc *VirtualMachineConfig) MergeNumas() map[string]string
func (*VirtualMachineConfig) MergeParallels ¶
func (vmc *VirtualMachineConfig) MergeParallels() map[string]string
func (*VirtualMachineConfig) MergeSATAs ¶
func (vmc *VirtualMachineConfig) MergeSATAs() map[string]string
func (*VirtualMachineConfig) MergeSCSIs ¶
func (vmc *VirtualMachineConfig) MergeSCSIs() map[string]string
func (*VirtualMachineConfig) MergeSerials ¶
func (vmc *VirtualMachineConfig) MergeSerials() map[string]string
func (*VirtualMachineConfig) MergeUSBs ¶
func (vmc *VirtualMachineConfig) MergeUSBs() map[string]string
func (*VirtualMachineConfig) MergeUnuseds ¶
func (vmc *VirtualMachineConfig) MergeUnuseds() map[string]string
func (*VirtualMachineConfig) MergeVirtIOs ¶
func (vmc *VirtualMachineConfig) MergeVirtIOs() map[string]string
type VirtualMachineMigrateOptions ¶
type VirtualMachineMigrateOptions struct {
Target string `json:"target"`
BWLimit uint64 `json:"bwlimit,omitempty"`
Force IntOrBool `json:"force,omitempty"`
MigrationNetwork string `json:"migration_network,omitempty"`
MigrationType string `json:"migration_type,omitempty"`
Online IntOrBool `json:"online,omitempty"`
TargetStorage string `json:"targetstorage,omitempty"`
WithLocalDisks IntOrBool `json:"with-local-disks,omitempty"`
}
type VirtualMachineMoveDiskOptions ¶
type VirtualMachineMoveDiskOptions struct {
Disk string `json:"disk"`
BWLimit uint64 `json:"bwlimit,omitempty"`
Delete uint8 `json:"delete,omitempty"`
Digest string `json:"digest,omitempty"`
Format string `json:"format,omitempty"`
Storage string `json:"storage,omitempty"`
TargetDigest string `json:"target-digest,omitempty"`
TargetDisk string `json:"target-disk,omitempty"`
TargetVMID int `json:"target-vmid,omitempty"`
}
type VirtualMachineOption ¶
type VirtualMachineOption struct {
Name string
Value interface{}
}
type VirtualMachineOptions ¶
type VirtualMachineOptions []*VirtualMachineOption
VirtualMachineOptions A key/value pair used to modify a virtual machine config Refer to https://pve.proxmox.com/pve-docs/api-viewer/#/nodes/{node}/qemu/{vmid}/config for a list of valid values
type VirtualMachines ¶
type VirtualMachines []*VirtualMachine
type VzdumpConfig ¶
type VzdumpConfig struct {
Boot string `json:"boot"`
CiPassword string `json:"cipassword"`
CiUser string `json:"ciuser"`
Cores uint64 `json:"cores,string"`
Memory uint64 `json:"memory,string"`
Meta string `json:"meta"`
Numa string `json:"numa"`
OsType string `json:"ostype"`
Scsihw string `json:"scsihw"`
Sockets uint64 `json:"sockets,string"`
SSHKeys string `json:"sshkeys"`
VmgenID string `json:"vmgenid"`
IDE0 string `json:"ide0,omitempty"`
IDE1 string `json:"ide1,omitempty"`
IDE2 string `json:"ide2,omitempty"`
IDE3 string `json:"ide3,omitempty"`
SCSI0 string `json:"scsi0,omitempty"`
SCSI1 string `json:"scsi1,omitempty"`
SCSI2 string `json:"scsi2,omitempty"`
SCSI3 string `json:"scsi3,omitempty"`
SCSI4 string `json:"scsi4,omitempty"`
SCSI5 string `json:"scsi5,omitempty"`
SCSI6 string `json:"scsi6,omitempty"`
SCSI7 string `json:"scsi7,omitempty"`
SCSI8 string `json:"scsi8,omitempty"`
SCSI9 string `json:"scsi9,omitempty"`
SCSI10 string `json:"scsi10,omitempty"`
SCSI11 string `json:"scsi11,omitempty"`
SCSI12 string `json:"scsi12,omitempty"`
SCSI13 string `json:"scsi13,omitempty"`
SCSI14 string `json:"scsi14,omitempty"`
SCSI15 string `json:"scsi15,omitempty"`
SCSI16 string `json:"scsi16,omitempty"`
SCSI17 string `json:"scsi17,omitempty"`
SCSI18 string `json:"scsi18,omitempty"`
SCSI19 string `json:"scsi19,omitempty"`
SCSI20 string `json:"scsi20,omitempty"`
SCSI21 string `json:"scsi21,omitempty"`
SCSI22 string `json:"scsi22,omitempty"`
SCSI23 string `json:"scsi23,omitempty"`
SCSI24 string `json:"scsi24,omitempty"`
SCSI25 string `json:"scsi25,omitempty"`
SCSI26 string `json:"scsi26,omitempty"`
SCSI27 string `json:"scsi27,omitempty"`
SCSI28 string `json:"scsi28,omitempty"`
SCSI29 string `json:"scsi29,omitempty"`
SCSI30 string `json:"scsi30,omitempty"`
SATA0 string `json:"sata0,omitempty"`
SATA1 string `json:"sata1,omitempty"`
SATA2 string `json:"sata2,omitempty"`
SATA3 string `json:"sata3,omitempty"`
SATA4 string `json:"sata4,omitempty"`
SATA5 string `json:"sata5,omitempty"`
VirtIO0 string `json:"virtio0,omitempty"`
VirtIO1 string `json:"virtio1,omitempty"`
VirtIO2 string `json:"virtio2,omitempty"`
VirtIO3 string `json:"virtio3,omitempty"`
VirtIO4 string `json:"virtio4,omitempty"`
VirtIO5 string `json:"virtio5,omitempty"`
VirtIO6 string `json:"virtio6,omitempty"`
VirtIO7 string `json:"virtio7,omitempty"`
VirtIO8 string `json:"virtio8,omitempty"`
VirtIO9 string `json:"virtio9,omitempty"`
VirtIO10 string `json:"virtio10,omitempty"`
VirtIO11 string `json:"virtio11,omitempty"`
VirtIO12 string `json:"virtio12,omitempty"`
VirtIO13 string `json:"virtio13,omitempty"`
VirtIO14 string `json:"virtio14,omitempty"`
VirtIO15 string `json:"virtio15,omitempty"`
Unused0 string `json:"unused0,omitempty"`
Unused1 string `json:"unused1,omitempty"`
Unused2 string `json:"unused2,omitempty"`
Unused3 string `json:"unused3,omitempty"`
Unused4 string `json:"unused4,omitempty"`
Unused5 string `json:"unused5,omitempty"`
Unused6 string `json:"unused6,omitempty"`
Unused7 string `json:"unused7,omitempty"`
Unused8 string `json:"unused8,omitempty"`
Unused9 string `json:"unused9,omitempty"`
// Network devices
Net0 string `json:"net0,omitempty"`
Net1 string `json:"net1,omitempty"`
Net2 string `json:"net2,omitempty"`
Net3 string `json:"net3,omitempty"`
Net4 string `json:"net4,omitempty"`
Net5 string `json:"net5,omitempty"`
Net6 string `json:"net6,omitempty"`
Net7 string `json:"net7,omitempty"`
Net8 string `json:"net8,omitempty"`
Net9 string `json:"net9,omitempty"`
// NUMA topology
Numa0 string `json:"numa0,omitempty"`
Numa1 string `json:"numa1,omitempty"`
Numa2 string `json:"numa2,omitempty"`
Numa3 string `json:"numa3,omitempty"`
Numa4 string `json:"numa4,omitempty"`
Numa5 string `json:"numa5,omitempty"`
Numa6 string `json:"numa6,omitempty"`
Numa7 string `json:"numa7,omitempty"`
Numa8 string `json:"numa8,omitempty"`
Numa9 string `json:"numa9,omitempty"`
// Host PCI devices
HostPCI0 string `json:"hostpci0,omitempty"`
HostPCI1 string `json:"hostpci1,omitempty"`
HostPCI2 string `json:"hostpci2,omitempty"`
HostPCI3 string `json:"hostpci3,omitempty"`
HostPCI4 string `json:"hostpci4,omitempty"`
HostPCI5 string `json:"hostpci5,omitempty"`
HostPCI6 string `json:"hostpci6,omitempty"`
HostPCI7 string `json:"hostpci7,omitempty"`
HostPCI8 string `json:"hostpci8,omitempty"`
HostPCI9 string `json:"hostpci9,omitempty"`
// Serial devices
Serial0 string `json:"serial0,omitempty"`
Serial1 string `json:"serial1,omitempty"`
Serial2 string `json:"serial2,omitempty"`
Serial3 string `json:"serial3,omitempty"`
// USB devices
USB0 string `json:"usb0,omitempty"`
USB1 string `json:"usb1,omitempty"`
USB2 string `json:"usb2,omitempty"`
USB3 string `json:"usb3,omitempty"`
USB4 string `json:"usb4,omitempty"`
USB5 string `json:"usb5,omitempty"`
USB6 string `json:"usb6,omitempty"`
USB7 string `json:"usb7,omitempty"`
USB8 string `json:"usb8,omitempty"`
USB9 string `json:"usb9,omitempty"`
USB10 string `json:"usb10,omitempty"`
USB11 string `json:"usb11,omitempty"`
USB12 string `json:"usb12,omitempty"`
USB13 string `json:"usb13,omitempty"`
USB14 string `json:"usb14,omitempty"`
Parallel0 string `json:"parallel0,omitempty"`
Parallel1 string `json:"parallel1,omitempty"`
Parallel2 string `json:"parallel2,omitempty"`
// Cloud-init
IPConfig0 string `json:"ipconfig0,omitempty"`
IPConfig1 string `json:"ipconfig1,omitempty"`
IPConfig2 string `json:"ipconfig2,omitempty"`
IPConfig3 string `json:"ipconfig3,omitempty"`
IPConfig4 string `json:"ipconfig4,omitempty"`
IPConfig5 string `json:"ipconfig5,omitempty"`
IPConfig6 string `json:"ipconfig6,omitempty"`
IPConfig7 string `json:"ipconfig7,omitempty"`
IPConfig8 string `json:"ipconfig8,omitempty"`
IPConfig9 string `json:"ipconfig9,omitempty"`
}