1:- module(snapshots, [
2 create/5, 3 create/6, 4 delete/4, 5 delete/5, 6 get/4, 7 get/5, 8 delete_repository/3, 9 delete_repository/4, 10 get_repository/3, 11 get_repository/4, 12 create_repository/4, 13 create_repository/5, 14 restore/5, 15 restore/6, 16 status/4, 17 status/5, 18 verify_repository/3, 19 verify_repository/4 20]).
36create(Ps, Repository, Snapshot, Body, Reply) :-
37 create(Ps, Repository, Snapshot, _{}, Body, Reply).
38
39create(Ps, Repository, Snapshot, Params, Body, Reply) :-
40 forall(member(Value-Name, [Repository-repository, Snapshot-snapshot]), non_empty(Value, Name)),
41 make_context(['_snapshot', Repository, Snapshot], Context),
42 perform_request(Ps, put, Context, Params, Body, _, Reply).
50delete(Ps, Repository, Snapshot, Reply) :-
51 delete(Ps, Repository, Snapshot, _{}, Reply).
52
53delete(Ps, Repository, Snapshot, Params, Reply) :-
54 forall(member(Value-Name, [Repository-repository, Snapshot-snapshot]), non_empty(Value, Name)),
55 make_context(['_snapshot', Repository, Snapshot], Context),
56 perform_request(Ps, delete, Context, Params, _, Reply).
64get(Ps, Repository, Snapshot, Reply) :-
65 get(Ps, Repository, Snapshot, _{}, Reply).
66
67get(Ps, Repository, Snapshot, Params, Reply) :-
68 forall(member(Value-Name, [Repository-repository, Snapshot-snapshot]), non_empty(Value, Name)),
69 make_context(['_snapshot', Repository, Snapshot], Context),
70 perform_request(Ps, get, Context, Params, _, Reply).
78delete_repository(Ps, Repository, Reply) :-
79 delete_repository(Ps, Repository, _{}, Reply).
80
81delete_repository(Ps, Repository, Params, Reply) :-
82 non_empty(Repository, repository),
83 make_context(['_snapshot', Repository], Context),
84 perform_request(Ps, delete, Context, Params, _, Reply).
92get_repository(Ps, Repository, Reply) :-
93 get_repository(Ps, Repository, _{}, Reply).
94
95get_repository(Ps, Repository, Params, Reply) :-
96 make_context(['_snapshot', Repository], Context),
97 perform_request(Ps, get, Context, Params, _, Reply).
105create_repository(Ps, Repository, Body, Reply) :-
106 create_repository(Ps, Repository, _{}, Body, Reply).
107
108create_repository(Ps, Repository, Params, Body, Reply) :-
109 forall(member(Value-Name, [Repository-repository, Body-body]), non_empty(Value, Name)),
110 make_context(['_snapshot', Repository], Context),
111 perform_request(Ps, put, Context, Params, Body, _, Reply).
119restore(Ps, Repository, Snapshot, Body, Reply) :-
120 restore(Ps, Repository, Snapshot, _{}, Body, Reply).
121
122restore(Ps, Repository, Snapshot, Params, Body, Reply) :-
123 forall(member(Value-Name, [Repository-repository, Snapshot-snapshot]), non_empty(Value, Name)),
124 make_context(['_snapshot', Repository, Snapshot, '_restore'], Context),
125 perform_request(Ps, post, Context, Params, Body, _, Reply).
135status(Ps, Repository, Snapshot, Reply) :-
136 status(Ps, Repository, Snapshot, _{}, Reply).
137
138status(Ps, Repository, Snapshot, Params, Reply) :-
139 make_context(['_snapshot', Repository, Snapshot, '_status'], Context),
140 perform_request(Ps, get, Context, Params, _, Reply).
149verify_repository(Ps, Repository, Reply) :-
150 verify_repository(Ps, Repository, _{}, Reply).
151
152verify_repository(Ps, Repository, Params, Reply) :-
153 non_empty(Repository, repository),
154 make_context(['_snapshot', Repository, '_verify'], Context),
155 perform_request(Ps, post, Context, Params, '', _, Reply)
Snapshots APIs
The snapshot and restore module allows to create snapshots of individual indices or an entire cluster into a remote repository.