rustfs_protos/generated/proto_gen/
node_service.rs

1// Copyright 2024 RustFS Team
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// This file is @generated by prost-build.
16/// --------------------------------------------------------------------
17#[derive(Clone, PartialEq, ::prost::Message)]
18pub struct Error {
19    #[prost(uint32, tag = "1")]
20    pub code: u32,
21    #[prost(string, tag = "2")]
22    pub error_info: ::prost::alloc::string::String,
23}
24#[derive(Clone, PartialEq, ::prost::Message)]
25pub struct PingRequest {
26    #[prost(uint64, tag = "1")]
27    pub version: u64,
28    #[prost(bytes = "bytes", tag = "2")]
29    pub body: ::prost::bytes::Bytes,
30}
31#[derive(Clone, PartialEq, ::prost::Message)]
32pub struct PingResponse {
33    #[prost(uint64, tag = "1")]
34    pub version: u64,
35    #[prost(bytes = "bytes", tag = "2")]
36    pub body: ::prost::bytes::Bytes,
37}
38#[derive(Clone, PartialEq, ::prost::Message)]
39pub struct HealBucketRequest {
40    #[prost(string, tag = "1")]
41    pub bucket: ::prost::alloc::string::String,
42    #[prost(string, tag = "2")]
43    pub options: ::prost::alloc::string::String,
44}
45#[derive(Clone, PartialEq, ::prost::Message)]
46pub struct HealBucketResponse {
47    #[prost(bool, tag = "1")]
48    pub success: bool,
49    #[prost(message, optional, tag = "2")]
50    pub error: ::core::option::Option<Error>,
51}
52#[derive(Clone, PartialEq, ::prost::Message)]
53pub struct ListBucketRequest {
54    #[prost(string, tag = "1")]
55    pub options: ::prost::alloc::string::String,
56}
57#[derive(Clone, PartialEq, ::prost::Message)]
58pub struct ListBucketResponse {
59    #[prost(bool, tag = "1")]
60    pub success: bool,
61    #[prost(string, repeated, tag = "2")]
62    pub bucket_infos: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
63    #[prost(message, optional, tag = "3")]
64    pub error: ::core::option::Option<Error>,
65}
66#[derive(Clone, PartialEq, ::prost::Message)]
67pub struct MakeBucketRequest {
68    #[prost(string, tag = "1")]
69    pub name: ::prost::alloc::string::String,
70    #[prost(string, tag = "2")]
71    pub options: ::prost::alloc::string::String,
72}
73#[derive(Clone, PartialEq, ::prost::Message)]
74pub struct MakeBucketResponse {
75    #[prost(bool, tag = "1")]
76    pub success: bool,
77    #[prost(message, optional, tag = "2")]
78    pub error: ::core::option::Option<Error>,
79}
80#[derive(Clone, PartialEq, ::prost::Message)]
81pub struct GetBucketInfoRequest {
82    #[prost(string, tag = "1")]
83    pub bucket: ::prost::alloc::string::String,
84    #[prost(string, tag = "2")]
85    pub options: ::prost::alloc::string::String,
86}
87#[derive(Clone, PartialEq, ::prost::Message)]
88pub struct GetBucketInfoResponse {
89    #[prost(bool, tag = "1")]
90    pub success: bool,
91    #[prost(string, tag = "2")]
92    pub bucket_info: ::prost::alloc::string::String,
93    #[prost(message, optional, tag = "3")]
94    pub error: ::core::option::Option<Error>,
95}
96#[derive(Clone, PartialEq, ::prost::Message)]
97pub struct DeleteBucketRequest {
98    #[prost(string, tag = "1")]
99    pub bucket: ::prost::alloc::string::String,
100}
101#[derive(Clone, PartialEq, ::prost::Message)]
102pub struct DeleteBucketResponse {
103    #[prost(bool, tag = "1")]
104    pub success: bool,
105    #[prost(message, optional, tag = "2")]
106    pub error: ::core::option::Option<Error>,
107}
108#[derive(Clone, PartialEq, ::prost::Message)]
109pub struct ReadAllRequest {
110    /// indicate which one in the disks
111    #[prost(string, tag = "1")]
112    pub disk: ::prost::alloc::string::String,
113    #[prost(string, tag = "2")]
114    pub volume: ::prost::alloc::string::String,
115    #[prost(string, tag = "3")]
116    pub path: ::prost::alloc::string::String,
117}
118#[derive(Clone, PartialEq, ::prost::Message)]
119pub struct ReadAllResponse {
120    #[prost(bool, tag = "1")]
121    pub success: bool,
122    #[prost(bytes = "bytes", tag = "2")]
123    pub data: ::prost::bytes::Bytes,
124    #[prost(message, optional, tag = "3")]
125    pub error: ::core::option::Option<Error>,
126}
127#[derive(Clone, PartialEq, ::prost::Message)]
128pub struct WriteAllRequest {
129    /// indicate which one in the disks
130    #[prost(string, tag = "1")]
131    pub disk: ::prost::alloc::string::String,
132    #[prost(string, tag = "2")]
133    pub volume: ::prost::alloc::string::String,
134    #[prost(string, tag = "3")]
135    pub path: ::prost::alloc::string::String,
136    #[prost(bytes = "bytes", tag = "4")]
137    pub data: ::prost::bytes::Bytes,
138}
139#[derive(Clone, PartialEq, ::prost::Message)]
140pub struct WriteAllResponse {
141    #[prost(bool, tag = "1")]
142    pub success: bool,
143    #[prost(message, optional, tag = "2")]
144    pub error: ::core::option::Option<Error>,
145}
146#[derive(Clone, PartialEq, ::prost::Message)]
147pub struct DeleteRequest {
148    /// indicate which one in the disks
149    #[prost(string, tag = "1")]
150    pub disk: ::prost::alloc::string::String,
151    #[prost(string, tag = "2")]
152    pub volume: ::prost::alloc::string::String,
153    #[prost(string, tag = "3")]
154    pub path: ::prost::alloc::string::String,
155    #[prost(string, tag = "4")]
156    pub options: ::prost::alloc::string::String,
157}
158#[derive(Clone, PartialEq, ::prost::Message)]
159pub struct DeleteResponse {
160    #[prost(bool, tag = "1")]
161    pub success: bool,
162    #[prost(message, optional, tag = "2")]
163    pub error: ::core::option::Option<Error>,
164}
165#[derive(Clone, PartialEq, ::prost::Message)]
166pub struct VerifyFileRequest {
167    /// indicate which one in the disks
168    #[prost(string, tag = "1")]
169    pub disk: ::prost::alloc::string::String,
170    #[prost(string, tag = "2")]
171    pub volume: ::prost::alloc::string::String,
172    #[prost(string, tag = "3")]
173    pub path: ::prost::alloc::string::String,
174    #[prost(string, tag = "4")]
175    pub file_info: ::prost::alloc::string::String,
176}
177#[derive(Clone, PartialEq, ::prost::Message)]
178pub struct VerifyFileResponse {
179    #[prost(bool, tag = "1")]
180    pub success: bool,
181    #[prost(string, tag = "2")]
182    pub check_parts_resp: ::prost::alloc::string::String,
183    #[prost(message, optional, tag = "3")]
184    pub error: ::core::option::Option<Error>,
185}
186#[derive(Clone, PartialEq, ::prost::Message)]
187pub struct CheckPartsRequest {
188    /// indicate which one in the disks
189    #[prost(string, tag = "1")]
190    pub disk: ::prost::alloc::string::String,
191    #[prost(string, tag = "2")]
192    pub volume: ::prost::alloc::string::String,
193    #[prost(string, tag = "3")]
194    pub path: ::prost::alloc::string::String,
195    #[prost(string, tag = "4")]
196    pub file_info: ::prost::alloc::string::String,
197}
198#[derive(Clone, PartialEq, ::prost::Message)]
199pub struct CheckPartsResponse {
200    #[prost(bool, tag = "1")]
201    pub success: bool,
202    #[prost(string, tag = "2")]
203    pub check_parts_resp: ::prost::alloc::string::String,
204    #[prost(message, optional, tag = "3")]
205    pub error: ::core::option::Option<Error>,
206}
207#[derive(Clone, PartialEq, ::prost::Message)]
208pub struct RenamePartRequest {
209    #[prost(string, tag = "1")]
210    pub disk: ::prost::alloc::string::String,
211    #[prost(string, tag = "2")]
212    pub src_volume: ::prost::alloc::string::String,
213    #[prost(string, tag = "3")]
214    pub src_path: ::prost::alloc::string::String,
215    #[prost(string, tag = "4")]
216    pub dst_volume: ::prost::alloc::string::String,
217    #[prost(string, tag = "5")]
218    pub dst_path: ::prost::alloc::string::String,
219    #[prost(bytes = "bytes", tag = "6")]
220    pub meta: ::prost::bytes::Bytes,
221}
222#[derive(Clone, PartialEq, ::prost::Message)]
223pub struct RenamePartResponse {
224    #[prost(bool, tag = "1")]
225    pub success: bool,
226    #[prost(message, optional, tag = "2")]
227    pub error: ::core::option::Option<Error>,
228}
229#[derive(Clone, PartialEq, ::prost::Message)]
230pub struct RenameFileRequest {
231    #[prost(string, tag = "1")]
232    pub disk: ::prost::alloc::string::String,
233    #[prost(string, tag = "2")]
234    pub src_volume: ::prost::alloc::string::String,
235    #[prost(string, tag = "3")]
236    pub src_path: ::prost::alloc::string::String,
237    #[prost(string, tag = "4")]
238    pub dst_volume: ::prost::alloc::string::String,
239    #[prost(string, tag = "5")]
240    pub dst_path: ::prost::alloc::string::String,
241}
242#[derive(Clone, PartialEq, ::prost::Message)]
243pub struct RenameFileResponse {
244    #[prost(bool, tag = "1")]
245    pub success: bool,
246    #[prost(message, optional, tag = "2")]
247    pub error: ::core::option::Option<Error>,
248}
249#[derive(Clone, PartialEq, ::prost::Message)]
250pub struct WriteRequest {
251    /// indicate which one in the disks
252    #[prost(string, tag = "1")]
253    pub disk: ::prost::alloc::string::String,
254    #[prost(string, tag = "2")]
255    pub volume: ::prost::alloc::string::String,
256    #[prost(string, tag = "3")]
257    pub path: ::prost::alloc::string::String,
258    #[prost(bool, tag = "4")]
259    pub is_append: bool,
260    #[prost(bytes = "bytes", tag = "5")]
261    pub data: ::prost::bytes::Bytes,
262}
263#[derive(Clone, PartialEq, ::prost::Message)]
264pub struct WriteResponse {
265    #[prost(bool, tag = "1")]
266    pub success: bool,
267    #[prost(message, optional, tag = "2")]
268    pub error: ::core::option::Option<Error>,
269}
270#[derive(Clone, PartialEq, ::prost::Message)]
271pub struct ReadAtRequest {
272    /// indicate which one in the disks
273    #[prost(string, tag = "1")]
274    pub disk: ::prost::alloc::string::String,
275    #[prost(string, tag = "2")]
276    pub volume: ::prost::alloc::string::String,
277    #[prost(string, tag = "3")]
278    pub path: ::prost::alloc::string::String,
279    #[prost(int64, tag = "4")]
280    pub offset: i64,
281    #[prost(int64, tag = "5")]
282    pub length: i64,
283}
284#[derive(Clone, PartialEq, ::prost::Message)]
285pub struct ReadAtResponse {
286    #[prost(bool, tag = "1")]
287    pub success: bool,
288    #[prost(bytes = "bytes", tag = "2")]
289    pub data: ::prost::bytes::Bytes,
290    #[prost(int64, tag = "3")]
291    pub read_size: i64,
292    #[prost(message, optional, tag = "4")]
293    pub error: ::core::option::Option<Error>,
294}
295#[derive(Clone, PartialEq, ::prost::Message)]
296pub struct ListDirRequest {
297    /// indicate which one in the disks
298    #[prost(string, tag = "1")]
299    pub disk: ::prost::alloc::string::String,
300    #[prost(string, tag = "2")]
301    pub volume: ::prost::alloc::string::String,
302}
303#[derive(Clone, PartialEq, ::prost::Message)]
304pub struct ListDirResponse {
305    #[prost(bool, tag = "1")]
306    pub success: bool,
307    #[prost(string, repeated, tag = "2")]
308    pub volumes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
309    #[prost(message, optional, tag = "3")]
310    pub error: ::core::option::Option<Error>,
311}
312#[derive(Clone, PartialEq, ::prost::Message)]
313pub struct WalkDirRequest {
314    /// indicate which one in the disks
315    #[prost(string, tag = "1")]
316    pub disk: ::prost::alloc::string::String,
317    #[prost(bytes = "bytes", tag = "2")]
318    pub walk_dir_options: ::prost::bytes::Bytes,
319}
320#[derive(Clone, PartialEq, ::prost::Message)]
321pub struct WalkDirResponse {
322    #[prost(bool, tag = "1")]
323    pub success: bool,
324    #[prost(string, tag = "2")]
325    pub meta_cache_entry: ::prost::alloc::string::String,
326    #[prost(string, optional, tag = "3")]
327    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
328}
329#[derive(Clone, PartialEq, ::prost::Message)]
330pub struct RenameDataRequest {
331    /// indicate which one in the disks
332    #[prost(string, tag = "1")]
333    pub disk: ::prost::alloc::string::String,
334    #[prost(string, tag = "2")]
335    pub src_volume: ::prost::alloc::string::String,
336    #[prost(string, tag = "3")]
337    pub src_path: ::prost::alloc::string::String,
338    #[prost(string, tag = "4")]
339    pub file_info: ::prost::alloc::string::String,
340    #[prost(string, tag = "5")]
341    pub dst_volume: ::prost::alloc::string::String,
342    #[prost(string, tag = "6")]
343    pub dst_path: ::prost::alloc::string::String,
344}
345#[derive(Clone, PartialEq, ::prost::Message)]
346pub struct RenameDataResponse {
347    #[prost(bool, tag = "1")]
348    pub success: bool,
349    #[prost(string, tag = "2")]
350    pub rename_data_resp: ::prost::alloc::string::String,
351    #[prost(message, optional, tag = "3")]
352    pub error: ::core::option::Option<Error>,
353}
354#[derive(Clone, PartialEq, ::prost::Message)]
355pub struct MakeVolumesRequest {
356    /// indicate which one in the disks
357    #[prost(string, tag = "1")]
358    pub disk: ::prost::alloc::string::String,
359    #[prost(string, repeated, tag = "2")]
360    pub volumes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
361}
362#[derive(Clone, PartialEq, ::prost::Message)]
363pub struct MakeVolumesResponse {
364    #[prost(bool, tag = "1")]
365    pub success: bool,
366    #[prost(message, optional, tag = "2")]
367    pub error: ::core::option::Option<Error>,
368}
369#[derive(Clone, PartialEq, ::prost::Message)]
370pub struct MakeVolumeRequest {
371    /// indicate which one in the disks
372    #[prost(string, tag = "1")]
373    pub disk: ::prost::alloc::string::String,
374    #[prost(string, tag = "2")]
375    pub volume: ::prost::alloc::string::String,
376}
377#[derive(Clone, PartialEq, ::prost::Message)]
378pub struct MakeVolumeResponse {
379    #[prost(bool, tag = "1")]
380    pub success: bool,
381    #[prost(message, optional, tag = "2")]
382    pub error: ::core::option::Option<Error>,
383}
384#[derive(Clone, PartialEq, ::prost::Message)]
385pub struct ListVolumesRequest {
386    /// indicate which one in the disks
387    #[prost(string, tag = "1")]
388    pub disk: ::prost::alloc::string::String,
389}
390#[derive(Clone, PartialEq, ::prost::Message)]
391pub struct ListVolumesResponse {
392    #[prost(bool, tag = "1")]
393    pub success: bool,
394    #[prost(string, repeated, tag = "2")]
395    pub volume_infos: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
396    #[prost(message, optional, tag = "3")]
397    pub error: ::core::option::Option<Error>,
398}
399#[derive(Clone, PartialEq, ::prost::Message)]
400pub struct StatVolumeRequest {
401    /// indicate which one in the disks
402    #[prost(string, tag = "1")]
403    pub disk: ::prost::alloc::string::String,
404    #[prost(string, tag = "2")]
405    pub volume: ::prost::alloc::string::String,
406}
407#[derive(Clone, PartialEq, ::prost::Message)]
408pub struct StatVolumeResponse {
409    #[prost(bool, tag = "1")]
410    pub success: bool,
411    #[prost(string, tag = "2")]
412    pub volume_info: ::prost::alloc::string::String,
413    #[prost(message, optional, tag = "3")]
414    pub error: ::core::option::Option<Error>,
415}
416#[derive(Clone, PartialEq, ::prost::Message)]
417pub struct DeletePathsRequest {
418    #[prost(string, tag = "1")]
419    pub disk: ::prost::alloc::string::String,
420    #[prost(string, tag = "2")]
421    pub volume: ::prost::alloc::string::String,
422    #[prost(string, repeated, tag = "3")]
423    pub paths: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
424}
425#[derive(Clone, PartialEq, ::prost::Message)]
426pub struct DeletePathsResponse {
427    #[prost(bool, tag = "1")]
428    pub success: bool,
429    #[prost(message, optional, tag = "2")]
430    pub error: ::core::option::Option<Error>,
431}
432#[derive(Clone, PartialEq, ::prost::Message)]
433pub struct UpdateMetadataRequest {
434    #[prost(string, tag = "1")]
435    pub disk: ::prost::alloc::string::String,
436    #[prost(string, tag = "2")]
437    pub volume: ::prost::alloc::string::String,
438    #[prost(string, tag = "3")]
439    pub path: ::prost::alloc::string::String,
440    #[prost(string, tag = "4")]
441    pub file_info: ::prost::alloc::string::String,
442    #[prost(string, tag = "5")]
443    pub opts: ::prost::alloc::string::String,
444}
445#[derive(Clone, PartialEq, ::prost::Message)]
446pub struct UpdateMetadataResponse {
447    #[prost(bool, tag = "1")]
448    pub success: bool,
449    #[prost(message, optional, tag = "2")]
450    pub error: ::core::option::Option<Error>,
451}
452#[derive(Clone, PartialEq, ::prost::Message)]
453pub struct WriteMetadataRequest {
454    /// indicate which one in the disks
455    #[prost(string, tag = "1")]
456    pub disk: ::prost::alloc::string::String,
457    #[prost(string, tag = "2")]
458    pub volume: ::prost::alloc::string::String,
459    #[prost(string, tag = "3")]
460    pub path: ::prost::alloc::string::String,
461    #[prost(string, tag = "4")]
462    pub file_info: ::prost::alloc::string::String,
463}
464#[derive(Clone, PartialEq, ::prost::Message)]
465pub struct WriteMetadataResponse {
466    #[prost(bool, tag = "1")]
467    pub success: bool,
468    #[prost(message, optional, tag = "2")]
469    pub error: ::core::option::Option<Error>,
470}
471#[derive(Clone, PartialEq, ::prost::Message)]
472pub struct ReadVersionRequest {
473    #[prost(string, tag = "1")]
474    pub disk: ::prost::alloc::string::String,
475    #[prost(string, tag = "2")]
476    pub volume: ::prost::alloc::string::String,
477    #[prost(string, tag = "3")]
478    pub path: ::prost::alloc::string::String,
479    #[prost(string, tag = "4")]
480    pub version_id: ::prost::alloc::string::String,
481    #[prost(string, tag = "5")]
482    pub opts: ::prost::alloc::string::String,
483}
484#[derive(Clone, PartialEq, ::prost::Message)]
485pub struct ReadVersionResponse {
486    #[prost(bool, tag = "1")]
487    pub success: bool,
488    #[prost(string, tag = "2")]
489    pub file_info: ::prost::alloc::string::String,
490    #[prost(message, optional, tag = "3")]
491    pub error: ::core::option::Option<Error>,
492}
493#[derive(Clone, PartialEq, ::prost::Message)]
494pub struct ReadXlRequest {
495    #[prost(string, tag = "1")]
496    pub disk: ::prost::alloc::string::String,
497    #[prost(string, tag = "2")]
498    pub volume: ::prost::alloc::string::String,
499    #[prost(string, tag = "3")]
500    pub path: ::prost::alloc::string::String,
501    #[prost(bool, tag = "4")]
502    pub read_data: bool,
503}
504#[derive(Clone, PartialEq, ::prost::Message)]
505pub struct ReadXlResponse {
506    #[prost(bool, tag = "1")]
507    pub success: bool,
508    #[prost(string, tag = "2")]
509    pub raw_file_info: ::prost::alloc::string::String,
510    #[prost(message, optional, tag = "3")]
511    pub error: ::core::option::Option<Error>,
512}
513#[derive(Clone, PartialEq, ::prost::Message)]
514pub struct DeleteVersionRequest {
515    #[prost(string, tag = "1")]
516    pub disk: ::prost::alloc::string::String,
517    #[prost(string, tag = "2")]
518    pub volume: ::prost::alloc::string::String,
519    #[prost(string, tag = "3")]
520    pub path: ::prost::alloc::string::String,
521    #[prost(string, tag = "4")]
522    pub file_info: ::prost::alloc::string::String,
523    #[prost(bool, tag = "5")]
524    pub force_del_marker: bool,
525    #[prost(string, tag = "6")]
526    pub opts: ::prost::alloc::string::String,
527}
528#[derive(Clone, PartialEq, ::prost::Message)]
529pub struct DeleteVersionResponse {
530    #[prost(bool, tag = "1")]
531    pub success: bool,
532    #[prost(string, tag = "2")]
533    pub raw_file_info: ::prost::alloc::string::String,
534    #[prost(message, optional, tag = "3")]
535    pub error: ::core::option::Option<Error>,
536}
537#[derive(Clone, PartialEq, ::prost::Message)]
538pub struct DeleteVersionsRequest {
539    #[prost(string, tag = "1")]
540    pub disk: ::prost::alloc::string::String,
541    #[prost(string, tag = "2")]
542    pub volume: ::prost::alloc::string::String,
543    #[prost(string, repeated, tag = "3")]
544    pub versions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
545    #[prost(string, tag = "4")]
546    pub opts: ::prost::alloc::string::String,
547}
548#[derive(Clone, PartialEq, ::prost::Message)]
549pub struct DeleteVersionsResponse {
550    #[prost(bool, tag = "1")]
551    pub success: bool,
552    #[prost(string, repeated, tag = "2")]
553    pub errors: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
554    #[prost(message, optional, tag = "3")]
555    pub error: ::core::option::Option<Error>,
556}
557#[derive(Clone, PartialEq, ::prost::Message)]
558pub struct ReadMultipleRequest {
559    #[prost(string, tag = "1")]
560    pub disk: ::prost::alloc::string::String,
561    #[prost(string, tag = "2")]
562    pub read_multiple_req: ::prost::alloc::string::String,
563}
564#[derive(Clone, PartialEq, ::prost::Message)]
565pub struct ReadMultipleResponse {
566    #[prost(bool, tag = "1")]
567    pub success: bool,
568    #[prost(string, repeated, tag = "2")]
569    pub read_multiple_resps: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
570    #[prost(message, optional, tag = "3")]
571    pub error: ::core::option::Option<Error>,
572}
573#[derive(Clone, PartialEq, ::prost::Message)]
574pub struct DeleteVolumeRequest {
575    #[prost(string, tag = "1")]
576    pub disk: ::prost::alloc::string::String,
577    #[prost(string, tag = "2")]
578    pub volume: ::prost::alloc::string::String,
579}
580#[derive(Clone, PartialEq, ::prost::Message)]
581pub struct DeleteVolumeResponse {
582    #[prost(bool, tag = "1")]
583    pub success: bool,
584    #[prost(message, optional, tag = "2")]
585    pub error: ::core::option::Option<Error>,
586}
587#[derive(Clone, PartialEq, ::prost::Message)]
588pub struct DiskInfoRequest {
589    #[prost(string, tag = "1")]
590    pub disk: ::prost::alloc::string::String,
591    #[prost(string, tag = "2")]
592    pub opts: ::prost::alloc::string::String,
593}
594#[derive(Clone, PartialEq, ::prost::Message)]
595pub struct DiskInfoResponse {
596    #[prost(bool, tag = "1")]
597    pub success: bool,
598    #[prost(string, tag = "2")]
599    pub disk_info: ::prost::alloc::string::String,
600    #[prost(message, optional, tag = "3")]
601    pub error: ::core::option::Option<Error>,
602}
603#[derive(Clone, PartialEq, ::prost::Message)]
604pub struct NsScannerRequest {
605    #[prost(string, tag = "1")]
606    pub disk: ::prost::alloc::string::String,
607    #[prost(string, tag = "2")]
608    pub cache: ::prost::alloc::string::String,
609    #[prost(uint64, tag = "3")]
610    pub scan_mode: u64,
611}
612#[derive(Clone, PartialEq, ::prost::Message)]
613pub struct NsScannerResponse {
614    #[prost(bool, tag = "1")]
615    pub success: bool,
616    #[prost(string, tag = "2")]
617    pub update: ::prost::alloc::string::String,
618    #[prost(string, tag = "3")]
619    pub data_usage_cache: ::prost::alloc::string::String,
620    #[prost(message, optional, tag = "4")]
621    pub error: ::core::option::Option<Error>,
622}
623/// lock api have same argument type
624#[derive(Clone, PartialEq, ::prost::Message)]
625pub struct GenerallyLockRequest {
626    #[prost(string, tag = "1")]
627    pub args: ::prost::alloc::string::String,
628}
629#[derive(Clone, PartialEq, ::prost::Message)]
630pub struct GenerallyLockResponse {
631    #[prost(bool, tag = "1")]
632    pub success: bool,
633    #[prost(string, optional, tag = "2")]
634    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
635}
636#[derive(Clone, PartialEq, ::prost::Message)]
637pub struct Mss {
638    #[prost(map = "string, string", tag = "1")]
639    pub value: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
640}
641#[derive(Clone, Copy, PartialEq, ::prost::Message)]
642pub struct LocalStorageInfoRequest {
643    #[prost(bool, tag = "1")]
644    pub metrics: bool,
645}
646#[derive(Clone, PartialEq, ::prost::Message)]
647pub struct LocalStorageInfoResponse {
648    #[prost(bool, tag = "1")]
649    pub success: bool,
650    #[prost(bytes = "bytes", tag = "2")]
651    pub storage_info: ::prost::bytes::Bytes,
652    #[prost(string, optional, tag = "3")]
653    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
654}
655#[derive(Clone, Copy, PartialEq, ::prost::Message)]
656pub struct ServerInfoRequest {
657    #[prost(bool, tag = "1")]
658    pub metrics: bool,
659}
660#[derive(Clone, PartialEq, ::prost::Message)]
661pub struct ServerInfoResponse {
662    #[prost(bool, tag = "1")]
663    pub success: bool,
664    #[prost(bytes = "bytes", tag = "2")]
665    pub server_properties: ::prost::bytes::Bytes,
666    #[prost(string, optional, tag = "3")]
667    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
668}
669#[derive(Clone, Copy, PartialEq, ::prost::Message)]
670pub struct GetCpusRequest {}
671#[derive(Clone, PartialEq, ::prost::Message)]
672pub struct GetCpusResponse {
673    #[prost(bool, tag = "1")]
674    pub success: bool,
675    #[prost(bytes = "bytes", tag = "2")]
676    pub cpus: ::prost::bytes::Bytes,
677    #[prost(string, optional, tag = "3")]
678    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
679}
680#[derive(Clone, Copy, PartialEq, ::prost::Message)]
681pub struct GetNetInfoRequest {}
682#[derive(Clone, PartialEq, ::prost::Message)]
683pub struct GetNetInfoResponse {
684    #[prost(bool, tag = "1")]
685    pub success: bool,
686    #[prost(bytes = "bytes", tag = "2")]
687    pub net_info: ::prost::bytes::Bytes,
688    #[prost(string, optional, tag = "3")]
689    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
690}
691#[derive(Clone, Copy, PartialEq, ::prost::Message)]
692pub struct GetPartitionsRequest {}
693#[derive(Clone, PartialEq, ::prost::Message)]
694pub struct GetPartitionsResponse {
695    #[prost(bool, tag = "1")]
696    pub success: bool,
697    #[prost(bytes = "bytes", tag = "2")]
698    pub partitions: ::prost::bytes::Bytes,
699    #[prost(string, optional, tag = "3")]
700    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
701}
702#[derive(Clone, Copy, PartialEq, ::prost::Message)]
703pub struct GetOsInfoRequest {}
704#[derive(Clone, PartialEq, ::prost::Message)]
705pub struct GetOsInfoResponse {
706    #[prost(bool, tag = "1")]
707    pub success: bool,
708    #[prost(bytes = "bytes", tag = "2")]
709    pub os_info: ::prost::bytes::Bytes,
710    #[prost(string, optional, tag = "3")]
711    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
712}
713#[derive(Clone, Copy, PartialEq, ::prost::Message)]
714pub struct GetSeLinuxInfoRequest {}
715#[derive(Clone, PartialEq, ::prost::Message)]
716pub struct GetSeLinuxInfoResponse {
717    #[prost(bool, tag = "1")]
718    pub success: bool,
719    #[prost(bytes = "bytes", tag = "2")]
720    pub sys_services: ::prost::bytes::Bytes,
721    #[prost(string, optional, tag = "3")]
722    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
723}
724#[derive(Clone, Copy, PartialEq, ::prost::Message)]
725pub struct GetSysConfigRequest {}
726#[derive(Clone, PartialEq, ::prost::Message)]
727pub struct GetSysConfigResponse {
728    #[prost(bool, tag = "1")]
729    pub success: bool,
730    #[prost(bytes = "bytes", tag = "2")]
731    pub sys_config: ::prost::bytes::Bytes,
732    #[prost(string, optional, tag = "3")]
733    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
734}
735#[derive(Clone, Copy, PartialEq, ::prost::Message)]
736pub struct GetSysErrorsRequest {}
737#[derive(Clone, PartialEq, ::prost::Message)]
738pub struct GetSysErrorsResponse {
739    #[prost(bool, tag = "1")]
740    pub success: bool,
741    #[prost(bytes = "bytes", tag = "2")]
742    pub sys_errors: ::prost::bytes::Bytes,
743    #[prost(string, optional, tag = "3")]
744    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
745}
746#[derive(Clone, Copy, PartialEq, ::prost::Message)]
747pub struct GetMemInfoRequest {}
748#[derive(Clone, PartialEq, ::prost::Message)]
749pub struct GetMemInfoResponse {
750    #[prost(bool, tag = "1")]
751    pub success: bool,
752    #[prost(bytes = "bytes", tag = "2")]
753    pub mem_info: ::prost::bytes::Bytes,
754    #[prost(string, optional, tag = "3")]
755    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
756}
757#[derive(Clone, PartialEq, ::prost::Message)]
758pub struct GetMetricsRequest {
759    #[prost(bytes = "bytes", tag = "1")]
760    pub metric_type: ::prost::bytes::Bytes,
761    #[prost(bytes = "bytes", tag = "2")]
762    pub opts: ::prost::bytes::Bytes,
763}
764#[derive(Clone, PartialEq, ::prost::Message)]
765pub struct GetMetricsResponse {
766    #[prost(bool, tag = "1")]
767    pub success: bool,
768    #[prost(bytes = "bytes", tag = "2")]
769    pub realtime_metrics: ::prost::bytes::Bytes,
770    #[prost(string, optional, tag = "3")]
771    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
772}
773#[derive(Clone, Copy, PartialEq, ::prost::Message)]
774pub struct GetProcInfoRequest {}
775#[derive(Clone, PartialEq, ::prost::Message)]
776pub struct GetProcInfoResponse {
777    #[prost(bool, tag = "1")]
778    pub success: bool,
779    #[prost(bytes = "bytes", tag = "2")]
780    pub proc_info: ::prost::bytes::Bytes,
781    #[prost(string, optional, tag = "3")]
782    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
783}
784#[derive(Clone, PartialEq, ::prost::Message)]
785pub struct StartProfilingRequest {
786    #[prost(string, tag = "1")]
787    pub profiler: ::prost::alloc::string::String,
788}
789#[derive(Clone, PartialEq, ::prost::Message)]
790pub struct StartProfilingResponse {
791    #[prost(bool, tag = "1")]
792    pub success: bool,
793    #[prost(string, optional, tag = "2")]
794    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
795}
796#[derive(Clone, Copy, PartialEq, ::prost::Message)]
797pub struct DownloadProfileDataRequest {}
798#[derive(Clone, PartialEq, ::prost::Message)]
799pub struct DownloadProfileDataResponse {
800    #[prost(bool, tag = "1")]
801    pub success: bool,
802    #[prost(map = "string, bytes", tag = "2")]
803    pub data: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::bytes::Bytes>,
804    #[prost(string, optional, tag = "3")]
805    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
806}
807#[derive(Clone, PartialEq, ::prost::Message)]
808pub struct GetBucketStatsDataRequest {
809    #[prost(string, tag = "1")]
810    pub bucket: ::prost::alloc::string::String,
811}
812#[derive(Clone, PartialEq, ::prost::Message)]
813pub struct GetBucketStatsDataResponse {
814    #[prost(bool, tag = "1")]
815    pub success: bool,
816    #[prost(bytes = "bytes", tag = "2")]
817    pub bucket_stats: ::prost::bytes::Bytes,
818    #[prost(string, optional, tag = "3")]
819    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
820}
821#[derive(Clone, Copy, PartialEq, ::prost::Message)]
822pub struct GetSrMetricsDataRequest {}
823#[derive(Clone, PartialEq, ::prost::Message)]
824pub struct GetSrMetricsDataResponse {
825    #[prost(bool, tag = "1")]
826    pub success: bool,
827    #[prost(bytes = "bytes", tag = "2")]
828    pub sr_metrics_summary: ::prost::bytes::Bytes,
829    #[prost(string, optional, tag = "3")]
830    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
831}
832#[derive(Clone, Copy, PartialEq, ::prost::Message)]
833pub struct GetAllBucketStatsRequest {}
834#[derive(Clone, PartialEq, ::prost::Message)]
835pub struct GetAllBucketStatsResponse {
836    #[prost(bool, tag = "1")]
837    pub success: bool,
838    #[prost(bytes = "bytes", tag = "2")]
839    pub bucket_stats_map: ::prost::bytes::Bytes,
840    #[prost(string, optional, tag = "3")]
841    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
842}
843#[derive(Clone, PartialEq, ::prost::Message)]
844pub struct LoadBucketMetadataRequest {
845    #[prost(string, tag = "1")]
846    pub bucket: ::prost::alloc::string::String,
847}
848#[derive(Clone, PartialEq, ::prost::Message)]
849pub struct LoadBucketMetadataResponse {
850    #[prost(bool, tag = "1")]
851    pub success: bool,
852    #[prost(string, optional, tag = "2")]
853    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
854}
855#[derive(Clone, PartialEq, ::prost::Message)]
856pub struct DeleteBucketMetadataRequest {
857    #[prost(string, tag = "1")]
858    pub bucket: ::prost::alloc::string::String,
859}
860#[derive(Clone, PartialEq, ::prost::Message)]
861pub struct DeleteBucketMetadataResponse {
862    #[prost(bool, tag = "1")]
863    pub success: bool,
864    #[prost(string, optional, tag = "2")]
865    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
866}
867#[derive(Clone, PartialEq, ::prost::Message)]
868pub struct DeletePolicyRequest {
869    #[prost(string, tag = "1")]
870    pub policy_name: ::prost::alloc::string::String,
871}
872#[derive(Clone, PartialEq, ::prost::Message)]
873pub struct DeletePolicyResponse {
874    #[prost(bool, tag = "1")]
875    pub success: bool,
876    #[prost(string, optional, tag = "2")]
877    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
878}
879#[derive(Clone, PartialEq, ::prost::Message)]
880pub struct LoadPolicyRequest {
881    #[prost(string, tag = "1")]
882    pub policy_name: ::prost::alloc::string::String,
883}
884#[derive(Clone, PartialEq, ::prost::Message)]
885pub struct LoadPolicyResponse {
886    #[prost(bool, tag = "1")]
887    pub success: bool,
888    #[prost(string, optional, tag = "2")]
889    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
890}
891#[derive(Clone, PartialEq, ::prost::Message)]
892pub struct LoadPolicyMappingRequest {
893    #[prost(string, tag = "1")]
894    pub user_or_group: ::prost::alloc::string::String,
895    #[prost(uint64, tag = "2")]
896    pub user_type: u64,
897    #[prost(bool, tag = "3")]
898    pub is_group: bool,
899}
900#[derive(Clone, PartialEq, ::prost::Message)]
901pub struct LoadPolicyMappingResponse {
902    #[prost(bool, tag = "1")]
903    pub success: bool,
904    #[prost(string, optional, tag = "2")]
905    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
906}
907#[derive(Clone, PartialEq, ::prost::Message)]
908pub struct DeleteUserRequest {
909    #[prost(string, tag = "1")]
910    pub access_key: ::prost::alloc::string::String,
911}
912#[derive(Clone, PartialEq, ::prost::Message)]
913pub struct DeleteUserResponse {
914    #[prost(bool, tag = "1")]
915    pub success: bool,
916    #[prost(string, optional, tag = "2")]
917    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
918}
919#[derive(Clone, PartialEq, ::prost::Message)]
920pub struct DeleteServiceAccountRequest {
921    #[prost(string, tag = "1")]
922    pub access_key: ::prost::alloc::string::String,
923}
924#[derive(Clone, PartialEq, ::prost::Message)]
925pub struct DeleteServiceAccountResponse {
926    #[prost(bool, tag = "1")]
927    pub success: bool,
928    #[prost(string, optional, tag = "2")]
929    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
930}
931#[derive(Clone, PartialEq, ::prost::Message)]
932pub struct LoadUserRequest {
933    #[prost(string, tag = "1")]
934    pub access_key: ::prost::alloc::string::String,
935    #[prost(bool, tag = "2")]
936    pub temp: bool,
937}
938#[derive(Clone, PartialEq, ::prost::Message)]
939pub struct LoadUserResponse {
940    #[prost(bool, tag = "1")]
941    pub success: bool,
942    #[prost(string, optional, tag = "2")]
943    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
944}
945#[derive(Clone, PartialEq, ::prost::Message)]
946pub struct LoadServiceAccountRequest {
947    #[prost(string, tag = "1")]
948    pub access_key: ::prost::alloc::string::String,
949}
950#[derive(Clone, PartialEq, ::prost::Message)]
951pub struct LoadServiceAccountResponse {
952    #[prost(bool, tag = "1")]
953    pub success: bool,
954    #[prost(string, optional, tag = "2")]
955    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
956}
957#[derive(Clone, PartialEq, ::prost::Message)]
958pub struct LoadGroupRequest {
959    #[prost(string, tag = "1")]
960    pub group: ::prost::alloc::string::String,
961}
962#[derive(Clone, PartialEq, ::prost::Message)]
963pub struct LoadGroupResponse {
964    #[prost(bool, tag = "1")]
965    pub success: bool,
966    #[prost(string, optional, tag = "2")]
967    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
968}
969#[derive(Clone, Copy, PartialEq, ::prost::Message)]
970pub struct ReloadSiteReplicationConfigRequest {}
971#[derive(Clone, PartialEq, ::prost::Message)]
972pub struct ReloadSiteReplicationConfigResponse {
973    #[prost(bool, tag = "1")]
974    pub success: bool,
975    #[prost(string, optional, tag = "2")]
976    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
977}
978#[derive(Clone, PartialEq, ::prost::Message)]
979pub struct SignalServiceRequest {
980    #[prost(message, optional, tag = "1")]
981    pub vars: ::core::option::Option<Mss>,
982}
983#[derive(Clone, PartialEq, ::prost::Message)]
984pub struct SignalServiceResponse {
985    #[prost(bool, tag = "1")]
986    pub success: bool,
987    #[prost(string, optional, tag = "2")]
988    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
989}
990#[derive(Clone, Copy, PartialEq, ::prost::Message)]
991pub struct BackgroundHealStatusRequest {}
992#[derive(Clone, PartialEq, ::prost::Message)]
993pub struct BackgroundHealStatusResponse {
994    #[prost(bool, tag = "1")]
995    pub success: bool,
996    #[prost(bytes = "bytes", tag = "2")]
997    pub bg_heal_state: ::prost::bytes::Bytes,
998    #[prost(string, optional, tag = "3")]
999    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
1000}
1001#[derive(Clone, PartialEq, ::prost::Message)]
1002pub struct GetMetacacheListingRequest {
1003    #[prost(bytes = "bytes", tag = "1")]
1004    pub opts: ::prost::bytes::Bytes,
1005}
1006#[derive(Clone, PartialEq, ::prost::Message)]
1007pub struct GetMetacacheListingResponse {
1008    #[prost(bool, tag = "1")]
1009    pub success: bool,
1010    #[prost(bytes = "bytes", tag = "2")]
1011    pub metacache: ::prost::bytes::Bytes,
1012    #[prost(string, optional, tag = "3")]
1013    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
1014}
1015#[derive(Clone, PartialEq, ::prost::Message)]
1016pub struct UpdateMetacacheListingRequest {
1017    #[prost(bytes = "bytes", tag = "1")]
1018    pub metacache: ::prost::bytes::Bytes,
1019}
1020#[derive(Clone, PartialEq, ::prost::Message)]
1021pub struct UpdateMetacacheListingResponse {
1022    #[prost(bool, tag = "1")]
1023    pub success: bool,
1024    #[prost(bytes = "bytes", tag = "2")]
1025    pub metacache: ::prost::bytes::Bytes,
1026    #[prost(string, optional, tag = "3")]
1027    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
1028}
1029#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1030pub struct ReloadPoolMetaRequest {}
1031#[derive(Clone, PartialEq, ::prost::Message)]
1032pub struct ReloadPoolMetaResponse {
1033    #[prost(bool, tag = "1")]
1034    pub success: bool,
1035    #[prost(string, optional, tag = "2")]
1036    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
1037}
1038#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1039pub struct StopRebalanceRequest {}
1040#[derive(Clone, PartialEq, ::prost::Message)]
1041pub struct StopRebalanceResponse {
1042    #[prost(bool, tag = "1")]
1043    pub success: bool,
1044    #[prost(string, optional, tag = "2")]
1045    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
1046}
1047#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1048pub struct LoadRebalanceMetaRequest {
1049    #[prost(bool, tag = "1")]
1050    pub start_rebalance: bool,
1051}
1052#[derive(Clone, PartialEq, ::prost::Message)]
1053pub struct LoadRebalanceMetaResponse {
1054    #[prost(bool, tag = "1")]
1055    pub success: bool,
1056    #[prost(string, optional, tag = "2")]
1057    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
1058}
1059#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1060pub struct LoadTransitionTierConfigRequest {}
1061#[derive(Clone, PartialEq, ::prost::Message)]
1062pub struct LoadTransitionTierConfigResponse {
1063    #[prost(bool, tag = "1")]
1064    pub success: bool,
1065    #[prost(string, optional, tag = "2")]
1066    pub error_info: ::core::option::Option<::prost::alloc::string::String>,
1067}
1068/// Generated client implementations.
1069pub mod node_service_client {
1070    #![allow(unused_variables, dead_code, missing_docs, clippy::wildcard_imports, clippy::let_unit_value)]
1071    use tonic::codegen::http::Uri;
1072    use tonic::codegen::*;
1073    #[derive(Debug, Clone)]
1074    pub struct NodeServiceClient<T> {
1075        inner: tonic::client::Grpc<T>,
1076    }
1077    impl NodeServiceClient<tonic::transport::Channel> {
1078        /// Attempt to create a new client by connecting to a given endpoint.
1079        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1080        where
1081            D: TryInto<tonic::transport::Endpoint>,
1082            D::Error: Into<StdError>,
1083        {
1084            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1085            Ok(Self::new(conn))
1086        }
1087    }
1088    impl<T> NodeServiceClient<T>
1089    where
1090        T: tonic::client::GrpcService<tonic::body::Body>,
1091        T::Error: Into<StdError>,
1092        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1093        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1094    {
1095        pub fn new(inner: T) -> Self {
1096            let inner = tonic::client::Grpc::new(inner);
1097            Self { inner }
1098        }
1099        pub fn with_origin(inner: T, origin: Uri) -> Self {
1100            let inner = tonic::client::Grpc::with_origin(inner, origin);
1101            Self { inner }
1102        }
1103        pub fn with_interceptor<F>(inner: T, interceptor: F) -> NodeServiceClient<InterceptedService<T, F>>
1104        where
1105            F: tonic::service::Interceptor,
1106            T::ResponseBody: Default,
1107            T: tonic::codegen::Service<
1108                    http::Request<tonic::body::Body>,
1109                    Response = http::Response<<T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody>,
1110                >,
1111            <T as tonic::codegen::Service<http::Request<tonic::body::Body>>>::Error:
1112                Into<StdError> + std::marker::Send + std::marker::Sync,
1113        {
1114            NodeServiceClient::new(InterceptedService::new(inner, interceptor))
1115        }
1116        /// Compress requests with the given encoding.
1117        ///
1118        /// This requires the server to support it otherwise it might respond with an
1119        /// error.
1120        #[must_use]
1121        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1122            self.inner = self.inner.send_compressed(encoding);
1123            self
1124        }
1125        /// Enable decompressing responses.
1126        #[must_use]
1127        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1128            self.inner = self.inner.accept_compressed(encoding);
1129            self
1130        }
1131        /// Limits the maximum size of a decoded message.
1132        ///
1133        /// Default: `4MB`
1134        #[must_use]
1135        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1136            self.inner = self.inner.max_decoding_message_size(limit);
1137            self
1138        }
1139        /// Limits the maximum size of an encoded message.
1140        ///
1141        /// Default: `usize::MAX`
1142        #[must_use]
1143        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1144            self.inner = self.inner.max_encoding_message_size(limit);
1145            self
1146        }
1147        /// -------------------------------meta service--------------------------
1148        pub async fn ping(
1149            &mut self,
1150            request: impl tonic::IntoRequest<super::PingRequest>,
1151        ) -> std::result::Result<tonic::Response<super::PingResponse>, tonic::Status> {
1152            self.inner
1153                .ready()
1154                .await
1155                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1156            let codec = tonic::codec::ProstCodec::default();
1157            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/Ping");
1158            let mut req = request.into_request();
1159            req.extensions_mut()
1160                .insert(GrpcMethod::new("node_service.NodeService", "Ping"));
1161            self.inner.unary(req, path, codec).await
1162        }
1163        pub async fn heal_bucket(
1164            &mut self,
1165            request: impl tonic::IntoRequest<super::HealBucketRequest>,
1166        ) -> std::result::Result<tonic::Response<super::HealBucketResponse>, tonic::Status> {
1167            self.inner
1168                .ready()
1169                .await
1170                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1171            let codec = tonic::codec::ProstCodec::default();
1172            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/HealBucket");
1173            let mut req = request.into_request();
1174            req.extensions_mut()
1175                .insert(GrpcMethod::new("node_service.NodeService", "HealBucket"));
1176            self.inner.unary(req, path, codec).await
1177        }
1178        pub async fn list_bucket(
1179            &mut self,
1180            request: impl tonic::IntoRequest<super::ListBucketRequest>,
1181        ) -> std::result::Result<tonic::Response<super::ListBucketResponse>, tonic::Status> {
1182            self.inner
1183                .ready()
1184                .await
1185                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1186            let codec = tonic::codec::ProstCodec::default();
1187            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/ListBucket");
1188            let mut req = request.into_request();
1189            req.extensions_mut()
1190                .insert(GrpcMethod::new("node_service.NodeService", "ListBucket"));
1191            self.inner.unary(req, path, codec).await
1192        }
1193        pub async fn make_bucket(
1194            &mut self,
1195            request: impl tonic::IntoRequest<super::MakeBucketRequest>,
1196        ) -> std::result::Result<tonic::Response<super::MakeBucketResponse>, tonic::Status> {
1197            self.inner
1198                .ready()
1199                .await
1200                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1201            let codec = tonic::codec::ProstCodec::default();
1202            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/MakeBucket");
1203            let mut req = request.into_request();
1204            req.extensions_mut()
1205                .insert(GrpcMethod::new("node_service.NodeService", "MakeBucket"));
1206            self.inner.unary(req, path, codec).await
1207        }
1208        pub async fn get_bucket_info(
1209            &mut self,
1210            request: impl tonic::IntoRequest<super::GetBucketInfoRequest>,
1211        ) -> std::result::Result<tonic::Response<super::GetBucketInfoResponse>, tonic::Status> {
1212            self.inner
1213                .ready()
1214                .await
1215                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1216            let codec = tonic::codec::ProstCodec::default();
1217            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/GetBucketInfo");
1218            let mut req = request.into_request();
1219            req.extensions_mut()
1220                .insert(GrpcMethod::new("node_service.NodeService", "GetBucketInfo"));
1221            self.inner.unary(req, path, codec).await
1222        }
1223        pub async fn delete_bucket(
1224            &mut self,
1225            request: impl tonic::IntoRequest<super::DeleteBucketRequest>,
1226        ) -> std::result::Result<tonic::Response<super::DeleteBucketResponse>, tonic::Status> {
1227            self.inner
1228                .ready()
1229                .await
1230                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1231            let codec = tonic::codec::ProstCodec::default();
1232            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/DeleteBucket");
1233            let mut req = request.into_request();
1234            req.extensions_mut()
1235                .insert(GrpcMethod::new("node_service.NodeService", "DeleteBucket"));
1236            self.inner.unary(req, path, codec).await
1237        }
1238        pub async fn read_all(
1239            &mut self,
1240            request: impl tonic::IntoRequest<super::ReadAllRequest>,
1241        ) -> std::result::Result<tonic::Response<super::ReadAllResponse>, tonic::Status> {
1242            self.inner
1243                .ready()
1244                .await
1245                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1246            let codec = tonic::codec::ProstCodec::default();
1247            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/ReadAll");
1248            let mut req = request.into_request();
1249            req.extensions_mut()
1250                .insert(GrpcMethod::new("node_service.NodeService", "ReadAll"));
1251            self.inner.unary(req, path, codec).await
1252        }
1253        pub async fn write_all(
1254            &mut self,
1255            request: impl tonic::IntoRequest<super::WriteAllRequest>,
1256        ) -> std::result::Result<tonic::Response<super::WriteAllResponse>, tonic::Status> {
1257            self.inner
1258                .ready()
1259                .await
1260                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1261            let codec = tonic::codec::ProstCodec::default();
1262            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/WriteAll");
1263            let mut req = request.into_request();
1264            req.extensions_mut()
1265                .insert(GrpcMethod::new("node_service.NodeService", "WriteAll"));
1266            self.inner.unary(req, path, codec).await
1267        }
1268        pub async fn delete(
1269            &mut self,
1270            request: impl tonic::IntoRequest<super::DeleteRequest>,
1271        ) -> std::result::Result<tonic::Response<super::DeleteResponse>, tonic::Status> {
1272            self.inner
1273                .ready()
1274                .await
1275                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1276            let codec = tonic::codec::ProstCodec::default();
1277            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/Delete");
1278            let mut req = request.into_request();
1279            req.extensions_mut()
1280                .insert(GrpcMethod::new("node_service.NodeService", "Delete"));
1281            self.inner.unary(req, path, codec).await
1282        }
1283        pub async fn verify_file(
1284            &mut self,
1285            request: impl tonic::IntoRequest<super::VerifyFileRequest>,
1286        ) -> std::result::Result<tonic::Response<super::VerifyFileResponse>, tonic::Status> {
1287            self.inner
1288                .ready()
1289                .await
1290                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1291            let codec = tonic::codec::ProstCodec::default();
1292            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/VerifyFile");
1293            let mut req = request.into_request();
1294            req.extensions_mut()
1295                .insert(GrpcMethod::new("node_service.NodeService", "VerifyFile"));
1296            self.inner.unary(req, path, codec).await
1297        }
1298        pub async fn check_parts(
1299            &mut self,
1300            request: impl tonic::IntoRequest<super::CheckPartsRequest>,
1301        ) -> std::result::Result<tonic::Response<super::CheckPartsResponse>, tonic::Status> {
1302            self.inner
1303                .ready()
1304                .await
1305                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1306            let codec = tonic::codec::ProstCodec::default();
1307            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/CheckParts");
1308            let mut req = request.into_request();
1309            req.extensions_mut()
1310                .insert(GrpcMethod::new("node_service.NodeService", "CheckParts"));
1311            self.inner.unary(req, path, codec).await
1312        }
1313        pub async fn rename_part(
1314            &mut self,
1315            request: impl tonic::IntoRequest<super::RenamePartRequest>,
1316        ) -> std::result::Result<tonic::Response<super::RenamePartResponse>, tonic::Status> {
1317            self.inner
1318                .ready()
1319                .await
1320                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1321            let codec = tonic::codec::ProstCodec::default();
1322            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/RenamePart");
1323            let mut req = request.into_request();
1324            req.extensions_mut()
1325                .insert(GrpcMethod::new("node_service.NodeService", "RenamePart"));
1326            self.inner.unary(req, path, codec).await
1327        }
1328        pub async fn rename_file(
1329            &mut self,
1330            request: impl tonic::IntoRequest<super::RenameFileRequest>,
1331        ) -> std::result::Result<tonic::Response<super::RenameFileResponse>, tonic::Status> {
1332            self.inner
1333                .ready()
1334                .await
1335                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1336            let codec = tonic::codec::ProstCodec::default();
1337            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/RenameFile");
1338            let mut req = request.into_request();
1339            req.extensions_mut()
1340                .insert(GrpcMethod::new("node_service.NodeService", "RenameFile"));
1341            self.inner.unary(req, path, codec).await
1342        }
1343        pub async fn write(
1344            &mut self,
1345            request: impl tonic::IntoRequest<super::WriteRequest>,
1346        ) -> std::result::Result<tonic::Response<super::WriteResponse>, tonic::Status> {
1347            self.inner
1348                .ready()
1349                .await
1350                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1351            let codec = tonic::codec::ProstCodec::default();
1352            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/Write");
1353            let mut req = request.into_request();
1354            req.extensions_mut()
1355                .insert(GrpcMethod::new("node_service.NodeService", "Write"));
1356            self.inner.unary(req, path, codec).await
1357        }
1358        pub async fn write_stream(
1359            &mut self,
1360            request: impl tonic::IntoStreamingRequest<Message = super::WriteRequest>,
1361        ) -> std::result::Result<tonic::Response<tonic::codec::Streaming<super::WriteResponse>>, tonic::Status> {
1362            self.inner
1363                .ready()
1364                .await
1365                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1366            let codec = tonic::codec::ProstCodec::default();
1367            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/WriteStream");
1368            let mut req = request.into_streaming_request();
1369            req.extensions_mut()
1370                .insert(GrpcMethod::new("node_service.NodeService", "WriteStream"));
1371            self.inner.streaming(req, path, codec).await
1372        }
1373        ///  rpc Append(AppendRequest) returns (AppendResponse) {};
1374        pub async fn read_at(
1375            &mut self,
1376            request: impl tonic::IntoStreamingRequest<Message = super::ReadAtRequest>,
1377        ) -> std::result::Result<tonic::Response<tonic::codec::Streaming<super::ReadAtResponse>>, tonic::Status> {
1378            self.inner
1379                .ready()
1380                .await
1381                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1382            let codec = tonic::codec::ProstCodec::default();
1383            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/ReadAt");
1384            let mut req = request.into_streaming_request();
1385            req.extensions_mut()
1386                .insert(GrpcMethod::new("node_service.NodeService", "ReadAt"));
1387            self.inner.streaming(req, path, codec).await
1388        }
1389        pub async fn list_dir(
1390            &mut self,
1391            request: impl tonic::IntoRequest<super::ListDirRequest>,
1392        ) -> std::result::Result<tonic::Response<super::ListDirResponse>, tonic::Status> {
1393            self.inner
1394                .ready()
1395                .await
1396                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1397            let codec = tonic::codec::ProstCodec::default();
1398            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/ListDir");
1399            let mut req = request.into_request();
1400            req.extensions_mut()
1401                .insert(GrpcMethod::new("node_service.NodeService", "ListDir"));
1402            self.inner.unary(req, path, codec).await
1403        }
1404        pub async fn walk_dir(
1405            &mut self,
1406            request: impl tonic::IntoRequest<super::WalkDirRequest>,
1407        ) -> std::result::Result<tonic::Response<tonic::codec::Streaming<super::WalkDirResponse>>, tonic::Status> {
1408            self.inner
1409                .ready()
1410                .await
1411                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1412            let codec = tonic::codec::ProstCodec::default();
1413            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/WalkDir");
1414            let mut req = request.into_request();
1415            req.extensions_mut()
1416                .insert(GrpcMethod::new("node_service.NodeService", "WalkDir"));
1417            self.inner.server_streaming(req, path, codec).await
1418        }
1419        pub async fn rename_data(
1420            &mut self,
1421            request: impl tonic::IntoRequest<super::RenameDataRequest>,
1422        ) -> std::result::Result<tonic::Response<super::RenameDataResponse>, tonic::Status> {
1423            self.inner
1424                .ready()
1425                .await
1426                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1427            let codec = tonic::codec::ProstCodec::default();
1428            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/RenameData");
1429            let mut req = request.into_request();
1430            req.extensions_mut()
1431                .insert(GrpcMethod::new("node_service.NodeService", "RenameData"));
1432            self.inner.unary(req, path, codec).await
1433        }
1434        pub async fn make_volumes(
1435            &mut self,
1436            request: impl tonic::IntoRequest<super::MakeVolumesRequest>,
1437        ) -> std::result::Result<tonic::Response<super::MakeVolumesResponse>, tonic::Status> {
1438            self.inner
1439                .ready()
1440                .await
1441                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1442            let codec = tonic::codec::ProstCodec::default();
1443            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/MakeVolumes");
1444            let mut req = request.into_request();
1445            req.extensions_mut()
1446                .insert(GrpcMethod::new("node_service.NodeService", "MakeVolumes"));
1447            self.inner.unary(req, path, codec).await
1448        }
1449        pub async fn make_volume(
1450            &mut self,
1451            request: impl tonic::IntoRequest<super::MakeVolumeRequest>,
1452        ) -> std::result::Result<tonic::Response<super::MakeVolumeResponse>, tonic::Status> {
1453            self.inner
1454                .ready()
1455                .await
1456                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1457            let codec = tonic::codec::ProstCodec::default();
1458            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/MakeVolume");
1459            let mut req = request.into_request();
1460            req.extensions_mut()
1461                .insert(GrpcMethod::new("node_service.NodeService", "MakeVolume"));
1462            self.inner.unary(req, path, codec).await
1463        }
1464        pub async fn list_volumes(
1465            &mut self,
1466            request: impl tonic::IntoRequest<super::ListVolumesRequest>,
1467        ) -> std::result::Result<tonic::Response<super::ListVolumesResponse>, tonic::Status> {
1468            self.inner
1469                .ready()
1470                .await
1471                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1472            let codec = tonic::codec::ProstCodec::default();
1473            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/ListVolumes");
1474            let mut req = request.into_request();
1475            req.extensions_mut()
1476                .insert(GrpcMethod::new("node_service.NodeService", "ListVolumes"));
1477            self.inner.unary(req, path, codec).await
1478        }
1479        pub async fn stat_volume(
1480            &mut self,
1481            request: impl tonic::IntoRequest<super::StatVolumeRequest>,
1482        ) -> std::result::Result<tonic::Response<super::StatVolumeResponse>, tonic::Status> {
1483            self.inner
1484                .ready()
1485                .await
1486                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1487            let codec = tonic::codec::ProstCodec::default();
1488            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/StatVolume");
1489            let mut req = request.into_request();
1490            req.extensions_mut()
1491                .insert(GrpcMethod::new("node_service.NodeService", "StatVolume"));
1492            self.inner.unary(req, path, codec).await
1493        }
1494        pub async fn delete_paths(
1495            &mut self,
1496            request: impl tonic::IntoRequest<super::DeletePathsRequest>,
1497        ) -> std::result::Result<tonic::Response<super::DeletePathsResponse>, tonic::Status> {
1498            self.inner
1499                .ready()
1500                .await
1501                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1502            let codec = tonic::codec::ProstCodec::default();
1503            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/DeletePaths");
1504            let mut req = request.into_request();
1505            req.extensions_mut()
1506                .insert(GrpcMethod::new("node_service.NodeService", "DeletePaths"));
1507            self.inner.unary(req, path, codec).await
1508        }
1509        pub async fn update_metadata(
1510            &mut self,
1511            request: impl tonic::IntoRequest<super::UpdateMetadataRequest>,
1512        ) -> std::result::Result<tonic::Response<super::UpdateMetadataResponse>, tonic::Status> {
1513            self.inner
1514                .ready()
1515                .await
1516                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1517            let codec = tonic::codec::ProstCodec::default();
1518            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/UpdateMetadata");
1519            let mut req = request.into_request();
1520            req.extensions_mut()
1521                .insert(GrpcMethod::new("node_service.NodeService", "UpdateMetadata"));
1522            self.inner.unary(req, path, codec).await
1523        }
1524        pub async fn write_metadata(
1525            &mut self,
1526            request: impl tonic::IntoRequest<super::WriteMetadataRequest>,
1527        ) -> std::result::Result<tonic::Response<super::WriteMetadataResponse>, tonic::Status> {
1528            self.inner
1529                .ready()
1530                .await
1531                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1532            let codec = tonic::codec::ProstCodec::default();
1533            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/WriteMetadata");
1534            let mut req = request.into_request();
1535            req.extensions_mut()
1536                .insert(GrpcMethod::new("node_service.NodeService", "WriteMetadata"));
1537            self.inner.unary(req, path, codec).await
1538        }
1539        pub async fn read_version(
1540            &mut self,
1541            request: impl tonic::IntoRequest<super::ReadVersionRequest>,
1542        ) -> std::result::Result<tonic::Response<super::ReadVersionResponse>, tonic::Status> {
1543            self.inner
1544                .ready()
1545                .await
1546                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1547            let codec = tonic::codec::ProstCodec::default();
1548            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/ReadVersion");
1549            let mut req = request.into_request();
1550            req.extensions_mut()
1551                .insert(GrpcMethod::new("node_service.NodeService", "ReadVersion"));
1552            self.inner.unary(req, path, codec).await
1553        }
1554        pub async fn read_xl(
1555            &mut self,
1556            request: impl tonic::IntoRequest<super::ReadXlRequest>,
1557        ) -> std::result::Result<tonic::Response<super::ReadXlResponse>, tonic::Status> {
1558            self.inner
1559                .ready()
1560                .await
1561                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1562            let codec = tonic::codec::ProstCodec::default();
1563            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/ReadXL");
1564            let mut req = request.into_request();
1565            req.extensions_mut()
1566                .insert(GrpcMethod::new("node_service.NodeService", "ReadXL"));
1567            self.inner.unary(req, path, codec).await
1568        }
1569        pub async fn delete_version(
1570            &mut self,
1571            request: impl tonic::IntoRequest<super::DeleteVersionRequest>,
1572        ) -> std::result::Result<tonic::Response<super::DeleteVersionResponse>, tonic::Status> {
1573            self.inner
1574                .ready()
1575                .await
1576                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1577            let codec = tonic::codec::ProstCodec::default();
1578            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/DeleteVersion");
1579            let mut req = request.into_request();
1580            req.extensions_mut()
1581                .insert(GrpcMethod::new("node_service.NodeService", "DeleteVersion"));
1582            self.inner.unary(req, path, codec).await
1583        }
1584        pub async fn delete_versions(
1585            &mut self,
1586            request: impl tonic::IntoRequest<super::DeleteVersionsRequest>,
1587        ) -> std::result::Result<tonic::Response<super::DeleteVersionsResponse>, tonic::Status> {
1588            self.inner
1589                .ready()
1590                .await
1591                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1592            let codec = tonic::codec::ProstCodec::default();
1593            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/DeleteVersions");
1594            let mut req = request.into_request();
1595            req.extensions_mut()
1596                .insert(GrpcMethod::new("node_service.NodeService", "DeleteVersions"));
1597            self.inner.unary(req, path, codec).await
1598        }
1599        pub async fn read_multiple(
1600            &mut self,
1601            request: impl tonic::IntoRequest<super::ReadMultipleRequest>,
1602        ) -> std::result::Result<tonic::Response<super::ReadMultipleResponse>, tonic::Status> {
1603            self.inner
1604                .ready()
1605                .await
1606                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1607            let codec = tonic::codec::ProstCodec::default();
1608            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/ReadMultiple");
1609            let mut req = request.into_request();
1610            req.extensions_mut()
1611                .insert(GrpcMethod::new("node_service.NodeService", "ReadMultiple"));
1612            self.inner.unary(req, path, codec).await
1613        }
1614        pub async fn delete_volume(
1615            &mut self,
1616            request: impl tonic::IntoRequest<super::DeleteVolumeRequest>,
1617        ) -> std::result::Result<tonic::Response<super::DeleteVolumeResponse>, tonic::Status> {
1618            self.inner
1619                .ready()
1620                .await
1621                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1622            let codec = tonic::codec::ProstCodec::default();
1623            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/DeleteVolume");
1624            let mut req = request.into_request();
1625            req.extensions_mut()
1626                .insert(GrpcMethod::new("node_service.NodeService", "DeleteVolume"));
1627            self.inner.unary(req, path, codec).await
1628        }
1629        pub async fn disk_info(
1630            &mut self,
1631            request: impl tonic::IntoRequest<super::DiskInfoRequest>,
1632        ) -> std::result::Result<tonic::Response<super::DiskInfoResponse>, tonic::Status> {
1633            self.inner
1634                .ready()
1635                .await
1636                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1637            let codec = tonic::codec::ProstCodec::default();
1638            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/DiskInfo");
1639            let mut req = request.into_request();
1640            req.extensions_mut()
1641                .insert(GrpcMethod::new("node_service.NodeService", "DiskInfo"));
1642            self.inner.unary(req, path, codec).await
1643        }
1644        pub async fn ns_scanner(
1645            &mut self,
1646            request: impl tonic::IntoStreamingRequest<Message = super::NsScannerRequest>,
1647        ) -> std::result::Result<tonic::Response<tonic::codec::Streaming<super::NsScannerResponse>>, tonic::Status> {
1648            self.inner
1649                .ready()
1650                .await
1651                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1652            let codec = tonic::codec::ProstCodec::default();
1653            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/NsScanner");
1654            let mut req = request.into_streaming_request();
1655            req.extensions_mut()
1656                .insert(GrpcMethod::new("node_service.NodeService", "NsScanner"));
1657            self.inner.streaming(req, path, codec).await
1658        }
1659        pub async fn lock(
1660            &mut self,
1661            request: impl tonic::IntoRequest<super::GenerallyLockRequest>,
1662        ) -> std::result::Result<tonic::Response<super::GenerallyLockResponse>, tonic::Status> {
1663            self.inner
1664                .ready()
1665                .await
1666                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1667            let codec = tonic::codec::ProstCodec::default();
1668            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/Lock");
1669            let mut req = request.into_request();
1670            req.extensions_mut()
1671                .insert(GrpcMethod::new("node_service.NodeService", "Lock"));
1672            self.inner.unary(req, path, codec).await
1673        }
1674        pub async fn un_lock(
1675            &mut self,
1676            request: impl tonic::IntoRequest<super::GenerallyLockRequest>,
1677        ) -> std::result::Result<tonic::Response<super::GenerallyLockResponse>, tonic::Status> {
1678            self.inner
1679                .ready()
1680                .await
1681                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1682            let codec = tonic::codec::ProstCodec::default();
1683            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/UnLock");
1684            let mut req = request.into_request();
1685            req.extensions_mut()
1686                .insert(GrpcMethod::new("node_service.NodeService", "UnLock"));
1687            self.inner.unary(req, path, codec).await
1688        }
1689        pub async fn r_lock(
1690            &mut self,
1691            request: impl tonic::IntoRequest<super::GenerallyLockRequest>,
1692        ) -> std::result::Result<tonic::Response<super::GenerallyLockResponse>, tonic::Status> {
1693            self.inner
1694                .ready()
1695                .await
1696                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1697            let codec = tonic::codec::ProstCodec::default();
1698            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/RLock");
1699            let mut req = request.into_request();
1700            req.extensions_mut()
1701                .insert(GrpcMethod::new("node_service.NodeService", "RLock"));
1702            self.inner.unary(req, path, codec).await
1703        }
1704        pub async fn r_un_lock(
1705            &mut self,
1706            request: impl tonic::IntoRequest<super::GenerallyLockRequest>,
1707        ) -> std::result::Result<tonic::Response<super::GenerallyLockResponse>, tonic::Status> {
1708            self.inner
1709                .ready()
1710                .await
1711                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1712            let codec = tonic::codec::ProstCodec::default();
1713            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/RUnLock");
1714            let mut req = request.into_request();
1715            req.extensions_mut()
1716                .insert(GrpcMethod::new("node_service.NodeService", "RUnLock"));
1717            self.inner.unary(req, path, codec).await
1718        }
1719        pub async fn force_un_lock(
1720            &mut self,
1721            request: impl tonic::IntoRequest<super::GenerallyLockRequest>,
1722        ) -> std::result::Result<tonic::Response<super::GenerallyLockResponse>, tonic::Status> {
1723            self.inner
1724                .ready()
1725                .await
1726                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1727            let codec = tonic::codec::ProstCodec::default();
1728            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/ForceUnLock");
1729            let mut req = request.into_request();
1730            req.extensions_mut()
1731                .insert(GrpcMethod::new("node_service.NodeService", "ForceUnLock"));
1732            self.inner.unary(req, path, codec).await
1733        }
1734        pub async fn refresh(
1735            &mut self,
1736            request: impl tonic::IntoRequest<super::GenerallyLockRequest>,
1737        ) -> std::result::Result<tonic::Response<super::GenerallyLockResponse>, tonic::Status> {
1738            self.inner
1739                .ready()
1740                .await
1741                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1742            let codec = tonic::codec::ProstCodec::default();
1743            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/Refresh");
1744            let mut req = request.into_request();
1745            req.extensions_mut()
1746                .insert(GrpcMethod::new("node_service.NodeService", "Refresh"));
1747            self.inner.unary(req, path, codec).await
1748        }
1749        pub async fn local_storage_info(
1750            &mut self,
1751            request: impl tonic::IntoRequest<super::LocalStorageInfoRequest>,
1752        ) -> std::result::Result<tonic::Response<super::LocalStorageInfoResponse>, tonic::Status> {
1753            self.inner
1754                .ready()
1755                .await
1756                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1757            let codec = tonic::codec::ProstCodec::default();
1758            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/LocalStorageInfo");
1759            let mut req = request.into_request();
1760            req.extensions_mut()
1761                .insert(GrpcMethod::new("node_service.NodeService", "LocalStorageInfo"));
1762            self.inner.unary(req, path, codec).await
1763        }
1764        pub async fn server_info(
1765            &mut self,
1766            request: impl tonic::IntoRequest<super::ServerInfoRequest>,
1767        ) -> std::result::Result<tonic::Response<super::ServerInfoResponse>, tonic::Status> {
1768            self.inner
1769                .ready()
1770                .await
1771                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1772            let codec = tonic::codec::ProstCodec::default();
1773            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/ServerInfo");
1774            let mut req = request.into_request();
1775            req.extensions_mut()
1776                .insert(GrpcMethod::new("node_service.NodeService", "ServerInfo"));
1777            self.inner.unary(req, path, codec).await
1778        }
1779        pub async fn get_cpus(
1780            &mut self,
1781            request: impl tonic::IntoRequest<super::GetCpusRequest>,
1782        ) -> std::result::Result<tonic::Response<super::GetCpusResponse>, tonic::Status> {
1783            self.inner
1784                .ready()
1785                .await
1786                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1787            let codec = tonic::codec::ProstCodec::default();
1788            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/GetCpus");
1789            let mut req = request.into_request();
1790            req.extensions_mut()
1791                .insert(GrpcMethod::new("node_service.NodeService", "GetCpus"));
1792            self.inner.unary(req, path, codec).await
1793        }
1794        pub async fn get_net_info(
1795            &mut self,
1796            request: impl tonic::IntoRequest<super::GetNetInfoRequest>,
1797        ) -> std::result::Result<tonic::Response<super::GetNetInfoResponse>, tonic::Status> {
1798            self.inner
1799                .ready()
1800                .await
1801                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1802            let codec = tonic::codec::ProstCodec::default();
1803            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/GetNetInfo");
1804            let mut req = request.into_request();
1805            req.extensions_mut()
1806                .insert(GrpcMethod::new("node_service.NodeService", "GetNetInfo"));
1807            self.inner.unary(req, path, codec).await
1808        }
1809        pub async fn get_partitions(
1810            &mut self,
1811            request: impl tonic::IntoRequest<super::GetPartitionsRequest>,
1812        ) -> std::result::Result<tonic::Response<super::GetPartitionsResponse>, tonic::Status> {
1813            self.inner
1814                .ready()
1815                .await
1816                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1817            let codec = tonic::codec::ProstCodec::default();
1818            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/GetPartitions");
1819            let mut req = request.into_request();
1820            req.extensions_mut()
1821                .insert(GrpcMethod::new("node_service.NodeService", "GetPartitions"));
1822            self.inner.unary(req, path, codec).await
1823        }
1824        pub async fn get_os_info(
1825            &mut self,
1826            request: impl tonic::IntoRequest<super::GetOsInfoRequest>,
1827        ) -> std::result::Result<tonic::Response<super::GetOsInfoResponse>, tonic::Status> {
1828            self.inner
1829                .ready()
1830                .await
1831                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1832            let codec = tonic::codec::ProstCodec::default();
1833            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/GetOsInfo");
1834            let mut req = request.into_request();
1835            req.extensions_mut()
1836                .insert(GrpcMethod::new("node_service.NodeService", "GetOsInfo"));
1837            self.inner.unary(req, path, codec).await
1838        }
1839        pub async fn get_se_linux_info(
1840            &mut self,
1841            request: impl tonic::IntoRequest<super::GetSeLinuxInfoRequest>,
1842        ) -> std::result::Result<tonic::Response<super::GetSeLinuxInfoResponse>, tonic::Status> {
1843            self.inner
1844                .ready()
1845                .await
1846                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1847            let codec = tonic::codec::ProstCodec::default();
1848            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/GetSELinuxInfo");
1849            let mut req = request.into_request();
1850            req.extensions_mut()
1851                .insert(GrpcMethod::new("node_service.NodeService", "GetSELinuxInfo"));
1852            self.inner.unary(req, path, codec).await
1853        }
1854        pub async fn get_sys_config(
1855            &mut self,
1856            request: impl tonic::IntoRequest<super::GetSysConfigRequest>,
1857        ) -> std::result::Result<tonic::Response<super::GetSysConfigResponse>, tonic::Status> {
1858            self.inner
1859                .ready()
1860                .await
1861                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1862            let codec = tonic::codec::ProstCodec::default();
1863            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/GetSysConfig");
1864            let mut req = request.into_request();
1865            req.extensions_mut()
1866                .insert(GrpcMethod::new("node_service.NodeService", "GetSysConfig"));
1867            self.inner.unary(req, path, codec).await
1868        }
1869        pub async fn get_sys_errors(
1870            &mut self,
1871            request: impl tonic::IntoRequest<super::GetSysErrorsRequest>,
1872        ) -> std::result::Result<tonic::Response<super::GetSysErrorsResponse>, tonic::Status> {
1873            self.inner
1874                .ready()
1875                .await
1876                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1877            let codec = tonic::codec::ProstCodec::default();
1878            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/GetSysErrors");
1879            let mut req = request.into_request();
1880            req.extensions_mut()
1881                .insert(GrpcMethod::new("node_service.NodeService", "GetSysErrors"));
1882            self.inner.unary(req, path, codec).await
1883        }
1884        pub async fn get_mem_info(
1885            &mut self,
1886            request: impl tonic::IntoRequest<super::GetMemInfoRequest>,
1887        ) -> std::result::Result<tonic::Response<super::GetMemInfoResponse>, tonic::Status> {
1888            self.inner
1889                .ready()
1890                .await
1891                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1892            let codec = tonic::codec::ProstCodec::default();
1893            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/GetMemInfo");
1894            let mut req = request.into_request();
1895            req.extensions_mut()
1896                .insert(GrpcMethod::new("node_service.NodeService", "GetMemInfo"));
1897            self.inner.unary(req, path, codec).await
1898        }
1899        pub async fn get_metrics(
1900            &mut self,
1901            request: impl tonic::IntoRequest<super::GetMetricsRequest>,
1902        ) -> std::result::Result<tonic::Response<super::GetMetricsResponse>, tonic::Status> {
1903            self.inner
1904                .ready()
1905                .await
1906                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1907            let codec = tonic::codec::ProstCodec::default();
1908            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/GetMetrics");
1909            let mut req = request.into_request();
1910            req.extensions_mut()
1911                .insert(GrpcMethod::new("node_service.NodeService", "GetMetrics"));
1912            self.inner.unary(req, path, codec).await
1913        }
1914        pub async fn get_proc_info(
1915            &mut self,
1916            request: impl tonic::IntoRequest<super::GetProcInfoRequest>,
1917        ) -> std::result::Result<tonic::Response<super::GetProcInfoResponse>, tonic::Status> {
1918            self.inner
1919                .ready()
1920                .await
1921                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1922            let codec = tonic::codec::ProstCodec::default();
1923            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/GetProcInfo");
1924            let mut req = request.into_request();
1925            req.extensions_mut()
1926                .insert(GrpcMethod::new("node_service.NodeService", "GetProcInfo"));
1927            self.inner.unary(req, path, codec).await
1928        }
1929        pub async fn start_profiling(
1930            &mut self,
1931            request: impl tonic::IntoRequest<super::StartProfilingRequest>,
1932        ) -> std::result::Result<tonic::Response<super::StartProfilingResponse>, tonic::Status> {
1933            self.inner
1934                .ready()
1935                .await
1936                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1937            let codec = tonic::codec::ProstCodec::default();
1938            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/StartProfiling");
1939            let mut req = request.into_request();
1940            req.extensions_mut()
1941                .insert(GrpcMethod::new("node_service.NodeService", "StartProfiling"));
1942            self.inner.unary(req, path, codec).await
1943        }
1944        pub async fn download_profile_data(
1945            &mut self,
1946            request: impl tonic::IntoRequest<super::DownloadProfileDataRequest>,
1947        ) -> std::result::Result<tonic::Response<super::DownloadProfileDataResponse>, tonic::Status> {
1948            self.inner
1949                .ready()
1950                .await
1951                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1952            let codec = tonic::codec::ProstCodec::default();
1953            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/DownloadProfileData");
1954            let mut req = request.into_request();
1955            req.extensions_mut()
1956                .insert(GrpcMethod::new("node_service.NodeService", "DownloadProfileData"));
1957            self.inner.unary(req, path, codec).await
1958        }
1959        pub async fn get_bucket_stats(
1960            &mut self,
1961            request: impl tonic::IntoRequest<super::GetBucketStatsDataRequest>,
1962        ) -> std::result::Result<tonic::Response<super::GetBucketStatsDataResponse>, tonic::Status> {
1963            self.inner
1964                .ready()
1965                .await
1966                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1967            let codec = tonic::codec::ProstCodec::default();
1968            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/GetBucketStats");
1969            let mut req = request.into_request();
1970            req.extensions_mut()
1971                .insert(GrpcMethod::new("node_service.NodeService", "GetBucketStats"));
1972            self.inner.unary(req, path, codec).await
1973        }
1974        pub async fn get_sr_metrics(
1975            &mut self,
1976            request: impl tonic::IntoRequest<super::GetSrMetricsDataRequest>,
1977        ) -> std::result::Result<tonic::Response<super::GetSrMetricsDataResponse>, tonic::Status> {
1978            self.inner
1979                .ready()
1980                .await
1981                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1982            let codec = tonic::codec::ProstCodec::default();
1983            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/GetSRMetrics");
1984            let mut req = request.into_request();
1985            req.extensions_mut()
1986                .insert(GrpcMethod::new("node_service.NodeService", "GetSRMetrics"));
1987            self.inner.unary(req, path, codec).await
1988        }
1989        pub async fn get_all_bucket_stats(
1990            &mut self,
1991            request: impl tonic::IntoRequest<super::GetAllBucketStatsRequest>,
1992        ) -> std::result::Result<tonic::Response<super::GetAllBucketStatsResponse>, tonic::Status> {
1993            self.inner
1994                .ready()
1995                .await
1996                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
1997            let codec = tonic::codec::ProstCodec::default();
1998            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/GetAllBucketStats");
1999            let mut req = request.into_request();
2000            req.extensions_mut()
2001                .insert(GrpcMethod::new("node_service.NodeService", "GetAllBucketStats"));
2002            self.inner.unary(req, path, codec).await
2003        }
2004        pub async fn load_bucket_metadata(
2005            &mut self,
2006            request: impl tonic::IntoRequest<super::LoadBucketMetadataRequest>,
2007        ) -> std::result::Result<tonic::Response<super::LoadBucketMetadataResponse>, tonic::Status> {
2008            self.inner
2009                .ready()
2010                .await
2011                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
2012            let codec = tonic::codec::ProstCodec::default();
2013            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/LoadBucketMetadata");
2014            let mut req = request.into_request();
2015            req.extensions_mut()
2016                .insert(GrpcMethod::new("node_service.NodeService", "LoadBucketMetadata"));
2017            self.inner.unary(req, path, codec).await
2018        }
2019        pub async fn delete_bucket_metadata(
2020            &mut self,
2021            request: impl tonic::IntoRequest<super::DeleteBucketMetadataRequest>,
2022        ) -> std::result::Result<tonic::Response<super::DeleteBucketMetadataResponse>, tonic::Status> {
2023            self.inner
2024                .ready()
2025                .await
2026                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
2027            let codec = tonic::codec::ProstCodec::default();
2028            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/DeleteBucketMetadata");
2029            let mut req = request.into_request();
2030            req.extensions_mut()
2031                .insert(GrpcMethod::new("node_service.NodeService", "DeleteBucketMetadata"));
2032            self.inner.unary(req, path, codec).await
2033        }
2034        pub async fn delete_policy(
2035            &mut self,
2036            request: impl tonic::IntoRequest<super::DeletePolicyRequest>,
2037        ) -> std::result::Result<tonic::Response<super::DeletePolicyResponse>, tonic::Status> {
2038            self.inner
2039                .ready()
2040                .await
2041                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
2042            let codec = tonic::codec::ProstCodec::default();
2043            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/DeletePolicy");
2044            let mut req = request.into_request();
2045            req.extensions_mut()
2046                .insert(GrpcMethod::new("node_service.NodeService", "DeletePolicy"));
2047            self.inner.unary(req, path, codec).await
2048        }
2049        pub async fn load_policy(
2050            &mut self,
2051            request: impl tonic::IntoRequest<super::LoadPolicyRequest>,
2052        ) -> std::result::Result<tonic::Response<super::LoadPolicyResponse>, tonic::Status> {
2053            self.inner
2054                .ready()
2055                .await
2056                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
2057            let codec = tonic::codec::ProstCodec::default();
2058            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/LoadPolicy");
2059            let mut req = request.into_request();
2060            req.extensions_mut()
2061                .insert(GrpcMethod::new("node_service.NodeService", "LoadPolicy"));
2062            self.inner.unary(req, path, codec).await
2063        }
2064        pub async fn load_policy_mapping(
2065            &mut self,
2066            request: impl tonic::IntoRequest<super::LoadPolicyMappingRequest>,
2067        ) -> std::result::Result<tonic::Response<super::LoadPolicyMappingResponse>, tonic::Status> {
2068            self.inner
2069                .ready()
2070                .await
2071                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
2072            let codec = tonic::codec::ProstCodec::default();
2073            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/LoadPolicyMapping");
2074            let mut req = request.into_request();
2075            req.extensions_mut()
2076                .insert(GrpcMethod::new("node_service.NodeService", "LoadPolicyMapping"));
2077            self.inner.unary(req, path, codec).await
2078        }
2079        pub async fn delete_user(
2080            &mut self,
2081            request: impl tonic::IntoRequest<super::DeleteUserRequest>,
2082        ) -> std::result::Result<tonic::Response<super::DeleteUserResponse>, tonic::Status> {
2083            self.inner
2084                .ready()
2085                .await
2086                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
2087            let codec = tonic::codec::ProstCodec::default();
2088            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/DeleteUser");
2089            let mut req = request.into_request();
2090            req.extensions_mut()
2091                .insert(GrpcMethod::new("node_service.NodeService", "DeleteUser"));
2092            self.inner.unary(req, path, codec).await
2093        }
2094        pub async fn delete_service_account(
2095            &mut self,
2096            request: impl tonic::IntoRequest<super::DeleteServiceAccountRequest>,
2097        ) -> std::result::Result<tonic::Response<super::DeleteServiceAccountResponse>, tonic::Status> {
2098            self.inner
2099                .ready()
2100                .await
2101                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
2102            let codec = tonic::codec::ProstCodec::default();
2103            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/DeleteServiceAccount");
2104            let mut req = request.into_request();
2105            req.extensions_mut()
2106                .insert(GrpcMethod::new("node_service.NodeService", "DeleteServiceAccount"));
2107            self.inner.unary(req, path, codec).await
2108        }
2109        pub async fn load_user(
2110            &mut self,
2111            request: impl tonic::IntoRequest<super::LoadUserRequest>,
2112        ) -> std::result::Result<tonic::Response<super::LoadUserResponse>, tonic::Status> {
2113            self.inner
2114                .ready()
2115                .await
2116                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
2117            let codec = tonic::codec::ProstCodec::default();
2118            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/LoadUser");
2119            let mut req = request.into_request();
2120            req.extensions_mut()
2121                .insert(GrpcMethod::new("node_service.NodeService", "LoadUser"));
2122            self.inner.unary(req, path, codec).await
2123        }
2124        pub async fn load_service_account(
2125            &mut self,
2126            request: impl tonic::IntoRequest<super::LoadServiceAccountRequest>,
2127        ) -> std::result::Result<tonic::Response<super::LoadServiceAccountResponse>, tonic::Status> {
2128            self.inner
2129                .ready()
2130                .await
2131                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
2132            let codec = tonic::codec::ProstCodec::default();
2133            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/LoadServiceAccount");
2134            let mut req = request.into_request();
2135            req.extensions_mut()
2136                .insert(GrpcMethod::new("node_service.NodeService", "LoadServiceAccount"));
2137            self.inner.unary(req, path, codec).await
2138        }
2139        pub async fn load_group(
2140            &mut self,
2141            request: impl tonic::IntoRequest<super::LoadGroupRequest>,
2142        ) -> std::result::Result<tonic::Response<super::LoadGroupResponse>, tonic::Status> {
2143            self.inner
2144                .ready()
2145                .await
2146                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
2147            let codec = tonic::codec::ProstCodec::default();
2148            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/LoadGroup");
2149            let mut req = request.into_request();
2150            req.extensions_mut()
2151                .insert(GrpcMethod::new("node_service.NodeService", "LoadGroup"));
2152            self.inner.unary(req, path, codec).await
2153        }
2154        pub async fn reload_site_replication_config(
2155            &mut self,
2156            request: impl tonic::IntoRequest<super::ReloadSiteReplicationConfigRequest>,
2157        ) -> std::result::Result<tonic::Response<super::ReloadSiteReplicationConfigResponse>, tonic::Status> {
2158            self.inner
2159                .ready()
2160                .await
2161                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
2162            let codec = tonic::codec::ProstCodec::default();
2163            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/ReloadSiteReplicationConfig");
2164            let mut req = request.into_request();
2165            req.extensions_mut()
2166                .insert(GrpcMethod::new("node_service.NodeService", "ReloadSiteReplicationConfig"));
2167            self.inner.unary(req, path, codec).await
2168        }
2169        /// rpc VerifyBinary() returns () {};
2170        /// rpc CommitBinary() returns () {};
2171        pub async fn signal_service(
2172            &mut self,
2173            request: impl tonic::IntoRequest<super::SignalServiceRequest>,
2174        ) -> std::result::Result<tonic::Response<super::SignalServiceResponse>, tonic::Status> {
2175            self.inner
2176                .ready()
2177                .await
2178                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
2179            let codec = tonic::codec::ProstCodec::default();
2180            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/SignalService");
2181            let mut req = request.into_request();
2182            req.extensions_mut()
2183                .insert(GrpcMethod::new("node_service.NodeService", "SignalService"));
2184            self.inner.unary(req, path, codec).await
2185        }
2186        pub async fn background_heal_status(
2187            &mut self,
2188            request: impl tonic::IntoRequest<super::BackgroundHealStatusRequest>,
2189        ) -> std::result::Result<tonic::Response<super::BackgroundHealStatusResponse>, tonic::Status> {
2190            self.inner
2191                .ready()
2192                .await
2193                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
2194            let codec = tonic::codec::ProstCodec::default();
2195            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/BackgroundHealStatus");
2196            let mut req = request.into_request();
2197            req.extensions_mut()
2198                .insert(GrpcMethod::new("node_service.NodeService", "BackgroundHealStatus"));
2199            self.inner.unary(req, path, codec).await
2200        }
2201        pub async fn get_metacache_listing(
2202            &mut self,
2203            request: impl tonic::IntoRequest<super::GetMetacacheListingRequest>,
2204        ) -> std::result::Result<tonic::Response<super::GetMetacacheListingResponse>, tonic::Status> {
2205            self.inner
2206                .ready()
2207                .await
2208                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
2209            let codec = tonic::codec::ProstCodec::default();
2210            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/GetMetacacheListing");
2211            let mut req = request.into_request();
2212            req.extensions_mut()
2213                .insert(GrpcMethod::new("node_service.NodeService", "GetMetacacheListing"));
2214            self.inner.unary(req, path, codec).await
2215        }
2216        pub async fn update_metacache_listing(
2217            &mut self,
2218            request: impl tonic::IntoRequest<super::UpdateMetacacheListingRequest>,
2219        ) -> std::result::Result<tonic::Response<super::UpdateMetacacheListingResponse>, tonic::Status> {
2220            self.inner
2221                .ready()
2222                .await
2223                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
2224            let codec = tonic::codec::ProstCodec::default();
2225            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/UpdateMetacacheListing");
2226            let mut req = request.into_request();
2227            req.extensions_mut()
2228                .insert(GrpcMethod::new("node_service.NodeService", "UpdateMetacacheListing"));
2229            self.inner.unary(req, path, codec).await
2230        }
2231        pub async fn reload_pool_meta(
2232            &mut self,
2233            request: impl tonic::IntoRequest<super::ReloadPoolMetaRequest>,
2234        ) -> std::result::Result<tonic::Response<super::ReloadPoolMetaResponse>, tonic::Status> {
2235            self.inner
2236                .ready()
2237                .await
2238                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
2239            let codec = tonic::codec::ProstCodec::default();
2240            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/ReloadPoolMeta");
2241            let mut req = request.into_request();
2242            req.extensions_mut()
2243                .insert(GrpcMethod::new("node_service.NodeService", "ReloadPoolMeta"));
2244            self.inner.unary(req, path, codec).await
2245        }
2246        pub async fn stop_rebalance(
2247            &mut self,
2248            request: impl tonic::IntoRequest<super::StopRebalanceRequest>,
2249        ) -> std::result::Result<tonic::Response<super::StopRebalanceResponse>, tonic::Status> {
2250            self.inner
2251                .ready()
2252                .await
2253                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
2254            let codec = tonic::codec::ProstCodec::default();
2255            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/StopRebalance");
2256            let mut req = request.into_request();
2257            req.extensions_mut()
2258                .insert(GrpcMethod::new("node_service.NodeService", "StopRebalance"));
2259            self.inner.unary(req, path, codec).await
2260        }
2261        pub async fn load_rebalance_meta(
2262            &mut self,
2263            request: impl tonic::IntoRequest<super::LoadRebalanceMetaRequest>,
2264        ) -> std::result::Result<tonic::Response<super::LoadRebalanceMetaResponse>, tonic::Status> {
2265            self.inner
2266                .ready()
2267                .await
2268                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
2269            let codec = tonic::codec::ProstCodec::default();
2270            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/LoadRebalanceMeta");
2271            let mut req = request.into_request();
2272            req.extensions_mut()
2273                .insert(GrpcMethod::new("node_service.NodeService", "LoadRebalanceMeta"));
2274            self.inner.unary(req, path, codec).await
2275        }
2276        pub async fn load_transition_tier_config(
2277            &mut self,
2278            request: impl tonic::IntoRequest<super::LoadTransitionTierConfigRequest>,
2279        ) -> std::result::Result<tonic::Response<super::LoadTransitionTierConfigResponse>, tonic::Status> {
2280            self.inner
2281                .ready()
2282                .await
2283                .map_err(|e| tonic::Status::unknown(format!("Service was not ready: {}", e.into())))?;
2284            let codec = tonic::codec::ProstCodec::default();
2285            let path = http::uri::PathAndQuery::from_static("/node_service.NodeService/LoadTransitionTierConfig");
2286            let mut req = request.into_request();
2287            req.extensions_mut()
2288                .insert(GrpcMethod::new("node_service.NodeService", "LoadTransitionTierConfig"));
2289            self.inner.unary(req, path, codec).await
2290        }
2291    }
2292}
2293/// Generated server implementations.
2294pub mod node_service_server {
2295    #![allow(unused_variables, dead_code, missing_docs, clippy::wildcard_imports, clippy::let_unit_value)]
2296    use tonic::codegen::*;
2297    /// Generated trait containing gRPC methods that should be implemented for use with NodeServiceServer.
2298    #[async_trait]
2299    pub trait NodeService: std::marker::Send + std::marker::Sync + 'static {
2300        /// -------------------------------meta service--------------------------
2301        async fn ping(
2302            &self,
2303            request: tonic::Request<super::PingRequest>,
2304        ) -> std::result::Result<tonic::Response<super::PingResponse>, tonic::Status>;
2305        async fn heal_bucket(
2306            &self,
2307            request: tonic::Request<super::HealBucketRequest>,
2308        ) -> std::result::Result<tonic::Response<super::HealBucketResponse>, tonic::Status>;
2309        async fn list_bucket(
2310            &self,
2311            request: tonic::Request<super::ListBucketRequest>,
2312        ) -> std::result::Result<tonic::Response<super::ListBucketResponse>, tonic::Status>;
2313        async fn make_bucket(
2314            &self,
2315            request: tonic::Request<super::MakeBucketRequest>,
2316        ) -> std::result::Result<tonic::Response<super::MakeBucketResponse>, tonic::Status>;
2317        async fn get_bucket_info(
2318            &self,
2319            request: tonic::Request<super::GetBucketInfoRequest>,
2320        ) -> std::result::Result<tonic::Response<super::GetBucketInfoResponse>, tonic::Status>;
2321        async fn delete_bucket(
2322            &self,
2323            request: tonic::Request<super::DeleteBucketRequest>,
2324        ) -> std::result::Result<tonic::Response<super::DeleteBucketResponse>, tonic::Status>;
2325        async fn read_all(
2326            &self,
2327            request: tonic::Request<super::ReadAllRequest>,
2328        ) -> std::result::Result<tonic::Response<super::ReadAllResponse>, tonic::Status>;
2329        async fn write_all(
2330            &self,
2331            request: tonic::Request<super::WriteAllRequest>,
2332        ) -> std::result::Result<tonic::Response<super::WriteAllResponse>, tonic::Status>;
2333        async fn delete(
2334            &self,
2335            request: tonic::Request<super::DeleteRequest>,
2336        ) -> std::result::Result<tonic::Response<super::DeleteResponse>, tonic::Status>;
2337        async fn verify_file(
2338            &self,
2339            request: tonic::Request<super::VerifyFileRequest>,
2340        ) -> std::result::Result<tonic::Response<super::VerifyFileResponse>, tonic::Status>;
2341        async fn check_parts(
2342            &self,
2343            request: tonic::Request<super::CheckPartsRequest>,
2344        ) -> std::result::Result<tonic::Response<super::CheckPartsResponse>, tonic::Status>;
2345        async fn rename_part(
2346            &self,
2347            request: tonic::Request<super::RenamePartRequest>,
2348        ) -> std::result::Result<tonic::Response<super::RenamePartResponse>, tonic::Status>;
2349        async fn rename_file(
2350            &self,
2351            request: tonic::Request<super::RenameFileRequest>,
2352        ) -> std::result::Result<tonic::Response<super::RenameFileResponse>, tonic::Status>;
2353        async fn write(
2354            &self,
2355            request: tonic::Request<super::WriteRequest>,
2356        ) -> std::result::Result<tonic::Response<super::WriteResponse>, tonic::Status>;
2357        /// Server streaming response type for the WriteStream method.
2358        type WriteStreamStream: tonic::codegen::tokio_stream::Stream<Item = std::result::Result<super::WriteResponse, tonic::Status>>
2359            + std::marker::Send
2360            + 'static;
2361        async fn write_stream(
2362            &self,
2363            request: tonic::Request<tonic::Streaming<super::WriteRequest>>,
2364        ) -> std::result::Result<tonic::Response<Self::WriteStreamStream>, tonic::Status>;
2365        /// Server streaming response type for the ReadAt method.
2366        type ReadAtStream: tonic::codegen::tokio_stream::Stream<Item = std::result::Result<super::ReadAtResponse, tonic::Status>>
2367            + std::marker::Send
2368            + 'static;
2369        ///  rpc Append(AppendRequest) returns (AppendResponse) {};
2370        async fn read_at(
2371            &self,
2372            request: tonic::Request<tonic::Streaming<super::ReadAtRequest>>,
2373        ) -> std::result::Result<tonic::Response<Self::ReadAtStream>, tonic::Status>;
2374        async fn list_dir(
2375            &self,
2376            request: tonic::Request<super::ListDirRequest>,
2377        ) -> std::result::Result<tonic::Response<super::ListDirResponse>, tonic::Status>;
2378        /// Server streaming response type for the WalkDir method.
2379        type WalkDirStream: tonic::codegen::tokio_stream::Stream<Item = std::result::Result<super::WalkDirResponse, tonic::Status>>
2380            + std::marker::Send
2381            + 'static;
2382        async fn walk_dir(
2383            &self,
2384            request: tonic::Request<super::WalkDirRequest>,
2385        ) -> std::result::Result<tonic::Response<Self::WalkDirStream>, tonic::Status>;
2386        async fn rename_data(
2387            &self,
2388            request: tonic::Request<super::RenameDataRequest>,
2389        ) -> std::result::Result<tonic::Response<super::RenameDataResponse>, tonic::Status>;
2390        async fn make_volumes(
2391            &self,
2392            request: tonic::Request<super::MakeVolumesRequest>,
2393        ) -> std::result::Result<tonic::Response<super::MakeVolumesResponse>, tonic::Status>;
2394        async fn make_volume(
2395            &self,
2396            request: tonic::Request<super::MakeVolumeRequest>,
2397        ) -> std::result::Result<tonic::Response<super::MakeVolumeResponse>, tonic::Status>;
2398        async fn list_volumes(
2399            &self,
2400            request: tonic::Request<super::ListVolumesRequest>,
2401        ) -> std::result::Result<tonic::Response<super::ListVolumesResponse>, tonic::Status>;
2402        async fn stat_volume(
2403            &self,
2404            request: tonic::Request<super::StatVolumeRequest>,
2405        ) -> std::result::Result<tonic::Response<super::StatVolumeResponse>, tonic::Status>;
2406        async fn delete_paths(
2407            &self,
2408            request: tonic::Request<super::DeletePathsRequest>,
2409        ) -> std::result::Result<tonic::Response<super::DeletePathsResponse>, tonic::Status>;
2410        async fn update_metadata(
2411            &self,
2412            request: tonic::Request<super::UpdateMetadataRequest>,
2413        ) -> std::result::Result<tonic::Response<super::UpdateMetadataResponse>, tonic::Status>;
2414        async fn write_metadata(
2415            &self,
2416            request: tonic::Request<super::WriteMetadataRequest>,
2417        ) -> std::result::Result<tonic::Response<super::WriteMetadataResponse>, tonic::Status>;
2418        async fn read_version(
2419            &self,
2420            request: tonic::Request<super::ReadVersionRequest>,
2421        ) -> std::result::Result<tonic::Response<super::ReadVersionResponse>, tonic::Status>;
2422        async fn read_xl(
2423            &self,
2424            request: tonic::Request<super::ReadXlRequest>,
2425        ) -> std::result::Result<tonic::Response<super::ReadXlResponse>, tonic::Status>;
2426        async fn delete_version(
2427            &self,
2428            request: tonic::Request<super::DeleteVersionRequest>,
2429        ) -> std::result::Result<tonic::Response<super::DeleteVersionResponse>, tonic::Status>;
2430        async fn delete_versions(
2431            &self,
2432            request: tonic::Request<super::DeleteVersionsRequest>,
2433        ) -> std::result::Result<tonic::Response<super::DeleteVersionsResponse>, tonic::Status>;
2434        async fn read_multiple(
2435            &self,
2436            request: tonic::Request<super::ReadMultipleRequest>,
2437        ) -> std::result::Result<tonic::Response<super::ReadMultipleResponse>, tonic::Status>;
2438        async fn delete_volume(
2439            &self,
2440            request: tonic::Request<super::DeleteVolumeRequest>,
2441        ) -> std::result::Result<tonic::Response<super::DeleteVolumeResponse>, tonic::Status>;
2442        async fn disk_info(
2443            &self,
2444            request: tonic::Request<super::DiskInfoRequest>,
2445        ) -> std::result::Result<tonic::Response<super::DiskInfoResponse>, tonic::Status>;
2446        /// Server streaming response type for the NsScanner method.
2447        type NsScannerStream: tonic::codegen::tokio_stream::Stream<Item = std::result::Result<super::NsScannerResponse, tonic::Status>>
2448            + std::marker::Send
2449            + 'static;
2450        async fn ns_scanner(
2451            &self,
2452            request: tonic::Request<tonic::Streaming<super::NsScannerRequest>>,
2453        ) -> std::result::Result<tonic::Response<Self::NsScannerStream>, tonic::Status>;
2454        async fn lock(
2455            &self,
2456            request: tonic::Request<super::GenerallyLockRequest>,
2457        ) -> std::result::Result<tonic::Response<super::GenerallyLockResponse>, tonic::Status>;
2458        async fn un_lock(
2459            &self,
2460            request: tonic::Request<super::GenerallyLockRequest>,
2461        ) -> std::result::Result<tonic::Response<super::GenerallyLockResponse>, tonic::Status>;
2462        async fn r_lock(
2463            &self,
2464            request: tonic::Request<super::GenerallyLockRequest>,
2465        ) -> std::result::Result<tonic::Response<super::GenerallyLockResponse>, tonic::Status>;
2466        async fn r_un_lock(
2467            &self,
2468            request: tonic::Request<super::GenerallyLockRequest>,
2469        ) -> std::result::Result<tonic::Response<super::GenerallyLockResponse>, tonic::Status>;
2470        async fn force_un_lock(
2471            &self,
2472            request: tonic::Request<super::GenerallyLockRequest>,
2473        ) -> std::result::Result<tonic::Response<super::GenerallyLockResponse>, tonic::Status>;
2474        async fn refresh(
2475            &self,
2476            request: tonic::Request<super::GenerallyLockRequest>,
2477        ) -> std::result::Result<tonic::Response<super::GenerallyLockResponse>, tonic::Status>;
2478        async fn local_storage_info(
2479            &self,
2480            request: tonic::Request<super::LocalStorageInfoRequest>,
2481        ) -> std::result::Result<tonic::Response<super::LocalStorageInfoResponse>, tonic::Status>;
2482        async fn server_info(
2483            &self,
2484            request: tonic::Request<super::ServerInfoRequest>,
2485        ) -> std::result::Result<tonic::Response<super::ServerInfoResponse>, tonic::Status>;
2486        async fn get_cpus(
2487            &self,
2488            request: tonic::Request<super::GetCpusRequest>,
2489        ) -> std::result::Result<tonic::Response<super::GetCpusResponse>, tonic::Status>;
2490        async fn get_net_info(
2491            &self,
2492            request: tonic::Request<super::GetNetInfoRequest>,
2493        ) -> std::result::Result<tonic::Response<super::GetNetInfoResponse>, tonic::Status>;
2494        async fn get_partitions(
2495            &self,
2496            request: tonic::Request<super::GetPartitionsRequest>,
2497        ) -> std::result::Result<tonic::Response<super::GetPartitionsResponse>, tonic::Status>;
2498        async fn get_os_info(
2499            &self,
2500            request: tonic::Request<super::GetOsInfoRequest>,
2501        ) -> std::result::Result<tonic::Response<super::GetOsInfoResponse>, tonic::Status>;
2502        async fn get_se_linux_info(
2503            &self,
2504            request: tonic::Request<super::GetSeLinuxInfoRequest>,
2505        ) -> std::result::Result<tonic::Response<super::GetSeLinuxInfoResponse>, tonic::Status>;
2506        async fn get_sys_config(
2507            &self,
2508            request: tonic::Request<super::GetSysConfigRequest>,
2509        ) -> std::result::Result<tonic::Response<super::GetSysConfigResponse>, tonic::Status>;
2510        async fn get_sys_errors(
2511            &self,
2512            request: tonic::Request<super::GetSysErrorsRequest>,
2513        ) -> std::result::Result<tonic::Response<super::GetSysErrorsResponse>, tonic::Status>;
2514        async fn get_mem_info(
2515            &self,
2516            request: tonic::Request<super::GetMemInfoRequest>,
2517        ) -> std::result::Result<tonic::Response<super::GetMemInfoResponse>, tonic::Status>;
2518        async fn get_metrics(
2519            &self,
2520            request: tonic::Request<super::GetMetricsRequest>,
2521        ) -> std::result::Result<tonic::Response<super::GetMetricsResponse>, tonic::Status>;
2522        async fn get_proc_info(
2523            &self,
2524            request: tonic::Request<super::GetProcInfoRequest>,
2525        ) -> std::result::Result<tonic::Response<super::GetProcInfoResponse>, tonic::Status>;
2526        async fn start_profiling(
2527            &self,
2528            request: tonic::Request<super::StartProfilingRequest>,
2529        ) -> std::result::Result<tonic::Response<super::StartProfilingResponse>, tonic::Status>;
2530        async fn download_profile_data(
2531            &self,
2532            request: tonic::Request<super::DownloadProfileDataRequest>,
2533        ) -> std::result::Result<tonic::Response<super::DownloadProfileDataResponse>, tonic::Status>;
2534        async fn get_bucket_stats(
2535            &self,
2536            request: tonic::Request<super::GetBucketStatsDataRequest>,
2537        ) -> std::result::Result<tonic::Response<super::GetBucketStatsDataResponse>, tonic::Status>;
2538        async fn get_sr_metrics(
2539            &self,
2540            request: tonic::Request<super::GetSrMetricsDataRequest>,
2541        ) -> std::result::Result<tonic::Response<super::GetSrMetricsDataResponse>, tonic::Status>;
2542        async fn get_all_bucket_stats(
2543            &self,
2544            request: tonic::Request<super::GetAllBucketStatsRequest>,
2545        ) -> std::result::Result<tonic::Response<super::GetAllBucketStatsResponse>, tonic::Status>;
2546        async fn load_bucket_metadata(
2547            &self,
2548            request: tonic::Request<super::LoadBucketMetadataRequest>,
2549        ) -> std::result::Result<tonic::Response<super::LoadBucketMetadataResponse>, tonic::Status>;
2550        async fn delete_bucket_metadata(
2551            &self,
2552            request: tonic::Request<super::DeleteBucketMetadataRequest>,
2553        ) -> std::result::Result<tonic::Response<super::DeleteBucketMetadataResponse>, tonic::Status>;
2554        async fn delete_policy(
2555            &self,
2556            request: tonic::Request<super::DeletePolicyRequest>,
2557        ) -> std::result::Result<tonic::Response<super::DeletePolicyResponse>, tonic::Status>;
2558        async fn load_policy(
2559            &self,
2560            request: tonic::Request<super::LoadPolicyRequest>,
2561        ) -> std::result::Result<tonic::Response<super::LoadPolicyResponse>, tonic::Status>;
2562        async fn load_policy_mapping(
2563            &self,
2564            request: tonic::Request<super::LoadPolicyMappingRequest>,
2565        ) -> std::result::Result<tonic::Response<super::LoadPolicyMappingResponse>, tonic::Status>;
2566        async fn delete_user(
2567            &self,
2568            request: tonic::Request<super::DeleteUserRequest>,
2569        ) -> std::result::Result<tonic::Response<super::DeleteUserResponse>, tonic::Status>;
2570        async fn delete_service_account(
2571            &self,
2572            request: tonic::Request<super::DeleteServiceAccountRequest>,
2573        ) -> std::result::Result<tonic::Response<super::DeleteServiceAccountResponse>, tonic::Status>;
2574        async fn load_user(
2575            &self,
2576            request: tonic::Request<super::LoadUserRequest>,
2577        ) -> std::result::Result<tonic::Response<super::LoadUserResponse>, tonic::Status>;
2578        async fn load_service_account(
2579            &self,
2580            request: tonic::Request<super::LoadServiceAccountRequest>,
2581        ) -> std::result::Result<tonic::Response<super::LoadServiceAccountResponse>, tonic::Status>;
2582        async fn load_group(
2583            &self,
2584            request: tonic::Request<super::LoadGroupRequest>,
2585        ) -> std::result::Result<tonic::Response<super::LoadGroupResponse>, tonic::Status>;
2586        async fn reload_site_replication_config(
2587            &self,
2588            request: tonic::Request<super::ReloadSiteReplicationConfigRequest>,
2589        ) -> std::result::Result<tonic::Response<super::ReloadSiteReplicationConfigResponse>, tonic::Status>;
2590        /// rpc VerifyBinary() returns () {};
2591        /// rpc CommitBinary() returns () {};
2592        async fn signal_service(
2593            &self,
2594            request: tonic::Request<super::SignalServiceRequest>,
2595        ) -> std::result::Result<tonic::Response<super::SignalServiceResponse>, tonic::Status>;
2596        async fn background_heal_status(
2597            &self,
2598            request: tonic::Request<super::BackgroundHealStatusRequest>,
2599        ) -> std::result::Result<tonic::Response<super::BackgroundHealStatusResponse>, tonic::Status>;
2600        async fn get_metacache_listing(
2601            &self,
2602            request: tonic::Request<super::GetMetacacheListingRequest>,
2603        ) -> std::result::Result<tonic::Response<super::GetMetacacheListingResponse>, tonic::Status>;
2604        async fn update_metacache_listing(
2605            &self,
2606            request: tonic::Request<super::UpdateMetacacheListingRequest>,
2607        ) -> std::result::Result<tonic::Response<super::UpdateMetacacheListingResponse>, tonic::Status>;
2608        async fn reload_pool_meta(
2609            &self,
2610            request: tonic::Request<super::ReloadPoolMetaRequest>,
2611        ) -> std::result::Result<tonic::Response<super::ReloadPoolMetaResponse>, tonic::Status>;
2612        async fn stop_rebalance(
2613            &self,
2614            request: tonic::Request<super::StopRebalanceRequest>,
2615        ) -> std::result::Result<tonic::Response<super::StopRebalanceResponse>, tonic::Status>;
2616        async fn load_rebalance_meta(
2617            &self,
2618            request: tonic::Request<super::LoadRebalanceMetaRequest>,
2619        ) -> std::result::Result<tonic::Response<super::LoadRebalanceMetaResponse>, tonic::Status>;
2620        async fn load_transition_tier_config(
2621            &self,
2622            request: tonic::Request<super::LoadTransitionTierConfigRequest>,
2623        ) -> std::result::Result<tonic::Response<super::LoadTransitionTierConfigResponse>, tonic::Status>;
2624    }
2625    #[derive(Debug)]
2626    pub struct NodeServiceServer<T> {
2627        inner: Arc<T>,
2628        accept_compression_encodings: EnabledCompressionEncodings,
2629        send_compression_encodings: EnabledCompressionEncodings,
2630        max_decoding_message_size: Option<usize>,
2631        max_encoding_message_size: Option<usize>,
2632    }
2633    impl<T> NodeServiceServer<T> {
2634        pub fn new(inner: T) -> Self {
2635            Self::from_arc(Arc::new(inner))
2636        }
2637        pub fn from_arc(inner: Arc<T>) -> Self {
2638            Self {
2639                inner,
2640                accept_compression_encodings: Default::default(),
2641                send_compression_encodings: Default::default(),
2642                max_decoding_message_size: None,
2643                max_encoding_message_size: None,
2644            }
2645        }
2646        pub fn with_interceptor<F>(inner: T, interceptor: F) -> InterceptedService<Self, F>
2647        where
2648            F: tonic::service::Interceptor,
2649        {
2650            InterceptedService::new(Self::new(inner), interceptor)
2651        }
2652        /// Enable decompressing requests with the given encoding.
2653        #[must_use]
2654        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
2655            self.accept_compression_encodings.enable(encoding);
2656            self
2657        }
2658        /// Compress responses with the given encoding, if the client supports it.
2659        #[must_use]
2660        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
2661            self.send_compression_encodings.enable(encoding);
2662            self
2663        }
2664        /// Limits the maximum size of a decoded message.
2665        ///
2666        /// Default: `4MB`
2667        #[must_use]
2668        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
2669            self.max_decoding_message_size = Some(limit);
2670            self
2671        }
2672        /// Limits the maximum size of an encoded message.
2673        ///
2674        /// Default: `usize::MAX`
2675        #[must_use]
2676        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
2677            self.max_encoding_message_size = Some(limit);
2678            self
2679        }
2680    }
2681    impl<T, B> tonic::codegen::Service<http::Request<B>> for NodeServiceServer<T>
2682    where
2683        T: NodeService,
2684        B: Body + std::marker::Send + 'static,
2685        B::Error: Into<StdError> + std::marker::Send + 'static,
2686    {
2687        type Response = http::Response<tonic::body::Body>;
2688        type Error = std::convert::Infallible;
2689        type Future = BoxFuture<Self::Response, Self::Error>;
2690        fn poll_ready(&mut self, _cx: &mut Context<'_>) -> Poll<std::result::Result<(), Self::Error>> {
2691            Poll::Ready(Ok(()))
2692        }
2693        fn call(&mut self, req: http::Request<B>) -> Self::Future {
2694            match req.uri().path() {
2695                "/node_service.NodeService/Ping" => {
2696                    #[allow(non_camel_case_types)]
2697                    struct PingSvc<T: NodeService>(pub Arc<T>);
2698                    impl<T: NodeService> tonic::server::UnaryService<super::PingRequest> for PingSvc<T> {
2699                        type Response = super::PingResponse;
2700                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
2701                        fn call(&mut self, request: tonic::Request<super::PingRequest>) -> Self::Future {
2702                            let inner = Arc::clone(&self.0);
2703                            let fut = async move { <T as NodeService>::ping(&inner, request).await };
2704                            Box::pin(fut)
2705                        }
2706                    }
2707                    let accept_compression_encodings = self.accept_compression_encodings;
2708                    let send_compression_encodings = self.send_compression_encodings;
2709                    let max_decoding_message_size = self.max_decoding_message_size;
2710                    let max_encoding_message_size = self.max_encoding_message_size;
2711                    let inner = self.inner.clone();
2712                    let fut = async move {
2713                        let method = PingSvc(inner);
2714                        let codec = tonic::codec::ProstCodec::default();
2715                        let mut grpc = tonic::server::Grpc::new(codec)
2716                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
2717                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
2718                        let res = grpc.unary(method, req).await;
2719                        Ok(res)
2720                    };
2721                    Box::pin(fut)
2722                }
2723                "/node_service.NodeService/HealBucket" => {
2724                    #[allow(non_camel_case_types)]
2725                    struct HealBucketSvc<T: NodeService>(pub Arc<T>);
2726                    impl<T: NodeService> tonic::server::UnaryService<super::HealBucketRequest> for HealBucketSvc<T> {
2727                        type Response = super::HealBucketResponse;
2728                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
2729                        fn call(&mut self, request: tonic::Request<super::HealBucketRequest>) -> Self::Future {
2730                            let inner = Arc::clone(&self.0);
2731                            let fut = async move { <T as NodeService>::heal_bucket(&inner, request).await };
2732                            Box::pin(fut)
2733                        }
2734                    }
2735                    let accept_compression_encodings = self.accept_compression_encodings;
2736                    let send_compression_encodings = self.send_compression_encodings;
2737                    let max_decoding_message_size = self.max_decoding_message_size;
2738                    let max_encoding_message_size = self.max_encoding_message_size;
2739                    let inner = self.inner.clone();
2740                    let fut = async move {
2741                        let method = HealBucketSvc(inner);
2742                        let codec = tonic::codec::ProstCodec::default();
2743                        let mut grpc = tonic::server::Grpc::new(codec)
2744                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
2745                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
2746                        let res = grpc.unary(method, req).await;
2747                        Ok(res)
2748                    };
2749                    Box::pin(fut)
2750                }
2751                "/node_service.NodeService/ListBucket" => {
2752                    #[allow(non_camel_case_types)]
2753                    struct ListBucketSvc<T: NodeService>(pub Arc<T>);
2754                    impl<T: NodeService> tonic::server::UnaryService<super::ListBucketRequest> for ListBucketSvc<T> {
2755                        type Response = super::ListBucketResponse;
2756                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
2757                        fn call(&mut self, request: tonic::Request<super::ListBucketRequest>) -> Self::Future {
2758                            let inner = Arc::clone(&self.0);
2759                            let fut = async move { <T as NodeService>::list_bucket(&inner, request).await };
2760                            Box::pin(fut)
2761                        }
2762                    }
2763                    let accept_compression_encodings = self.accept_compression_encodings;
2764                    let send_compression_encodings = self.send_compression_encodings;
2765                    let max_decoding_message_size = self.max_decoding_message_size;
2766                    let max_encoding_message_size = self.max_encoding_message_size;
2767                    let inner = self.inner.clone();
2768                    let fut = async move {
2769                        let method = ListBucketSvc(inner);
2770                        let codec = tonic::codec::ProstCodec::default();
2771                        let mut grpc = tonic::server::Grpc::new(codec)
2772                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
2773                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
2774                        let res = grpc.unary(method, req).await;
2775                        Ok(res)
2776                    };
2777                    Box::pin(fut)
2778                }
2779                "/node_service.NodeService/MakeBucket" => {
2780                    #[allow(non_camel_case_types)]
2781                    struct MakeBucketSvc<T: NodeService>(pub Arc<T>);
2782                    impl<T: NodeService> tonic::server::UnaryService<super::MakeBucketRequest> for MakeBucketSvc<T> {
2783                        type Response = super::MakeBucketResponse;
2784                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
2785                        fn call(&mut self, request: tonic::Request<super::MakeBucketRequest>) -> Self::Future {
2786                            let inner = Arc::clone(&self.0);
2787                            let fut = async move { <T as NodeService>::make_bucket(&inner, request).await };
2788                            Box::pin(fut)
2789                        }
2790                    }
2791                    let accept_compression_encodings = self.accept_compression_encodings;
2792                    let send_compression_encodings = self.send_compression_encodings;
2793                    let max_decoding_message_size = self.max_decoding_message_size;
2794                    let max_encoding_message_size = self.max_encoding_message_size;
2795                    let inner = self.inner.clone();
2796                    let fut = async move {
2797                        let method = MakeBucketSvc(inner);
2798                        let codec = tonic::codec::ProstCodec::default();
2799                        let mut grpc = tonic::server::Grpc::new(codec)
2800                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
2801                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
2802                        let res = grpc.unary(method, req).await;
2803                        Ok(res)
2804                    };
2805                    Box::pin(fut)
2806                }
2807                "/node_service.NodeService/GetBucketInfo" => {
2808                    #[allow(non_camel_case_types)]
2809                    struct GetBucketInfoSvc<T: NodeService>(pub Arc<T>);
2810                    impl<T: NodeService> tonic::server::UnaryService<super::GetBucketInfoRequest> for GetBucketInfoSvc<T> {
2811                        type Response = super::GetBucketInfoResponse;
2812                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
2813                        fn call(&mut self, request: tonic::Request<super::GetBucketInfoRequest>) -> Self::Future {
2814                            let inner = Arc::clone(&self.0);
2815                            let fut = async move { <T as NodeService>::get_bucket_info(&inner, request).await };
2816                            Box::pin(fut)
2817                        }
2818                    }
2819                    let accept_compression_encodings = self.accept_compression_encodings;
2820                    let send_compression_encodings = self.send_compression_encodings;
2821                    let max_decoding_message_size = self.max_decoding_message_size;
2822                    let max_encoding_message_size = self.max_encoding_message_size;
2823                    let inner = self.inner.clone();
2824                    let fut = async move {
2825                        let method = GetBucketInfoSvc(inner);
2826                        let codec = tonic::codec::ProstCodec::default();
2827                        let mut grpc = tonic::server::Grpc::new(codec)
2828                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
2829                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
2830                        let res = grpc.unary(method, req).await;
2831                        Ok(res)
2832                    };
2833                    Box::pin(fut)
2834                }
2835                "/node_service.NodeService/DeleteBucket" => {
2836                    #[allow(non_camel_case_types)]
2837                    struct DeleteBucketSvc<T: NodeService>(pub Arc<T>);
2838                    impl<T: NodeService> tonic::server::UnaryService<super::DeleteBucketRequest> for DeleteBucketSvc<T> {
2839                        type Response = super::DeleteBucketResponse;
2840                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
2841                        fn call(&mut self, request: tonic::Request<super::DeleteBucketRequest>) -> Self::Future {
2842                            let inner = Arc::clone(&self.0);
2843                            let fut = async move { <T as NodeService>::delete_bucket(&inner, request).await };
2844                            Box::pin(fut)
2845                        }
2846                    }
2847                    let accept_compression_encodings = self.accept_compression_encodings;
2848                    let send_compression_encodings = self.send_compression_encodings;
2849                    let max_decoding_message_size = self.max_decoding_message_size;
2850                    let max_encoding_message_size = self.max_encoding_message_size;
2851                    let inner = self.inner.clone();
2852                    let fut = async move {
2853                        let method = DeleteBucketSvc(inner);
2854                        let codec = tonic::codec::ProstCodec::default();
2855                        let mut grpc = tonic::server::Grpc::new(codec)
2856                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
2857                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
2858                        let res = grpc.unary(method, req).await;
2859                        Ok(res)
2860                    };
2861                    Box::pin(fut)
2862                }
2863                "/node_service.NodeService/ReadAll" => {
2864                    #[allow(non_camel_case_types)]
2865                    struct ReadAllSvc<T: NodeService>(pub Arc<T>);
2866                    impl<T: NodeService> tonic::server::UnaryService<super::ReadAllRequest> for ReadAllSvc<T> {
2867                        type Response = super::ReadAllResponse;
2868                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
2869                        fn call(&mut self, request: tonic::Request<super::ReadAllRequest>) -> Self::Future {
2870                            let inner = Arc::clone(&self.0);
2871                            let fut = async move { <T as NodeService>::read_all(&inner, request).await };
2872                            Box::pin(fut)
2873                        }
2874                    }
2875                    let accept_compression_encodings = self.accept_compression_encodings;
2876                    let send_compression_encodings = self.send_compression_encodings;
2877                    let max_decoding_message_size = self.max_decoding_message_size;
2878                    let max_encoding_message_size = self.max_encoding_message_size;
2879                    let inner = self.inner.clone();
2880                    let fut = async move {
2881                        let method = ReadAllSvc(inner);
2882                        let codec = tonic::codec::ProstCodec::default();
2883                        let mut grpc = tonic::server::Grpc::new(codec)
2884                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
2885                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
2886                        let res = grpc.unary(method, req).await;
2887                        Ok(res)
2888                    };
2889                    Box::pin(fut)
2890                }
2891                "/node_service.NodeService/WriteAll" => {
2892                    #[allow(non_camel_case_types)]
2893                    struct WriteAllSvc<T: NodeService>(pub Arc<T>);
2894                    impl<T: NodeService> tonic::server::UnaryService<super::WriteAllRequest> for WriteAllSvc<T> {
2895                        type Response = super::WriteAllResponse;
2896                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
2897                        fn call(&mut self, request: tonic::Request<super::WriteAllRequest>) -> Self::Future {
2898                            let inner = Arc::clone(&self.0);
2899                            let fut = async move { <T as NodeService>::write_all(&inner, request).await };
2900                            Box::pin(fut)
2901                        }
2902                    }
2903                    let accept_compression_encodings = self.accept_compression_encodings;
2904                    let send_compression_encodings = self.send_compression_encodings;
2905                    let max_decoding_message_size = self.max_decoding_message_size;
2906                    let max_encoding_message_size = self.max_encoding_message_size;
2907                    let inner = self.inner.clone();
2908                    let fut = async move {
2909                        let method = WriteAllSvc(inner);
2910                        let codec = tonic::codec::ProstCodec::default();
2911                        let mut grpc = tonic::server::Grpc::new(codec)
2912                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
2913                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
2914                        let res = grpc.unary(method, req).await;
2915                        Ok(res)
2916                    };
2917                    Box::pin(fut)
2918                }
2919                "/node_service.NodeService/Delete" => {
2920                    #[allow(non_camel_case_types)]
2921                    struct DeleteSvc<T: NodeService>(pub Arc<T>);
2922                    impl<T: NodeService> tonic::server::UnaryService<super::DeleteRequest> for DeleteSvc<T> {
2923                        type Response = super::DeleteResponse;
2924                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
2925                        fn call(&mut self, request: tonic::Request<super::DeleteRequest>) -> Self::Future {
2926                            let inner = Arc::clone(&self.0);
2927                            let fut = async move { <T as NodeService>::delete(&inner, request).await };
2928                            Box::pin(fut)
2929                        }
2930                    }
2931                    let accept_compression_encodings = self.accept_compression_encodings;
2932                    let send_compression_encodings = self.send_compression_encodings;
2933                    let max_decoding_message_size = self.max_decoding_message_size;
2934                    let max_encoding_message_size = self.max_encoding_message_size;
2935                    let inner = self.inner.clone();
2936                    let fut = async move {
2937                        let method = DeleteSvc(inner);
2938                        let codec = tonic::codec::ProstCodec::default();
2939                        let mut grpc = tonic::server::Grpc::new(codec)
2940                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
2941                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
2942                        let res = grpc.unary(method, req).await;
2943                        Ok(res)
2944                    };
2945                    Box::pin(fut)
2946                }
2947                "/node_service.NodeService/VerifyFile" => {
2948                    #[allow(non_camel_case_types)]
2949                    struct VerifyFileSvc<T: NodeService>(pub Arc<T>);
2950                    impl<T: NodeService> tonic::server::UnaryService<super::VerifyFileRequest> for VerifyFileSvc<T> {
2951                        type Response = super::VerifyFileResponse;
2952                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
2953                        fn call(&mut self, request: tonic::Request<super::VerifyFileRequest>) -> Self::Future {
2954                            let inner = Arc::clone(&self.0);
2955                            let fut = async move { <T as NodeService>::verify_file(&inner, request).await };
2956                            Box::pin(fut)
2957                        }
2958                    }
2959                    let accept_compression_encodings = self.accept_compression_encodings;
2960                    let send_compression_encodings = self.send_compression_encodings;
2961                    let max_decoding_message_size = self.max_decoding_message_size;
2962                    let max_encoding_message_size = self.max_encoding_message_size;
2963                    let inner = self.inner.clone();
2964                    let fut = async move {
2965                        let method = VerifyFileSvc(inner);
2966                        let codec = tonic::codec::ProstCodec::default();
2967                        let mut grpc = tonic::server::Grpc::new(codec)
2968                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
2969                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
2970                        let res = grpc.unary(method, req).await;
2971                        Ok(res)
2972                    };
2973                    Box::pin(fut)
2974                }
2975                "/node_service.NodeService/CheckParts" => {
2976                    #[allow(non_camel_case_types)]
2977                    struct CheckPartsSvc<T: NodeService>(pub Arc<T>);
2978                    impl<T: NodeService> tonic::server::UnaryService<super::CheckPartsRequest> for CheckPartsSvc<T> {
2979                        type Response = super::CheckPartsResponse;
2980                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
2981                        fn call(&mut self, request: tonic::Request<super::CheckPartsRequest>) -> Self::Future {
2982                            let inner = Arc::clone(&self.0);
2983                            let fut = async move { <T as NodeService>::check_parts(&inner, request).await };
2984                            Box::pin(fut)
2985                        }
2986                    }
2987                    let accept_compression_encodings = self.accept_compression_encodings;
2988                    let send_compression_encodings = self.send_compression_encodings;
2989                    let max_decoding_message_size = self.max_decoding_message_size;
2990                    let max_encoding_message_size = self.max_encoding_message_size;
2991                    let inner = self.inner.clone();
2992                    let fut = async move {
2993                        let method = CheckPartsSvc(inner);
2994                        let codec = tonic::codec::ProstCodec::default();
2995                        let mut grpc = tonic::server::Grpc::new(codec)
2996                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
2997                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
2998                        let res = grpc.unary(method, req).await;
2999                        Ok(res)
3000                    };
3001                    Box::pin(fut)
3002                }
3003                "/node_service.NodeService/RenamePart" => {
3004                    #[allow(non_camel_case_types)]
3005                    struct RenamePartSvc<T: NodeService>(pub Arc<T>);
3006                    impl<T: NodeService> tonic::server::UnaryService<super::RenamePartRequest> for RenamePartSvc<T> {
3007                        type Response = super::RenamePartResponse;
3008                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3009                        fn call(&mut self, request: tonic::Request<super::RenamePartRequest>) -> Self::Future {
3010                            let inner = Arc::clone(&self.0);
3011                            let fut = async move { <T as NodeService>::rename_part(&inner, request).await };
3012                            Box::pin(fut)
3013                        }
3014                    }
3015                    let accept_compression_encodings = self.accept_compression_encodings;
3016                    let send_compression_encodings = self.send_compression_encodings;
3017                    let max_decoding_message_size = self.max_decoding_message_size;
3018                    let max_encoding_message_size = self.max_encoding_message_size;
3019                    let inner = self.inner.clone();
3020                    let fut = async move {
3021                        let method = RenamePartSvc(inner);
3022                        let codec = tonic::codec::ProstCodec::default();
3023                        let mut grpc = tonic::server::Grpc::new(codec)
3024                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3025                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3026                        let res = grpc.unary(method, req).await;
3027                        Ok(res)
3028                    };
3029                    Box::pin(fut)
3030                }
3031                "/node_service.NodeService/RenameFile" => {
3032                    #[allow(non_camel_case_types)]
3033                    struct RenameFileSvc<T: NodeService>(pub Arc<T>);
3034                    impl<T: NodeService> tonic::server::UnaryService<super::RenameFileRequest> for RenameFileSvc<T> {
3035                        type Response = super::RenameFileResponse;
3036                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3037                        fn call(&mut self, request: tonic::Request<super::RenameFileRequest>) -> Self::Future {
3038                            let inner = Arc::clone(&self.0);
3039                            let fut = async move { <T as NodeService>::rename_file(&inner, request).await };
3040                            Box::pin(fut)
3041                        }
3042                    }
3043                    let accept_compression_encodings = self.accept_compression_encodings;
3044                    let send_compression_encodings = self.send_compression_encodings;
3045                    let max_decoding_message_size = self.max_decoding_message_size;
3046                    let max_encoding_message_size = self.max_encoding_message_size;
3047                    let inner = self.inner.clone();
3048                    let fut = async move {
3049                        let method = RenameFileSvc(inner);
3050                        let codec = tonic::codec::ProstCodec::default();
3051                        let mut grpc = tonic::server::Grpc::new(codec)
3052                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3053                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3054                        let res = grpc.unary(method, req).await;
3055                        Ok(res)
3056                    };
3057                    Box::pin(fut)
3058                }
3059                "/node_service.NodeService/Write" => {
3060                    #[allow(non_camel_case_types)]
3061                    struct WriteSvc<T: NodeService>(pub Arc<T>);
3062                    impl<T: NodeService> tonic::server::UnaryService<super::WriteRequest> for WriteSvc<T> {
3063                        type Response = super::WriteResponse;
3064                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3065                        fn call(&mut self, request: tonic::Request<super::WriteRequest>) -> Self::Future {
3066                            let inner = Arc::clone(&self.0);
3067                            let fut = async move { <T as NodeService>::write(&inner, request).await };
3068                            Box::pin(fut)
3069                        }
3070                    }
3071                    let accept_compression_encodings = self.accept_compression_encodings;
3072                    let send_compression_encodings = self.send_compression_encodings;
3073                    let max_decoding_message_size = self.max_decoding_message_size;
3074                    let max_encoding_message_size = self.max_encoding_message_size;
3075                    let inner = self.inner.clone();
3076                    let fut = async move {
3077                        let method = WriteSvc(inner);
3078                        let codec = tonic::codec::ProstCodec::default();
3079                        let mut grpc = tonic::server::Grpc::new(codec)
3080                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3081                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3082                        let res = grpc.unary(method, req).await;
3083                        Ok(res)
3084                    };
3085                    Box::pin(fut)
3086                }
3087                "/node_service.NodeService/WriteStream" => {
3088                    #[allow(non_camel_case_types)]
3089                    struct WriteStreamSvc<T: NodeService>(pub Arc<T>);
3090                    impl<T: NodeService> tonic::server::StreamingService<super::WriteRequest> for WriteStreamSvc<T> {
3091                        type Response = super::WriteResponse;
3092                        type ResponseStream = T::WriteStreamStream;
3093                        type Future = BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
3094                        fn call(&mut self, request: tonic::Request<tonic::Streaming<super::WriteRequest>>) -> Self::Future {
3095                            let inner = Arc::clone(&self.0);
3096                            let fut = async move { <T as NodeService>::write_stream(&inner, request).await };
3097                            Box::pin(fut)
3098                        }
3099                    }
3100                    let accept_compression_encodings = self.accept_compression_encodings;
3101                    let send_compression_encodings = self.send_compression_encodings;
3102                    let max_decoding_message_size = self.max_decoding_message_size;
3103                    let max_encoding_message_size = self.max_encoding_message_size;
3104                    let inner = self.inner.clone();
3105                    let fut = async move {
3106                        let method = WriteStreamSvc(inner);
3107                        let codec = tonic::codec::ProstCodec::default();
3108                        let mut grpc = tonic::server::Grpc::new(codec)
3109                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3110                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3111                        let res = grpc.streaming(method, req).await;
3112                        Ok(res)
3113                    };
3114                    Box::pin(fut)
3115                }
3116                "/node_service.NodeService/ReadAt" => {
3117                    #[allow(non_camel_case_types)]
3118                    struct ReadAtSvc<T: NodeService>(pub Arc<T>);
3119                    impl<T: NodeService> tonic::server::StreamingService<super::ReadAtRequest> for ReadAtSvc<T> {
3120                        type Response = super::ReadAtResponse;
3121                        type ResponseStream = T::ReadAtStream;
3122                        type Future = BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
3123                        fn call(&mut self, request: tonic::Request<tonic::Streaming<super::ReadAtRequest>>) -> Self::Future {
3124                            let inner = Arc::clone(&self.0);
3125                            let fut = async move { <T as NodeService>::read_at(&inner, request).await };
3126                            Box::pin(fut)
3127                        }
3128                    }
3129                    let accept_compression_encodings = self.accept_compression_encodings;
3130                    let send_compression_encodings = self.send_compression_encodings;
3131                    let max_decoding_message_size = self.max_decoding_message_size;
3132                    let max_encoding_message_size = self.max_encoding_message_size;
3133                    let inner = self.inner.clone();
3134                    let fut = async move {
3135                        let method = ReadAtSvc(inner);
3136                        let codec = tonic::codec::ProstCodec::default();
3137                        let mut grpc = tonic::server::Grpc::new(codec)
3138                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3139                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3140                        let res = grpc.streaming(method, req).await;
3141                        Ok(res)
3142                    };
3143                    Box::pin(fut)
3144                }
3145                "/node_service.NodeService/ListDir" => {
3146                    #[allow(non_camel_case_types)]
3147                    struct ListDirSvc<T: NodeService>(pub Arc<T>);
3148                    impl<T: NodeService> tonic::server::UnaryService<super::ListDirRequest> for ListDirSvc<T> {
3149                        type Response = super::ListDirResponse;
3150                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3151                        fn call(&mut self, request: tonic::Request<super::ListDirRequest>) -> Self::Future {
3152                            let inner = Arc::clone(&self.0);
3153                            let fut = async move { <T as NodeService>::list_dir(&inner, request).await };
3154                            Box::pin(fut)
3155                        }
3156                    }
3157                    let accept_compression_encodings = self.accept_compression_encodings;
3158                    let send_compression_encodings = self.send_compression_encodings;
3159                    let max_decoding_message_size = self.max_decoding_message_size;
3160                    let max_encoding_message_size = self.max_encoding_message_size;
3161                    let inner = self.inner.clone();
3162                    let fut = async move {
3163                        let method = ListDirSvc(inner);
3164                        let codec = tonic::codec::ProstCodec::default();
3165                        let mut grpc = tonic::server::Grpc::new(codec)
3166                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3167                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3168                        let res = grpc.unary(method, req).await;
3169                        Ok(res)
3170                    };
3171                    Box::pin(fut)
3172                }
3173                "/node_service.NodeService/WalkDir" => {
3174                    #[allow(non_camel_case_types)]
3175                    struct WalkDirSvc<T: NodeService>(pub Arc<T>);
3176                    impl<T: NodeService> tonic::server::ServerStreamingService<super::WalkDirRequest> for WalkDirSvc<T> {
3177                        type Response = super::WalkDirResponse;
3178                        type ResponseStream = T::WalkDirStream;
3179                        type Future = BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
3180                        fn call(&mut self, request: tonic::Request<super::WalkDirRequest>) -> Self::Future {
3181                            let inner = Arc::clone(&self.0);
3182                            let fut = async move { <T as NodeService>::walk_dir(&inner, request).await };
3183                            Box::pin(fut)
3184                        }
3185                    }
3186                    let accept_compression_encodings = self.accept_compression_encodings;
3187                    let send_compression_encodings = self.send_compression_encodings;
3188                    let max_decoding_message_size = self.max_decoding_message_size;
3189                    let max_encoding_message_size = self.max_encoding_message_size;
3190                    let inner = self.inner.clone();
3191                    let fut = async move {
3192                        let method = WalkDirSvc(inner);
3193                        let codec = tonic::codec::ProstCodec::default();
3194                        let mut grpc = tonic::server::Grpc::new(codec)
3195                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3196                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3197                        let res = grpc.server_streaming(method, req).await;
3198                        Ok(res)
3199                    };
3200                    Box::pin(fut)
3201                }
3202                "/node_service.NodeService/RenameData" => {
3203                    #[allow(non_camel_case_types)]
3204                    struct RenameDataSvc<T: NodeService>(pub Arc<T>);
3205                    impl<T: NodeService> tonic::server::UnaryService<super::RenameDataRequest> for RenameDataSvc<T> {
3206                        type Response = super::RenameDataResponse;
3207                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3208                        fn call(&mut self, request: tonic::Request<super::RenameDataRequest>) -> Self::Future {
3209                            let inner = Arc::clone(&self.0);
3210                            let fut = async move { <T as NodeService>::rename_data(&inner, request).await };
3211                            Box::pin(fut)
3212                        }
3213                    }
3214                    let accept_compression_encodings = self.accept_compression_encodings;
3215                    let send_compression_encodings = self.send_compression_encodings;
3216                    let max_decoding_message_size = self.max_decoding_message_size;
3217                    let max_encoding_message_size = self.max_encoding_message_size;
3218                    let inner = self.inner.clone();
3219                    let fut = async move {
3220                        let method = RenameDataSvc(inner);
3221                        let codec = tonic::codec::ProstCodec::default();
3222                        let mut grpc = tonic::server::Grpc::new(codec)
3223                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3224                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3225                        let res = grpc.unary(method, req).await;
3226                        Ok(res)
3227                    };
3228                    Box::pin(fut)
3229                }
3230                "/node_service.NodeService/MakeVolumes" => {
3231                    #[allow(non_camel_case_types)]
3232                    struct MakeVolumesSvc<T: NodeService>(pub Arc<T>);
3233                    impl<T: NodeService> tonic::server::UnaryService<super::MakeVolumesRequest> for MakeVolumesSvc<T> {
3234                        type Response = super::MakeVolumesResponse;
3235                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3236                        fn call(&mut self, request: tonic::Request<super::MakeVolumesRequest>) -> Self::Future {
3237                            let inner = Arc::clone(&self.0);
3238                            let fut = async move { <T as NodeService>::make_volumes(&inner, request).await };
3239                            Box::pin(fut)
3240                        }
3241                    }
3242                    let accept_compression_encodings = self.accept_compression_encodings;
3243                    let send_compression_encodings = self.send_compression_encodings;
3244                    let max_decoding_message_size = self.max_decoding_message_size;
3245                    let max_encoding_message_size = self.max_encoding_message_size;
3246                    let inner = self.inner.clone();
3247                    let fut = async move {
3248                        let method = MakeVolumesSvc(inner);
3249                        let codec = tonic::codec::ProstCodec::default();
3250                        let mut grpc = tonic::server::Grpc::new(codec)
3251                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3252                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3253                        let res = grpc.unary(method, req).await;
3254                        Ok(res)
3255                    };
3256                    Box::pin(fut)
3257                }
3258                "/node_service.NodeService/MakeVolume" => {
3259                    #[allow(non_camel_case_types)]
3260                    struct MakeVolumeSvc<T: NodeService>(pub Arc<T>);
3261                    impl<T: NodeService> tonic::server::UnaryService<super::MakeVolumeRequest> for MakeVolumeSvc<T> {
3262                        type Response = super::MakeVolumeResponse;
3263                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3264                        fn call(&mut self, request: tonic::Request<super::MakeVolumeRequest>) -> Self::Future {
3265                            let inner = Arc::clone(&self.0);
3266                            let fut = async move { <T as NodeService>::make_volume(&inner, request).await };
3267                            Box::pin(fut)
3268                        }
3269                    }
3270                    let accept_compression_encodings = self.accept_compression_encodings;
3271                    let send_compression_encodings = self.send_compression_encodings;
3272                    let max_decoding_message_size = self.max_decoding_message_size;
3273                    let max_encoding_message_size = self.max_encoding_message_size;
3274                    let inner = self.inner.clone();
3275                    let fut = async move {
3276                        let method = MakeVolumeSvc(inner);
3277                        let codec = tonic::codec::ProstCodec::default();
3278                        let mut grpc = tonic::server::Grpc::new(codec)
3279                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3280                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3281                        let res = grpc.unary(method, req).await;
3282                        Ok(res)
3283                    };
3284                    Box::pin(fut)
3285                }
3286                "/node_service.NodeService/ListVolumes" => {
3287                    #[allow(non_camel_case_types)]
3288                    struct ListVolumesSvc<T: NodeService>(pub Arc<T>);
3289                    impl<T: NodeService> tonic::server::UnaryService<super::ListVolumesRequest> for ListVolumesSvc<T> {
3290                        type Response = super::ListVolumesResponse;
3291                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3292                        fn call(&mut self, request: tonic::Request<super::ListVolumesRequest>) -> Self::Future {
3293                            let inner = Arc::clone(&self.0);
3294                            let fut = async move { <T as NodeService>::list_volumes(&inner, request).await };
3295                            Box::pin(fut)
3296                        }
3297                    }
3298                    let accept_compression_encodings = self.accept_compression_encodings;
3299                    let send_compression_encodings = self.send_compression_encodings;
3300                    let max_decoding_message_size = self.max_decoding_message_size;
3301                    let max_encoding_message_size = self.max_encoding_message_size;
3302                    let inner = self.inner.clone();
3303                    let fut = async move {
3304                        let method = ListVolumesSvc(inner);
3305                        let codec = tonic::codec::ProstCodec::default();
3306                        let mut grpc = tonic::server::Grpc::new(codec)
3307                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3308                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3309                        let res = grpc.unary(method, req).await;
3310                        Ok(res)
3311                    };
3312                    Box::pin(fut)
3313                }
3314                "/node_service.NodeService/StatVolume" => {
3315                    #[allow(non_camel_case_types)]
3316                    struct StatVolumeSvc<T: NodeService>(pub Arc<T>);
3317                    impl<T: NodeService> tonic::server::UnaryService<super::StatVolumeRequest> for StatVolumeSvc<T> {
3318                        type Response = super::StatVolumeResponse;
3319                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3320                        fn call(&mut self, request: tonic::Request<super::StatVolumeRequest>) -> Self::Future {
3321                            let inner = Arc::clone(&self.0);
3322                            let fut = async move { <T as NodeService>::stat_volume(&inner, request).await };
3323                            Box::pin(fut)
3324                        }
3325                    }
3326                    let accept_compression_encodings = self.accept_compression_encodings;
3327                    let send_compression_encodings = self.send_compression_encodings;
3328                    let max_decoding_message_size = self.max_decoding_message_size;
3329                    let max_encoding_message_size = self.max_encoding_message_size;
3330                    let inner = self.inner.clone();
3331                    let fut = async move {
3332                        let method = StatVolumeSvc(inner);
3333                        let codec = tonic::codec::ProstCodec::default();
3334                        let mut grpc = tonic::server::Grpc::new(codec)
3335                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3336                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3337                        let res = grpc.unary(method, req).await;
3338                        Ok(res)
3339                    };
3340                    Box::pin(fut)
3341                }
3342                "/node_service.NodeService/DeletePaths" => {
3343                    #[allow(non_camel_case_types)]
3344                    struct DeletePathsSvc<T: NodeService>(pub Arc<T>);
3345                    impl<T: NodeService> tonic::server::UnaryService<super::DeletePathsRequest> for DeletePathsSvc<T> {
3346                        type Response = super::DeletePathsResponse;
3347                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3348                        fn call(&mut self, request: tonic::Request<super::DeletePathsRequest>) -> Self::Future {
3349                            let inner = Arc::clone(&self.0);
3350                            let fut = async move { <T as NodeService>::delete_paths(&inner, request).await };
3351                            Box::pin(fut)
3352                        }
3353                    }
3354                    let accept_compression_encodings = self.accept_compression_encodings;
3355                    let send_compression_encodings = self.send_compression_encodings;
3356                    let max_decoding_message_size = self.max_decoding_message_size;
3357                    let max_encoding_message_size = self.max_encoding_message_size;
3358                    let inner = self.inner.clone();
3359                    let fut = async move {
3360                        let method = DeletePathsSvc(inner);
3361                        let codec = tonic::codec::ProstCodec::default();
3362                        let mut grpc = tonic::server::Grpc::new(codec)
3363                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3364                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3365                        let res = grpc.unary(method, req).await;
3366                        Ok(res)
3367                    };
3368                    Box::pin(fut)
3369                }
3370                "/node_service.NodeService/UpdateMetadata" => {
3371                    #[allow(non_camel_case_types)]
3372                    struct UpdateMetadataSvc<T: NodeService>(pub Arc<T>);
3373                    impl<T: NodeService> tonic::server::UnaryService<super::UpdateMetadataRequest> for UpdateMetadataSvc<T> {
3374                        type Response = super::UpdateMetadataResponse;
3375                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3376                        fn call(&mut self, request: tonic::Request<super::UpdateMetadataRequest>) -> Self::Future {
3377                            let inner = Arc::clone(&self.0);
3378                            let fut = async move { <T as NodeService>::update_metadata(&inner, request).await };
3379                            Box::pin(fut)
3380                        }
3381                    }
3382                    let accept_compression_encodings = self.accept_compression_encodings;
3383                    let send_compression_encodings = self.send_compression_encodings;
3384                    let max_decoding_message_size = self.max_decoding_message_size;
3385                    let max_encoding_message_size = self.max_encoding_message_size;
3386                    let inner = self.inner.clone();
3387                    let fut = async move {
3388                        let method = UpdateMetadataSvc(inner);
3389                        let codec = tonic::codec::ProstCodec::default();
3390                        let mut grpc = tonic::server::Grpc::new(codec)
3391                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3392                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3393                        let res = grpc.unary(method, req).await;
3394                        Ok(res)
3395                    };
3396                    Box::pin(fut)
3397                }
3398                "/node_service.NodeService/WriteMetadata" => {
3399                    #[allow(non_camel_case_types)]
3400                    struct WriteMetadataSvc<T: NodeService>(pub Arc<T>);
3401                    impl<T: NodeService> tonic::server::UnaryService<super::WriteMetadataRequest> for WriteMetadataSvc<T> {
3402                        type Response = super::WriteMetadataResponse;
3403                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3404                        fn call(&mut self, request: tonic::Request<super::WriteMetadataRequest>) -> Self::Future {
3405                            let inner = Arc::clone(&self.0);
3406                            let fut = async move { <T as NodeService>::write_metadata(&inner, request).await };
3407                            Box::pin(fut)
3408                        }
3409                    }
3410                    let accept_compression_encodings = self.accept_compression_encodings;
3411                    let send_compression_encodings = self.send_compression_encodings;
3412                    let max_decoding_message_size = self.max_decoding_message_size;
3413                    let max_encoding_message_size = self.max_encoding_message_size;
3414                    let inner = self.inner.clone();
3415                    let fut = async move {
3416                        let method = WriteMetadataSvc(inner);
3417                        let codec = tonic::codec::ProstCodec::default();
3418                        let mut grpc = tonic::server::Grpc::new(codec)
3419                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3420                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3421                        let res = grpc.unary(method, req).await;
3422                        Ok(res)
3423                    };
3424                    Box::pin(fut)
3425                }
3426                "/node_service.NodeService/ReadVersion" => {
3427                    #[allow(non_camel_case_types)]
3428                    struct ReadVersionSvc<T: NodeService>(pub Arc<T>);
3429                    impl<T: NodeService> tonic::server::UnaryService<super::ReadVersionRequest> for ReadVersionSvc<T> {
3430                        type Response = super::ReadVersionResponse;
3431                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3432                        fn call(&mut self, request: tonic::Request<super::ReadVersionRequest>) -> Self::Future {
3433                            let inner = Arc::clone(&self.0);
3434                            let fut = async move { <T as NodeService>::read_version(&inner, request).await };
3435                            Box::pin(fut)
3436                        }
3437                    }
3438                    let accept_compression_encodings = self.accept_compression_encodings;
3439                    let send_compression_encodings = self.send_compression_encodings;
3440                    let max_decoding_message_size = self.max_decoding_message_size;
3441                    let max_encoding_message_size = self.max_encoding_message_size;
3442                    let inner = self.inner.clone();
3443                    let fut = async move {
3444                        let method = ReadVersionSvc(inner);
3445                        let codec = tonic::codec::ProstCodec::default();
3446                        let mut grpc = tonic::server::Grpc::new(codec)
3447                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3448                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3449                        let res = grpc.unary(method, req).await;
3450                        Ok(res)
3451                    };
3452                    Box::pin(fut)
3453                }
3454                "/node_service.NodeService/ReadXL" => {
3455                    #[allow(non_camel_case_types)]
3456                    struct ReadXLSvc<T: NodeService>(pub Arc<T>);
3457                    impl<T: NodeService> tonic::server::UnaryService<super::ReadXlRequest> for ReadXLSvc<T> {
3458                        type Response = super::ReadXlResponse;
3459                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3460                        fn call(&mut self, request: tonic::Request<super::ReadXlRequest>) -> Self::Future {
3461                            let inner = Arc::clone(&self.0);
3462                            let fut = async move { <T as NodeService>::read_xl(&inner, request).await };
3463                            Box::pin(fut)
3464                        }
3465                    }
3466                    let accept_compression_encodings = self.accept_compression_encodings;
3467                    let send_compression_encodings = self.send_compression_encodings;
3468                    let max_decoding_message_size = self.max_decoding_message_size;
3469                    let max_encoding_message_size = self.max_encoding_message_size;
3470                    let inner = self.inner.clone();
3471                    let fut = async move {
3472                        let method = ReadXLSvc(inner);
3473                        let codec = tonic::codec::ProstCodec::default();
3474                        let mut grpc = tonic::server::Grpc::new(codec)
3475                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3476                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3477                        let res = grpc.unary(method, req).await;
3478                        Ok(res)
3479                    };
3480                    Box::pin(fut)
3481                }
3482                "/node_service.NodeService/DeleteVersion" => {
3483                    #[allow(non_camel_case_types)]
3484                    struct DeleteVersionSvc<T: NodeService>(pub Arc<T>);
3485                    impl<T: NodeService> tonic::server::UnaryService<super::DeleteVersionRequest> for DeleteVersionSvc<T> {
3486                        type Response = super::DeleteVersionResponse;
3487                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3488                        fn call(&mut self, request: tonic::Request<super::DeleteVersionRequest>) -> Self::Future {
3489                            let inner = Arc::clone(&self.0);
3490                            let fut = async move { <T as NodeService>::delete_version(&inner, request).await };
3491                            Box::pin(fut)
3492                        }
3493                    }
3494                    let accept_compression_encodings = self.accept_compression_encodings;
3495                    let send_compression_encodings = self.send_compression_encodings;
3496                    let max_decoding_message_size = self.max_decoding_message_size;
3497                    let max_encoding_message_size = self.max_encoding_message_size;
3498                    let inner = self.inner.clone();
3499                    let fut = async move {
3500                        let method = DeleteVersionSvc(inner);
3501                        let codec = tonic::codec::ProstCodec::default();
3502                        let mut grpc = tonic::server::Grpc::new(codec)
3503                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3504                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3505                        let res = grpc.unary(method, req).await;
3506                        Ok(res)
3507                    };
3508                    Box::pin(fut)
3509                }
3510                "/node_service.NodeService/DeleteVersions" => {
3511                    #[allow(non_camel_case_types)]
3512                    struct DeleteVersionsSvc<T: NodeService>(pub Arc<T>);
3513                    impl<T: NodeService> tonic::server::UnaryService<super::DeleteVersionsRequest> for DeleteVersionsSvc<T> {
3514                        type Response = super::DeleteVersionsResponse;
3515                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3516                        fn call(&mut self, request: tonic::Request<super::DeleteVersionsRequest>) -> Self::Future {
3517                            let inner = Arc::clone(&self.0);
3518                            let fut = async move { <T as NodeService>::delete_versions(&inner, request).await };
3519                            Box::pin(fut)
3520                        }
3521                    }
3522                    let accept_compression_encodings = self.accept_compression_encodings;
3523                    let send_compression_encodings = self.send_compression_encodings;
3524                    let max_decoding_message_size = self.max_decoding_message_size;
3525                    let max_encoding_message_size = self.max_encoding_message_size;
3526                    let inner = self.inner.clone();
3527                    let fut = async move {
3528                        let method = DeleteVersionsSvc(inner);
3529                        let codec = tonic::codec::ProstCodec::default();
3530                        let mut grpc = tonic::server::Grpc::new(codec)
3531                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3532                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3533                        let res = grpc.unary(method, req).await;
3534                        Ok(res)
3535                    };
3536                    Box::pin(fut)
3537                }
3538                "/node_service.NodeService/ReadMultiple" => {
3539                    #[allow(non_camel_case_types)]
3540                    struct ReadMultipleSvc<T: NodeService>(pub Arc<T>);
3541                    impl<T: NodeService> tonic::server::UnaryService<super::ReadMultipleRequest> for ReadMultipleSvc<T> {
3542                        type Response = super::ReadMultipleResponse;
3543                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3544                        fn call(&mut self, request: tonic::Request<super::ReadMultipleRequest>) -> Self::Future {
3545                            let inner = Arc::clone(&self.0);
3546                            let fut = async move { <T as NodeService>::read_multiple(&inner, request).await };
3547                            Box::pin(fut)
3548                        }
3549                    }
3550                    let accept_compression_encodings = self.accept_compression_encodings;
3551                    let send_compression_encodings = self.send_compression_encodings;
3552                    let max_decoding_message_size = self.max_decoding_message_size;
3553                    let max_encoding_message_size = self.max_encoding_message_size;
3554                    let inner = self.inner.clone();
3555                    let fut = async move {
3556                        let method = ReadMultipleSvc(inner);
3557                        let codec = tonic::codec::ProstCodec::default();
3558                        let mut grpc = tonic::server::Grpc::new(codec)
3559                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3560                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3561                        let res = grpc.unary(method, req).await;
3562                        Ok(res)
3563                    };
3564                    Box::pin(fut)
3565                }
3566                "/node_service.NodeService/DeleteVolume" => {
3567                    #[allow(non_camel_case_types)]
3568                    struct DeleteVolumeSvc<T: NodeService>(pub Arc<T>);
3569                    impl<T: NodeService> tonic::server::UnaryService<super::DeleteVolumeRequest> for DeleteVolumeSvc<T> {
3570                        type Response = super::DeleteVolumeResponse;
3571                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3572                        fn call(&mut self, request: tonic::Request<super::DeleteVolumeRequest>) -> Self::Future {
3573                            let inner = Arc::clone(&self.0);
3574                            let fut = async move { <T as NodeService>::delete_volume(&inner, request).await };
3575                            Box::pin(fut)
3576                        }
3577                    }
3578                    let accept_compression_encodings = self.accept_compression_encodings;
3579                    let send_compression_encodings = self.send_compression_encodings;
3580                    let max_decoding_message_size = self.max_decoding_message_size;
3581                    let max_encoding_message_size = self.max_encoding_message_size;
3582                    let inner = self.inner.clone();
3583                    let fut = async move {
3584                        let method = DeleteVolumeSvc(inner);
3585                        let codec = tonic::codec::ProstCodec::default();
3586                        let mut grpc = tonic::server::Grpc::new(codec)
3587                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3588                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3589                        let res = grpc.unary(method, req).await;
3590                        Ok(res)
3591                    };
3592                    Box::pin(fut)
3593                }
3594                "/node_service.NodeService/DiskInfo" => {
3595                    #[allow(non_camel_case_types)]
3596                    struct DiskInfoSvc<T: NodeService>(pub Arc<T>);
3597                    impl<T: NodeService> tonic::server::UnaryService<super::DiskInfoRequest> for DiskInfoSvc<T> {
3598                        type Response = super::DiskInfoResponse;
3599                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3600                        fn call(&mut self, request: tonic::Request<super::DiskInfoRequest>) -> Self::Future {
3601                            let inner = Arc::clone(&self.0);
3602                            let fut = async move { <T as NodeService>::disk_info(&inner, request).await };
3603                            Box::pin(fut)
3604                        }
3605                    }
3606                    let accept_compression_encodings = self.accept_compression_encodings;
3607                    let send_compression_encodings = self.send_compression_encodings;
3608                    let max_decoding_message_size = self.max_decoding_message_size;
3609                    let max_encoding_message_size = self.max_encoding_message_size;
3610                    let inner = self.inner.clone();
3611                    let fut = async move {
3612                        let method = DiskInfoSvc(inner);
3613                        let codec = tonic::codec::ProstCodec::default();
3614                        let mut grpc = tonic::server::Grpc::new(codec)
3615                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3616                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3617                        let res = grpc.unary(method, req).await;
3618                        Ok(res)
3619                    };
3620                    Box::pin(fut)
3621                }
3622                "/node_service.NodeService/NsScanner" => {
3623                    #[allow(non_camel_case_types)]
3624                    struct NsScannerSvc<T: NodeService>(pub Arc<T>);
3625                    impl<T: NodeService> tonic::server::StreamingService<super::NsScannerRequest> for NsScannerSvc<T> {
3626                        type Response = super::NsScannerResponse;
3627                        type ResponseStream = T::NsScannerStream;
3628                        type Future = BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
3629                        fn call(&mut self, request: tonic::Request<tonic::Streaming<super::NsScannerRequest>>) -> Self::Future {
3630                            let inner = Arc::clone(&self.0);
3631                            let fut = async move { <T as NodeService>::ns_scanner(&inner, request).await };
3632                            Box::pin(fut)
3633                        }
3634                    }
3635                    let accept_compression_encodings = self.accept_compression_encodings;
3636                    let send_compression_encodings = self.send_compression_encodings;
3637                    let max_decoding_message_size = self.max_decoding_message_size;
3638                    let max_encoding_message_size = self.max_encoding_message_size;
3639                    let inner = self.inner.clone();
3640                    let fut = async move {
3641                        let method = NsScannerSvc(inner);
3642                        let codec = tonic::codec::ProstCodec::default();
3643                        let mut grpc = tonic::server::Grpc::new(codec)
3644                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3645                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3646                        let res = grpc.streaming(method, req).await;
3647                        Ok(res)
3648                    };
3649                    Box::pin(fut)
3650                }
3651                "/node_service.NodeService/Lock" => {
3652                    #[allow(non_camel_case_types)]
3653                    struct LockSvc<T: NodeService>(pub Arc<T>);
3654                    impl<T: NodeService> tonic::server::UnaryService<super::GenerallyLockRequest> for LockSvc<T> {
3655                        type Response = super::GenerallyLockResponse;
3656                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3657                        fn call(&mut self, request: tonic::Request<super::GenerallyLockRequest>) -> Self::Future {
3658                            let inner = Arc::clone(&self.0);
3659                            let fut = async move { <T as NodeService>::lock(&inner, request).await };
3660                            Box::pin(fut)
3661                        }
3662                    }
3663                    let accept_compression_encodings = self.accept_compression_encodings;
3664                    let send_compression_encodings = self.send_compression_encodings;
3665                    let max_decoding_message_size = self.max_decoding_message_size;
3666                    let max_encoding_message_size = self.max_encoding_message_size;
3667                    let inner = self.inner.clone();
3668                    let fut = async move {
3669                        let method = LockSvc(inner);
3670                        let codec = tonic::codec::ProstCodec::default();
3671                        let mut grpc = tonic::server::Grpc::new(codec)
3672                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3673                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3674                        let res = grpc.unary(method, req).await;
3675                        Ok(res)
3676                    };
3677                    Box::pin(fut)
3678                }
3679                "/node_service.NodeService/UnLock" => {
3680                    #[allow(non_camel_case_types)]
3681                    struct UnLockSvc<T: NodeService>(pub Arc<T>);
3682                    impl<T: NodeService> tonic::server::UnaryService<super::GenerallyLockRequest> for UnLockSvc<T> {
3683                        type Response = super::GenerallyLockResponse;
3684                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3685                        fn call(&mut self, request: tonic::Request<super::GenerallyLockRequest>) -> Self::Future {
3686                            let inner = Arc::clone(&self.0);
3687                            let fut = async move { <T as NodeService>::un_lock(&inner, request).await };
3688                            Box::pin(fut)
3689                        }
3690                    }
3691                    let accept_compression_encodings = self.accept_compression_encodings;
3692                    let send_compression_encodings = self.send_compression_encodings;
3693                    let max_decoding_message_size = self.max_decoding_message_size;
3694                    let max_encoding_message_size = self.max_encoding_message_size;
3695                    let inner = self.inner.clone();
3696                    let fut = async move {
3697                        let method = UnLockSvc(inner);
3698                        let codec = tonic::codec::ProstCodec::default();
3699                        let mut grpc = tonic::server::Grpc::new(codec)
3700                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3701                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3702                        let res = grpc.unary(method, req).await;
3703                        Ok(res)
3704                    };
3705                    Box::pin(fut)
3706                }
3707                "/node_service.NodeService/RLock" => {
3708                    #[allow(non_camel_case_types)]
3709                    struct RLockSvc<T: NodeService>(pub Arc<T>);
3710                    impl<T: NodeService> tonic::server::UnaryService<super::GenerallyLockRequest> for RLockSvc<T> {
3711                        type Response = super::GenerallyLockResponse;
3712                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3713                        fn call(&mut self, request: tonic::Request<super::GenerallyLockRequest>) -> Self::Future {
3714                            let inner = Arc::clone(&self.0);
3715                            let fut = async move { <T as NodeService>::r_lock(&inner, request).await };
3716                            Box::pin(fut)
3717                        }
3718                    }
3719                    let accept_compression_encodings = self.accept_compression_encodings;
3720                    let send_compression_encodings = self.send_compression_encodings;
3721                    let max_decoding_message_size = self.max_decoding_message_size;
3722                    let max_encoding_message_size = self.max_encoding_message_size;
3723                    let inner = self.inner.clone();
3724                    let fut = async move {
3725                        let method = RLockSvc(inner);
3726                        let codec = tonic::codec::ProstCodec::default();
3727                        let mut grpc = tonic::server::Grpc::new(codec)
3728                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3729                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3730                        let res = grpc.unary(method, req).await;
3731                        Ok(res)
3732                    };
3733                    Box::pin(fut)
3734                }
3735                "/node_service.NodeService/RUnLock" => {
3736                    #[allow(non_camel_case_types)]
3737                    struct RUnLockSvc<T: NodeService>(pub Arc<T>);
3738                    impl<T: NodeService> tonic::server::UnaryService<super::GenerallyLockRequest> for RUnLockSvc<T> {
3739                        type Response = super::GenerallyLockResponse;
3740                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3741                        fn call(&mut self, request: tonic::Request<super::GenerallyLockRequest>) -> Self::Future {
3742                            let inner = Arc::clone(&self.0);
3743                            let fut = async move { <T as NodeService>::r_un_lock(&inner, request).await };
3744                            Box::pin(fut)
3745                        }
3746                    }
3747                    let accept_compression_encodings = self.accept_compression_encodings;
3748                    let send_compression_encodings = self.send_compression_encodings;
3749                    let max_decoding_message_size = self.max_decoding_message_size;
3750                    let max_encoding_message_size = self.max_encoding_message_size;
3751                    let inner = self.inner.clone();
3752                    let fut = async move {
3753                        let method = RUnLockSvc(inner);
3754                        let codec = tonic::codec::ProstCodec::default();
3755                        let mut grpc = tonic::server::Grpc::new(codec)
3756                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3757                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3758                        let res = grpc.unary(method, req).await;
3759                        Ok(res)
3760                    };
3761                    Box::pin(fut)
3762                }
3763                "/node_service.NodeService/ForceUnLock" => {
3764                    #[allow(non_camel_case_types)]
3765                    struct ForceUnLockSvc<T: NodeService>(pub Arc<T>);
3766                    impl<T: NodeService> tonic::server::UnaryService<super::GenerallyLockRequest> for ForceUnLockSvc<T> {
3767                        type Response = super::GenerallyLockResponse;
3768                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3769                        fn call(&mut self, request: tonic::Request<super::GenerallyLockRequest>) -> Self::Future {
3770                            let inner = Arc::clone(&self.0);
3771                            let fut = async move { <T as NodeService>::force_un_lock(&inner, request).await };
3772                            Box::pin(fut)
3773                        }
3774                    }
3775                    let accept_compression_encodings = self.accept_compression_encodings;
3776                    let send_compression_encodings = self.send_compression_encodings;
3777                    let max_decoding_message_size = self.max_decoding_message_size;
3778                    let max_encoding_message_size = self.max_encoding_message_size;
3779                    let inner = self.inner.clone();
3780                    let fut = async move {
3781                        let method = ForceUnLockSvc(inner);
3782                        let codec = tonic::codec::ProstCodec::default();
3783                        let mut grpc = tonic::server::Grpc::new(codec)
3784                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3785                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3786                        let res = grpc.unary(method, req).await;
3787                        Ok(res)
3788                    };
3789                    Box::pin(fut)
3790                }
3791                "/node_service.NodeService/Refresh" => {
3792                    #[allow(non_camel_case_types)]
3793                    struct RefreshSvc<T: NodeService>(pub Arc<T>);
3794                    impl<T: NodeService> tonic::server::UnaryService<super::GenerallyLockRequest> for RefreshSvc<T> {
3795                        type Response = super::GenerallyLockResponse;
3796                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3797                        fn call(&mut self, request: tonic::Request<super::GenerallyLockRequest>) -> Self::Future {
3798                            let inner = Arc::clone(&self.0);
3799                            let fut = async move { <T as NodeService>::refresh(&inner, request).await };
3800                            Box::pin(fut)
3801                        }
3802                    }
3803                    let accept_compression_encodings = self.accept_compression_encodings;
3804                    let send_compression_encodings = self.send_compression_encodings;
3805                    let max_decoding_message_size = self.max_decoding_message_size;
3806                    let max_encoding_message_size = self.max_encoding_message_size;
3807                    let inner = self.inner.clone();
3808                    let fut = async move {
3809                        let method = RefreshSvc(inner);
3810                        let codec = tonic::codec::ProstCodec::default();
3811                        let mut grpc = tonic::server::Grpc::new(codec)
3812                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3813                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3814                        let res = grpc.unary(method, req).await;
3815                        Ok(res)
3816                    };
3817                    Box::pin(fut)
3818                }
3819                "/node_service.NodeService/LocalStorageInfo" => {
3820                    #[allow(non_camel_case_types)]
3821                    struct LocalStorageInfoSvc<T: NodeService>(pub Arc<T>);
3822                    impl<T: NodeService> tonic::server::UnaryService<super::LocalStorageInfoRequest> for LocalStorageInfoSvc<T> {
3823                        type Response = super::LocalStorageInfoResponse;
3824                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3825                        fn call(&mut self, request: tonic::Request<super::LocalStorageInfoRequest>) -> Self::Future {
3826                            let inner = Arc::clone(&self.0);
3827                            let fut = async move { <T as NodeService>::local_storage_info(&inner, request).await };
3828                            Box::pin(fut)
3829                        }
3830                    }
3831                    let accept_compression_encodings = self.accept_compression_encodings;
3832                    let send_compression_encodings = self.send_compression_encodings;
3833                    let max_decoding_message_size = self.max_decoding_message_size;
3834                    let max_encoding_message_size = self.max_encoding_message_size;
3835                    let inner = self.inner.clone();
3836                    let fut = async move {
3837                        let method = LocalStorageInfoSvc(inner);
3838                        let codec = tonic::codec::ProstCodec::default();
3839                        let mut grpc = tonic::server::Grpc::new(codec)
3840                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3841                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3842                        let res = grpc.unary(method, req).await;
3843                        Ok(res)
3844                    };
3845                    Box::pin(fut)
3846                }
3847                "/node_service.NodeService/ServerInfo" => {
3848                    #[allow(non_camel_case_types)]
3849                    struct ServerInfoSvc<T: NodeService>(pub Arc<T>);
3850                    impl<T: NodeService> tonic::server::UnaryService<super::ServerInfoRequest> for ServerInfoSvc<T> {
3851                        type Response = super::ServerInfoResponse;
3852                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3853                        fn call(&mut self, request: tonic::Request<super::ServerInfoRequest>) -> Self::Future {
3854                            let inner = Arc::clone(&self.0);
3855                            let fut = async move { <T as NodeService>::server_info(&inner, request).await };
3856                            Box::pin(fut)
3857                        }
3858                    }
3859                    let accept_compression_encodings = self.accept_compression_encodings;
3860                    let send_compression_encodings = self.send_compression_encodings;
3861                    let max_decoding_message_size = self.max_decoding_message_size;
3862                    let max_encoding_message_size = self.max_encoding_message_size;
3863                    let inner = self.inner.clone();
3864                    let fut = async move {
3865                        let method = ServerInfoSvc(inner);
3866                        let codec = tonic::codec::ProstCodec::default();
3867                        let mut grpc = tonic::server::Grpc::new(codec)
3868                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3869                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3870                        let res = grpc.unary(method, req).await;
3871                        Ok(res)
3872                    };
3873                    Box::pin(fut)
3874                }
3875                "/node_service.NodeService/GetCpus" => {
3876                    #[allow(non_camel_case_types)]
3877                    struct GetCpusSvc<T: NodeService>(pub Arc<T>);
3878                    impl<T: NodeService> tonic::server::UnaryService<super::GetCpusRequest> for GetCpusSvc<T> {
3879                        type Response = super::GetCpusResponse;
3880                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3881                        fn call(&mut self, request: tonic::Request<super::GetCpusRequest>) -> Self::Future {
3882                            let inner = Arc::clone(&self.0);
3883                            let fut = async move { <T as NodeService>::get_cpus(&inner, request).await };
3884                            Box::pin(fut)
3885                        }
3886                    }
3887                    let accept_compression_encodings = self.accept_compression_encodings;
3888                    let send_compression_encodings = self.send_compression_encodings;
3889                    let max_decoding_message_size = self.max_decoding_message_size;
3890                    let max_encoding_message_size = self.max_encoding_message_size;
3891                    let inner = self.inner.clone();
3892                    let fut = async move {
3893                        let method = GetCpusSvc(inner);
3894                        let codec = tonic::codec::ProstCodec::default();
3895                        let mut grpc = tonic::server::Grpc::new(codec)
3896                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3897                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3898                        let res = grpc.unary(method, req).await;
3899                        Ok(res)
3900                    };
3901                    Box::pin(fut)
3902                }
3903                "/node_service.NodeService/GetNetInfo" => {
3904                    #[allow(non_camel_case_types)]
3905                    struct GetNetInfoSvc<T: NodeService>(pub Arc<T>);
3906                    impl<T: NodeService> tonic::server::UnaryService<super::GetNetInfoRequest> for GetNetInfoSvc<T> {
3907                        type Response = super::GetNetInfoResponse;
3908                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3909                        fn call(&mut self, request: tonic::Request<super::GetNetInfoRequest>) -> Self::Future {
3910                            let inner = Arc::clone(&self.0);
3911                            let fut = async move { <T as NodeService>::get_net_info(&inner, request).await };
3912                            Box::pin(fut)
3913                        }
3914                    }
3915                    let accept_compression_encodings = self.accept_compression_encodings;
3916                    let send_compression_encodings = self.send_compression_encodings;
3917                    let max_decoding_message_size = self.max_decoding_message_size;
3918                    let max_encoding_message_size = self.max_encoding_message_size;
3919                    let inner = self.inner.clone();
3920                    let fut = async move {
3921                        let method = GetNetInfoSvc(inner);
3922                        let codec = tonic::codec::ProstCodec::default();
3923                        let mut grpc = tonic::server::Grpc::new(codec)
3924                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3925                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3926                        let res = grpc.unary(method, req).await;
3927                        Ok(res)
3928                    };
3929                    Box::pin(fut)
3930                }
3931                "/node_service.NodeService/GetPartitions" => {
3932                    #[allow(non_camel_case_types)]
3933                    struct GetPartitionsSvc<T: NodeService>(pub Arc<T>);
3934                    impl<T: NodeService> tonic::server::UnaryService<super::GetPartitionsRequest> for GetPartitionsSvc<T> {
3935                        type Response = super::GetPartitionsResponse;
3936                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3937                        fn call(&mut self, request: tonic::Request<super::GetPartitionsRequest>) -> Self::Future {
3938                            let inner = Arc::clone(&self.0);
3939                            let fut = async move { <T as NodeService>::get_partitions(&inner, request).await };
3940                            Box::pin(fut)
3941                        }
3942                    }
3943                    let accept_compression_encodings = self.accept_compression_encodings;
3944                    let send_compression_encodings = self.send_compression_encodings;
3945                    let max_decoding_message_size = self.max_decoding_message_size;
3946                    let max_encoding_message_size = self.max_encoding_message_size;
3947                    let inner = self.inner.clone();
3948                    let fut = async move {
3949                        let method = GetPartitionsSvc(inner);
3950                        let codec = tonic::codec::ProstCodec::default();
3951                        let mut grpc = tonic::server::Grpc::new(codec)
3952                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3953                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3954                        let res = grpc.unary(method, req).await;
3955                        Ok(res)
3956                    };
3957                    Box::pin(fut)
3958                }
3959                "/node_service.NodeService/GetOsInfo" => {
3960                    #[allow(non_camel_case_types)]
3961                    struct GetOsInfoSvc<T: NodeService>(pub Arc<T>);
3962                    impl<T: NodeService> tonic::server::UnaryService<super::GetOsInfoRequest> for GetOsInfoSvc<T> {
3963                        type Response = super::GetOsInfoResponse;
3964                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3965                        fn call(&mut self, request: tonic::Request<super::GetOsInfoRequest>) -> Self::Future {
3966                            let inner = Arc::clone(&self.0);
3967                            let fut = async move { <T as NodeService>::get_os_info(&inner, request).await };
3968                            Box::pin(fut)
3969                        }
3970                    }
3971                    let accept_compression_encodings = self.accept_compression_encodings;
3972                    let send_compression_encodings = self.send_compression_encodings;
3973                    let max_decoding_message_size = self.max_decoding_message_size;
3974                    let max_encoding_message_size = self.max_encoding_message_size;
3975                    let inner = self.inner.clone();
3976                    let fut = async move {
3977                        let method = GetOsInfoSvc(inner);
3978                        let codec = tonic::codec::ProstCodec::default();
3979                        let mut grpc = tonic::server::Grpc::new(codec)
3980                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
3981                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
3982                        let res = grpc.unary(method, req).await;
3983                        Ok(res)
3984                    };
3985                    Box::pin(fut)
3986                }
3987                "/node_service.NodeService/GetSELinuxInfo" => {
3988                    #[allow(non_camel_case_types)]
3989                    struct GetSELinuxInfoSvc<T: NodeService>(pub Arc<T>);
3990                    impl<T: NodeService> tonic::server::UnaryService<super::GetSeLinuxInfoRequest> for GetSELinuxInfoSvc<T> {
3991                        type Response = super::GetSeLinuxInfoResponse;
3992                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3993                        fn call(&mut self, request: tonic::Request<super::GetSeLinuxInfoRequest>) -> Self::Future {
3994                            let inner = Arc::clone(&self.0);
3995                            let fut = async move { <T as NodeService>::get_se_linux_info(&inner, request).await };
3996                            Box::pin(fut)
3997                        }
3998                    }
3999                    let accept_compression_encodings = self.accept_compression_encodings;
4000                    let send_compression_encodings = self.send_compression_encodings;
4001                    let max_decoding_message_size = self.max_decoding_message_size;
4002                    let max_encoding_message_size = self.max_encoding_message_size;
4003                    let inner = self.inner.clone();
4004                    let fut = async move {
4005                        let method = GetSELinuxInfoSvc(inner);
4006                        let codec = tonic::codec::ProstCodec::default();
4007                        let mut grpc = tonic::server::Grpc::new(codec)
4008                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4009                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4010                        let res = grpc.unary(method, req).await;
4011                        Ok(res)
4012                    };
4013                    Box::pin(fut)
4014                }
4015                "/node_service.NodeService/GetSysConfig" => {
4016                    #[allow(non_camel_case_types)]
4017                    struct GetSysConfigSvc<T: NodeService>(pub Arc<T>);
4018                    impl<T: NodeService> tonic::server::UnaryService<super::GetSysConfigRequest> for GetSysConfigSvc<T> {
4019                        type Response = super::GetSysConfigResponse;
4020                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4021                        fn call(&mut self, request: tonic::Request<super::GetSysConfigRequest>) -> Self::Future {
4022                            let inner = Arc::clone(&self.0);
4023                            let fut = async move { <T as NodeService>::get_sys_config(&inner, request).await };
4024                            Box::pin(fut)
4025                        }
4026                    }
4027                    let accept_compression_encodings = self.accept_compression_encodings;
4028                    let send_compression_encodings = self.send_compression_encodings;
4029                    let max_decoding_message_size = self.max_decoding_message_size;
4030                    let max_encoding_message_size = self.max_encoding_message_size;
4031                    let inner = self.inner.clone();
4032                    let fut = async move {
4033                        let method = GetSysConfigSvc(inner);
4034                        let codec = tonic::codec::ProstCodec::default();
4035                        let mut grpc = tonic::server::Grpc::new(codec)
4036                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4037                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4038                        let res = grpc.unary(method, req).await;
4039                        Ok(res)
4040                    };
4041                    Box::pin(fut)
4042                }
4043                "/node_service.NodeService/GetSysErrors" => {
4044                    #[allow(non_camel_case_types)]
4045                    struct GetSysErrorsSvc<T: NodeService>(pub Arc<T>);
4046                    impl<T: NodeService> tonic::server::UnaryService<super::GetSysErrorsRequest> for GetSysErrorsSvc<T> {
4047                        type Response = super::GetSysErrorsResponse;
4048                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4049                        fn call(&mut self, request: tonic::Request<super::GetSysErrorsRequest>) -> Self::Future {
4050                            let inner = Arc::clone(&self.0);
4051                            let fut = async move { <T as NodeService>::get_sys_errors(&inner, request).await };
4052                            Box::pin(fut)
4053                        }
4054                    }
4055                    let accept_compression_encodings = self.accept_compression_encodings;
4056                    let send_compression_encodings = self.send_compression_encodings;
4057                    let max_decoding_message_size = self.max_decoding_message_size;
4058                    let max_encoding_message_size = self.max_encoding_message_size;
4059                    let inner = self.inner.clone();
4060                    let fut = async move {
4061                        let method = GetSysErrorsSvc(inner);
4062                        let codec = tonic::codec::ProstCodec::default();
4063                        let mut grpc = tonic::server::Grpc::new(codec)
4064                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4065                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4066                        let res = grpc.unary(method, req).await;
4067                        Ok(res)
4068                    };
4069                    Box::pin(fut)
4070                }
4071                "/node_service.NodeService/GetMemInfo" => {
4072                    #[allow(non_camel_case_types)]
4073                    struct GetMemInfoSvc<T: NodeService>(pub Arc<T>);
4074                    impl<T: NodeService> tonic::server::UnaryService<super::GetMemInfoRequest> for GetMemInfoSvc<T> {
4075                        type Response = super::GetMemInfoResponse;
4076                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4077                        fn call(&mut self, request: tonic::Request<super::GetMemInfoRequest>) -> Self::Future {
4078                            let inner = Arc::clone(&self.0);
4079                            let fut = async move { <T as NodeService>::get_mem_info(&inner, request).await };
4080                            Box::pin(fut)
4081                        }
4082                    }
4083                    let accept_compression_encodings = self.accept_compression_encodings;
4084                    let send_compression_encodings = self.send_compression_encodings;
4085                    let max_decoding_message_size = self.max_decoding_message_size;
4086                    let max_encoding_message_size = self.max_encoding_message_size;
4087                    let inner = self.inner.clone();
4088                    let fut = async move {
4089                        let method = GetMemInfoSvc(inner);
4090                        let codec = tonic::codec::ProstCodec::default();
4091                        let mut grpc = tonic::server::Grpc::new(codec)
4092                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4093                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4094                        let res = grpc.unary(method, req).await;
4095                        Ok(res)
4096                    };
4097                    Box::pin(fut)
4098                }
4099                "/node_service.NodeService/GetMetrics" => {
4100                    #[allow(non_camel_case_types)]
4101                    struct GetMetricsSvc<T: NodeService>(pub Arc<T>);
4102                    impl<T: NodeService> tonic::server::UnaryService<super::GetMetricsRequest> for GetMetricsSvc<T> {
4103                        type Response = super::GetMetricsResponse;
4104                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4105                        fn call(&mut self, request: tonic::Request<super::GetMetricsRequest>) -> Self::Future {
4106                            let inner = Arc::clone(&self.0);
4107                            let fut = async move { <T as NodeService>::get_metrics(&inner, request).await };
4108                            Box::pin(fut)
4109                        }
4110                    }
4111                    let accept_compression_encodings = self.accept_compression_encodings;
4112                    let send_compression_encodings = self.send_compression_encodings;
4113                    let max_decoding_message_size = self.max_decoding_message_size;
4114                    let max_encoding_message_size = self.max_encoding_message_size;
4115                    let inner = self.inner.clone();
4116                    let fut = async move {
4117                        let method = GetMetricsSvc(inner);
4118                        let codec = tonic::codec::ProstCodec::default();
4119                        let mut grpc = tonic::server::Grpc::new(codec)
4120                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4121                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4122                        let res = grpc.unary(method, req).await;
4123                        Ok(res)
4124                    };
4125                    Box::pin(fut)
4126                }
4127                "/node_service.NodeService/GetProcInfo" => {
4128                    #[allow(non_camel_case_types)]
4129                    struct GetProcInfoSvc<T: NodeService>(pub Arc<T>);
4130                    impl<T: NodeService> tonic::server::UnaryService<super::GetProcInfoRequest> for GetProcInfoSvc<T> {
4131                        type Response = super::GetProcInfoResponse;
4132                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4133                        fn call(&mut self, request: tonic::Request<super::GetProcInfoRequest>) -> Self::Future {
4134                            let inner = Arc::clone(&self.0);
4135                            let fut = async move { <T as NodeService>::get_proc_info(&inner, request).await };
4136                            Box::pin(fut)
4137                        }
4138                    }
4139                    let accept_compression_encodings = self.accept_compression_encodings;
4140                    let send_compression_encodings = self.send_compression_encodings;
4141                    let max_decoding_message_size = self.max_decoding_message_size;
4142                    let max_encoding_message_size = self.max_encoding_message_size;
4143                    let inner = self.inner.clone();
4144                    let fut = async move {
4145                        let method = GetProcInfoSvc(inner);
4146                        let codec = tonic::codec::ProstCodec::default();
4147                        let mut grpc = tonic::server::Grpc::new(codec)
4148                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4149                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4150                        let res = grpc.unary(method, req).await;
4151                        Ok(res)
4152                    };
4153                    Box::pin(fut)
4154                }
4155                "/node_service.NodeService/StartProfiling" => {
4156                    #[allow(non_camel_case_types)]
4157                    struct StartProfilingSvc<T: NodeService>(pub Arc<T>);
4158                    impl<T: NodeService> tonic::server::UnaryService<super::StartProfilingRequest> for StartProfilingSvc<T> {
4159                        type Response = super::StartProfilingResponse;
4160                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4161                        fn call(&mut self, request: tonic::Request<super::StartProfilingRequest>) -> Self::Future {
4162                            let inner = Arc::clone(&self.0);
4163                            let fut = async move { <T as NodeService>::start_profiling(&inner, request).await };
4164                            Box::pin(fut)
4165                        }
4166                    }
4167                    let accept_compression_encodings = self.accept_compression_encodings;
4168                    let send_compression_encodings = self.send_compression_encodings;
4169                    let max_decoding_message_size = self.max_decoding_message_size;
4170                    let max_encoding_message_size = self.max_encoding_message_size;
4171                    let inner = self.inner.clone();
4172                    let fut = async move {
4173                        let method = StartProfilingSvc(inner);
4174                        let codec = tonic::codec::ProstCodec::default();
4175                        let mut grpc = tonic::server::Grpc::new(codec)
4176                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4177                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4178                        let res = grpc.unary(method, req).await;
4179                        Ok(res)
4180                    };
4181                    Box::pin(fut)
4182                }
4183                "/node_service.NodeService/DownloadProfileData" => {
4184                    #[allow(non_camel_case_types)]
4185                    struct DownloadProfileDataSvc<T: NodeService>(pub Arc<T>);
4186                    impl<T: NodeService> tonic::server::UnaryService<super::DownloadProfileDataRequest> for DownloadProfileDataSvc<T> {
4187                        type Response = super::DownloadProfileDataResponse;
4188                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4189                        fn call(&mut self, request: tonic::Request<super::DownloadProfileDataRequest>) -> Self::Future {
4190                            let inner = Arc::clone(&self.0);
4191                            let fut = async move { <T as NodeService>::download_profile_data(&inner, request).await };
4192                            Box::pin(fut)
4193                        }
4194                    }
4195                    let accept_compression_encodings = self.accept_compression_encodings;
4196                    let send_compression_encodings = self.send_compression_encodings;
4197                    let max_decoding_message_size = self.max_decoding_message_size;
4198                    let max_encoding_message_size = self.max_encoding_message_size;
4199                    let inner = self.inner.clone();
4200                    let fut = async move {
4201                        let method = DownloadProfileDataSvc(inner);
4202                        let codec = tonic::codec::ProstCodec::default();
4203                        let mut grpc = tonic::server::Grpc::new(codec)
4204                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4205                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4206                        let res = grpc.unary(method, req).await;
4207                        Ok(res)
4208                    };
4209                    Box::pin(fut)
4210                }
4211                "/node_service.NodeService/GetBucketStats" => {
4212                    #[allow(non_camel_case_types)]
4213                    struct GetBucketStatsSvc<T: NodeService>(pub Arc<T>);
4214                    impl<T: NodeService> tonic::server::UnaryService<super::GetBucketStatsDataRequest> for GetBucketStatsSvc<T> {
4215                        type Response = super::GetBucketStatsDataResponse;
4216                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4217                        fn call(&mut self, request: tonic::Request<super::GetBucketStatsDataRequest>) -> Self::Future {
4218                            let inner = Arc::clone(&self.0);
4219                            let fut = async move { <T as NodeService>::get_bucket_stats(&inner, request).await };
4220                            Box::pin(fut)
4221                        }
4222                    }
4223                    let accept_compression_encodings = self.accept_compression_encodings;
4224                    let send_compression_encodings = self.send_compression_encodings;
4225                    let max_decoding_message_size = self.max_decoding_message_size;
4226                    let max_encoding_message_size = self.max_encoding_message_size;
4227                    let inner = self.inner.clone();
4228                    let fut = async move {
4229                        let method = GetBucketStatsSvc(inner);
4230                        let codec = tonic::codec::ProstCodec::default();
4231                        let mut grpc = tonic::server::Grpc::new(codec)
4232                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4233                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4234                        let res = grpc.unary(method, req).await;
4235                        Ok(res)
4236                    };
4237                    Box::pin(fut)
4238                }
4239                "/node_service.NodeService/GetSRMetrics" => {
4240                    #[allow(non_camel_case_types)]
4241                    struct GetSRMetricsSvc<T: NodeService>(pub Arc<T>);
4242                    impl<T: NodeService> tonic::server::UnaryService<super::GetSrMetricsDataRequest> for GetSRMetricsSvc<T> {
4243                        type Response = super::GetSrMetricsDataResponse;
4244                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4245                        fn call(&mut self, request: tonic::Request<super::GetSrMetricsDataRequest>) -> Self::Future {
4246                            let inner = Arc::clone(&self.0);
4247                            let fut = async move { <T as NodeService>::get_sr_metrics(&inner, request).await };
4248                            Box::pin(fut)
4249                        }
4250                    }
4251                    let accept_compression_encodings = self.accept_compression_encodings;
4252                    let send_compression_encodings = self.send_compression_encodings;
4253                    let max_decoding_message_size = self.max_decoding_message_size;
4254                    let max_encoding_message_size = self.max_encoding_message_size;
4255                    let inner = self.inner.clone();
4256                    let fut = async move {
4257                        let method = GetSRMetricsSvc(inner);
4258                        let codec = tonic::codec::ProstCodec::default();
4259                        let mut grpc = tonic::server::Grpc::new(codec)
4260                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4261                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4262                        let res = grpc.unary(method, req).await;
4263                        Ok(res)
4264                    };
4265                    Box::pin(fut)
4266                }
4267                "/node_service.NodeService/GetAllBucketStats" => {
4268                    #[allow(non_camel_case_types)]
4269                    struct GetAllBucketStatsSvc<T: NodeService>(pub Arc<T>);
4270                    impl<T: NodeService> tonic::server::UnaryService<super::GetAllBucketStatsRequest> for GetAllBucketStatsSvc<T> {
4271                        type Response = super::GetAllBucketStatsResponse;
4272                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4273                        fn call(&mut self, request: tonic::Request<super::GetAllBucketStatsRequest>) -> Self::Future {
4274                            let inner = Arc::clone(&self.0);
4275                            let fut = async move { <T as NodeService>::get_all_bucket_stats(&inner, request).await };
4276                            Box::pin(fut)
4277                        }
4278                    }
4279                    let accept_compression_encodings = self.accept_compression_encodings;
4280                    let send_compression_encodings = self.send_compression_encodings;
4281                    let max_decoding_message_size = self.max_decoding_message_size;
4282                    let max_encoding_message_size = self.max_encoding_message_size;
4283                    let inner = self.inner.clone();
4284                    let fut = async move {
4285                        let method = GetAllBucketStatsSvc(inner);
4286                        let codec = tonic::codec::ProstCodec::default();
4287                        let mut grpc = tonic::server::Grpc::new(codec)
4288                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4289                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4290                        let res = grpc.unary(method, req).await;
4291                        Ok(res)
4292                    };
4293                    Box::pin(fut)
4294                }
4295                "/node_service.NodeService/LoadBucketMetadata" => {
4296                    #[allow(non_camel_case_types)]
4297                    struct LoadBucketMetadataSvc<T: NodeService>(pub Arc<T>);
4298                    impl<T: NodeService> tonic::server::UnaryService<super::LoadBucketMetadataRequest> for LoadBucketMetadataSvc<T> {
4299                        type Response = super::LoadBucketMetadataResponse;
4300                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4301                        fn call(&mut self, request: tonic::Request<super::LoadBucketMetadataRequest>) -> Self::Future {
4302                            let inner = Arc::clone(&self.0);
4303                            let fut = async move { <T as NodeService>::load_bucket_metadata(&inner, request).await };
4304                            Box::pin(fut)
4305                        }
4306                    }
4307                    let accept_compression_encodings = self.accept_compression_encodings;
4308                    let send_compression_encodings = self.send_compression_encodings;
4309                    let max_decoding_message_size = self.max_decoding_message_size;
4310                    let max_encoding_message_size = self.max_encoding_message_size;
4311                    let inner = self.inner.clone();
4312                    let fut = async move {
4313                        let method = LoadBucketMetadataSvc(inner);
4314                        let codec = tonic::codec::ProstCodec::default();
4315                        let mut grpc = tonic::server::Grpc::new(codec)
4316                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4317                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4318                        let res = grpc.unary(method, req).await;
4319                        Ok(res)
4320                    };
4321                    Box::pin(fut)
4322                }
4323                "/node_service.NodeService/DeleteBucketMetadata" => {
4324                    #[allow(non_camel_case_types)]
4325                    struct DeleteBucketMetadataSvc<T: NodeService>(pub Arc<T>);
4326                    impl<T: NodeService> tonic::server::UnaryService<super::DeleteBucketMetadataRequest> for DeleteBucketMetadataSvc<T> {
4327                        type Response = super::DeleteBucketMetadataResponse;
4328                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4329                        fn call(&mut self, request: tonic::Request<super::DeleteBucketMetadataRequest>) -> Self::Future {
4330                            let inner = Arc::clone(&self.0);
4331                            let fut = async move { <T as NodeService>::delete_bucket_metadata(&inner, request).await };
4332                            Box::pin(fut)
4333                        }
4334                    }
4335                    let accept_compression_encodings = self.accept_compression_encodings;
4336                    let send_compression_encodings = self.send_compression_encodings;
4337                    let max_decoding_message_size = self.max_decoding_message_size;
4338                    let max_encoding_message_size = self.max_encoding_message_size;
4339                    let inner = self.inner.clone();
4340                    let fut = async move {
4341                        let method = DeleteBucketMetadataSvc(inner);
4342                        let codec = tonic::codec::ProstCodec::default();
4343                        let mut grpc = tonic::server::Grpc::new(codec)
4344                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4345                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4346                        let res = grpc.unary(method, req).await;
4347                        Ok(res)
4348                    };
4349                    Box::pin(fut)
4350                }
4351                "/node_service.NodeService/DeletePolicy" => {
4352                    #[allow(non_camel_case_types)]
4353                    struct DeletePolicySvc<T: NodeService>(pub Arc<T>);
4354                    impl<T: NodeService> tonic::server::UnaryService<super::DeletePolicyRequest> for DeletePolicySvc<T> {
4355                        type Response = super::DeletePolicyResponse;
4356                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4357                        fn call(&mut self, request: tonic::Request<super::DeletePolicyRequest>) -> Self::Future {
4358                            let inner = Arc::clone(&self.0);
4359                            let fut = async move { <T as NodeService>::delete_policy(&inner, request).await };
4360                            Box::pin(fut)
4361                        }
4362                    }
4363                    let accept_compression_encodings = self.accept_compression_encodings;
4364                    let send_compression_encodings = self.send_compression_encodings;
4365                    let max_decoding_message_size = self.max_decoding_message_size;
4366                    let max_encoding_message_size = self.max_encoding_message_size;
4367                    let inner = self.inner.clone();
4368                    let fut = async move {
4369                        let method = DeletePolicySvc(inner);
4370                        let codec = tonic::codec::ProstCodec::default();
4371                        let mut grpc = tonic::server::Grpc::new(codec)
4372                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4373                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4374                        let res = grpc.unary(method, req).await;
4375                        Ok(res)
4376                    };
4377                    Box::pin(fut)
4378                }
4379                "/node_service.NodeService/LoadPolicy" => {
4380                    #[allow(non_camel_case_types)]
4381                    struct LoadPolicySvc<T: NodeService>(pub Arc<T>);
4382                    impl<T: NodeService> tonic::server::UnaryService<super::LoadPolicyRequest> for LoadPolicySvc<T> {
4383                        type Response = super::LoadPolicyResponse;
4384                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4385                        fn call(&mut self, request: tonic::Request<super::LoadPolicyRequest>) -> Self::Future {
4386                            let inner = Arc::clone(&self.0);
4387                            let fut = async move { <T as NodeService>::load_policy(&inner, request).await };
4388                            Box::pin(fut)
4389                        }
4390                    }
4391                    let accept_compression_encodings = self.accept_compression_encodings;
4392                    let send_compression_encodings = self.send_compression_encodings;
4393                    let max_decoding_message_size = self.max_decoding_message_size;
4394                    let max_encoding_message_size = self.max_encoding_message_size;
4395                    let inner = self.inner.clone();
4396                    let fut = async move {
4397                        let method = LoadPolicySvc(inner);
4398                        let codec = tonic::codec::ProstCodec::default();
4399                        let mut grpc = tonic::server::Grpc::new(codec)
4400                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4401                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4402                        let res = grpc.unary(method, req).await;
4403                        Ok(res)
4404                    };
4405                    Box::pin(fut)
4406                }
4407                "/node_service.NodeService/LoadPolicyMapping" => {
4408                    #[allow(non_camel_case_types)]
4409                    struct LoadPolicyMappingSvc<T: NodeService>(pub Arc<T>);
4410                    impl<T: NodeService> tonic::server::UnaryService<super::LoadPolicyMappingRequest> for LoadPolicyMappingSvc<T> {
4411                        type Response = super::LoadPolicyMappingResponse;
4412                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4413                        fn call(&mut self, request: tonic::Request<super::LoadPolicyMappingRequest>) -> Self::Future {
4414                            let inner = Arc::clone(&self.0);
4415                            let fut = async move { <T as NodeService>::load_policy_mapping(&inner, request).await };
4416                            Box::pin(fut)
4417                        }
4418                    }
4419                    let accept_compression_encodings = self.accept_compression_encodings;
4420                    let send_compression_encodings = self.send_compression_encodings;
4421                    let max_decoding_message_size = self.max_decoding_message_size;
4422                    let max_encoding_message_size = self.max_encoding_message_size;
4423                    let inner = self.inner.clone();
4424                    let fut = async move {
4425                        let method = LoadPolicyMappingSvc(inner);
4426                        let codec = tonic::codec::ProstCodec::default();
4427                        let mut grpc = tonic::server::Grpc::new(codec)
4428                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4429                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4430                        let res = grpc.unary(method, req).await;
4431                        Ok(res)
4432                    };
4433                    Box::pin(fut)
4434                }
4435                "/node_service.NodeService/DeleteUser" => {
4436                    #[allow(non_camel_case_types)]
4437                    struct DeleteUserSvc<T: NodeService>(pub Arc<T>);
4438                    impl<T: NodeService> tonic::server::UnaryService<super::DeleteUserRequest> for DeleteUserSvc<T> {
4439                        type Response = super::DeleteUserResponse;
4440                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4441                        fn call(&mut self, request: tonic::Request<super::DeleteUserRequest>) -> Self::Future {
4442                            let inner = Arc::clone(&self.0);
4443                            let fut = async move { <T as NodeService>::delete_user(&inner, request).await };
4444                            Box::pin(fut)
4445                        }
4446                    }
4447                    let accept_compression_encodings = self.accept_compression_encodings;
4448                    let send_compression_encodings = self.send_compression_encodings;
4449                    let max_decoding_message_size = self.max_decoding_message_size;
4450                    let max_encoding_message_size = self.max_encoding_message_size;
4451                    let inner = self.inner.clone();
4452                    let fut = async move {
4453                        let method = DeleteUserSvc(inner);
4454                        let codec = tonic::codec::ProstCodec::default();
4455                        let mut grpc = tonic::server::Grpc::new(codec)
4456                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4457                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4458                        let res = grpc.unary(method, req).await;
4459                        Ok(res)
4460                    };
4461                    Box::pin(fut)
4462                }
4463                "/node_service.NodeService/DeleteServiceAccount" => {
4464                    #[allow(non_camel_case_types)]
4465                    struct DeleteServiceAccountSvc<T: NodeService>(pub Arc<T>);
4466                    impl<T: NodeService> tonic::server::UnaryService<super::DeleteServiceAccountRequest> for DeleteServiceAccountSvc<T> {
4467                        type Response = super::DeleteServiceAccountResponse;
4468                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4469                        fn call(&mut self, request: tonic::Request<super::DeleteServiceAccountRequest>) -> Self::Future {
4470                            let inner = Arc::clone(&self.0);
4471                            let fut = async move { <T as NodeService>::delete_service_account(&inner, request).await };
4472                            Box::pin(fut)
4473                        }
4474                    }
4475                    let accept_compression_encodings = self.accept_compression_encodings;
4476                    let send_compression_encodings = self.send_compression_encodings;
4477                    let max_decoding_message_size = self.max_decoding_message_size;
4478                    let max_encoding_message_size = self.max_encoding_message_size;
4479                    let inner = self.inner.clone();
4480                    let fut = async move {
4481                        let method = DeleteServiceAccountSvc(inner);
4482                        let codec = tonic::codec::ProstCodec::default();
4483                        let mut grpc = tonic::server::Grpc::new(codec)
4484                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4485                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4486                        let res = grpc.unary(method, req).await;
4487                        Ok(res)
4488                    };
4489                    Box::pin(fut)
4490                }
4491                "/node_service.NodeService/LoadUser" => {
4492                    #[allow(non_camel_case_types)]
4493                    struct LoadUserSvc<T: NodeService>(pub Arc<T>);
4494                    impl<T: NodeService> tonic::server::UnaryService<super::LoadUserRequest> for LoadUserSvc<T> {
4495                        type Response = super::LoadUserResponse;
4496                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4497                        fn call(&mut self, request: tonic::Request<super::LoadUserRequest>) -> Self::Future {
4498                            let inner = Arc::clone(&self.0);
4499                            let fut = async move { <T as NodeService>::load_user(&inner, request).await };
4500                            Box::pin(fut)
4501                        }
4502                    }
4503                    let accept_compression_encodings = self.accept_compression_encodings;
4504                    let send_compression_encodings = self.send_compression_encodings;
4505                    let max_decoding_message_size = self.max_decoding_message_size;
4506                    let max_encoding_message_size = self.max_encoding_message_size;
4507                    let inner = self.inner.clone();
4508                    let fut = async move {
4509                        let method = LoadUserSvc(inner);
4510                        let codec = tonic::codec::ProstCodec::default();
4511                        let mut grpc = tonic::server::Grpc::new(codec)
4512                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4513                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4514                        let res = grpc.unary(method, req).await;
4515                        Ok(res)
4516                    };
4517                    Box::pin(fut)
4518                }
4519                "/node_service.NodeService/LoadServiceAccount" => {
4520                    #[allow(non_camel_case_types)]
4521                    struct LoadServiceAccountSvc<T: NodeService>(pub Arc<T>);
4522                    impl<T: NodeService> tonic::server::UnaryService<super::LoadServiceAccountRequest> for LoadServiceAccountSvc<T> {
4523                        type Response = super::LoadServiceAccountResponse;
4524                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4525                        fn call(&mut self, request: tonic::Request<super::LoadServiceAccountRequest>) -> Self::Future {
4526                            let inner = Arc::clone(&self.0);
4527                            let fut = async move { <T as NodeService>::load_service_account(&inner, request).await };
4528                            Box::pin(fut)
4529                        }
4530                    }
4531                    let accept_compression_encodings = self.accept_compression_encodings;
4532                    let send_compression_encodings = self.send_compression_encodings;
4533                    let max_decoding_message_size = self.max_decoding_message_size;
4534                    let max_encoding_message_size = self.max_encoding_message_size;
4535                    let inner = self.inner.clone();
4536                    let fut = async move {
4537                        let method = LoadServiceAccountSvc(inner);
4538                        let codec = tonic::codec::ProstCodec::default();
4539                        let mut grpc = tonic::server::Grpc::new(codec)
4540                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4541                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4542                        let res = grpc.unary(method, req).await;
4543                        Ok(res)
4544                    };
4545                    Box::pin(fut)
4546                }
4547                "/node_service.NodeService/LoadGroup" => {
4548                    #[allow(non_camel_case_types)]
4549                    struct LoadGroupSvc<T: NodeService>(pub Arc<T>);
4550                    impl<T: NodeService> tonic::server::UnaryService<super::LoadGroupRequest> for LoadGroupSvc<T> {
4551                        type Response = super::LoadGroupResponse;
4552                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4553                        fn call(&mut self, request: tonic::Request<super::LoadGroupRequest>) -> Self::Future {
4554                            let inner = Arc::clone(&self.0);
4555                            let fut = async move { <T as NodeService>::load_group(&inner, request).await };
4556                            Box::pin(fut)
4557                        }
4558                    }
4559                    let accept_compression_encodings = self.accept_compression_encodings;
4560                    let send_compression_encodings = self.send_compression_encodings;
4561                    let max_decoding_message_size = self.max_decoding_message_size;
4562                    let max_encoding_message_size = self.max_encoding_message_size;
4563                    let inner = self.inner.clone();
4564                    let fut = async move {
4565                        let method = LoadGroupSvc(inner);
4566                        let codec = tonic::codec::ProstCodec::default();
4567                        let mut grpc = tonic::server::Grpc::new(codec)
4568                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4569                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4570                        let res = grpc.unary(method, req).await;
4571                        Ok(res)
4572                    };
4573                    Box::pin(fut)
4574                }
4575                "/node_service.NodeService/ReloadSiteReplicationConfig" => {
4576                    #[allow(non_camel_case_types)]
4577                    struct ReloadSiteReplicationConfigSvc<T: NodeService>(pub Arc<T>);
4578                    impl<T: NodeService> tonic::server::UnaryService<super::ReloadSiteReplicationConfigRequest>
4579                        for ReloadSiteReplicationConfigSvc<T>
4580                    {
4581                        type Response = super::ReloadSiteReplicationConfigResponse;
4582                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4583                        fn call(&mut self, request: tonic::Request<super::ReloadSiteReplicationConfigRequest>) -> Self::Future {
4584                            let inner = Arc::clone(&self.0);
4585                            let fut = async move { <T as NodeService>::reload_site_replication_config(&inner, request).await };
4586                            Box::pin(fut)
4587                        }
4588                    }
4589                    let accept_compression_encodings = self.accept_compression_encodings;
4590                    let send_compression_encodings = self.send_compression_encodings;
4591                    let max_decoding_message_size = self.max_decoding_message_size;
4592                    let max_encoding_message_size = self.max_encoding_message_size;
4593                    let inner = self.inner.clone();
4594                    let fut = async move {
4595                        let method = ReloadSiteReplicationConfigSvc(inner);
4596                        let codec = tonic::codec::ProstCodec::default();
4597                        let mut grpc = tonic::server::Grpc::new(codec)
4598                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4599                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4600                        let res = grpc.unary(method, req).await;
4601                        Ok(res)
4602                    };
4603                    Box::pin(fut)
4604                }
4605                "/node_service.NodeService/SignalService" => {
4606                    #[allow(non_camel_case_types)]
4607                    struct SignalServiceSvc<T: NodeService>(pub Arc<T>);
4608                    impl<T: NodeService> tonic::server::UnaryService<super::SignalServiceRequest> for SignalServiceSvc<T> {
4609                        type Response = super::SignalServiceResponse;
4610                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4611                        fn call(&mut self, request: tonic::Request<super::SignalServiceRequest>) -> Self::Future {
4612                            let inner = Arc::clone(&self.0);
4613                            let fut = async move { <T as NodeService>::signal_service(&inner, request).await };
4614                            Box::pin(fut)
4615                        }
4616                    }
4617                    let accept_compression_encodings = self.accept_compression_encodings;
4618                    let send_compression_encodings = self.send_compression_encodings;
4619                    let max_decoding_message_size = self.max_decoding_message_size;
4620                    let max_encoding_message_size = self.max_encoding_message_size;
4621                    let inner = self.inner.clone();
4622                    let fut = async move {
4623                        let method = SignalServiceSvc(inner);
4624                        let codec = tonic::codec::ProstCodec::default();
4625                        let mut grpc = tonic::server::Grpc::new(codec)
4626                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4627                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4628                        let res = grpc.unary(method, req).await;
4629                        Ok(res)
4630                    };
4631                    Box::pin(fut)
4632                }
4633                "/node_service.NodeService/BackgroundHealStatus" => {
4634                    #[allow(non_camel_case_types)]
4635                    struct BackgroundHealStatusSvc<T: NodeService>(pub Arc<T>);
4636                    impl<T: NodeService> tonic::server::UnaryService<super::BackgroundHealStatusRequest> for BackgroundHealStatusSvc<T> {
4637                        type Response = super::BackgroundHealStatusResponse;
4638                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4639                        fn call(&mut self, request: tonic::Request<super::BackgroundHealStatusRequest>) -> Self::Future {
4640                            let inner = Arc::clone(&self.0);
4641                            let fut = async move { <T as NodeService>::background_heal_status(&inner, request).await };
4642                            Box::pin(fut)
4643                        }
4644                    }
4645                    let accept_compression_encodings = self.accept_compression_encodings;
4646                    let send_compression_encodings = self.send_compression_encodings;
4647                    let max_decoding_message_size = self.max_decoding_message_size;
4648                    let max_encoding_message_size = self.max_encoding_message_size;
4649                    let inner = self.inner.clone();
4650                    let fut = async move {
4651                        let method = BackgroundHealStatusSvc(inner);
4652                        let codec = tonic::codec::ProstCodec::default();
4653                        let mut grpc = tonic::server::Grpc::new(codec)
4654                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4655                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4656                        let res = grpc.unary(method, req).await;
4657                        Ok(res)
4658                    };
4659                    Box::pin(fut)
4660                }
4661                "/node_service.NodeService/GetMetacacheListing" => {
4662                    #[allow(non_camel_case_types)]
4663                    struct GetMetacacheListingSvc<T: NodeService>(pub Arc<T>);
4664                    impl<T: NodeService> tonic::server::UnaryService<super::GetMetacacheListingRequest> for GetMetacacheListingSvc<T> {
4665                        type Response = super::GetMetacacheListingResponse;
4666                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4667                        fn call(&mut self, request: tonic::Request<super::GetMetacacheListingRequest>) -> Self::Future {
4668                            let inner = Arc::clone(&self.0);
4669                            let fut = async move { <T as NodeService>::get_metacache_listing(&inner, request).await };
4670                            Box::pin(fut)
4671                        }
4672                    }
4673                    let accept_compression_encodings = self.accept_compression_encodings;
4674                    let send_compression_encodings = self.send_compression_encodings;
4675                    let max_decoding_message_size = self.max_decoding_message_size;
4676                    let max_encoding_message_size = self.max_encoding_message_size;
4677                    let inner = self.inner.clone();
4678                    let fut = async move {
4679                        let method = GetMetacacheListingSvc(inner);
4680                        let codec = tonic::codec::ProstCodec::default();
4681                        let mut grpc = tonic::server::Grpc::new(codec)
4682                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4683                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4684                        let res = grpc.unary(method, req).await;
4685                        Ok(res)
4686                    };
4687                    Box::pin(fut)
4688                }
4689                "/node_service.NodeService/UpdateMetacacheListing" => {
4690                    #[allow(non_camel_case_types)]
4691                    struct UpdateMetacacheListingSvc<T: NodeService>(pub Arc<T>);
4692                    impl<T: NodeService> tonic::server::UnaryService<super::UpdateMetacacheListingRequest> for UpdateMetacacheListingSvc<T> {
4693                        type Response = super::UpdateMetacacheListingResponse;
4694                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4695                        fn call(&mut self, request: tonic::Request<super::UpdateMetacacheListingRequest>) -> Self::Future {
4696                            let inner = Arc::clone(&self.0);
4697                            let fut = async move { <T as NodeService>::update_metacache_listing(&inner, request).await };
4698                            Box::pin(fut)
4699                        }
4700                    }
4701                    let accept_compression_encodings = self.accept_compression_encodings;
4702                    let send_compression_encodings = self.send_compression_encodings;
4703                    let max_decoding_message_size = self.max_decoding_message_size;
4704                    let max_encoding_message_size = self.max_encoding_message_size;
4705                    let inner = self.inner.clone();
4706                    let fut = async move {
4707                        let method = UpdateMetacacheListingSvc(inner);
4708                        let codec = tonic::codec::ProstCodec::default();
4709                        let mut grpc = tonic::server::Grpc::new(codec)
4710                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4711                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4712                        let res = grpc.unary(method, req).await;
4713                        Ok(res)
4714                    };
4715                    Box::pin(fut)
4716                }
4717                "/node_service.NodeService/ReloadPoolMeta" => {
4718                    #[allow(non_camel_case_types)]
4719                    struct ReloadPoolMetaSvc<T: NodeService>(pub Arc<T>);
4720                    impl<T: NodeService> tonic::server::UnaryService<super::ReloadPoolMetaRequest> for ReloadPoolMetaSvc<T> {
4721                        type Response = super::ReloadPoolMetaResponse;
4722                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4723                        fn call(&mut self, request: tonic::Request<super::ReloadPoolMetaRequest>) -> Self::Future {
4724                            let inner = Arc::clone(&self.0);
4725                            let fut = async move { <T as NodeService>::reload_pool_meta(&inner, request).await };
4726                            Box::pin(fut)
4727                        }
4728                    }
4729                    let accept_compression_encodings = self.accept_compression_encodings;
4730                    let send_compression_encodings = self.send_compression_encodings;
4731                    let max_decoding_message_size = self.max_decoding_message_size;
4732                    let max_encoding_message_size = self.max_encoding_message_size;
4733                    let inner = self.inner.clone();
4734                    let fut = async move {
4735                        let method = ReloadPoolMetaSvc(inner);
4736                        let codec = tonic::codec::ProstCodec::default();
4737                        let mut grpc = tonic::server::Grpc::new(codec)
4738                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4739                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4740                        let res = grpc.unary(method, req).await;
4741                        Ok(res)
4742                    };
4743                    Box::pin(fut)
4744                }
4745                "/node_service.NodeService/StopRebalance" => {
4746                    #[allow(non_camel_case_types)]
4747                    struct StopRebalanceSvc<T: NodeService>(pub Arc<T>);
4748                    impl<T: NodeService> tonic::server::UnaryService<super::StopRebalanceRequest> for StopRebalanceSvc<T> {
4749                        type Response = super::StopRebalanceResponse;
4750                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4751                        fn call(&mut self, request: tonic::Request<super::StopRebalanceRequest>) -> Self::Future {
4752                            let inner = Arc::clone(&self.0);
4753                            let fut = async move { <T as NodeService>::stop_rebalance(&inner, request).await };
4754                            Box::pin(fut)
4755                        }
4756                    }
4757                    let accept_compression_encodings = self.accept_compression_encodings;
4758                    let send_compression_encodings = self.send_compression_encodings;
4759                    let max_decoding_message_size = self.max_decoding_message_size;
4760                    let max_encoding_message_size = self.max_encoding_message_size;
4761                    let inner = self.inner.clone();
4762                    let fut = async move {
4763                        let method = StopRebalanceSvc(inner);
4764                        let codec = tonic::codec::ProstCodec::default();
4765                        let mut grpc = tonic::server::Grpc::new(codec)
4766                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4767                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4768                        let res = grpc.unary(method, req).await;
4769                        Ok(res)
4770                    };
4771                    Box::pin(fut)
4772                }
4773                "/node_service.NodeService/LoadRebalanceMeta" => {
4774                    #[allow(non_camel_case_types)]
4775                    struct LoadRebalanceMetaSvc<T: NodeService>(pub Arc<T>);
4776                    impl<T: NodeService> tonic::server::UnaryService<super::LoadRebalanceMetaRequest> for LoadRebalanceMetaSvc<T> {
4777                        type Response = super::LoadRebalanceMetaResponse;
4778                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4779                        fn call(&mut self, request: tonic::Request<super::LoadRebalanceMetaRequest>) -> Self::Future {
4780                            let inner = Arc::clone(&self.0);
4781                            let fut = async move { <T as NodeService>::load_rebalance_meta(&inner, request).await };
4782                            Box::pin(fut)
4783                        }
4784                    }
4785                    let accept_compression_encodings = self.accept_compression_encodings;
4786                    let send_compression_encodings = self.send_compression_encodings;
4787                    let max_decoding_message_size = self.max_decoding_message_size;
4788                    let max_encoding_message_size = self.max_encoding_message_size;
4789                    let inner = self.inner.clone();
4790                    let fut = async move {
4791                        let method = LoadRebalanceMetaSvc(inner);
4792                        let codec = tonic::codec::ProstCodec::default();
4793                        let mut grpc = tonic::server::Grpc::new(codec)
4794                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4795                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4796                        let res = grpc.unary(method, req).await;
4797                        Ok(res)
4798                    };
4799                    Box::pin(fut)
4800                }
4801                "/node_service.NodeService/LoadTransitionTierConfig" => {
4802                    #[allow(non_camel_case_types)]
4803                    struct LoadTransitionTierConfigSvc<T: NodeService>(pub Arc<T>);
4804                    impl<T: NodeService> tonic::server::UnaryService<super::LoadTransitionTierConfigRequest> for LoadTransitionTierConfigSvc<T> {
4805                        type Response = super::LoadTransitionTierConfigResponse;
4806                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4807                        fn call(&mut self, request: tonic::Request<super::LoadTransitionTierConfigRequest>) -> Self::Future {
4808                            let inner = Arc::clone(&self.0);
4809                            let fut = async move { <T as NodeService>::load_transition_tier_config(&inner, request).await };
4810                            Box::pin(fut)
4811                        }
4812                    }
4813                    let accept_compression_encodings = self.accept_compression_encodings;
4814                    let send_compression_encodings = self.send_compression_encodings;
4815                    let max_decoding_message_size = self.max_decoding_message_size;
4816                    let max_encoding_message_size = self.max_encoding_message_size;
4817                    let inner = self.inner.clone();
4818                    let fut = async move {
4819                        let method = LoadTransitionTierConfigSvc(inner);
4820                        let codec = tonic::codec::ProstCodec::default();
4821                        let mut grpc = tonic::server::Grpc::new(codec)
4822                            .apply_compression_config(accept_compression_encodings, send_compression_encodings)
4823                            .apply_max_message_size_config(max_decoding_message_size, max_encoding_message_size);
4824                        let res = grpc.unary(method, req).await;
4825                        Ok(res)
4826                    };
4827                    Box::pin(fut)
4828                }
4829                _ => Box::pin(async move {
4830                    let mut response = http::Response::new(tonic::body::Body::default());
4831                    let headers = response.headers_mut();
4832                    headers.insert(tonic::Status::GRPC_STATUS, (tonic::Code::Unimplemented as i32).into());
4833                    headers.insert(http::header::CONTENT_TYPE, tonic::metadata::GRPC_CONTENT_TYPE);
4834                    Ok(response)
4835                }),
4836            }
4837        }
4838    }
4839    impl<T> Clone for NodeServiceServer<T> {
4840        fn clone(&self) -> Self {
4841            let inner = self.inner.clone();
4842            Self {
4843                inner,
4844                accept_compression_encodings: self.accept_compression_encodings,
4845                send_compression_encodings: self.send_compression_encodings,
4846                max_decoding_message_size: self.max_decoding_message_size,
4847                max_encoding_message_size: self.max_encoding_message_size,
4848            }
4849        }
4850    }
4851    /// Generated gRPC service name
4852    pub const SERVICE_NAME: &str = "node_service.NodeService";
4853    impl<T> tonic::server::NamedService for NodeServiceServer<T> {
4854        const NAME: &'static str = SERVICE_NAME;
4855    }
4856}