* Vendors packages * Adds a Makefile that uses docker to build a static binary against musl using alpine linux. Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
126 lines
3.6 KiB
Go
126 lines
3.6 KiB
Go
package api
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
// InstanceSnapshotsPost represents the fields available for a new LXD instance snapshot.
|
|
//
|
|
// swagger:model
|
|
//
|
|
// API extension: instances
|
|
type InstanceSnapshotsPost struct {
|
|
// Snapshot name
|
|
// Example: snap0
|
|
Name string `json:"name" yaml:"name"`
|
|
|
|
// Whether the snapshot should include runtime state
|
|
// Example: false
|
|
Stateful bool `json:"stateful" yaml:"stateful"`
|
|
|
|
// When the snapshot expires (gets auto-deleted)
|
|
// Example: 2021-03-23T17:38:37.753398689-04:00
|
|
//
|
|
// API extension: snapshot_expiry_creation
|
|
ExpiresAt *time.Time `json:"expires_at" yaml:"expires_at"`
|
|
}
|
|
|
|
// InstanceSnapshotPost represents the fields required to rename/move a LXD instance snapshot.
|
|
//
|
|
// swagger:model
|
|
//
|
|
// API extension: instances
|
|
type InstanceSnapshotPost struct {
|
|
// New name for the snapshot
|
|
// Example: foo
|
|
Name string `json:"name" yaml:"name"`
|
|
|
|
// Whether this is a migration request
|
|
// Example: false
|
|
Migration bool `json:"migration" yaml:"migration"`
|
|
|
|
// Migration target for push migration (requires migration)
|
|
Target *InstancePostTarget `json:"target" yaml:"target"`
|
|
|
|
// Whether to perform a live migration (requires migration)
|
|
// Example: false
|
|
Live bool `json:"live,omitempty" yaml:"live,omitempty"`
|
|
}
|
|
|
|
// InstanceSnapshotPut represents the modifiable fields of a LXD instance snapshot.
|
|
//
|
|
// swagger:model
|
|
//
|
|
// API extension: instances
|
|
type InstanceSnapshotPut struct {
|
|
// When the snapshot expires (gets auto-deleted)
|
|
// Example: 2021-03-23T17:38:37.753398689-04:00
|
|
ExpiresAt time.Time `json:"expires_at" yaml:"expires_at"`
|
|
}
|
|
|
|
// InstanceSnapshot represents a LXD instance snapshot.
|
|
//
|
|
// swagger:model
|
|
//
|
|
// API extension: instances
|
|
type InstanceSnapshot struct {
|
|
InstanceSnapshotPut `yaml:",inline"`
|
|
|
|
// Architecture name
|
|
// Example: x86_64
|
|
Architecture string `json:"architecture" yaml:"architecture"`
|
|
|
|
// Instance configuration (see doc/instances.md)
|
|
// Example: {"security.nesting": "true"}
|
|
Config map[string]string `json:"config" yaml:"config"`
|
|
|
|
// Instance creation timestamp
|
|
// Example: 2021-03-23T20:00:00-04:00
|
|
CreatedAt time.Time `json:"created_at" yaml:"created_at"`
|
|
|
|
// Instance devices (see doc/instances.md)
|
|
// Example: {"root": {"type": "disk", "pool": "default", "path": "/"}}
|
|
Devices map[string]map[string]string `json:"devices" yaml:"devices"`
|
|
|
|
// Whether the instance is ephemeral (deleted on shutdown)
|
|
// Example: false
|
|
Ephemeral bool `json:"ephemeral" yaml:"ephemeral"`
|
|
|
|
// Expanded configuration (all profiles and local config merged)
|
|
// Example: {"security.nesting": "true"}
|
|
ExpandedConfig map[string]string `json:"expanded_config" yaml:"expanded_config"`
|
|
|
|
// Expanded devices (all profiles and local devices merged)
|
|
// Example: {"root": {"type": "disk", "pool": "default", "path": "/"}}
|
|
ExpandedDevices map[string]map[string]string `json:"expanded_devices" yaml:"expanded_devices"`
|
|
|
|
// Last start timestamp
|
|
// Example: 2021-03-23T20:00:00-04:00
|
|
LastUsedAt time.Time `json:"last_used_at" yaml:"last_used_at"`
|
|
|
|
// Snapshot name
|
|
// Example: foo
|
|
Name string `json:"name" yaml:"name"`
|
|
|
|
// List of profiles applied to the instance
|
|
// Example: ["default"]
|
|
Profiles []string `json:"profiles" yaml:"profiles"`
|
|
|
|
// Whether the instance currently has saved state on disk
|
|
// Example: false
|
|
Stateful bool `json:"stateful" yaml:"stateful"`
|
|
|
|
// Size of the snapshot in bytes
|
|
// Example: 143360
|
|
//
|
|
// API extension: snapshot_disk_usage
|
|
Size int64 `json:"size" yaml:"size"`
|
|
}
|
|
|
|
// Writable converts a full InstanceSnapshot struct into a InstanceSnapshotPut struct
|
|
// (filters read-only fields).
|
|
//
|
|
// API extension: instances
|
|
func (c *InstanceSnapshot) Writable() InstanceSnapshotPut {
|
|
return c.InstanceSnapshotPut
|
|
}
|