syntax = "proto3"; package docker.swarmkit.v1; import "github.com/docker/swarmkit/api/objects.proto"; import "github.com/docker/swarmkit/api/raft.proto"; import weak "gogoproto/gogo.proto"; // StoreSnapshot is used to store snapshots of the store. message StoreSnapshot { // TODO(aaronl): The current method of assembling a StoreSnapshot // structure and marshalling it is not optimal. It may be better to // write out nodes, networks, tasks, etc. one at a time to an io.Writer // using gogo-protobuf's io.DelimitedWriter. A new value of the version // field could support this approach. repeated Node nodes = 1; repeated Service services = 2; repeated Network networks = 3; repeated Task tasks = 4; repeated Cluster clusters = 5; repeated Secret secrets = 6; repeated Resource resources = 7; repeated Extension extensions = 8; repeated Config configs = 9; repeated Volume volumes = 10; } // ClusterSnapshot stores cluster membership information in snapshots. message ClusterSnapshot { repeated RaftMember members = 1; repeated uint64 removed = 2 [packed=false]; } message Snapshot { enum Version { // V0 is the initial version of the StoreSnapshot message. V0 = 0; } Version version = 1; ClusterSnapshot membership = 2 [(gogoproto.nullable) = false]; StoreSnapshot store = 3 [(gogoproto.nullable) = false]; }