Documentation ¶
Overview ¶
Package api contains Go structs for all LXD API objects
Overview ¶
This package has Go structs for every API object, all the various structs are named after the object they represent and some variations of those structs exist for initial object creation, object update and object retrieval.
A few convenience functions are also tied to those structs which let you convert between the various strucs for a given object and also query some of the more complex metadata that LXD can export.
Index ¶
- Constants
- type Certificate
- type CertificatePut
- type CertificatesPost
- type Cluster
- type ClusterMember
- type ClusterMemberConfigKey
- type ClusterMemberPost
- type ClusterMemberPut
- type ClusterPut
- type Container
- type ContainerBackup
- type ContainerBackupPost
- type ContainerBackupsPost
- type ContainerConsoleControl
- type ContainerConsolePost
- type ContainerExecControl
- type ContainerExecPost
- type ContainerFull
- type ContainerPost
- type ContainerPostTarget
- type ContainerPut
- type ContainerSnapshot
- type ContainerSnapshotPost
- type ContainerSnapshotPut
- type ContainerSnapshotsPost
- type ContainerSource
- type ContainerState
- type ContainerStateCPU
- type ContainerStateDisk
- type ContainerStateMemory
- type ContainerStateNetwork
- type ContainerStateNetworkAddress
- type ContainerStateNetworkCounters
- type ContainerStatePut
- type ContainersPost
- type Event
- type EventLifecycle
- type EventLogging
- type Image
- type ImageAlias
- type ImageAliasesEntry
- type ImageAliasesEntryPost
- type ImageAliasesEntryPut
- type ImageAliasesPost
- type ImageExportPost
- type ImageMetadata
- type ImageMetadataTemplate
- type ImagePut
- type ImageSource
- type ImagesPost
- type ImagesPostSource
- type Instance
- type InstanceBackup
- type InstanceBackupPost
- type InstanceBackupsPost
- type InstanceConsoleControl
- type InstanceConsolePost
- type InstanceExecControl
- type InstanceExecPost
- type InstanceFull
- type InstancePost
- type InstancePostTarget
- type InstancePut
- type InstanceSnapshot
- type InstanceSnapshotPost
- type InstanceSnapshotPut
- type InstanceSnapshotsPost
- type InstanceSource
- type InstanceState
- type InstanceStateCPU
- type InstanceStateDisk
- type InstanceStateMemory
- type InstanceStateNetwork
- type InstanceStateNetworkAddress
- type InstanceStateNetworkCounters
- type InstanceStatePut
- type InstanceType
- type InstancesPost
- type Network
- type NetworkLease
- type NetworkPost
- type NetworkPut
- type NetworkState
- type NetworkStateAddress
- type NetworkStateBond
- type NetworkStateBridge
- type NetworkStateCounters
- type NetworksPost
- type Operation
- type Profile
- type ProfilePost
- type ProfilePut
- type ProfilesPost
- type Project
- type ProjectPost
- type ProjectPut
- type ProjectsPost
- type Resources
- type ResourcesCPU
- type ResourcesCPUCache
- type ResourcesCPUCore
- type ResourcesCPUSocket
- type ResourcesCPUThread
- type ResourcesGPU
- type ResourcesGPUCard
- type ResourcesGPUCardDRM
- type ResourcesGPUCardMdev
- type ResourcesGPUCardNvidia
- type ResourcesGPUCardSRIOV
- type ResourcesMemory
- type ResourcesMemoryNode
- type ResourcesNetwork
- type ResourcesNetworkCard
- type ResourcesNetworkCardPort
- type ResourcesNetworkCardPortInfiniband
- type ResourcesNetworkCardSRIOV
- type ResourcesPCI
- type ResourcesPCIDevice
- type ResourcesStorage
- type ResourcesStorageDisk
- type ResourcesStorageDiskPartition
- type ResourcesStoragePool
- type ResourcesStoragePoolInodes
- type ResourcesStoragePoolSpace
- type ResourcesSystem
- type ResourcesSystemChassis
- type ResourcesSystemFirmware
- type ResourcesSystemMotherboard
- type ResourcesUSB
- type ResourcesUSBDevice
- type ResourcesUSBDeviceInterface
- type Response
- type ResponseRaw
- type ResponseType
- type Server
- type ServerEnvironment
- type ServerPut
- type ServerUntrusted
- type StatusCode
- type StoragePool
- type StoragePoolPut
- type StoragePoolsPost
- type StorageVolume
- type StorageVolumePost
- type StorageVolumePostTarget
- type StorageVolumePut
- type StorageVolumeSnapshot
- type StorageVolumeSnapshotPost
- type StorageVolumeSnapshotPut
- type StorageVolumeSnapshotsPost
- type StorageVolumeSource
- type StorageVolumesPost
Constants ¶
const InstanceTypeAny = InstanceType("")
InstanceTypeAny defines the instance type value for requesting any instance type.
const InstanceTypeContainer = InstanceType("container")
InstanceTypeContainer defines the instance type value for a container.
const InstanceTypeVM = InstanceType("virtual-machine")
InstanceTypeVM defines the instance type value for a virtual-machine.
const NetworkStatusCreated = "Created"
NetworkStatusCreated network is fully created.
const NetworkStatusErrored = "Errored"
NetworkStatusErrored network is in error status.
const NetworkStatusPending = "Pending"
NetworkStatusPending network is pending creation on other cluster nodes.
const NetworkStatusUnknown = "Unknown"
NetworkStatusUnknown network is in unknown status.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Certificate ¶
type Certificate struct { CertificatePut `yaml:",inline"` Certificate string `json:"certificate" yaml:"certificate"` Fingerprint string `json:"fingerprint" yaml:"fingerprint"` }
Certificate represents a LXD certificate
func (*Certificate) Writable ¶
func (cert *Certificate) Writable() CertificatePut
Writable converts a full Certificate struct into a CertificatePut struct (filters read-only fields)
type CertificatePut ¶
type CertificatePut struct { Name string `json:"name" yaml:"name"` Type string `json:"type" yaml:"type"` }
CertificatePut represents the modifiable fields of a LXD certificate
API extension: certificate_update
type CertificatesPost ¶
type CertificatesPost struct { CertificatePut `yaml:",inline"` Certificate string `json:"certificate" yaml:"certificate"` Password string `json:"password" yaml:"password"` }
CertificatesPost represents the fields of a new LXD certificate
type Cluster ¶
type Cluster struct { ServerName string `json:"server_name" yaml:"server_name"` Enabled bool `json:"enabled" yaml:"enabled"` // API extension: clustering_join MemberConfig []ClusterMemberConfigKey `json:"member_config" yaml:"member_config"` }
Cluster represents high-level information about a LXD cluster.
API extension: clustering
type ClusterMember ¶
type ClusterMember struct { ClusterMemberPut `yaml:",inline"` ServerName string `json:"server_name" yaml:"server_name"` URL string `json:"url" yaml:"url"` Database bool `json:"database" yaml:"database"` Status string `json:"status" yaml:"status"` Message string `json:"message" yaml:"message"` }
ClusterMember represents the a LXD node in the cluster.
API extension: clustering
func (*ClusterMember) Writable ¶
func (member *ClusterMember) Writable() ClusterMemberPut
Writable converts a full Profile struct into a ProfilePut struct (filters read-only fields)
type ClusterMemberConfigKey ¶
type ClusterMemberConfigKey struct { Entity string `json:"entity" yaml:"entity"` Name string `json:"name" yaml:"name"` Key string `json:"key" yaml:"key"` Value string `json:"value" yaml:"value"` Description string `json:"description" yaml:"description"` }
ClusterMemberConfigKey represents a single config key that a new member of the cluster is required to provide when joining.
The Value field is empty when getting clustering information with GET /1.0/cluster, and should be filled by the joining node when performing a PUT /1.0/cluster join request.
API extension: clustering_join
type ClusterMemberPost ¶
type ClusterMemberPost struct {
ServerName string `json:"server_name" yaml:"server_name"`
}
ClusterMemberPost represents the fields required to rename a LXD node.
API extension: clustering
type ClusterMemberPut ¶
type ClusterMemberPut struct { // API extension: clustering_roles Roles []string `json:"roles" yaml:"roles"` // API extension: clustering_architecture Architecture string `json:"architecture" yaml:"architecture"` // API extension: clustering_failure_domains FailureDomain string `json:"failure_domain" yaml:"failure_domain"` }
ClusterMemberPut represents the the modifiable fields of a LXD cluster member
API extension: clustering_edit_roles
type ClusterPut ¶
type ClusterPut struct { Cluster `yaml:",inline"` ClusterAddress string `json:"cluster_address" yaml:"cluster_address"` ClusterCertificate string `json:"cluster_certificate" yaml:"cluster_certificate"` // API extension: clustering_join ServerAddress string `json:"server_address" yaml:"server_address"` ClusterPassword string `json:"cluster_password" yaml:"cluster_password"` }
ClusterPut represents the fields required to bootstrap or join a LXD cluster.
API extension: clustering
type Container ¶
type Container struct { ContainerPut `yaml:",inline"` CreatedAt time.Time `json:"created_at" yaml:"created_at"` ExpandedConfig map[string]string `json:"expanded_config" yaml:"expanded_config"` ExpandedDevices map[string]map[string]string `json:"expanded_devices" yaml:"expanded_devices"` Name string `json:"name" yaml:"name"` Status string `json:"status" yaml:"status"` StatusCode StatusCode `json:"status_code" yaml:"status_code"` // API extension: container_last_used_at LastUsedAt time.Time `json:"last_used_at" yaml:"last_used_at"` // API extension: clustering Location string `json:"location" yaml:"location"` }
Container represents a LXD container
func (Container) IsActive ¶
IsActive checks whether the container state indicates the container is active
func (*Container) Writable ¶
func (c *Container) Writable() ContainerPut
Writable converts a full Container struct into a ContainerPut struct (filters read-only fields)
type ContainerBackup ¶
type ContainerBackup struct { Name string `json:"name" yaml:"name"` CreatedAt time.Time `json:"created_at" yaml:"created_at"` ExpiresAt time.Time `json:"expires_at" yaml:"expires_at"` ContainerOnly bool `json:"container_only" yaml:"container_only"` OptimizedStorage bool `json:"optimized_storage" yaml:"optimized_storage"` }
ContainerBackup represents a LXD container backup API extension: container_backup
type ContainerBackupPost ¶
type ContainerBackupPost struct {
Name string `json:"name" yaml:"name"`
}
ContainerBackupPost represents the fields available for the renaming of a container backup API extension: container_backup
type ContainerBackupsPost ¶
type ContainerBackupsPost struct { Name string `json:"name" yaml:"name"` ExpiresAt time.Time `json:"expires_at" yaml:"expires_at"` ContainerOnly bool `json:"container_only" yaml:"container_only"` OptimizedStorage bool `json:"optimized_storage" yaml:"optimized_storage"` }
ContainerBackupsPost represents the fields available for a new LXD container backup API extension: container_backup
type ContainerConsoleControl ¶
type ContainerConsoleControl struct { Command string `json:"command" yaml:"command"` Args map[string]string `json:"args" yaml:"args"` }
ContainerConsoleControl represents a message on the container console "control" socket
API extension: console
type ContainerConsolePost ¶
type ContainerConsolePost struct { Width int `json:"width" yaml:"width"` Height int `json:"height" yaml:"height"` }
ContainerConsolePost represents a LXD container console request
API extension: console
type ContainerExecControl ¶
type ContainerExecControl struct { Command string `json:"command" yaml:"command"` Args map[string]string `json:"args" yaml:"args"` Signal int `json:"signal" yaml:"signal"` }
ContainerExecControl represents a message on the container exec "control" socket
type ContainerExecPost ¶
type ContainerExecPost struct { Command []string `json:"command" yaml:"command"` WaitForWS bool `json:"wait-for-websocket" yaml:"wait-for-websocket"` Interactive bool `json:"interactive" yaml:"interactive"` Environment map[string]string `json:"environment" yaml:"environment"` Width int `json:"width" yaml:"width"` Height int `json:"height" yaml:"height"` // API extension: container_exec_recording RecordOutput bool `json:"record-output" yaml:"record-output"` // API extension: container_user_group_cwd User uint32 `json:"user" yaml:"user"` Group uint32 `json:"group" yaml:"group"` Cwd string `json:"cwd" yaml:"cwd"` }
ContainerExecPost represents a LXD container exec request
type ContainerFull ¶
type ContainerFull struct { Container `yaml:",inline"` Backups []ContainerBackup `json:"backups" yaml:"backups"` State *ContainerState `json:"state" yaml:"state"` Snapshots []ContainerSnapshot `json:"snapshots" yaml:"snapshots"` }
ContainerFull is a combination of Container, ContainerState and CotnainerSnapshot
API extension: container_full
type ContainerPost ¶
type ContainerPost struct { // Used for renames Name string `json:"name" yaml:"name"` // Used for migration Migration bool `json:"migration" yaml:"migration"` // API extension: container_stateless_copy Live bool `json:"live" yaml:"live"` // API extension: container_only_migration ContainerOnly bool `json:"container_only" yaml:"container_only"` // API extension: container_push_target Target *ContainerPostTarget `json:"target" yaml:"target"` }
ContainerPost represents the fields required to rename/move a LXD container
type ContainerPostTarget ¶
type ContainerPostTarget struct { Certificate string `json:"certificate" yaml:"certificate"` Operation string `json:"operation,omitempty" yaml:"operation,omitempty"` Websockets map[string]string `json:"secrets,omitempty" yaml:"secrets,omitempty"` }
ContainerPostTarget represents the migration target host and operation
API extension: container_push_target
type ContainerPut ¶
type ContainerPut struct { Architecture string `json:"architecture" yaml:"architecture"` Config map[string]string `json:"config" yaml:"config"` Devices map[string]map[string]string `json:"devices" yaml:"devices"` Ephemeral bool `json:"ephemeral" yaml:"ephemeral"` Profiles []string `json:"profiles" yaml:"profiles"` // For snapshot restore Restore string `json:"restore,omitempty" yaml:"restore,omitempty"` Stateful bool `json:"stateful" yaml:"stateful"` // API extension: entity_description Description string `json:"description" yaml:"description"` }
ContainerPut represents the modifiable fields of a LXD container
type ContainerSnapshot ¶
type ContainerSnapshot struct { ContainerSnapshotPut `yaml:",inline"` CreatedAt time.Time `json:"created_at" yaml:"created_at"` ExpandedConfig map[string]string `json:"expanded_config" yaml:"expanded_config"` ExpandedDevices map[string]map[string]string `json:"expanded_devices" yaml:"expanded_devices"` LastUsedAt time.Time `json:"last_used_at" yaml:"last_used_at"` Name string `json:"name" yaml:"name"` Stateful bool `json:"stateful" yaml:"stateful"` }
ContainerSnapshot represents a LXD conainer snapshot
func (*ContainerSnapshot) Writable ¶
func (c *ContainerSnapshot) Writable() ContainerSnapshotPut
Writable converts a full ContainerSnapshot struct into a ContainerSnapshotPut struct (filters read-only fields)
type ContainerSnapshotPost ¶
type ContainerSnapshotPost struct { Name string `json:"name" yaml:"name"` Migration bool `json:"migration" yaml:"migration"` Target *ContainerPostTarget `json:"target" yaml:"target"` // API extension: container_snapshot_stateful_migration Live bool `json:"live,omitempty" yaml:"live,omitempty"` }
ContainerSnapshotPost represents the fields required to rename/move a LXD container snapshot
type ContainerSnapshotPut ¶
type ContainerSnapshotPut struct { Architecture string `json:"architecture" yaml:"architecture"` Config map[string]string `json:"config" yaml:"config"` Devices map[string]map[string]string `json:"devices" yaml:"devices"` Ephemeral bool `json:"ephemeral" yaml:"ephemeral"` Profiles []string `json:"profiles" yaml:"profiles"` ExpiresAt time.Time `json:"expires_at" yaml:"expires_at"` }
ContainerSnapshotPut represents the modifiable fields of a LXD container snapshot API extension: snapshot_expiry
type ContainerSnapshotsPost ¶
type ContainerSnapshotsPost struct { Name string `json:"name" yaml:"name"` Stateful bool `json:"stateful" yaml:"stateful"` // API extension: snapshot_expiry_creation ExpiresAt *time.Time `json:"expires_at" yaml:"expires_at"` }
ContainerSnapshotsPost represents the fields available for a new LXD container snapshot
type ContainerSource ¶
type ContainerSource struct { Type string `json:"type" yaml:"type"` Certificate string `json:"certificate" yaml:"certificate"` // For "image" type Alias string `json:"alias,omitempty" yaml:"alias,omitempty"` Fingerprint string `json:"fingerprint,omitempty" yaml:"fingerprint,omitempty"` Properties map[string]string `json:"properties,omitempty" yaml:"properties,omitempty"` Server string `json:"server,omitempty" yaml:"server,omitempty"` Secret string `json:"secret,omitempty" yaml:"secret,omitempty"` Protocol string `json:"protocol,omitempty" yaml:"protocol,omitempty"` // For "migration" and "copy" types BaseImage string `json:"base-image,omitempty" yaml:"base-image,omitempty"` // For "migration" type Mode string `json:"mode,omitempty" yaml:"mode,omitempty"` Operation string `json:"operation,omitempty" yaml:"operation,omitempty"` Websockets map[string]string `json:"secrets,omitempty" yaml:"secrets,omitempty"` // For "copy" type Source string `json:"source,omitempty" yaml:"source,omitempty"` // API extension: container_push Live bool `json:"live,omitempty" yaml:"live,omitempty"` // API extension: container_only_migration ContainerOnly bool `json:"container_only,omitempty" yaml:"container_only,omitempty"` // API extension: container_incremental_copy Refresh bool `json:"refresh,omitempty" yaml:"refresh,omitempty"` // API extension: container_copy_project Project string `json:"project,omitempty" yaml:"project,omitempty"` }
ContainerSource represents the creation source for a new container
type ContainerState ¶
type ContainerState struct { Status string `json:"status" yaml:"status"` StatusCode StatusCode `json:"status_code" yaml:"status_code"` Disk map[string]ContainerStateDisk `json:"disk" yaml:"disk"` Memory ContainerStateMemory `json:"memory" yaml:"memory"` Network map[string]ContainerStateNetwork `json:"network" yaml:"network"` Pid int64 `json:"pid" yaml:"pid"` Processes int64 `json:"processes" yaml:"processes"` // API extension: container_cpu_time CPU ContainerStateCPU `json:"cpu" yaml:"cpu"` }
ContainerState represents a LXD container's state
type ContainerStateCPU ¶
type ContainerStateCPU struct {
Usage int64 `json:"usage" yaml:"usage"`
}
ContainerStateCPU represents the cpu information section of a LXD container's state
API extension: container_cpu_time
type ContainerStateDisk ¶
type ContainerStateDisk struct {
Usage int64 `json:"usage" yaml:"usage"`
}
ContainerStateDisk represents the disk information section of a LXD container's state
type ContainerStateMemory ¶
type ContainerStateMemory struct { Usage int64 `json:"usage" yaml:"usage"` UsagePeak int64 `json:"usage_peak" yaml:"usage_peak"` SwapUsage int64 `json:"swap_usage" yaml:"swap_usage"` SwapUsagePeak int64 `json:"swap_usage_peak" yaml:"swap_usage_peak"` }
ContainerStateMemory represents the memory information section of a LXD container's state
type ContainerStateNetwork ¶
type ContainerStateNetwork struct { Addresses []ContainerStateNetworkAddress `json:"addresses" yaml:"addresses"` Counters ContainerStateNetworkCounters `json:"counters" yaml:"counters"` Hwaddr string `json:"hwaddr" yaml:"hwaddr"` HostName string `json:"host_name" yaml:"host_name"` Mtu int `json:"mtu" yaml:"mtu"` State string `json:"state" yaml:"state"` Type string `json:"type" yaml:"type"` }
ContainerStateNetwork represents the network information section of a LXD container's state
type ContainerStateNetworkAddress ¶
type ContainerStateNetworkAddress struct { Family string `json:"family" yaml:"family"` Address string `json:"address" yaml:"address"` Netmask string `json:"netmask" yaml:"netmask"` Scope string `json:"scope" yaml:"scope"` }
ContainerStateNetworkAddress represents a network address as part of the network section of a LXD container's state
type ContainerStateNetworkCounters ¶
type ContainerStateNetworkCounters struct { BytesReceived int64 `json:"bytes_received" yaml:"bytes_received"` BytesSent int64 `json:"bytes_sent" yaml:"bytes_sent"` PacketsReceived int64 `json:"packets_received" yaml:"packets_received"` PacketsSent int64 `json:"packets_sent" yaml:"packets_sent"` }
ContainerStateNetworkCounters represents packet counters as part of the network section of a LXD container's state
type ContainerStatePut ¶
type ContainerStatePut struct { Action string `json:"action" yaml:"action"` Timeout int `json:"timeout" yaml:"timeout"` Force bool `json:"force" yaml:"force"` Stateful bool `json:"stateful" yaml:"stateful"` }
ContainerStatePut represents the modifiable fields of a LXD container's state
type ContainersPost ¶
type ContainersPost struct { ContainerPut `yaml:",inline"` Name string `json:"name" yaml:"name"` Source ContainerSource `json:"source" yaml:"source"` InstanceType string `json:"instance_type" yaml:"instance_type"` }
ContainersPost represents the fields available for a new LXD container
type Event ¶
type Event struct { Type string `yaml:"type" json:"type"` Timestamp time.Time `yaml:"timestamp" json:"timestamp"` Metadata json.RawMessage `yaml:"metadata" json:"metadata"` // API extension: event_location Location string `yaml:"location,omitempty" json:"location,omitempty"` }
Event represents an event entry (over websocket)
type EventLifecycle ¶
type EventLifecycle struct { Action string `yaml:"action" json:"action"` Source string `yaml:"source" json:"source"` Context map[string]interface{} `yaml:"context,omitempty" json:"context,omitempty"` }
EventLifecycle represets a lifecycle type event entry
API extension: event_lifecycle
type EventLogging ¶
type EventLogging struct { Message string `yaml:"message" json:"message"` Level string `yaml:"level" json:"level"` Context map[string]string `yaml:"context" json:"context"` }
EventLogging represents a logging type event entry (admin only)
type Image ¶
type Image struct { ImagePut `yaml:",inline"` Aliases []ImageAlias `json:"aliases" yaml:"aliases"` Architecture string `json:"architecture" yaml:"architecture"` Cached bool `json:"cached" yaml:"cached"` Filename string `json:"filename" yaml:"filename"` Fingerprint string `json:"fingerprint" yaml:"fingerprint"` Size int64 `json:"size" yaml:"size"` UpdateSource *ImageSource `json:"update_source,omitempty" yaml:"update_source,omitempty"` // API extension: image_types Type string `json:"type" yaml:"type"` CreatedAt time.Time `json:"created_at" yaml:"created_at"` LastUsedAt time.Time `json:"last_used_at" yaml:"last_used_at"` UploadedAt time.Time `json:"uploaded_at" yaml:"uploaded_at"` }
Image represents a LXD image
type ImageAlias ¶
type ImageAlias struct { Name string `json:"name" yaml:"name"` Description string `json:"description" yaml:"description"` }
ImageAlias represents an alias from the alias list of a LXD image
type ImageAliasesEntry ¶
type ImageAliasesEntry struct { ImageAliasesEntryPut `yaml:",inline"` Name string `json:"name" yaml:"name"` // API extension: image_types Type string `json:"type" yaml:"type"` }
ImageAliasesEntry represents a LXD image alias
type ImageAliasesEntryPost ¶
type ImageAliasesEntryPost struct {
Name string `json:"name" yaml:"name"`
}
ImageAliasesEntryPost represents the required fields to rename a LXD image alias
type ImageAliasesEntryPut ¶
type ImageAliasesEntryPut struct { Description string `json:"description" yaml:"description"` Target string `json:"target" yaml:"target"` }
ImageAliasesEntryPut represents the modifiable fields of a LXD image alias
type ImageAliasesPost ¶
type ImageAliasesPost struct {
ImageAliasesEntry `yaml:",inline"`
}
ImageAliasesPost represents a new LXD image alias
type ImageExportPost ¶
type ImageExportPost struct { Target string `json:"target" yaml:"target"` Secret string `json:"secret" yaml:"secret"` Certificate string `json:"certificate" yaml:"certificate"` Aliases []ImageAlias `json:"aliases" yaml:"aliases"` }
ImageExportPost represents the fields required to export a LXD image API extension: images_push_relay
type ImageMetadata ¶
type ImageMetadata struct { Architecture string `json:"architecture" yaml:"architecture"` CreationDate int64 `json:"creation_date" yaml:"creation_date"` ExpiryDate int64 `json:"expiry_date" yaml:"expiry_date"` Properties map[string]string `json:"properties" yaml:"properties"` Templates map[string]*ImageMetadataTemplate `json:"templates" yaml:"templates"` }
ImageMetadata represents LXD image metadata
type ImageMetadataTemplate ¶
type ImageMetadataTemplate struct { When []string `json:"when" yaml:"when"` CreateOnly bool `json:"create_only" yaml:"create_only"` Template string `json:"template" yaml:"template"` Properties map[string]string `json:"properties" yaml:"properties"` }
ImageMetadataTemplate represents a template entry in image metadata
type ImagePut ¶
type ImagePut struct { AutoUpdate bool `json:"auto_update" yaml:"auto_update"` Properties map[string]string `json:"properties" yaml:"properties"` Public bool `json:"public" yaml:"public"` // API extension: images_expiry ExpiresAt time.Time `json:"expires_at" yaml:"expires_at"` // API extension: image_profiles Profiles []string `json:"profiles" yaml:"profiles"` }
ImagePut represents the modifiable fields of a LXD image
type ImageSource ¶
type ImageSource struct { Alias string `json:"alias" yaml:"alias"` Certificate string `json:"certificate" yaml:"certificate"` Protocol string `json:"protocol" yaml:"protocol"` Server string `json:"server" yaml:"server"` // API extension: image_types ImageType string `json:"image_type" yaml:"image_type"` }
ImageSource represents the source of a LXD image
type ImagesPost ¶
type ImagesPost struct { ImagePut `yaml:",inline"` Filename string `json:"filename" yaml:"filename"` Source *ImagesPostSource `json:"source" yaml:"source"` // API extension: image_compression_algorithm CompressionAlgorithm string `json:"compression_algorithm" yaml:"compression_algorithm"` // API extension: image_create_aliases Aliases []ImageAlias `json:"aliases" yaml:"aliases"` }
ImagesPost represents the fields available for a new LXD image
type ImagesPostSource ¶
type ImagesPostSource struct { ImageSource `yaml:",inline"` Mode string `json:"mode" yaml:"mode"` Type string `json:"type" yaml:"type"` // For protocol "direct" URL string `json:"url" yaml:"url"` // For type "container" Name string `json:"name" yaml:"name"` // For type "image" Fingerprint string `json:"fingerprint" yaml:"fingerprint"` Secret string `json:"secret" yaml:"secret"` }
ImagesPostSource represents the source of a new LXD image
type Instance ¶
type Instance struct { InstancePut `yaml:",inline"` CreatedAt time.Time `json:"created_at" yaml:"created_at"` ExpandedConfig map[string]string `json:"expanded_config" yaml:"expanded_config"` ExpandedDevices map[string]map[string]string `json:"expanded_devices" yaml:"expanded_devices"` Name string `json:"name" yaml:"name"` Status string `json:"status" yaml:"status"` StatusCode StatusCode `json:"status_code" yaml:"status_code"` LastUsedAt time.Time `json:"last_used_at" yaml:"last_used_at"` Location string `json:"location" yaml:"location"` Type string `json:"type" yaml:"type"` }
Instance represents a LXD instance.
API extension: instances
func (Instance) IsActive ¶
IsActive checks whether the instance state indicates the instance is active.
API extension: instances
func (*Instance) Writable ¶
func (c *Instance) Writable() InstancePut
Writable converts a full Instance struct into a InstancePut struct (filters read-only fields).
API extension: instances
type InstanceBackup ¶
type InstanceBackup struct { Name string `json:"name" yaml:"name"` CreatedAt time.Time `json:"created_at" yaml:"created_at"` ExpiresAt time.Time `json:"expires_at" yaml:"expires_at"` InstanceOnly bool `json:"instance_only" yaml:"instance_only"` ContainerOnly bool `json:"container_only" yaml:"container_only"` // Deprecated, use InstanceOnly. OptimizedStorage bool `json:"optimized_storage" yaml:"optimized_storage"` }
InstanceBackup represents a LXD instance backup.
API extension: instances
type InstanceBackupPost ¶
type InstanceBackupPost struct {
Name string `json:"name" yaml:"name"`
}
InstanceBackupPost represents the fields available for the renaming of a instance backup.
API extension: instances
type InstanceBackupsPost ¶
type InstanceBackupsPost struct { Name string `json:"name" yaml:"name"` ExpiresAt time.Time `json:"expires_at" yaml:"expires_at"` InstanceOnly bool `json:"instance_only" yaml:"instance_only"` ContainerOnly bool `json:"container_only" yaml:"container_only"` // Deprecated, use InstanceOnly. OptimizedStorage bool `json:"optimized_storage" yaml:"optimized_storage"` // API extension: backup_compression_algorithm CompressionAlgorithm string `json:"compression_algorithm" yaml:"compression_algorithm"` }
InstanceBackupsPost represents the fields available for a new LXD instance backup.
API extension: instances
type InstanceConsoleControl ¶
type InstanceConsoleControl struct { Command string `json:"command" yaml:"command"` Args map[string]string `json:"args" yaml:"args"` }
InstanceConsoleControl represents a message on the instance console "control" socket.
API extension: instances
type InstanceConsolePost ¶
type InstanceConsolePost struct { Width int `json:"width" yaml:"width"` Height int `json:"height" yaml:"height"` // API extension: console_vga_type Type string `json:"type" yaml:"type"` }
InstanceConsolePost represents a LXD instance console request.
API extension: instances
type InstanceExecControl ¶
type InstanceExecControl struct { Command string `json:"command" yaml:"command"` Args map[string]string `json:"args" yaml:"args"` Signal int `json:"signal" yaml:"signal"` }
InstanceExecControl represents a message on the instance exec "control" socket.
API extension: instances
type InstanceExecPost ¶
type InstanceExecPost struct { Command []string `json:"command" yaml:"command"` WaitForWS bool `json:"wait-for-websocket" yaml:"wait-for-websocket"` Interactive bool `json:"interactive" yaml:"interactive"` Environment map[string]string `json:"environment" yaml:"environment"` Width int `json:"width" yaml:"width"` Height int `json:"height" yaml:"height"` RecordOutput bool `json:"record-output" yaml:"record-output"` User uint32 `json:"user" yaml:"user"` Group uint32 `json:"group" yaml:"group"` Cwd string `json:"cwd" yaml:"cwd"` }
InstanceExecPost represents a LXD instance exec request.
API extension: instances
type InstanceFull ¶
type InstanceFull struct { Instance `yaml:",inline"` Backups []InstanceBackup `json:"backups" yaml:"backups"` State *InstanceState `json:"state" yaml:"state"` Snapshots []InstanceSnapshot `json:"snapshots" yaml:"snapshots"` }
InstanceFull is a combination of Instance, InstanceBackup, InstanceState and InstanceSnapshot.
API extension: instances
type InstancePost ¶
type InstancePost struct { Name string `json:"name" yaml:"name"` Migration bool `json:"migration" yaml:"migration"` Live bool `json:"live" yaml:"live"` InstanceOnly bool `json:"instance_only" yaml:"instance_only"` ContainerOnly bool `json:"container_only" yaml:"container_only"` // Deprecated, use InstanceOnly. Target *InstancePostTarget `json:"target" yaml:"target"` }
InstancePost represents the fields required to rename/move a LXD instance.
API extension: instances
type InstancePostTarget ¶
type InstancePostTarget struct { Certificate string `json:"certificate" yaml:"certificate"` Operation string `json:"operation,omitempty" yaml:"operation,omitempty"` Websockets map[string]string `json:"secrets,omitempty" yaml:"secrets,omitempty"` }
InstancePostTarget represents the migration target host and operation.
API extension: instances
type InstancePut ¶
type InstancePut struct { Architecture string `json:"architecture" yaml:"architecture"` Config map[string]string `json:"config" yaml:"config"` Devices map[string]map[string]string `json:"devices" yaml:"devices"` Ephemeral bool `json:"ephemeral" yaml:"ephemeral"` Profiles []string `json:"profiles" yaml:"profiles"` Restore string `json:"restore,omitempty" yaml:"restore,omitempty"` Stateful bool `json:"stateful" yaml:"stateful"` Description string `json:"description" yaml:"description"` }
InstancePut represents the modifiable fields of a LXD instance.
API extension: instances
type InstanceSnapshot ¶
type InstanceSnapshot struct { InstanceSnapshotPut `yaml:",inline"` CreatedAt time.Time `json:"created_at" yaml:"created_at"` ExpandedConfig map[string]string `json:"expanded_config" yaml:"expanded_config"` ExpandedDevices map[string]map[string]string `json:"expanded_devices" yaml:"expanded_devices"` LastUsedAt time.Time `json:"last_used_at" yaml:"last_used_at"` Name string `json:"name" yaml:"name"` Stateful bool `json:"stateful" yaml:"stateful"` // API extension: snapshot_disk_usage Size int64 `json:"size" yaml:"size"` }
InstanceSnapshot represents a LXD instance snapshot.
API extension: instances
func (*InstanceSnapshot) Writable ¶
func (c *InstanceSnapshot) Writable() InstanceSnapshotPut
Writable converts a full InstanceSnapshot struct into a InstanceSnapshotPut struct (filters read-only fields).
API extension: instances
type InstanceSnapshotPost ¶
type InstanceSnapshotPost struct { Name string `json:"name" yaml:"name"` Migration bool `json:"migration" yaml:"migration"` Target *InstancePostTarget `json:"target" yaml:"target"` Live bool `json:"live,omitempty" yaml:"live,omitempty"` }
InstanceSnapshotPost represents the fields required to rename/move a LXD instance snapshot.
API extension: instances
type InstanceSnapshotPut ¶
type InstanceSnapshotPut struct { Architecture string `json:"architecture" yaml:"architecture"` Config map[string]string `json:"config" yaml:"config"` Devices map[string]map[string]string `json:"devices" yaml:"devices"` Ephemeral bool `json:"ephemeral" yaml:"ephemeral"` Profiles []string `json:"profiles" yaml:"profiles"` ExpiresAt time.Time `json:"expires_at" yaml:"expires_at"` }
InstanceSnapshotPut represents the modifiable fields of a LXD instance snapshot.
API extension: instances
type InstanceSnapshotsPost ¶
type InstanceSnapshotsPost struct { Name string `json:"name" yaml:"name"` Stateful bool `json:"stateful" yaml:"stateful"` // API extension: snapshot_expiry_creation ExpiresAt *time.Time `json:"expires_at" yaml:"expires_at"` }
InstanceSnapshotsPost represents the fields available for a new LXD instance snapshot.
API extension: instances
type InstanceSource ¶
type InstanceSource struct { Type string `json:"type" yaml:"type"` Certificate string `json:"certificate" yaml:"certificate"` Alias string `json:"alias,omitempty" yaml:"alias,omitempty"` Fingerprint string `json:"fingerprint,omitempty" yaml:"fingerprint,omitempty"` Properties map[string]string `json:"properties,omitempty" yaml:"properties,omitempty"` Server string `json:"server,omitempty" yaml:"server,omitempty"` Secret string `json:"secret,omitempty" yaml:"secret,omitempty"` Protocol string `json:"protocol,omitempty" yaml:"protocol,omitempty"` BaseImage string `json:"base-image,omitempty" yaml:"base-image,omitempty"` Mode string `json:"mode,omitempty" yaml:"mode,omitempty"` Operation string `json:"operation,omitempty" yaml:"operation,omitempty"` Websockets map[string]string `json:"secrets,omitempty" yaml:"secrets,omitempty"` Source string `json:"source,omitempty" yaml:"source,omitempty"` Live bool `json:"live,omitempty" yaml:"live,omitempty"` InstanceOnly bool `json:"instance_only,omitempty" yaml:"instance_only,omitempty"` ContainerOnly bool `json:"container_only,omitempty" yaml:"container_only,omitempty"` // Deprecated, use InstanceOnly. Refresh bool `json:"refresh,omitempty" yaml:"refresh,omitempty"` Project string `json:"project,omitempty" yaml:"project,omitempty"` }
InstanceSource represents the creation source for a new instance.
API extension: instances
type InstanceState ¶
type InstanceState struct { Status string `json:"status" yaml:"status"` StatusCode StatusCode `json:"status_code" yaml:"status_code"` Disk map[string]InstanceStateDisk `json:"disk" yaml:"disk"` Memory InstanceStateMemory `json:"memory" yaml:"memory"` Network map[string]InstanceStateNetwork `json:"network" yaml:"network"` Pid int64 `json:"pid" yaml:"pid"` Processes int64 `json:"processes" yaml:"processes"` CPU InstanceStateCPU `json:"cpu" yaml:"cpu"` }
InstanceState represents a LXD instance's state.
API extension: instances
type InstanceStateCPU ¶
type InstanceStateCPU struct {
Usage int64 `json:"usage" yaml:"usage"`
}
InstanceStateCPU represents the cpu information section of a LXD instance's state.
API extension: instances
type InstanceStateDisk ¶
type InstanceStateDisk struct {
Usage int64 `json:"usage" yaml:"usage"`
}
InstanceStateDisk represents the disk information section of a LXD instance's state.
API extension: instances
type InstanceStateMemory ¶
type InstanceStateMemory struct { Usage int64 `json:"usage" yaml:"usage"` UsagePeak int64 `json:"usage_peak" yaml:"usage_peak"` SwapUsage int64 `json:"swap_usage" yaml:"swap_usage"` SwapUsagePeak int64 `json:"swap_usage_peak" yaml:"swap_usage_peak"` }
InstanceStateMemory represents the memory information section of a LXD instance's state.
API extension: instances
type InstanceStateNetwork ¶
type InstanceStateNetwork struct { Addresses []InstanceStateNetworkAddress `json:"addresses" yaml:"addresses"` Counters InstanceStateNetworkCounters `json:"counters" yaml:"counters"` Hwaddr string `json:"hwaddr" yaml:"hwaddr"` HostName string `json:"host_name" yaml:"host_name"` Mtu int `json:"mtu" yaml:"mtu"` State string `json:"state" yaml:"state"` Type string `json:"type" yaml:"type"` }
InstanceStateNetwork represents the network information section of a LXD instance's state.
API extension: instances
type InstanceStateNetworkAddress ¶
type InstanceStateNetworkAddress struct { Family string `json:"family" yaml:"family"` Address string `json:"address" yaml:"address"` Netmask string `json:"netmask" yaml:"netmask"` Scope string `json:"scope" yaml:"scope"` }
InstanceStateNetworkAddress represents a network address as part of the network section of a LXD instance's state.
API extension: instances
type InstanceStateNetworkCounters ¶
type InstanceStateNetworkCounters struct { BytesReceived int64 `json:"bytes_received" yaml:"bytes_received"` BytesSent int64 `json:"bytes_sent" yaml:"bytes_sent"` PacketsReceived int64 `json:"packets_received" yaml:"packets_received"` PacketsSent int64 `json:"packets_sent" yaml:"packets_sent"` }
InstanceStateNetworkCounters represents packet counters as part of the network section of a LXD instance's state.
API extension: instances
type InstanceStatePut ¶
type InstanceStatePut struct { Action string `json:"action" yaml:"action"` Timeout int `json:"timeout" yaml:"timeout"` Force bool `json:"force" yaml:"force"` Stateful bool `json:"stateful" yaml:"stateful"` }
InstanceStatePut represents the modifiable fields of a LXD instance's state.
API extension: instances
type InstanceType ¶
type InstanceType string
InstanceType represents the type if instance being returned or requested via the API.
type InstancesPost ¶
type InstancesPost struct { InstancePut `yaml:",inline"` Name string `json:"name" yaml:"name"` Source InstanceSource `json:"source" yaml:"source"` InstanceType string `json:"instance_type" yaml:"instance_type"` Type InstanceType `json:"type" yaml:"type"` }
InstancesPost represents the fields available for a new LXD instance.
API extension: instances
type Network ¶
type Network struct { NetworkPut `yaml:",inline"` Name string `json:"name" yaml:"name"` Type string `json:"type" yaml:"type"` UsedBy []string `json:"used_by" yaml:"used_by"` // API extension: network Managed bool `json:"managed" yaml:"managed"` // API extension: clustering Status string `json:"status" yaml:"status"` Locations []string `json:"locations" yaml:"locations"` }
Network represents a LXD network
func (*Network) Writable ¶
func (network *Network) Writable() NetworkPut
Writable converts a full Network struct into a NetworkPut struct (filters read-only fields)
type NetworkLease ¶
type NetworkLease struct { Hostname string `json:"hostname" yaml:"hostname"` Hwaddr string `json:"hwaddr" yaml:"hwaddr"` Address string `json:"address" yaml:"address"` Type string `json:"type" yaml:"type"` // API extension: network_leases_location Location string `json:"location" yaml:"location"` }
NetworkLease represents a DHCP lease
API extension: network_leases
type NetworkPost ¶
type NetworkPost struct {
Name string `json:"name" yaml:"name"`
}
NetworkPost represents the fields required to rename a LXD network
API extension: network
type NetworkPut ¶
type NetworkPut struct { Config map[string]string `json:"config" yaml:"config"` // API extension: entity_description Description string `json:"description" yaml:"description"` }
NetworkPut represents the modifiable fields of a LXD network
API extension: network
type NetworkState ¶
type NetworkState struct { Addresses []NetworkStateAddress `json:"addresses" yaml:"addresses"` Counters NetworkStateCounters `json:"counters" yaml:"counters"` Hwaddr string `json:"hwaddr" yaml:"hwaddr"` Mtu int `json:"mtu" yaml:"mtu"` State string `json:"state" yaml:"state"` Type string `json:"type" yaml:"type"` // API extension: network_state_bond_bridge Bond *NetworkStateBond `json:"bond" yaml:"bond"` Bridge *NetworkStateBridge `json:"bridge" yaml:"bridge"` }
NetworkState represents the network state
type NetworkStateAddress ¶
type NetworkStateAddress struct { Family string `json:"family" yaml:"family"` Address string `json:"address" yaml:"address"` Netmask string `json:"netmask" yaml:"netmask"` Scope string `json:"scope" yaml:"scope"` }
NetworkStateAddress represents a network address
type NetworkStateBond ¶
type NetworkStateBond struct { Mode string `json:"mode" yaml:"mode"` TransmitPolicy string `json:"transmit_policy" yaml:"transmit_policy"` UpDelay uint64 `json:"up_delay" yaml:"up_delay"` DownDelay uint64 `json:"down_delay" yaml:"down_delay"` MIIFrequency uint64 `json:"mii_frequency" yaml:"mii_frequency"` MIIState string `json:"mii_state" yaml:"mii_state"` LowerDevices []string `json:"lower_devices" yaml:"lower_devices"` }
NetworkStateBond represents bond specific state API extension: network_state_bond_bridge
type NetworkStateBridge ¶
type NetworkStateBridge struct { ID string `json:"id" yaml:"id"` STP bool `json:"stp" yaml:"stp"` ForwardDelay uint64 `json:"forward_delay" yaml:"forward_delay"` VLANDefault uint64 `json:"vlan_default" yaml:"vlan_default"` VLANFiltering bool `json:"vlan_filtering" yaml:"vlan_filtering"` UpperDevices []string `json:"upper_devices" yaml:"upper_devices"` }
NetworkStateBridge represents bond specific state API extension: network_state_bond_bridge
type NetworkStateCounters ¶
type NetworkStateCounters struct { BytesReceived int64 `json:"bytes_received" yaml:"bytes_received"` BytesSent int64 `json:"bytes_sent" yaml:"bytes_sent"` PacketsReceived int64 `json:"packets_received" yaml:"packets_received"` PacketsSent int64 `json:"packets_sent" yaml:"packets_sent"` }
NetworkStateCounters represents packet counters
type NetworksPost ¶
type NetworksPost struct { NetworkPut `yaml:",inline"` Name string `json:"name" yaml:"name"` Type string `json:"type" yaml:"type"` }
NetworksPost represents the fields of a new LXD network
API extension: network
type Operation ¶
type Operation struct { ID string `json:"id" yaml:"id"` Class string `json:"class" yaml:"class"` Description string `json:"description" yaml:"description"` CreatedAt time.Time `json:"created_at" yaml:"created_at"` UpdatedAt time.Time `json:"updated_at" yaml:"updated_at"` Status string `json:"status" yaml:"status"` StatusCode StatusCode `json:"status_code" yaml:"status_code"` Resources map[string][]string `json:"resources" yaml:"resources"` Metadata map[string]interface{} `json:"metadata" yaml:"metadata"` MayCancel bool `json:"may_cancel" yaml:"may_cancel"` Err string `json:"err" yaml:"err"` // API extension: operation_location Location string `json:"location" yaml:"location"` }
Operation represents a LXD background operation
type Profile ¶
type Profile struct { ProfilePut `yaml:",inline"` Name string `json:"name" yaml:"name" db:"primary=yes"` // API extension: profile_usedby UsedBy []string `json:"used_by" yaml:"used_by"` }
Profile represents a LXD profile
func (*Profile) Writable ¶
func (profile *Profile) Writable() ProfilePut
Writable converts a full Profile struct into a ProfilePut struct (filters read-only fields)
type ProfilePost ¶
type ProfilePost struct {
Name string `json:"name" yaml:"name"`
}
ProfilePost represents the fields required to rename a LXD profile
type ProfilePut ¶
type ProfilePut struct { Config map[string]string `json:"config" yaml:"config"` Description string `json:"description" yaml:"description"` Devices map[string]map[string]string `json:"devices" yaml:"devices"` }
ProfilePut represents the modifiable fields of a LXD profile
type ProfilesPost ¶
type ProfilesPost struct { ProfilePut `yaml:",inline"` Name string `json:"name" yaml:"name" db:"primary=yes"` }
ProfilesPost represents the fields of a new LXD profile
type Project ¶
type Project struct { ProjectPut `yaml:",inline"` Name string `json:"name" yaml:"name"` UsedBy []string `json:"used_by" yaml:"used_by"` }
Project represents a LXD project
API extension: projects
func (*Project) Writable ¶
func (project *Project) Writable() ProjectPut
Writable converts a full Project struct into a ProjectPut struct (filters read-only fields)
API extension: projects
type ProjectPost ¶
type ProjectPost struct {
Name string `json:"name" yaml:"name"`
}
ProjectPost represents the fields required to rename a LXD project
API extension: projects
type ProjectPut ¶
type ProjectPut struct { Description string `json:"description" yaml:"description"` Config map[string]string `json:"config" yaml:"config"` }
ProjectPut represents the modifiable fields of a LXD project
API extension: projects
type ProjectsPost ¶
type ProjectsPost struct { ProjectPut `yaml:",inline"` Name string `json:"name" yaml:"name"` }
ProjectsPost represents the fields of a new LXD project
API extension: projects
type Resources ¶
type Resources struct { CPU ResourcesCPU `json:"cpu" yaml:"cpu"` Memory ResourcesMemory `json:"memory" yaml:"memory"` // API extension: resources_gpu GPU ResourcesGPU `json:"gpu" yaml:"gpu"` // API extension: resources_v2 Network ResourcesNetwork `json:"network" yaml:"network"` Storage ResourcesStorage `json:"storage" yaml:"storage"` // API extension: resources_usb_pci USB ResourcesUSB `json:"usb" yaml:"usb"` PCI ResourcesPCI `json:"pci" yaml:"pci"` // API extension: resources_system System ResourcesSystem `json:"system" yaml:"system"` }
Resources represents the system resources avaible for LXD API extension: resources
type ResourcesCPU ¶
type ResourcesCPU struct { // API extension: resources_v2 Architecture string `json:"architecture" yaml:"architecture"` Sockets []ResourcesCPUSocket `json:"sockets" yaml:"sockets"` Total uint64 `json:"total" yaml:"total"` }
ResourcesCPU represents the cpu resources available on the system API extension: resources
type ResourcesCPUCache ¶
type ResourcesCPUCache struct { Level uint64 `json:"level" yaml:"level"` Type string `json:"type" yaml:"type"` Size uint64 `json:"size" yaml:"size"` }
ResourcesCPUCache represents a CPU cache API extension: resources_v2
type ResourcesCPUCore ¶
type ResourcesCPUCore struct { Core uint64 `json:"core" yaml:"core"` // API extension: resources_cpu_core_die Die uint64 `json:"die" yaml:"die"` Threads []ResourcesCPUThread `json:"threads" yaml:"threads"` Frequency uint64 `json:"frequency,omitempty" yaml:"frequency,omitempty"` }
ResourcesCPUCore represents a CPU core on the system API extension: resources_v2
type ResourcesCPUSocket ¶
type ResourcesCPUSocket struct { Name string `json:"name,omitempty" yaml:"name,omitempty"` Vendor string `json:"vendor,omitempty" yaml:"vendor,omitempty"` Socket uint64 `json:"socket" yaml:"socket"` Cache []ResourcesCPUCache `json:"cache,omitempty" yaml:"cache,omitempty"` Cores []ResourcesCPUCore `json:"cores" yaml:"cores"` Frequency uint64 `json:"frequency,omitempty" yaml:"frequency,omitempty"` FrequencyMinimum uint64 `json:"frequency_minimum,omitempty" yaml:"frequency_minimum,omitempty"` FrequencyTurbo uint64 `json:"frequency_turbo,omitempty" yaml:"frequency_turbo,omitempty"` }
ResourcesCPUSocket represents a CPU socket on the system API extension: resources_v2
type ResourcesCPUThread ¶
type ResourcesCPUThread struct { ID int64 `json:"id" yaml:"id"` NUMANode uint64 `json:"numa_node" yaml:"numa_node"` Thread uint64 `json:"thread" yaml:"thread"` Online bool `json:"online" yaml:"online"` // API extension: resource_cpu_isolated Isolated bool `json:"isolated" yaml:"isolated"` }
ResourcesCPUThread represents a CPU thread on the system API extension: resources_v2
type ResourcesGPU ¶
type ResourcesGPU struct { Cards []ResourcesGPUCard `json:"cards" yaml:"cards"` Total uint64 `json:"total" yaml:"total"` }
ResourcesGPU represents the GPU resources available on the system API extension: resources_gpu
type ResourcesGPUCard ¶
type ResourcesGPUCard struct { Driver string `json:"driver,omitempty" yaml:"driver,omitempty"` DriverVersion string `json:"driver_version,omitempty" yaml:"driver_version,omitempty"` DRM *ResourcesGPUCardDRM `json:"drm,omitempty" yaml:"drm,omitempty"` SRIOV *ResourcesGPUCardSRIOV `json:"sriov,omitempty" yaml:"sriov,omitempty"` Nvidia *ResourcesGPUCardNvidia `json:"nvidia,omitempty" yaml:"nvidia,omitempty"` // API extension: resources_gpu_mdev Mdev map[string]ResourcesGPUCardMdev `json:"mdev,omitempty" yaml:"mdev,omitempty"` NUMANode uint64 `json:"numa_node" yaml:"numa_node"` PCIAddress string `json:"pci_address,omitempty" yaml:"pci_address,omitempty"` Vendor string `json:"vendor,omitempty" yaml:"vendor,omitempty"` VendorID string `json:"vendor_id,omitempty" yaml:"vendor_id,omitempty"` Product string `json:"product,omitempty" yaml:"product,omitempty"` ProductID string `json:"product_id,omitempty" yaml:"product_id,omitempty"` }
ResourcesGPUCard represents a GPU card on the system API extension: resources_v2
type ResourcesGPUCardDRM ¶
type ResourcesGPUCardDRM struct { ID uint64 `json:"id" yaml:"id"` CardName string `json:"card_name" yaml:"card_name"` CardDevice string `json:"card_device" yaml:"card_device"` ControlName string `json:"control_name,omitempty" yaml:"control_name,omitempty"` ControlDevice string `json:"control_device,omitempty" yaml:"control_device,omitempty"` RenderName string `json:"render_name,omitempty" yaml:"render_name,omitempty"` RenderDevice string `json:"render_device,omitempty" yaml:"render_device,omitempty"` }
ResourcesGPUCardDRM represents the Linux DRM configuration of the GPU API extension: resources_v2
type ResourcesGPUCardMdev ¶
type ResourcesGPUCardMdev struct { API string `json:"api" yaml:"api"` Available uint64 `json:"available" yaml:"available"` Name string `json:"name,omitempty" yaml:"name,omitempty"` Description string `json:"description,omitempty" yaml:"description,omitempty"` Devices []string `json:"devices" yaml:"devices"` }
ResourcesGPUCardMdev represents the mediated devices configuration of the GPU API extension: resources_gpu_mdev
type ResourcesGPUCardNvidia ¶
type ResourcesGPUCardNvidia struct { CUDAVersion string `json:"cuda_version,omitempty" yaml:"cuda_version,omitempty"` NVRMVersion string `json:"nvrm_version,omitempty" yaml:"nvrm_version,omitempty"` Brand string `json:"brand" yaml:"brand"` Model string `json:"model" yaml:"model"` UUID string `json:"uuid,omitempty" yaml:"uuid,omitempty"` Architecture string `json:"architecture,omitempty" yaml:"architecture,omitempty"` // API extension: resources_v2 CardName string `json:"card_name" yaml:"card_name"` CardDevice string `json:"card_device" yaml:"card_device"` }
ResourcesGPUCardNvidia represents additional information for NVIDIA GPUs API extension: resources_gpu
type ResourcesGPUCardSRIOV ¶
type ResourcesGPUCardSRIOV struct { CurrentVFs uint64 `json:"current_vfs" yaml:"current_vfs"` MaximumVFs uint64 `json:"maximum_vfs" yaml:"maximum_vfs"` VFs []ResourcesGPUCard `json:"vfs" yaml:"vfs"` }
ResourcesGPUCardSRIOV represents the SRIOV configuration of the GPU API extension: resources_v2
type ResourcesMemory ¶
type ResourcesMemory struct { // API extension: resources_v2 Nodes []ResourcesMemoryNode `json:"nodes,omitempty" yaml:"nodes,omitempty"` HugepagesTotal uint64 `json:"hugepages_total" yaml:"hugepages_total"` HugepagesUsed uint64 `json:"hugepages_used" yaml:"hugepages_used"` HugepagesSize uint64 `json:"hugepages_size" yaml:"hugepages_size"` Used uint64 `json:"used" yaml:"used"` Total uint64 `json:"total" yaml:"total"` }
ResourcesMemory represents the memory resources available on the system API extension: resources
type ResourcesMemoryNode ¶
type ResourcesMemoryNode struct { NUMANode uint64 `json:"numa_node" yaml:"numa_node"` HugepagesUsed uint64 `json:"hugepages_used" yaml:"hugepages_used"` HugepagesTotal uint64 `json:"hugepages_total" yaml:"hugepages_total"` Used uint64 `json:"used" yaml:"used"` Total uint64 `json:"total" yaml:"total"` }
ResourcesMemoryNode represents the node-specific memory resources available on the system API extension: resources_v2
type ResourcesNetwork ¶
type ResourcesNetwork struct { Cards []ResourcesNetworkCard `json:"cards" yaml:"cards"` Total uint64 `json:"total" yaml:"total"` }
ResourcesNetwork represents the network cards available on the system API extension: resources_v2
type ResourcesNetworkCard ¶
type ResourcesNetworkCard struct { Driver string `json:"driver,omitempty" yaml:"driver,omitempty"` DriverVersion string `json:"driver_version,omitempty" yaml:"driver_version,omitempty"` Ports []ResourcesNetworkCardPort `json:"ports,omitempty" yaml:"ports,omitempty"` SRIOV *ResourcesNetworkCardSRIOV `json:"sriov,omitempty" yaml:"sriov,omitempty"` NUMANode uint64 `json:"numa_node" yaml:"numa_node"` PCIAddress string `json:"pci_address,omitempty" yaml:"pci_address,omitempty"` Vendor string `json:"vendor,omitempty" yaml:"vendor,omitempty"` VendorID string `json:"vendor_id,omitempty" yaml:"vendor_id,omitempty"` Product string `json:"product,omitempty" yaml:"product,omitempty"` ProductID string `json:"product_id,omitempty" yaml:"product_id,omitempty"` // API extension: resources_network_firmware FirmwareVersion string `json:"firmware_version,omitempty" yaml:"firmware_version,omitempty"` }
ResourcesNetworkCard represents a network card on the system API extension: resources_v2
type ResourcesNetworkCardPort ¶
type ResourcesNetworkCardPort struct { ID string `json:"id" yaml:"id"` Address string `json:"address,omitempty" yaml:"address,omitempty"` Port uint64 `json:"port" yaml:"port"` Protocol string `json:"protocol" yaml:"protocol"` SupportedModes []string `json:"supported_modes,omitempty" yaml:"supported_modes,omitempty"` SupportedPorts []string `json:"supported_ports,omitempty" yaml:"supported_ports,omitempty"` PortType string `json:"port_type,omitempty" yaml:"port_type,omitempty"` TransceiverType string `json:"transceiver_type,omitempty" yaml:"transceiver_type,omitempty"` AutoNegotiation bool `json:"auto_negotiation" yaml:"auto_negotiation"` LinkDetected bool `json:"link_detected" yaml:"link_detected"` LinkSpeed uint64 `json:"link_speed,omitempty" yaml:"link_speed,omitempty"` LinkDuplex string `json:"link_duplex,omitempty" yaml:"link_duplex,omitempty"` // API extension: resources_infiniband Infiniband *ResourcesNetworkCardPortInfiniband `json:"infiniband,omitempty" yaml:"infiniband,omitempty"` }
ResourcesNetworkCardPort represents a network port on the system API extension: resources_v2
type ResourcesNetworkCardPortInfiniband ¶
type ResourcesNetworkCardPortInfiniband struct { IsSMName string `json:"issm_name,omitempty" yaml:"issm_name,omitempty"` IsSMDevice string `json:"issm_device,omitempty" yaml:"issm_device,omitempty"` MADName string `json:"mad_name,omitempty" yaml:"mad_name,omitempty"` MADDevice string `json:"mad_device,omitempty" yaml:"mad_device,omitempty"` VerbName string `json:"verb_name,omitempty" yaml:"verb_name,omitempty"` VerbDevice string `json:"verb_device,omitempty" yaml:"verb_device,omitempty"` }
ResourcesNetworkCardPortInfiniband represents the Linux Infiniband configuration for the port API extension: resources_infiniband
type ResourcesNetworkCardSRIOV ¶
type ResourcesNetworkCardSRIOV struct { CurrentVFs uint64 `json:"current_vfs" yaml:"current_vfs"` MaximumVFs uint64 `json:"maximum_vfs" yaml:"maximum_vfs"` VFs []ResourcesNetworkCard `json:"vfs" yaml:"vfs"` }
ResourcesNetworkCardSRIOV represents the SRIOV configuration of the network card API extension: resources_v2
type ResourcesPCI ¶
type ResourcesPCI struct { Devices []ResourcesPCIDevice `json:"devices" yaml:"devices"` Total uint64 `json:"total" yaml:"total"` }
ResourcesPCI represents the PCI devices available on the system API extension: resources_usb_pci
type ResourcesPCIDevice ¶
type ResourcesPCIDevice struct { Driver string `json:"driver" yaml:"driver"` DriverVersion string `json:"driver_version" yaml:"driver_version"` NUMANode uint64 `json:"numa_node" yaml:"numa_node"` PCIAddress string `json:"pci_address" yaml:"pci_address"` Product string `json:"product" yaml:"product"` ProductID string `json:"product_id" yaml:"product_id"` Vendor string `json:"vendor" yaml:"vendor"` VendorID string `json:"vendor_id" yaml:"vendor_id"` }
ResourcesPCIDevice represents a PCI device API extension: resources_usb_pci
type ResourcesStorage ¶
type ResourcesStorage struct { Disks []ResourcesStorageDisk `json:"disks" yaml:"disks"` Total uint64 `json:"total" yaml:"total"` }
ResourcesStorage represents the local storage API extension: resources_v2
type ResourcesStorageDisk ¶
type ResourcesStorageDisk struct { ID string `json:"id" yaml:"id"` Device string `json:"device" yaml:"device"` Model string `json:"model,omitempty" yaml:"model,omitempty"` Type string `json:"type,omitempty" yaml:"type,omitempty"` ReadOnly bool `json:"read_only" yaml:"read_only"` Size uint64 `json:"size" yaml:"size"` Removable bool `json:"removable" yaml:"removable"` WWN string `json:"wwn,omitempty" yaml:"wwn,omitempty"` NUMANode uint64 `json:"numa_node" yaml:"numa_node"` // API extension: resources_disk_sata DevicePath string `json:"device_path" yaml:"device_path"` BlockSize uint64 `json:"block_size" yaml:"block_size"` FirmwareVersion string `json:"firmware_version,omitempty" yaml:"firmware_version,omitempty"` RPM uint64 `json:"rpm" yaml:"rpm"` Serial string `json:"serial,omitempty" yaml:"serial,omitempty"` // API extension: resources_disk_id DeviceID string `json:"device_id" yaml:"device_id"` Partitions []ResourcesStorageDiskPartition `json:"partitions" yaml:"partitions"` }
ResourcesStorageDisk represents a disk API extension: resources_v2
type ResourcesStorageDiskPartition ¶
type ResourcesStorageDiskPartition struct { ID string `json:"id" yaml:"id"` Device string `json:"device" yaml:"device"` ReadOnly bool `json:"read_only" yaml:"read_only"` Size uint64 `json:"size" yaml:"size"` Partition uint64 `json:"partition" yaml:"partition"` }
ResourcesStorageDiskPartition represents a partition on a disk API extension: resources_v2
type ResourcesStoragePool ¶
type ResourcesStoragePool struct { Space ResourcesStoragePoolSpace `json:"space,omitempty" yaml:"space,omitempty"` Inodes ResourcesStoragePoolInodes `json:"inodes,omitempty" yaml:"inodes,omitempty"` }
ResourcesStoragePool represents the resources available to a given storage pool API extension: resources
type ResourcesStoragePoolInodes ¶
type ResourcesStoragePoolInodes struct { Used uint64 `json:"used" yaml:"used"` Total uint64 `json:"total" yaml:"total"` }
ResourcesStoragePoolInodes represents the inodes available to a given storage pool API extension: resources
type ResourcesStoragePoolSpace ¶
type ResourcesStoragePoolSpace struct { Used uint64 `json:"used,omitempty" yaml:"used,omitempty"` Total uint64 `json:"total" yaml:"total"` }
ResourcesStoragePoolSpace represents the space available to a given storage pool API extension: resources
type ResourcesSystem ¶
type ResourcesSystem struct { UUID string `json:"uuid" yaml:"uuid"` Vendor string `json:"vendor" yaml:"vendor"` Product string `json:"product" yaml:"product"` Family string `json:"family" yaml:"family"` Version string `json:"version" yaml:"version"` Sku string `json:"sku" yaml:"sku"` Serial string `json:"serial" yaml:"serial"` Type string `json:"type" yaml:"type"` Firmware *ResourcesSystemFirmware `json:"firmware" yaml:"firmware"` Chassis *ResourcesSystemChassis `json:"chassis" yaml:"chassis"` Motherboard *ResourcesSystemMotherboard `json:"motherboard" yaml:"motherboard"` }
ResourcesSystem represents the system API extension: resources_system
type ResourcesSystemChassis ¶
type ResourcesSystemChassis struct { Vendor string `json:"vendor" yaml:"vendor"` Type string `json:"type" yaml:"type"` Serial string `json:"serial" yaml:"serial"` Version string `json:"version" yaml:"version"` }
ResourcesSystemChassis represents the system chassis API extension: resources_system
type ResourcesSystemFirmware ¶
type ResourcesSystemFirmware struct { Vendor string `json:"vendor" yaml:"vendor"` Date string `json:"date" yaml:"date"` Version string `json:"version" yaml:"version"` }
ResourcesSystemFirmware represents the system firmware API extension: resources_system
type ResourcesSystemMotherboard ¶
type ResourcesSystemMotherboard struct { Vendor string `json:"vendor" yaml:"vendor"` Product string `json:"product" yaml:"product"` Serial string `json:"serial" yaml:"serial"` Version string `json:"version" yaml:"version"` }
ResourcesSystemMotherboard represents the motherboard API extension: resources_system
type ResourcesUSB ¶
type ResourcesUSB struct { Devices []ResourcesUSBDevice `json:"devices" yaml:"devices"` Total uint64 `json:"total" yaml:"total"` }
ResourcesUSB represents the USB devices available on the system API extension: resources_usb_pci
type ResourcesUSBDevice ¶
type ResourcesUSBDevice struct { BusAddress uint64 `json:"bus_address" yaml:"bus_address"` DeviceAddress uint64 `json:"device_address" yaml:"device_address"` Interfaces []ResourcesUSBDeviceInterface `json:"interfaces" yaml:"interfaces"` Product string `json:"product" yaml:"product"` ProductID string `json:"product_id" yaml:"product_id"` Speed float64 `json:"speed" yaml:"speed"` Vendor string `json:"vendor" yaml:"vendor"` VendorID string `json:"vendor_id" yaml:"vendor_id"` }
ResourcesUSBDevice represents a USB device API extension: resources_usb_pci
type ResourcesUSBDeviceInterface ¶
type ResourcesUSBDeviceInterface struct { Class string `json:"class" yaml:"class"` ClassID uint64 `json:"class_id" yaml:"class_id"` Driver string `json:"driver" yaml:"driver"` DriverVersion string `json:"driver_version" yaml:"driver_version"` Number uint64 `json:"number" yaml:"number"` SubClass string `json:"subclass" yaml:"subclass"` SubClassID uint64 `json:"subclass_id" yaml:"subclass_id"` }
ResourcesUSBDeviceInterface represents a USB device interface API extension: resources_usb_pci
type Response ¶
type Response struct { Type ResponseType `json:"type" yaml:"type"` // Valid only for Sync responses Status string `json:"status" yaml:"status"` StatusCode int `json:"status_code" yaml:"status_code"` // Valid only for Async responses Operation string `json:"operation" yaml:"operation"` // Valid only for Error responses Code int `json:"error_code" yaml:"error_code"` Error string `json:"error" yaml:"error"` // Valid for Sync and Error responses Metadata json.RawMessage `json:"metadata" yaml:"metadata"` }
Response represents a LXD operation
func (*Response) MetadataAsMap ¶
MetadataAsMap parses the Response metadata into a map
func (*Response) MetadataAsOperation ¶
MetadataAsOperation turns the Response metadata into an Operation
func (*Response) MetadataAsStringSlice ¶
MetadataAsStringSlice parses the Response metadata into a slice of string
func (*Response) MetadataAsStruct ¶
MetadataAsStruct parses the Response metadata into a provided struct
type ResponseRaw ¶
type ResponseRaw struct { Type ResponseType `json:"type" yaml:"type"` // Valid only for Sync responses Status string `json:"status" yaml:"status"` StatusCode int `json:"status_code" yaml:"status_code"` // Valid only for Async responses Operation string `json:"operation" yaml:"operation"` // Valid only for Error responses Code int `json:"error_code" yaml:"error_code"` Error string `json:"error" yaml:"error"` Metadata interface{} `json:"metadata" yaml:"metadata"` }
ResponseRaw represents a LXD operation in its original form
type ResponseType ¶
type ResponseType string
ResponseType represents a valid LXD response type
const ( SyncResponse ResponseType = "sync" AsyncResponse ResponseType = "async" ErrorResponse ResponseType = "error" )
LXD response types
type Server ¶
type Server struct { ServerPut `yaml:",inline"` ServerUntrusted `yaml:",inline"` Environment ServerEnvironment `json:"environment" yaml:"environment"` }
Server represents a LXD server
type ServerEnvironment ¶
type ServerEnvironment struct { Addresses []string `json:"addresses" yaml:"addresses"` Architectures []string `json:"architectures" yaml:"architectures"` Certificate string `json:"certificate" yaml:"certificate"` CertificateFingerprint string `json:"certificate_fingerprint" yaml:"certificate_fingerprint"` Driver string `json:"driver" yaml:"driver"` DriverVersion string `json:"driver_version" yaml:"driver_version"` // API extension: firewall_driver Firewall string `json:"firewall" yaml:"firewall"` Kernel string `json:"kernel" yaml:"kernel"` KernelArchitecture string `json:"kernel_architecture" yaml:"kernel_architecture"` // API extension: kernel_features KernelFeatures map[string]string `json:"kernel_features" yaml:"kernel_features"` KernelVersion string `json:"kernel_version" yaml:"kernel_version"` // API extension: lxc_features LXCFeatures map[string]string `json:"lxc_features" yaml:"lxc_features"` // API extension: api_os OSName string `json:"os_name" yaml:"os_name"` OSVersion string `json:"os_version" yaml:"os_version"` // API extension: projects Project string `json:"project" yaml:"project"` Server string `json:"server" yaml:"server"` // API extension: clustering ServerClustered bool `json:"server_clustered" yaml:"server_clustered"` ServerName string `json:"server_name" yaml:"server_name"` ServerPid int `json:"server_pid" yaml:"server_pid"` ServerVersion string `json:"server_version" yaml:"server_version"` Storage string `json:"storage" yaml:"storage"` StorageVersion string `json:"storage_version" yaml:"storage_version"` }
ServerEnvironment represents the read-only environment fields of a LXD server
type ServerPut ¶
type ServerPut struct {
Config map[string]interface{} `json:"config" yaml:"config"`
}
ServerPut represents the modifiable fields of a LXD server configuration
type ServerUntrusted ¶
type ServerUntrusted struct { APIExtensions []string `json:"api_extensions" yaml:"api_extensions"` APIStatus string `json:"api_status" yaml:"api_status"` APIVersion string `json:"api_version" yaml:"api_version"` Auth string `json:"auth" yaml:"auth"` Public bool `json:"public" yaml:"public"` // API extension: macaroon_authentication AuthMethods []string `json:"auth_methods" yaml:"auth_methods"` }
ServerUntrusted represents a LXD server for an untrusted client
type StatusCode ¶
type StatusCode int
StatusCode represents a valid LXD operation and container status
const ( OperationCreated StatusCode = 100 Started StatusCode = 101 Stopped StatusCode = 102 Running StatusCode = 103 Cancelling StatusCode = 104 Pending StatusCode = 105 Starting StatusCode = 106 Stopping StatusCode = 107 Aborting StatusCode = 108 Freezing StatusCode = 109 Frozen StatusCode = 110 Thawed StatusCode = 111 Error StatusCode = 112 Success StatusCode = 200 Failure StatusCode = 400 Cancelled StatusCode = 401 )
LXD status codes
func (StatusCode) IsFinal ¶
func (o StatusCode) IsFinal() bool
IsFinal will return true if the status code indicates an end state
func (StatusCode) String ¶
func (o StatusCode) String() string
String returns a suitable string representation for the status code
type StoragePool ¶
type StoragePool struct { StoragePoolPut `yaml:",inline"` Name string `json:"name" yaml:"name"` Driver string `json:"driver" yaml:"driver"` UsedBy []string `json:"used_by" yaml:"used_by"` // API extension: clustering Status string `json:"status" yaml:"status"` Locations []string `json:"locations" yaml:"locations"` }
StoragePool represents the fields of a LXD storage pool.
API extension: storage
func (*StoragePool) Writable ¶
func (storagePool *StoragePool) Writable() StoragePoolPut
Writable converts a full StoragePool struct into a StoragePoolPut struct (filters read-only fields).
type StoragePoolPut ¶
type StoragePoolPut struct { Config map[string]string `json:"config" yaml:"config"` // API extension: entity_description Description string `json:"description" yaml:"description"` }
StoragePoolPut represents the modifiable fields of a LXD storage pool.
API extension: storage
type StoragePoolsPost ¶
type StoragePoolsPost struct { StoragePoolPut `yaml:",inline"` Name string `json:"name" yaml:"name"` Driver string `json:"driver" yaml:"driver"` }
StoragePoolsPost represents the fields of a new LXD storage pool
API extension: storage
type StorageVolume ¶
type StorageVolume struct { StorageVolumePut `yaml:",inline"` Name string `json:"name" yaml:"name"` Type string `json:"type" yaml:"type"` UsedBy []string `json:"used_by" yaml:"used_by"` // API extension: clustering Location string `json:"location" yaml:"location"` // API extension: custom_block_volumes ContentType string `json:"content_type" yaml:"content_type"` }
StorageVolume represents the fields of a LXD storage volume.
API extension: storage
func (*StorageVolume) Writable ¶
func (storageVolume *StorageVolume) Writable() StorageVolumePut
Writable converts a full StorageVolume struct into a StorageVolumePut struct (filters read-only fields).
type StorageVolumePost ¶
type StorageVolumePost struct { Name string `json:"name" yaml:"name"` // API extension: storage_api_local_volume_handling Pool string `json:"pool,omitempty" yaml:"pool,omitempty"` // API extension: storage_api_remote_volume_handling Migration bool `json:"migration" yaml:"migration"` // API extension: storage_api_remote_volume_handling Target *StorageVolumePostTarget `json:"target" yaml:"target"` // API extension: storage_api_remote_volume_snapshots VolumeOnly bool `json:"volume_only" yaml:"volume_only"` }
StorageVolumePost represents the fields required to rename a LXD storage pool volume
API extension: storage_api_volume_rename
type StorageVolumePostTarget ¶
type StorageVolumePostTarget struct { Certificate string `json:"certificate" yaml:"certificate"` Operation string `json:"operation,omitempty" yaml:"operation,omitempty"` Websockets map[string]string `json:"secrets,omitempty" yaml:"secrets,omitempty"` }
StorageVolumePostTarget represents the migration target host and operation
API extension: storage_api_remote_volume_handling
type StorageVolumePut ¶
type StorageVolumePut struct { Config map[string]string `json:"config" yaml:"config"` // API extension: entity_description Description string `json:"description" yaml:"description"` // API extension: storage_api_volume_snapshots Restore string `json:"restore,omitempty" yaml:"restore,omitempty"` }
StorageVolumePut represents the modifiable fields of a LXD storage volume.
API extension: storage
type StorageVolumeSnapshot ¶
type StorageVolumeSnapshot struct { StorageVolumeSnapshotPut `json:",inline" yaml:",inline"` Name string `json:"name" yaml:"name"` Config map[string]string `json:"config" yaml:"config"` // API extension: custom_block_volumes ContentType string `json:"content_type" yaml:"content_type"` }
StorageVolumeSnapshot represents a LXD storage volume snapshot
API extension: storage_api_volume_snapshots
type StorageVolumeSnapshotPost ¶
type StorageVolumeSnapshotPost struct {
Name string `json:"name" yaml:"name"`
}
StorageVolumeSnapshotPost represents the fields required to rename/move a LXD storage volume snapshot
API extension: storage_api_volume_snapshots
type StorageVolumeSnapshotPut ¶
type StorageVolumeSnapshotPut struct { Description string `json:"description" yaml:"description"` // API extension: custom_volume_snapshot_expiry ExpiresAt *time.Time `json:"expires_at" yaml:"expires_at"` }
StorageVolumeSnapshotPut represents the modifiable fields of a LXD storage volume
API extension: storage_api_volume_snapshots
type StorageVolumeSnapshotsPost ¶
type StorageVolumeSnapshotsPost struct { Name string `json:"name" yaml:"name"` // API extension: custom_volume_snapshot_expiry ExpiresAt *time.Time `json:"expires_at" yaml:"expires_at"` }
StorageVolumeSnapshotsPost represents the fields available for a new LXD storage volume snapshot
API extension: storage_api_volume_snapshots
type StorageVolumeSource ¶
type StorageVolumeSource struct { Name string `json:"name" yaml:"name"` Type string `json:"type" yaml:"type"` Pool string `json:"pool" yaml:"pool"` // API extension: storage_api_remote_volume_handling Certificate string `json:"certificate" yaml:"certificate"` Mode string `json:"mode,omitempty" yaml:"mode,omitempty"` Operation string `json:"operation,omitempty" yaml:"operation,omitempty"` Websockets map[string]string `json:"secrets,omitempty" yaml:"secrets,omitempty"` // API extension: storage_api_volume_snapshots VolumeOnly bool `json:"volume_only" yaml:"volume_only"` }
StorageVolumeSource represents the creation source for a new storage volume.
API extension: storage_api_local_volume_handling
type StorageVolumesPost ¶
type StorageVolumesPost struct { StorageVolumePut `yaml:",inline"` Name string `json:"name" yaml:"name"` Type string `json:"type" yaml:"type"` // API extension: storage_api_local_volume_handling Source StorageVolumeSource `json:"source" yaml:"source"` // API extension: custom_block_volumes ContentType string `json:"content_type" yaml:"content_type"` }
StorageVolumesPost represents the fields of a new LXD storage pool volume
API extension: storage
Source Files ¶
- certificate.go
- cluster.go
- container.go
- container_backup.go
- container_console.go
- container_exec.go
- container_snapshot.go
- container_state.go
- doc.go
- event.go
- image.go
- instance.go
- instance_backup.go
- instance_console.go
- instance_exec.go
- instance_snapshot.go
- instance_state.go
- network.go
- operation.go
- profile.go
- project.go
- resource.go
- response.go
- server.go
- status_code.go
- storage_pool.go
- storage_pool_volume.go
- storage_pool_volume_snapshot.go