mirror of https://github.com/k3s-io/k3s
54 lines
2.2 KiB
Go
54 lines
2.2 KiB
Go
|
package api
|
||
|
|
||
|
import (
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
// ContainerSnapshotsPost represents the fields available for a new LXD container snapshot
|
||
|
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"`
|
||
|
}
|
||
|
|
||
|
// ContainerSnapshotPost represents the fields required to rename/move a LXD container snapshot
|
||
|
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"`
|
||
|
}
|
||
|
|
||
|
// ContainerSnapshotPut represents the modifiable fields of a LXD container snapshot
|
||
|
// API extension: snapshot_expiry
|
||
|
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"`
|
||
|
}
|
||
|
|
||
|
// ContainerSnapshot represents a LXD conainer snapshot
|
||
|
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"`
|
||
|
}
|
||
|
|
||
|
// Writable converts a full ContainerSnapshot struct into a ContainerSnapshotPut struct
|
||
|
// (filters read-only fields)
|
||
|
func (c *ContainerSnapshot) Writable() ContainerSnapshotPut {
|
||
|
return c.ContainerSnapshotPut
|
||
|
}
|