1use crate::httpx::client::Client;
20use crate::httpx::request::OnBehalfOfInfo;
21use crate::mgmtx::bucket_settings::BucketSettings;
22use crate::mgmtx::node_target::NodeTarget;
23use crate::mgmtx::user::{Group, User};
24use std::sync::Arc;
25
26#[derive(Debug, Clone, Eq, PartialEq)]
27#[non_exhaustive]
28pub struct GetCollectionManifestOptions<'a> {
29 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
30 pub bucket_name: &'a str,
31}
32
33#[derive(Debug, Clone, Eq, PartialEq)]
34#[non_exhaustive]
35pub struct CreateScopeOptions<'a> {
36 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
37 pub bucket_name: &'a str,
38 pub scope_name: &'a str,
39}
40
41#[derive(Debug, Clone, Eq, PartialEq)]
42#[non_exhaustive]
43pub struct DeleteScopeOptions<'a> {
44 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
45 pub bucket_name: &'a str,
46 pub scope_name: &'a str,
47}
48
49#[derive(Debug, Clone, Eq, PartialEq)]
50#[non_exhaustive]
51pub struct CreateCollectionOptions<'a> {
52 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
53 pub bucket_name: &'a str,
54 pub scope_name: &'a str,
55 pub collection_name: &'a str,
56 pub max_ttl: Option<i32>,
57 pub history_enabled: Option<bool>,
58}
59
60#[derive(Debug, Clone, Eq, PartialEq)]
61#[non_exhaustive]
62pub struct UpdateCollectionOptions<'a> {
63 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
64 pub bucket_name: &'a str,
65 pub scope_name: &'a str,
66 pub collection_name: &'a str,
67 pub max_ttl: Option<i32>,
68 pub history_enabled: Option<bool>,
69}
70
71#[derive(Debug, Clone, Eq, PartialEq)]
72#[non_exhaustive]
73pub struct DeleteCollectionOptions<'a> {
74 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
75 pub bucket_name: &'a str,
76 pub scope_name: &'a str,
77 pub collection_name: &'a str,
78}
79
80#[derive(Debug, Clone, Eq, PartialEq)]
81#[non_exhaustive]
82pub struct GetTerseClusterConfigOptions<'a> {
83 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
84}
85
86#[derive(Debug, Clone, Eq, PartialEq)]
87#[non_exhaustive]
88pub struct GetFullClusterConfigOptions<'a> {
89 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
90}
91
92#[derive(Debug, Clone, Eq, PartialEq)]
93#[non_exhaustive]
94pub struct GetTerseBucketConfigOptions<'a> {
95 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
96 pub bucket_name: &'a str,
97}
98
99#[derive(Debug, Clone, Eq, PartialEq)]
100#[non_exhaustive]
101pub struct GetFullBucketConfigOptions<'a> {
102 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
103 pub bucket_name: &'a str,
104}
105
106#[derive(Debug, Clone, Eq, PartialEq)]
107#[non_exhaustive]
108pub struct LoadSampleBucketOptions<'a> {
109 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
110 pub bucket_name: &'a str,
111}
112
113#[derive(Debug, Clone, Eq, PartialEq)]
114pub struct EnsureManifestPollOptions<C: Client> {
115 pub client: Arc<C>,
116 pub targets: Vec<NodeTarget>,
117}
118
119#[derive(Debug, Clone, Eq, PartialEq)]
120#[non_exhaustive]
121pub struct GetAllBucketsOptions<'a> {
122 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
123}
124
125#[derive(Debug, Clone, Eq, PartialEq)]
126#[non_exhaustive]
127pub struct GetBucketOptions<'a> {
128 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
129 pub bucket_name: &'a str,
130}
131
132#[derive(Debug, Clone, Eq, PartialEq)]
133#[non_exhaustive]
134pub struct CreateBucketOptions<'a> {
135 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
136 pub bucket_name: &'a str,
137 pub bucket_settings: &'a BucketSettings,
138}
139
140#[derive(Debug, Clone, Eq, PartialEq)]
141#[non_exhaustive]
142pub struct UpdateBucketOptions<'a> {
143 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
144 pub bucket_name: &'a str,
145 pub bucket_settings: &'a BucketSettings,
146}
147
148#[derive(Debug, Clone, Eq, PartialEq)]
149#[non_exhaustive]
150pub struct DeleteBucketOptions<'a> {
151 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
152 pub bucket_name: &'a str,
153}
154
155#[derive(Debug, Clone, Eq, PartialEq)]
156#[non_exhaustive]
157pub struct FlushBucketOptions<'a> {
158 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
159 pub bucket_name: &'a str,
160}
161
162#[derive(Debug, Clone, Eq, PartialEq)]
163pub struct EnsureBucketPollOptions<C: Client> {
164 pub client: Arc<C>,
165 pub targets: Vec<NodeTarget>,
166}
167
168#[derive(Debug, Clone, Eq, PartialEq)]
169#[non_exhaustive]
170pub struct GetUserOptions<'a> {
171 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
172 pub username: &'a str,
173 pub auth_domain: &'a str,
174}
175
176#[derive(Debug, Clone, Eq, PartialEq)]
177#[non_exhaustive]
178pub struct GetAllUsersOptions<'a> {
179 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
180 pub auth_domain: &'a str,
181}
182
183#[derive(Debug, Clone, Eq, PartialEq)]
184#[non_exhaustive]
185pub struct UpsertUserOptions<'a> {
186 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
187 pub user: &'a User,
188 pub auth_domain: &'a str,
189}
190
191#[derive(Debug, Clone, Eq, PartialEq)]
192#[non_exhaustive]
193pub struct DeleteUserOptions<'a> {
194 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
195 pub username: &'a str,
196 pub auth_domain: &'a str,
197}
198
199#[derive(Debug, Clone, Eq, PartialEq)]
200#[non_exhaustive]
201pub struct GetRolesOptions<'a> {
202 pub permission: Option<&'a str>,
203 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
204}
205
206#[derive(Debug, Clone, Eq, PartialEq)]
207#[non_exhaustive]
208pub struct GetGroupOptions<'a> {
209 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
210 pub group_name: &'a str,
211}
212
213#[derive(Debug, Clone, Eq, PartialEq)]
214#[non_exhaustive]
215pub struct GetAllGroupsOptions<'a> {
216 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
217}
218
219#[derive(Debug, Clone, Eq, PartialEq)]
220#[non_exhaustive]
221pub struct UpsertGroupOptions<'a> {
222 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
223 pub group: &'a Group,
224}
225
226#[derive(Debug, Clone, Eq, PartialEq)]
227#[non_exhaustive]
228pub struct DeleteGroupOptions<'a> {
229 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
230 pub group_name: &'a str,
231}
232
233#[derive(Debug, Clone, Eq, PartialEq)]
234#[non_exhaustive]
235pub struct ChangePasswordOptions<'a> {
236 pub on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
237 pub new_password: &'a str,
238}
239
240#[derive(Debug, Clone, Eq, PartialEq)]
241pub struct EnsureUserPollOptions<C: Client> {
242 pub client: Arc<C>,
243 pub targets: Vec<NodeTarget>,
244}
245
246#[derive(Debug, Clone, Eq, PartialEq)]
247pub struct EnsureGroupPollOptions<C: Client> {
248 pub client: Arc<C>,
249 pub targets: Vec<NodeTarget>,
250}
251
252#[derive(Debug, Clone, Default)]
253#[non_exhaustive]
254pub struct IndexStatusOptions<'a> {
255 pub(crate) on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
256}
257
258impl<'a> IndexStatusOptions<'a> {
259 pub fn new() -> Self {
260 Self::default()
261 }
262
263 pub fn on_behalf_of_info(
264 mut self,
265 on_behalf_of: impl Into<Option<&'a OnBehalfOfInfo>>,
266 ) -> Self {
267 self.on_behalf_of_info = on_behalf_of.into();
268 self
269 }
270}
271
272#[derive(Debug, Clone, Default)]
273#[non_exhaustive]
274pub struct GetAutoFailoverSettingsOptions<'a> {
275 pub(crate) on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
276}
277
278impl<'a> GetAutoFailoverSettingsOptions<'a> {
279 pub fn new() -> Self {
280 Self::default()
281 }
282
283 pub fn on_behalf_of_info(
284 mut self,
285 on_behalf_of: impl Into<Option<&'a OnBehalfOfInfo>>,
286 ) -> Self {
287 self.on_behalf_of_info = on_behalf_of.into();
288 self
289 }
290}
291
292#[derive(Debug, Clone)]
293#[non_exhaustive]
294pub struct GetBucketStatsOptions<'a> {
295 pub(crate) on_behalf_of_info: Option<&'a OnBehalfOfInfo>,
296 pub(crate) bucket_name: &'a str,
297}
298
299impl<'a> GetBucketStatsOptions<'a> {
300 pub fn new(bucket_name: &'a str) -> Self {
301 Self {
302 bucket_name,
303 on_behalf_of_info: None,
304 }
305 }
306
307 pub fn on_behalf_of_info(
308 mut self,
309 on_behalf_of: impl Into<Option<&'a OnBehalfOfInfo>>,
310 ) -> Self {
311 self.on_behalf_of_info = on_behalf_of.into();
312 self
313 }
314}