1package structs
2
3type SnapshotOp int
4
5const (
6	SnapshotSave SnapshotOp = iota
7	SnapshotRestore
8)
9
10// SnapshotReplyFn gets a peek at the reply before the snapshot streams, which
11// is useful for setting headers.
12type SnapshotReplyFn func(reply *SnapshotResponse) error
13
14// SnapshotRequest is used as a header for a snapshot RPC request. This will
15// precede any streaming data that's part of the request and is JSON-encoded on
16// the wire.
17type SnapshotRequest struct {
18	// Datacenter is the target datacenter for this request. The request
19	// will be forwarded if necessary.
20	Datacenter string
21
22	// Token is the ACL token to use for the operation. If ACLs are enabled
23	// then all operations require a management token.
24	Token string
25
26	// If set, any follower can service the request. Results may be
27	// arbitrarily stale. Only applies to SnapshotSave.
28	AllowStale bool
29
30	// Op is the operation code for the RPC.
31	Op SnapshotOp
32}
33
34// SnapshotResponse is used header for a snapshot RPC response. This will
35// precede any streaming data that's part of the request and is JSON-encoded on
36// the wire.
37type SnapshotResponse struct {
38	// Error is the overall error status of the RPC request.
39	Error string
40
41	// QueryMeta has freshness information about the server that handled the
42	// request. It is only filled in for a SnapshotSave.
43	QueryMeta
44}
45