garm/vendor/github.com/lxc/lxd/shared/api/instance_state.go
Gabriel Adrian Samfira c61b7fd268
Update go modules
Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
2023-03-12 16:22:37 +02:00

201 lines
5.3 KiB
Go

package api
// InstanceStatePut represents the modifiable fields of a LXD instance's state.
//
// swagger:model
//
// API extension: instances.
type InstanceStatePut struct {
// State change action (start, stop, restart, freeze, unfreeze)
// Example: start
Action string `json:"action" yaml:"action"`
// How long to wait (in s) before giving up (when force isn't set)
// Example: 30
Timeout int `json:"timeout" yaml:"timeout"`
// Whether to force the action (for stop and restart)
// Example: false
Force bool `json:"force" yaml:"force"`
// Whether to store the runtime state (for stop)
// Example: false
Stateful bool `json:"stateful" yaml:"stateful"`
}
// InstanceState represents a LXD instance's state.
//
// swagger:model
//
// API extension: instances.
type InstanceState struct {
// Current status (Running, Stopped, Frozen or Error)
// Example: Running
Status string `json:"status" yaml:"status"`
// Numeric status code (101, 102, 110, 112)
// Example: 101
StatusCode StatusCode `json:"status_code" yaml:"status_code"`
// Dict of disk usage
Disk map[string]InstanceStateDisk `json:"disk" yaml:"disk"`
// Memory usage information
Memory InstanceStateMemory `json:"memory" yaml:"memory"`
// Dict of network usage
Network map[string]InstanceStateNetwork `json:"network" yaml:"network"`
// PID of the runtime
// Example: 7281
Pid int64 `json:"pid" yaml:"pid"`
// Number of processes in the instance
// Example: 50
Processes int64 `json:"processes" yaml:"processes"`
// CPU usage information
CPU InstanceStateCPU `json:"cpu" yaml:"cpu"`
}
// InstanceStateDisk represents the disk information section of a LXD instance's state.
//
// swagger:model
//
// API extension: instances.
type InstanceStateDisk struct {
// Disk usage in bytes
// Example: 502239232
Usage int64 `json:"usage" yaml:"usage"`
}
// InstanceStateCPU represents the cpu information section of a LXD instance's state.
//
// swagger:model
//
// API extension: instances.
type InstanceStateCPU struct {
// CPU usage in nanoseconds
// Example: 3637691016
Usage int64 `json:"usage" yaml:"usage"`
}
// InstanceStateMemory represents the memory information section of a LXD instance's state.
//
// swagger:model
//
// API extension: instances.
type InstanceStateMemory struct {
// Memory usage in bytes
// Example: 73248768
Usage int64 `json:"usage" yaml:"usage"`
// Peak memory usage in bytes
// Example: 73785344
UsagePeak int64 `json:"usage_peak" yaml:"usage_peak"`
// SWAP usage in bytes
// Example: 12297557
SwapUsage int64 `json:"swap_usage" yaml:"swap_usage"`
// Peak SWAP usage in bytes
// Example: 12297557
SwapUsagePeak int64 `json:"swap_usage_peak" yaml:"swap_usage_peak"`
}
// InstanceStateNetwork represents the network information section of a LXD instance's state.
//
// swagger:model
//
// API extension: instances.
type InstanceStateNetwork struct {
// List of IP addresses
Addresses []InstanceStateNetworkAddress `json:"addresses" yaml:"addresses"`
// Traffic counters
Counters InstanceStateNetworkCounters `json:"counters" yaml:"counters"`
// MAC address
// Example: 00:16:3e:0c:ee:dd
Hwaddr string `json:"hwaddr" yaml:"hwaddr"`
// Name of the interface on the host
// Example: vethbbcd39c7
HostName string `json:"host_name" yaml:"host_name"`
// MTU (maximum transmit unit) for the interface
// Example: 1500
Mtu int `json:"mtu" yaml:"mtu"`
// Administrative state of the interface (up/down)
// Example: up
State string `json:"state" yaml:"state"`
// Type of interface (broadcast, loopback, point-to-point, ...)
// Example: broadcast
Type string `json:"type" yaml:"type"`
}
// InstanceStateNetworkAddress represents a network address as part of the network section of a LXD
// instance's state.
//
// swagger:model
//
// API extension: instances.
type InstanceStateNetworkAddress struct {
// Network family (inet or inet6)
// Example: inet6
Family string `json:"family" yaml:"family"`
// IP address
// Example: fd42:4c81:5770:1eaf:216:3eff:fe0c:eedd
Address string `json:"address" yaml:"address"`
// Network mask
// Example: 64
Netmask string `json:"netmask" yaml:"netmask"`
// Address scope (local, link or global)
// Example: global
Scope string `json:"scope" yaml:"scope"`
}
// InstanceStateNetworkCounters represents packet counters as part of the network section of a LXD
// instance's state.
//
// swagger:model
//
// API extension: instances.
type InstanceStateNetworkCounters struct {
// Number of bytes received
// Example: 192021
BytesReceived int64 `json:"bytes_received" yaml:"bytes_received"`
// Number of bytes sent
// Example: 10888579
BytesSent int64 `json:"bytes_sent" yaml:"bytes_sent"`
// Number of packets received
// Example: 1748
PacketsReceived int64 `json:"packets_received" yaml:"packets_received"`
// Number of packets sent
// Example: 964
PacketsSent int64 `json:"packets_sent" yaml:"packets_sent"`
// Number of errors received
// Example: 14
ErrorsReceived int64 `json:"errors_received" yaml:"errors_received"`
// Number of errors sent
// Example: 41
ErrorsSent int64 `json:"errors_sent" yaml:"errors_sent"`
// Number of outbound packets dropped
// Example: 541
PacketsDroppedOutbound int64 `json:"packets_dropped_outbound" yaml:"packets_dropped_outbound"`
// Number of inbound packets dropped
// Example: 179
PacketsDroppedInbound int64 `json:"packets_dropped_inbound" yaml:"packets_dropped_inbound"`
}