syntax = "proto2";
package walpb;

import "gogoproto/gogo.proto";
import "raftpb/raft.proto";

option go_package = "go.etcd.io/etcd/server/v3/storage/wal/walpb";

option (gogoproto.marshaler_all) = true;
option (gogoproto.sizer_all) = true;
option (gogoproto.unmarshaler_all) = true;
option (gogoproto.goproto_getters_all) = false;

message Record {
	optional int64 type  = 1 [(gogoproto.nullable) = false];
	optional uint32 crc  = 2 [(gogoproto.nullable) = false];
	optional bytes data  = 3;
}

// Keep in sync with raftpb.SnapshotMetadata.
message Snapshot {
	optional uint64 index = 1 [(gogoproto.nullable) = false];
	optional uint64 term  = 2 [(gogoproto.nullable) = false];
	// Field populated since >=etcd-3.5.0.
	optional raftpb.ConfState conf_state = 3;
}
