rclone_api/
lib.rs

1#[allow(unused_imports)]
2use progenitor_client::{encode_path, ClientHooks, OperationInfo, RequestBuilderExt};
3#[allow(unused_imports)]
4pub use progenitor_client::{ByteStream, ClientInfo, Error, ResponseValue};
5/// Types used as operation parameters and responses.
6#[allow(clippy::all)]
7pub mod types {
8    /// Error types.
9    pub mod error {
10        /// Error from a `TryFrom` or `FromStr` implementation.
11        pub struct ConversionError(::std::borrow::Cow<'static, str>);
12        impl ::std::error::Error for ConversionError {}
13        impl ::std::fmt::Display for ConversionError {
14            fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> Result<(), ::std::fmt::Error> {
15                ::std::fmt::Display::fmt(&self.0, f)
16            }
17        }
18
19        impl ::std::fmt::Debug for ConversionError {
20            fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> Result<(), ::std::fmt::Error> {
21                ::std::fmt::Debug::fmt(&self.0, f)
22            }
23        }
24
25        impl From<&'static str> for ConversionError {
26            fn from(value: &'static str) -> Self {
27                Self(value.into())
28            }
29        }
30
31        impl From<String> for ConversionError {
32            fn from(value: String) -> Self {
33                Self(value.into())
34            }
35        }
36    }
37
38    ///`BackendCommandResponse`
39    ///
40    /// <details><summary>JSON schema</summary>
41    ///
42    /// ```json
43    ///{
44    ///  "type": "object",
45    ///  "properties": {
46    ///    "result": {
47    ///      "description": "Backend command result payload"
48    ///    }
49    ///  },
50    ///  "additionalProperties": true
51    ///}
52    /// ```
53    /// </details>
54    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
55    pub struct BackendCommandResponse {
56        ///Backend command result payload
57        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
58        pub result: ::std::option::Option<::serde_json::Value>,
59    }
60
61    impl ::std::convert::From<&BackendCommandResponse> for BackendCommandResponse {
62        fn from(value: &BackendCommandResponse) -> Self {
63            value.clone()
64        }
65    }
66
67    impl ::std::default::Default for BackendCommandResponse {
68        fn default() -> Self {
69            Self {
70                result: Default::default(),
71            }
72        }
73    }
74
75    ///`ConfigGetResponse`
76    ///
77    /// <details><summary>JSON schema</summary>
78    ///
79    /// ```json
80    ///{
81    ///  "type": "object",
82    ///  "required": [
83    ///    "type"
84    ///  ],
85    ///  "properties": {
86    ///    "provider": {
87    ///      "type": "string"
88    ///    },
89    ///    "type": {
90    ///      "type": "string"
91    ///    }
92    ///  },
93    ///  "additionalProperties": true
94    ///}
95    /// ```
96    /// </details>
97    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
98    pub struct ConfigGetResponse {
99        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
100        pub provider: ::std::option::Option<::std::string::String>,
101        #[serde(rename = "type")]
102        pub type_: ::std::string::String,
103    }
104
105    impl ::std::convert::From<&ConfigGetResponse> for ConfigGetResponse {
106        fn from(value: &ConfigGetResponse) -> Self {
107            value.clone()
108        }
109    }
110
111    ///`ConfigListremotesResponse`
112    ///
113    /// <details><summary>JSON schema</summary>
114    ///
115    /// ```json
116    ///{
117    ///  "type": "object",
118    ///  "required": [
119    ///    "remotes"
120    ///  ],
121    ///  "properties": {
122    ///    "remotes": {
123    ///      "type": "array",
124    ///      "items": {
125    ///        "type": "string"
126    ///      }
127    ///    }
128    ///  }
129    ///}
130    /// ```
131    /// </details>
132    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
133    pub struct ConfigListremotesResponse {
134        pub remotes: ::std::vec::Vec<::std::string::String>,
135    }
136
137    impl ::std::convert::From<&ConfigListremotesResponse> for ConfigListremotesResponse {
138        fn from(value: &ConfigListremotesResponse) -> Self {
139            value.clone()
140        }
141    }
142
143    ///`ConfigPathsResponse`
144    ///
145    /// <details><summary>JSON schema</summary>
146    ///
147    /// ```json
148    ///{
149    ///  "type": "object",
150    ///  "required": [
151    ///    "cache",
152    ///    "config",
153    ///    "temp"
154    ///  ],
155    ///  "properties": {
156    ///    "cache": {
157    ///      "type": "string"
158    ///    },
159    ///    "config": {
160    ///      "type": "string"
161    ///    },
162    ///    "temp": {
163    ///      "type": "string"
164    ///    }
165    ///  }
166    ///}
167    /// ```
168    /// </details>
169    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
170    pub struct ConfigPathsResponse {
171        pub cache: ::std::string::String,
172        pub config: ::std::string::String,
173        pub temp: ::std::string::String,
174    }
175
176    impl ::std::convert::From<&ConfigPathsResponse> for ConfigPathsResponse {
177        fn from(value: &ConfigPathsResponse) -> Self {
178            value.clone()
179        }
180    }
181
182    ///`ConfigProvider`
183    ///
184    /// <details><summary>JSON schema</summary>
185    ///
186    /// ```json
187    ///{
188    ///  "type": "object",
189    ///  "required": [
190    ///    "Description",
191    ///    "Name",
192    ///    "Options",
193    ///    "Prefix"
194    ///  ],
195    ///  "properties": {
196    ///    "Aliases": {
197    ///      "type": [
198    ///        "array",
199    ///        "null"
200    ///      ],
201    ///      "items": {
202    ///        "type": "string"
203    ///      }
204    ///    },
205    ///    "CommandHelp": {
206    ///      "type": [
207    ///        "array",
208    ///        "null"
209    ///      ],
210    ///      "items": {
211    ///        "$ref": "#/components/schemas/ConfigProviderCommandHelp"
212    ///      }
213    ///    },
214    ///    "Description": {
215    ///      "type": "string"
216    ///    },
217    ///    "Hide": {
218    ///      "type": "boolean"
219    ///    },
220    ///    "MetadataInfo": {
221    ///      "$ref": "#/components/schemas/ConfigProviderMetadataInfo"
222    ///    },
223    ///    "Name": {
224    ///      "type": "string"
225    ///    },
226    ///    "Options": {
227    ///      "type": "array",
228    ///      "items": {
229    ///        "$ref": "#/components/schemas/ConfigProviderOption"
230    ///      }
231    ///    },
232    ///    "Prefix": {
233    ///      "type": "string"
234    ///    }
235    ///  },
236    ///  "additionalProperties": true
237    ///}
238    /// ```
239    /// </details>
240    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
241    pub struct ConfigProvider {
242        #[serde(
243            rename = "Aliases",
244            default,
245            skip_serializing_if = "::std::option::Option::is_none"
246        )]
247        pub aliases: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
248        #[serde(
249            rename = "CommandHelp",
250            default,
251            skip_serializing_if = "::std::option::Option::is_none"
252        )]
253        pub command_help: ::std::option::Option<::std::vec::Vec<ConfigProviderCommandHelp>>,
254        #[serde(rename = "Description")]
255        pub description: ::std::string::String,
256        #[serde(
257            rename = "Hide",
258            default,
259            skip_serializing_if = "::std::option::Option::is_none"
260        )]
261        pub hide: ::std::option::Option<bool>,
262        #[serde(
263            rename = "MetadataInfo",
264            default,
265            skip_serializing_if = "::std::option::Option::is_none"
266        )]
267        pub metadata_info: ::std::option::Option<ConfigProviderMetadataInfo>,
268        #[serde(rename = "Name")]
269        pub name: ::std::string::String,
270        #[serde(rename = "Options")]
271        pub options: ::std::vec::Vec<ConfigProviderOption>,
272        #[serde(rename = "Prefix")]
273        pub prefix: ::std::string::String,
274    }
275
276    impl ::std::convert::From<&ConfigProvider> for ConfigProvider {
277        fn from(value: &ConfigProvider) -> Self {
278            value.clone()
279        }
280    }
281
282    ///`ConfigProviderCommandHelp`
283    ///
284    /// <details><summary>JSON schema</summary>
285    ///
286    /// ```json
287    ///{
288    ///  "type": "object",
289    ///  "properties": {
290    ///    "Long": {
291    ///      "type": "string"
292    ///    },
293    ///    "Name": {
294    ///      "type": "string"
295    ///    },
296    ///    "Opts": {
297    ///      "type": [
298    ///        "object",
299    ///        "null"
300    ///      ],
301    ///      "additionalProperties": true
302    ///    },
303    ///    "Short": {
304    ///      "type": "string"
305    ///    }
306    ///  },
307    ///  "additionalProperties": true
308    ///}
309    /// ```
310    /// </details>
311    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
312    pub struct ConfigProviderCommandHelp {
313        #[serde(
314            rename = "Long",
315            default,
316            skip_serializing_if = "::std::option::Option::is_none"
317        )]
318        pub long: ::std::option::Option<::std::string::String>,
319        #[serde(
320            rename = "Name",
321            default,
322            skip_serializing_if = "::std::option::Option::is_none"
323        )]
324        pub name: ::std::option::Option<::std::string::String>,
325        #[serde(
326            rename = "Opts",
327            default,
328            skip_serializing_if = "::std::option::Option::is_none"
329        )]
330        pub opts:
331            ::std::option::Option<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
332        #[serde(
333            rename = "Short",
334            default,
335            skip_serializing_if = "::std::option::Option::is_none"
336        )]
337        pub short: ::std::option::Option<::std::string::String>,
338    }
339
340    impl ::std::convert::From<&ConfigProviderCommandHelp> for ConfigProviderCommandHelp {
341        fn from(value: &ConfigProviderCommandHelp) -> Self {
342            value.clone()
343        }
344    }
345
346    impl ::std::default::Default for ConfigProviderCommandHelp {
347        fn default() -> Self {
348            Self {
349                long: Default::default(),
350                name: Default::default(),
351                opts: Default::default(),
352                short: Default::default(),
353            }
354        }
355    }
356
357    ///`ConfigProviderMetadataInfo`
358    ///
359    /// <details><summary>JSON schema</summary>
360    ///
361    /// ```json
362    ///{
363    ///  "type": "object",
364    ///  "properties": {
365    ///    "Help": {
366    ///      "type": "string"
367    ///    },
368    ///    "System": {
369    ///      "type": [
370    ///        "object",
371    ///        "null"
372    ///      ],
373    ///      "additionalProperties": {
374    ///        "$ref": "#/components/schemas/ConfigProviderMetadataSystemEntry"
375    ///      }
376    ///    }
377    ///  },
378    ///  "additionalProperties": true
379    ///}
380    /// ```
381    /// </details>
382    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
383    pub struct ConfigProviderMetadataInfo {
384        #[serde(
385            rename = "Help",
386            default,
387            skip_serializing_if = "::std::option::Option::is_none"
388        )]
389        pub help: ::std::option::Option<::std::string::String>,
390        #[serde(
391            rename = "System",
392            default,
393            skip_serializing_if = "::std::option::Option::is_none"
394        )]
395        pub system: ::std::option::Option<
396            ::std::collections::HashMap<::std::string::String, ConfigProviderMetadataSystemEntry>,
397        >,
398    }
399
400    impl ::std::convert::From<&ConfigProviderMetadataInfo> for ConfigProviderMetadataInfo {
401        fn from(value: &ConfigProviderMetadataInfo) -> Self {
402            value.clone()
403        }
404    }
405
406    impl ::std::default::Default for ConfigProviderMetadataInfo {
407        fn default() -> Self {
408            Self {
409                help: Default::default(),
410                system: Default::default(),
411            }
412        }
413    }
414
415    ///`ConfigProviderMetadataSystemEntry`
416    ///
417    /// <details><summary>JSON schema</summary>
418    ///
419    /// ```json
420    ///{
421    ///  "type": "object",
422    ///  "properties": {
423    ///    "Example": {
424    ///      "type": "string"
425    ///    },
426    ///    "Help": {
427    ///      "type": "string"
428    ///    },
429    ///    "ReadOnly": {
430    ///      "type": "boolean"
431    ///    },
432    ///    "Type": {
433    ///      "type": "string"
434    ///    }
435    ///  },
436    ///  "additionalProperties": true
437    ///}
438    /// ```
439    /// </details>
440    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
441    pub struct ConfigProviderMetadataSystemEntry {
442        #[serde(
443            rename = "Example",
444            default,
445            skip_serializing_if = "::std::option::Option::is_none"
446        )]
447        pub example: ::std::option::Option<::std::string::String>,
448        #[serde(
449            rename = "Help",
450            default,
451            skip_serializing_if = "::std::option::Option::is_none"
452        )]
453        pub help: ::std::option::Option<::std::string::String>,
454        #[serde(
455            rename = "ReadOnly",
456            default,
457            skip_serializing_if = "::std::option::Option::is_none"
458        )]
459        pub read_only: ::std::option::Option<bool>,
460        #[serde(
461            rename = "Type",
462            default,
463            skip_serializing_if = "::std::option::Option::is_none"
464        )]
465        pub type_: ::std::option::Option<::std::string::String>,
466    }
467
468    impl ::std::convert::From<&ConfigProviderMetadataSystemEntry>
469        for ConfigProviderMetadataSystemEntry
470    {
471        fn from(value: &ConfigProviderMetadataSystemEntry) -> Self {
472            value.clone()
473        }
474    }
475
476    impl ::std::default::Default for ConfigProviderMetadataSystemEntry {
477        fn default() -> Self {
478            Self {
479                example: Default::default(),
480                help: Default::default(),
481                read_only: Default::default(),
482                type_: Default::default(),
483            }
484        }
485    }
486
487    ///`ConfigProviderOption`
488    ///
489    /// <details><summary>JSON schema</summary>
490    ///
491    /// ```json
492    ///{
493    ///  "type": "object",
494    ///  "required": [
495    ///    "Advanced",
496    ///    "Default",
497    ///    "DefaultStr",
498    ///    "Exclusive",
499    ///    "FieldName",
500    ///    "Help",
501    ///    "Hide",
502    ///    "IsPassword",
503    ///    "Name",
504    ///    "NoPrefix",
505    ///    "Required",
506    ///    "Sensitive",
507    ///    "Type",
508    ///    "Value",
509    ///    "ValueStr"
510    ///  ],
511    ///  "properties": {
512    ///    "Advanced": {
513    ///      "type": "boolean"
514    ///    },
515    ///    "Default": {
516    ///      "$ref": "#/components/schemas/ConfigProviderOptionAny"
517    ///    },
518    ///    "DefaultStr": {
519    ///      "type": "string"
520    ///    },
521    ///    "Examples": {
522    ///      "type": "array",
523    ///      "items": {
524    ///        "$ref": "#/components/schemas/ConfigProviderOptionExample"
525    ///      }
526    ///    },
527    ///    "Exclusive": {
528    ///      "type": "boolean"
529    ///    },
530    ///    "FieldName": {
531    ///      "type": "string"
532    ///    },
533    ///    "Help": {
534    ///      "type": "string"
535    ///    },
536    ///    "Hide": {
537    ///      "type": "number"
538    ///    },
539    ///    "IsPassword": {
540    ///      "type": "boolean"
541    ///    },
542    ///    "Name": {
543    ///      "type": "string"
544    ///    },
545    ///    "NoPrefix": {
546    ///      "type": "boolean"
547    ///    },
548    ///    "Provider": {
549    ///      "type": "string"
550    ///    },
551    ///    "Required": {
552    ///      "type": "boolean"
553    ///    },
554    ///    "Sensitive": {
555    ///      "type": "boolean"
556    ///    },
557    ///    "ShortOpt": {
558    ///      "type": "string"
559    ///    },
560    ///    "Type": {
561    ///      "$ref": "#/components/schemas/ConfigProviderOptionType"
562    ///    },
563    ///    "Value": {
564    ///      "$ref": "#/components/schemas/ConfigProviderOptionAny"
565    ///    },
566    ///    "ValueStr": {
567    ///      "type": "string"
568    ///    }
569    ///  },
570    ///  "additionalProperties": true
571    ///}
572    /// ```
573    /// </details>
574    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
575    pub struct ConfigProviderOption {
576        #[serde(rename = "Advanced")]
577        pub advanced: bool,
578        #[serde(rename = "Default")]
579        pub default: ConfigProviderOptionAny,
580        #[serde(rename = "DefaultStr")]
581        pub default_str: ::std::string::String,
582        #[serde(
583            rename = "Examples",
584            default,
585            skip_serializing_if = "::std::vec::Vec::is_empty"
586        )]
587        pub examples: ::std::vec::Vec<ConfigProviderOptionExample>,
588        #[serde(rename = "Exclusive")]
589        pub exclusive: bool,
590        #[serde(rename = "FieldName")]
591        pub field_name: ::std::string::String,
592        #[serde(rename = "Help")]
593        pub help: ::std::string::String,
594        #[serde(rename = "Hide")]
595        pub hide: f64,
596        #[serde(rename = "IsPassword")]
597        pub is_password: bool,
598        #[serde(rename = "Name")]
599        pub name: ::std::string::String,
600        #[serde(rename = "NoPrefix")]
601        pub no_prefix: bool,
602        #[serde(
603            rename = "Provider",
604            default,
605            skip_serializing_if = "::std::option::Option::is_none"
606        )]
607        pub provider: ::std::option::Option<::std::string::String>,
608        #[serde(rename = "Required")]
609        pub required: bool,
610        #[serde(rename = "Sensitive")]
611        pub sensitive: bool,
612        #[serde(
613            rename = "ShortOpt",
614            default,
615            skip_serializing_if = "::std::option::Option::is_none"
616        )]
617        pub short_opt: ::std::option::Option<::std::string::String>,
618        #[serde(rename = "Type")]
619        pub type_: ConfigProviderOptionType,
620        #[serde(rename = "Value")]
621        pub value: ConfigProviderOptionAny,
622        #[serde(rename = "ValueStr")]
623        pub value_str: ::std::string::String,
624    }
625
626    impl ::std::convert::From<&ConfigProviderOption> for ConfigProviderOption {
627        fn from(value: &ConfigProviderOption) -> Self {
628            value.clone()
629        }
630    }
631
632    ///Arbitrary JSON value. (arbitrary JSON value)
633    ///
634    /// <details><summary>JSON schema</summary>
635    ///
636    /// ```json
637    ///{
638    ///  "description": "Arbitrary JSON value. (arbitrary JSON value)",
639    ///  "type": [
640    ///    "object",
641    ///    "null"
642    ///  ],
643    ///  "additionalProperties": true
644    ///}
645    /// ```
646    /// </details>
647    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
648    #[serde(transparent)]
649    pub struct ConfigProviderOptionAny(
650        pub ::std::option::Option<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
651    );
652    impl ::std::ops::Deref for ConfigProviderOptionAny {
653        type Target =
654            ::std::option::Option<::serde_json::Map<::std::string::String, ::serde_json::Value>>;
655        fn deref(
656            &self,
657        ) -> &::std::option::Option<::serde_json::Map<::std::string::String, ::serde_json::Value>>
658        {
659            &self.0
660        }
661    }
662
663    impl ::std::convert::From<ConfigProviderOptionAny>
664        for ::std::option::Option<::serde_json::Map<::std::string::String, ::serde_json::Value>>
665    {
666        fn from(value: ConfigProviderOptionAny) -> Self {
667            value.0
668        }
669    }
670
671    impl ::std::convert::From<&ConfigProviderOptionAny> for ConfigProviderOptionAny {
672        fn from(value: &ConfigProviderOptionAny) -> Self {
673            value.clone()
674        }
675    }
676
677    impl
678        ::std::convert::From<
679            ::std::option::Option<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
680        > for ConfigProviderOptionAny
681    {
682        fn from(
683            value: ::std::option::Option<
684                ::serde_json::Map<::std::string::String, ::serde_json::Value>,
685            >,
686        ) -> Self {
687            Self(value)
688        }
689    }
690
691    ///`ConfigProviderOptionExample`
692    ///
693    /// <details><summary>JSON schema</summary>
694    ///
695    /// ```json
696    ///{
697    ///  "type": "object",
698    ///  "required": [
699    ///    "Help",
700    ///    "Value"
701    ///  ],
702    ///  "properties": {
703    ///    "Help": {
704    ///      "type": "string"
705    ///    },
706    ///    "Provider": {
707    ///      "type": "string"
708    ///    },
709    ///    "Value": {
710    ///      "type": "string"
711    ///    }
712    ///  },
713    ///  "additionalProperties": true
714    ///}
715    /// ```
716    /// </details>
717    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
718    pub struct ConfigProviderOptionExample {
719        #[serde(rename = "Help")]
720        pub help: ::std::string::String,
721        #[serde(
722            rename = "Provider",
723            default,
724            skip_serializing_if = "::std::option::Option::is_none"
725        )]
726        pub provider: ::std::option::Option<::std::string::String>,
727        #[serde(rename = "Value")]
728        pub value: ::std::string::String,
729    }
730
731    impl ::std::convert::From<&ConfigProviderOptionExample> for ConfigProviderOptionExample {
732        fn from(value: &ConfigProviderOptionExample) -> Self {
733            value.clone()
734        }
735    }
736
737    ///`ConfigProviderOptionType`
738    ///
739    /// <details><summary>JSON schema</summary>
740    ///
741    /// ```json
742    ///{
743    ///  "type": "string",
744    ///  "enum": [
745    ///    "Bits",
746    ///    "bool",
747    ///    "CommaSepList",
748    ///    "Duration",
749    ///    "Encoding",
750    ///    "int",
751    ///    "mtime|atime|btime|ctime",
752    ///    "SizeSuffix",
753    ///    "SpaceSepList",
754    ///    "string",
755    ///    "stringArray",
756    ///    "Time",
757    ///    "Tristate"
758    ///  ]
759    ///}
760    /// ```
761    /// </details>
762    #[derive(
763        :: serde :: Deserialize,
764        :: serde :: Serialize,
765        Clone,
766        Copy,
767        Debug,
768        Eq,
769        Hash,
770        Ord,
771        PartialEq,
772        PartialOrd,
773    )]
774    pub enum ConfigProviderOptionType {
775        Bits,
776        #[serde(rename = "bool")]
777        Bool,
778        CommaSepList,
779        Duration,
780        Encoding,
781        #[serde(rename = "int")]
782        Int,
783        #[serde(rename = "mtime|atime|btime|ctime")]
784        MtimeAtimeBtimeCtime,
785        SizeSuffix,
786        SpaceSepList,
787        #[serde(rename = "string")]
788        String,
789        #[serde(rename = "stringArray")]
790        StringArray,
791        Time,
792        Tristate,
793    }
794
795    impl ::std::convert::From<&Self> for ConfigProviderOptionType {
796        fn from(value: &ConfigProviderOptionType) -> Self {
797            value.clone()
798        }
799    }
800
801    impl ::std::fmt::Display for ConfigProviderOptionType {
802        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
803            match *self {
804                Self::Bits => f.write_str("Bits"),
805                Self::Bool => f.write_str("bool"),
806                Self::CommaSepList => f.write_str("CommaSepList"),
807                Self::Duration => f.write_str("Duration"),
808                Self::Encoding => f.write_str("Encoding"),
809                Self::Int => f.write_str("int"),
810                Self::MtimeAtimeBtimeCtime => f.write_str("mtime|atime|btime|ctime"),
811                Self::SizeSuffix => f.write_str("SizeSuffix"),
812                Self::SpaceSepList => f.write_str("SpaceSepList"),
813                Self::String => f.write_str("string"),
814                Self::StringArray => f.write_str("stringArray"),
815                Self::Time => f.write_str("Time"),
816                Self::Tristate => f.write_str("Tristate"),
817            }
818        }
819    }
820
821    impl ::std::str::FromStr for ConfigProviderOptionType {
822        type Err = self::error::ConversionError;
823        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
824            match value {
825                "Bits" => Ok(Self::Bits),
826                "bool" => Ok(Self::Bool),
827                "CommaSepList" => Ok(Self::CommaSepList),
828                "Duration" => Ok(Self::Duration),
829                "Encoding" => Ok(Self::Encoding),
830                "int" => Ok(Self::Int),
831                "mtime|atime|btime|ctime" => Ok(Self::MtimeAtimeBtimeCtime),
832                "SizeSuffix" => Ok(Self::SizeSuffix),
833                "SpaceSepList" => Ok(Self::SpaceSepList),
834                "string" => Ok(Self::String),
835                "stringArray" => Ok(Self::StringArray),
836                "Time" => Ok(Self::Time),
837                "Tristate" => Ok(Self::Tristate),
838                _ => Err("invalid value".into()),
839            }
840        }
841    }
842
843    impl ::std::convert::TryFrom<&str> for ConfigProviderOptionType {
844        type Error = self::error::ConversionError;
845        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
846            value.parse()
847        }
848    }
849
850    impl ::std::convert::TryFrom<&::std::string::String> for ConfigProviderOptionType {
851        type Error = self::error::ConversionError;
852        fn try_from(
853            value: &::std::string::String,
854        ) -> ::std::result::Result<Self, self::error::ConversionError> {
855            value.parse()
856        }
857    }
858
859    impl ::std::convert::TryFrom<::std::string::String> for ConfigProviderOptionType {
860        type Error = self::error::ConversionError;
861        fn try_from(
862            value: ::std::string::String,
863        ) -> ::std::result::Result<Self, self::error::ConversionError> {
864            value.parse()
865        }
866    }
867
868    ///`ConfigProvidersResponse`
869    ///
870    /// <details><summary>JSON schema</summary>
871    ///
872    /// ```json
873    ///{
874    ///  "type": "object",
875    ///  "required": [
876    ///    "providers"
877    ///  ],
878    ///  "properties": {
879    ///    "providers": {
880    ///      "type": "array",
881    ///      "items": {
882    ///        "$ref": "#/components/schemas/ConfigProvider"
883    ///      }
884    ///    }
885    ///  },
886    ///  "additionalProperties": true
887    ///}
888    /// ```
889    /// </details>
890    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
891    pub struct ConfigProvidersResponse {
892        pub providers: ::std::vec::Vec<ConfigProvider>,
893    }
894
895    impl ::std::convert::From<&ConfigProvidersResponse> for ConfigProvidersResponse {
896        fn from(value: &ConfigProvidersResponse) -> Self {
897            value.clone()
898        }
899    }
900
901    ///`CoreBwlimitResponse`
902    ///
903    /// <details><summary>JSON schema</summary>
904    ///
905    /// ```json
906    ///{
907    ///  "type": "object",
908    ///  "required": [
909    ///    "bytesPerSecond",
910    ///    "bytesPerSecondRx",
911    ///    "bytesPerSecondTx",
912    ///    "rate"
913    ///  ],
914    ///  "properties": {
915    ///    "bytesPerSecond": {
916    ///      "type": "integer"
917    ///    },
918    ///    "bytesPerSecondRx": {
919    ///      "type": "integer"
920    ///    },
921    ///    "bytesPerSecondTx": {
922    ///      "type": "integer"
923    ///    },
924    ///    "rate": {
925    ///      "type": "string"
926    ///    }
927    ///  }
928    ///}
929    /// ```
930    /// </details>
931    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
932    pub struct CoreBwlimitResponse {
933        #[serde(rename = "bytesPerSecond")]
934        pub bytes_per_second: i64,
935        #[serde(rename = "bytesPerSecondRx")]
936        pub bytes_per_second_rx: i64,
937        #[serde(rename = "bytesPerSecondTx")]
938        pub bytes_per_second_tx: i64,
939        pub rate: ::std::string::String,
940    }
941
942    impl ::std::convert::From<&CoreBwlimitResponse> for CoreBwlimitResponse {
943        fn from(value: &CoreBwlimitResponse) -> Self {
944            value.clone()
945        }
946    }
947
948    ///`CoreCommandResponse`
949    ///
950    /// <details><summary>JSON schema</summary>
951    ///
952    /// ```json
953    ///{
954    ///  "type": "object",
955    ///  "required": [
956    ///    "error"
957    ///  ],
958    ///  "properties": {
959    ///    "error": {
960    ///      "type": "boolean"
961    ///    },
962    ///    "result": {
963    ///      "type": [
964    ///        "string",
965    ///        "null"
966    ///      ]
967    ///    },
968    ///    "returnType": {
969    ///      "type": [
970    ///        "string",
971    ///        "null"
972    ///      ]
973    ///    }
974    ///  }
975    ///}
976    /// ```
977    /// </details>
978    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
979    pub struct CoreCommandResponse {
980        pub error: bool,
981        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
982        pub result: ::std::option::Option<::std::string::String>,
983        #[serde(
984            rename = "returnType",
985            default,
986            skip_serializing_if = "::std::option::Option::is_none"
987        )]
988        pub return_type: ::std::option::Option<::std::string::String>,
989    }
990
991    impl ::std::convert::From<&CoreCommandResponse> for CoreCommandResponse {
992        fn from(value: &CoreCommandResponse) -> Self {
993            value.clone()
994        }
995    }
996
997    ///`CoreDuResponse`
998    ///
999    /// <details><summary>JSON schema</summary>
1000    ///
1001    /// ```json
1002    ///{
1003    ///  "type": "object",
1004    ///  "required": [
1005    ///    "dir",
1006    ///    "info"
1007    ///  ],
1008    ///  "properties": {
1009    ///    "dir": {
1010    ///      "type": "string"
1011    ///    },
1012    ///    "info": {
1013    ///      "type": "object",
1014    ///      "required": [
1015    ///        "Available",
1016    ///        "Free",
1017    ///        "Total"
1018    ///      ],
1019    ///      "properties": {
1020    ///        "Available": {
1021    ///          "type": "integer"
1022    ///        },
1023    ///        "Free": {
1024    ///          "type": "integer"
1025    ///        },
1026    ///        "Total": {
1027    ///          "type": "integer"
1028    ///        }
1029    ///      }
1030    ///    }
1031    ///  }
1032    ///}
1033    /// ```
1034    /// </details>
1035    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1036    pub struct CoreDuResponse {
1037        pub dir: ::std::string::String,
1038        pub info: CoreDuResponseInfo,
1039    }
1040
1041    impl ::std::convert::From<&CoreDuResponse> for CoreDuResponse {
1042        fn from(value: &CoreDuResponse) -> Self {
1043            value.clone()
1044        }
1045    }
1046
1047    ///`CoreDuResponseInfo`
1048    ///
1049    /// <details><summary>JSON schema</summary>
1050    ///
1051    /// ```json
1052    ///{
1053    ///  "type": "object",
1054    ///  "required": [
1055    ///    "Available",
1056    ///    "Free",
1057    ///    "Total"
1058    ///  ],
1059    ///  "properties": {
1060    ///    "Available": {
1061    ///      "type": "integer"
1062    ///    },
1063    ///    "Free": {
1064    ///      "type": "integer"
1065    ///    },
1066    ///    "Total": {
1067    ///      "type": "integer"
1068    ///    }
1069    ///  }
1070    ///}
1071    /// ```
1072    /// </details>
1073    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1074    pub struct CoreDuResponseInfo {
1075        #[serde(rename = "Available")]
1076        pub available: i64,
1077        #[serde(rename = "Free")]
1078        pub free: i64,
1079        #[serde(rename = "Total")]
1080        pub total: i64,
1081    }
1082
1083    impl ::std::convert::From<&CoreDuResponseInfo> for CoreDuResponseInfo {
1084        fn from(value: &CoreDuResponseInfo) -> Self {
1085            value.clone()
1086        }
1087    }
1088
1089    ///`CoreGroupListResponse`
1090    ///
1091    /// <details><summary>JSON schema</summary>
1092    ///
1093    /// ```json
1094    ///{
1095    ///  "type": "object",
1096    ///  "required": [
1097    ///    "groups"
1098    ///  ],
1099    ///  "properties": {
1100    ///    "groups": {
1101    ///      "type": "array",
1102    ///      "items": {
1103    ///        "type": "string"
1104    ///      }
1105    ///    }
1106    ///  }
1107    ///}
1108    /// ```
1109    /// </details>
1110    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1111    pub struct CoreGroupListResponse {
1112        pub groups: ::std::vec::Vec<::std::string::String>,
1113    }
1114
1115    impl ::std::convert::From<&CoreGroupListResponse> for CoreGroupListResponse {
1116        fn from(value: &CoreGroupListResponse) -> Self {
1117            value.clone()
1118        }
1119    }
1120
1121    ///`CoreObscureResponse`
1122    ///
1123    /// <details><summary>JSON schema</summary>
1124    ///
1125    /// ```json
1126    ///{
1127    ///  "type": "object",
1128    ///  "required": [
1129    ///    "obscured"
1130    ///  ],
1131    ///  "properties": {
1132    ///    "obscured": {
1133    ///      "type": "string"
1134    ///    }
1135    ///  }
1136    ///}
1137    /// ```
1138    /// </details>
1139    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1140    pub struct CoreObscureResponse {
1141        pub obscured: ::std::string::String,
1142    }
1143
1144    impl ::std::convert::From<&CoreObscureResponse> for CoreObscureResponse {
1145        fn from(value: &CoreObscureResponse) -> Self {
1146            value.clone()
1147        }
1148    }
1149
1150    ///`CorePidResponse`
1151    ///
1152    /// <details><summary>JSON schema</summary>
1153    ///
1154    /// ```json
1155    ///{
1156    ///  "type": "object",
1157    ///  "required": [
1158    ///    "pid"
1159    ///  ],
1160    ///  "properties": {
1161    ///    "pid": {
1162    ///      "type": "integer"
1163    ///    }
1164    ///  }
1165    ///}
1166    /// ```
1167    /// </details>
1168    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1169    pub struct CorePidResponse {
1170        pub pid: i64,
1171    }
1172
1173    impl ::std::convert::From<&CorePidResponse> for CorePidResponse {
1174        fn from(value: &CorePidResponse) -> Self {
1175            value.clone()
1176        }
1177    }
1178
1179    ///Metadata for an item currently undergoing verification.
1180    ///
1181    /// <details><summary>JSON schema</summary>
1182    ///
1183    /// ```json
1184    ///{
1185    ///  "description": "Metadata for an item currently undergoing
1186    /// verification.",
1187    ///  "type": "object",
1188    ///  "properties": {
1189    ///    "group": {
1190    ///      "description": "Stats group name associated with this
1191    /// verification.",
1192    ///      "type": "string"
1193    ///    },
1194    ///    "name": {
1195    ///      "description": "Remote path of the object being verified.",
1196    ///      "type": "string"
1197    ///    },
1198    ///    "size": {
1199    ///      "description": "Total size in bytes of the object.",
1200    ///      "type": "number"
1201    ///    }
1202    ///  },
1203    ///  "additionalProperties": true
1204    ///}
1205    /// ```
1206    /// </details>
1207    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1208    pub struct CoreStatsChecking {
1209        ///Stats group name associated with this verification.
1210        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1211        pub group: ::std::option::Option<::std::string::String>,
1212        ///Remote path of the object being verified.
1213        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1214        pub name: ::std::option::Option<::std::string::String>,
1215        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1216        pub size: ::std::option::Option<f64>,
1217    }
1218
1219    impl ::std::convert::From<&CoreStatsChecking> for CoreStatsChecking {
1220        fn from(value: &CoreStatsChecking) -> Self {
1221            value.clone()
1222        }
1223    }
1224
1225    impl ::std::default::Default for CoreStatsChecking {
1226        fn default() -> Self {
1227            Self {
1228                group: Default::default(),
1229                name: Default::default(),
1230                size: Default::default(),
1231            }
1232        }
1233    }
1234
1235    ///`CoreStatsResponse`
1236    ///
1237    /// <details><summary>JSON schema</summary>
1238    ///
1239    /// ```json
1240    ///{
1241    ///  "type": "object",
1242    ///  "required": [
1243    ///    "bytes",
1244    ///    "checks",
1245    ///    "deletedDirs",
1246    ///    "deletes",
1247    ///    "elapsedTime",
1248    ///    "errors",
1249    ///    "eta",
1250    ///    "fatalError",
1251    ///    "renames",
1252    ///    "retryError",
1253    ///    "serverSideCopies",
1254    ///    "serverSideCopyBytes",
1255    ///    "serverSideMoveBytes",
1256    ///    "serverSideMoves",
1257    ///    "speed",
1258    ///    "totalBytes",
1259    ///    "totalChecks",
1260    ///    "totalTransfers",
1261    ///    "transferTime",
1262    ///    "transfers"
1263    ///  ],
1264    ///  "properties": {
1265    ///    "bytes": {
1266    ///      "type": "number"
1267    ///    },
1268    ///    "checking": {
1269    ///      "description": "Objects currently undergoing verification
1270    /// operations.",
1271    ///      "type": "array",
1272    ///      "items": {
1273    ///        "$ref": "#/components/schemas/CoreStatsChecking"
1274    ///      }
1275    ///    },
1276    ///    "checks": {
1277    ///      "type": "number"
1278    ///    },
1279    ///    "deletedDirs": {
1280    ///      "type": "number"
1281    ///    },
1282    ///    "deletes": {
1283    ///      "type": "number"
1284    ///    },
1285    ///    "elapsedTime": {
1286    ///      "type": "number"
1287    ///    },
1288    ///    "errors": {
1289    ///      "type": "number"
1290    ///    },
1291    ///    "eta": {
1292    ///      "type": [
1293    ///        "number",
1294    ///        "null"
1295    ///      ]
1296    ///    },
1297    ///    "fatalError": {
1298    ///      "type": "boolean"
1299    ///    },
1300    ///    "lastError": {
1301    ///      "type": "string"
1302    ///    },
1303    ///    "renames": {
1304    ///      "type": "number"
1305    ///    },
1306    ///    "retryError": {
1307    ///      "type": "boolean"
1308    ///    },
1309    ///    "serverSideCopies": {
1310    ///      "type": "number"
1311    ///    },
1312    ///    "serverSideCopyBytes": {
1313    ///      "type": "number"
1314    ///    },
1315    ///    "serverSideMoveBytes": {
1316    ///      "type": "number"
1317    ///    },
1318    ///    "serverSideMoves": {
1319    ///      "type": "number"
1320    ///    },
1321    ///    "speed": {
1322    ///      "type": "number"
1323    ///    },
1324    ///    "totalBytes": {
1325    ///      "type": "number"
1326    ///    },
1327    ///    "totalChecks": {
1328    ///      "type": "number"
1329    ///    },
1330    ///    "totalTransfers": {
1331    ///      "type": "number"
1332    ///    },
1333    ///    "transferTime": {
1334    ///      "type": "number"
1335    ///    },
1336    ///    "transferring": {
1337    ///      "description": "Active transfers currently in progress grouped by
1338    /// stats group.",
1339    ///      "type": "array",
1340    ///      "items": {
1341    ///        "$ref": "#/components/schemas/CoreStatsTransfer"
1342    ///      }
1343    ///    },
1344    ///    "transfers": {
1345    ///      "type": "number"
1346    ///    }
1347    ///  }
1348    ///}
1349    /// ```
1350    /// </details>
1351    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1352    pub struct CoreStatsResponse {
1353        pub bytes: f64,
1354        ///Objects currently undergoing verification operations.
1355        #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
1356        pub checking: ::std::vec::Vec<CoreStatsChecking>,
1357        pub checks: f64,
1358        #[serde(rename = "deletedDirs")]
1359        pub deleted_dirs: f64,
1360        pub deletes: f64,
1361        #[serde(rename = "elapsedTime")]
1362        pub elapsed_time: f64,
1363        pub errors: f64,
1364        pub eta: ::std::option::Option<f64>,
1365        #[serde(rename = "fatalError")]
1366        pub fatal_error: bool,
1367        #[serde(
1368            rename = "lastError",
1369            default,
1370            skip_serializing_if = "::std::option::Option::is_none"
1371        )]
1372        pub last_error: ::std::option::Option<::std::string::String>,
1373        pub renames: f64,
1374        #[serde(rename = "retryError")]
1375        pub retry_error: bool,
1376        #[serde(rename = "serverSideCopies")]
1377        pub server_side_copies: f64,
1378        #[serde(rename = "serverSideCopyBytes")]
1379        pub server_side_copy_bytes: f64,
1380        #[serde(rename = "serverSideMoveBytes")]
1381        pub server_side_move_bytes: f64,
1382        #[serde(rename = "serverSideMoves")]
1383        pub server_side_moves: f64,
1384        pub speed: f64,
1385        #[serde(rename = "totalBytes")]
1386        pub total_bytes: f64,
1387        #[serde(rename = "totalChecks")]
1388        pub total_checks: f64,
1389        #[serde(rename = "totalTransfers")]
1390        pub total_transfers: f64,
1391        #[serde(rename = "transferTime")]
1392        pub transfer_time: f64,
1393        ///Active transfers currently in progress grouped by stats group.
1394        #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
1395        pub transferring: ::std::vec::Vec<CoreStatsTransfer>,
1396        pub transfers: f64,
1397    }
1398
1399    impl ::std::convert::From<&CoreStatsResponse> for CoreStatsResponse {
1400        fn from(value: &CoreStatsResponse) -> Self {
1401            value.clone()
1402        }
1403    }
1404
1405    ///Progress metrics for an in-flight transfer.
1406    ///
1407    /// <details><summary>JSON schema</summary>
1408    ///
1409    /// ```json
1410    ///{
1411    ///  "description": "Progress metrics for an in-flight transfer.",
1412    ///  "type": "object",
1413    ///  "properties": {
1414    ///    "bytes": {
1415    ///      "description": "Bytes transferred so far for this object.",
1416    ///      "type": "number"
1417    ///    },
1418    ///    "eta": {
1419    ///      "description": "Estimated seconds remaining, when available.",
1420    ///      "type": [
1421    ///        "number",
1422    ///        "null"
1423    ///      ]
1424    ///    },
1425    ///    "group": {
1426    ///      "description": "Stats group name associated with this transfer.",
1427    ///      "type": "string"
1428    ///    },
1429    ///    "name": {
1430    ///      "description": "Remote path of the object being transferred.",
1431    ///      "type": "string"
1432    ///    },
1433    ///    "percentage": {
1434    ///      "description": "Completion percentage from 0-100.",
1435    ///      "type": "number"
1436    ///    },
1437    ///    "size": {
1438    ///      "description": "Total size in bytes of the object.",
1439    ///      "type": "number"
1440    ///    },
1441    ///    "speed": {
1442    ///      "description": "Current transfer speed in bytes per second.",
1443    ///      "type": "number"
1444    ///    }
1445    ///  },
1446    ///  "additionalProperties": true
1447    ///}
1448    /// ```
1449    /// </details>
1450    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1451    pub struct CoreStatsTransfer {
1452        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1453        pub bytes: ::std::option::Option<f64>,
1454        ///Estimated seconds remaining, when available.
1455        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1456        pub eta: ::std::option::Option<f64>,
1457        ///Stats group name associated with this transfer.
1458        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1459        pub group: ::std::option::Option<::std::string::String>,
1460        ///Remote path of the object being transferred.
1461        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1462        pub name: ::std::option::Option<::std::string::String>,
1463        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1464        pub percentage: ::std::option::Option<f64>,
1465        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1466        pub size: ::std::option::Option<f64>,
1467        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1468        pub speed: ::std::option::Option<f64>,
1469    }
1470
1471    impl ::std::convert::From<&CoreStatsTransfer> for CoreStatsTransfer {
1472        fn from(value: &CoreStatsTransfer) -> Self {
1473            value.clone()
1474        }
1475    }
1476
1477    impl ::std::default::Default for CoreStatsTransfer {
1478        fn default() -> Self {
1479            Self {
1480                bytes: Default::default(),
1481                eta: Default::default(),
1482                group: Default::default(),
1483                name: Default::default(),
1484                percentage: Default::default(),
1485                size: Default::default(),
1486                speed: Default::default(),
1487            }
1488        }
1489    }
1490
1491    ///`CoreTransferredResponse`
1492    ///
1493    /// <details><summary>JSON schema</summary>
1494    ///
1495    /// ```json
1496    ///{
1497    ///  "type": "object",
1498    ///  "required": [
1499    ///    "transferred"
1500    ///  ],
1501    ///  "properties": {
1502    ///    "transferred": {
1503    ///      "type": "array",
1504    ///      "items": {
1505    ///        "type": "object",
1506    ///        "required": [
1507    ///          "group"
1508    ///        ],
1509    ///        "properties": {
1510    ///          "bytes": {
1511    ///            "type": "integer"
1512    ///          },
1513    ///          "checked": {
1514    ///            "type": "boolean"
1515    ///          },
1516    ///          "dstFs": {
1517    ///            "description": "Destination remote or filesystem used for the
1518    /// transfer.",
1519    ///            "type": "string"
1520    ///          },
1521    ///          "dstRemote": {
1522    ///            "description": "Destination path within `dstFs`, when
1523    /// provided.",
1524    ///            "type": "string"
1525    ///          },
1526    ///          "error": {
1527    ///            "type": "string"
1528    ///          },
1529    ///          "group": {
1530    ///            "description": "Stats group identifier this transfer belonged
1531    /// to.",
1532    ///            "type": "string"
1533    ///          },
1534    ///          "jobid": {
1535    ///            "type": "integer"
1536    ///          },
1537    ///          "name": {
1538    ///            "type": "string"
1539    ///          },
1540    ///          "size": {
1541    ///            "type": "integer"
1542    ///          },
1543    ///          "srcFs": {
1544    ///            "description": "Source remote or filesystem used for the
1545    /// transfer.",
1546    ///            "type": "string"
1547    ///          },
1548    ///          "srcRemote": {
1549    ///            "description": "Source path within `srcFs`, when provided.",
1550    ///            "type": "string"
1551    ///          },
1552    ///          "timestamp": {
1553    ///            "type": "integer"
1554    ///          },
1555    ///          "what": {
1556    ///            "type": "string"
1557    ///          }
1558    ///        },
1559    ///        "additionalProperties": true
1560    ///      }
1561    ///    }
1562    ///  }
1563    ///}
1564    /// ```
1565    /// </details>
1566    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1567    pub struct CoreTransferredResponse {
1568        pub transferred: ::std::vec::Vec<CoreTransferredResponseTransferredItem>,
1569    }
1570
1571    impl ::std::convert::From<&CoreTransferredResponse> for CoreTransferredResponse {
1572        fn from(value: &CoreTransferredResponse) -> Self {
1573            value.clone()
1574        }
1575    }
1576
1577    ///`CoreTransferredResponseTransferredItem`
1578    ///
1579    /// <details><summary>JSON schema</summary>
1580    ///
1581    /// ```json
1582    ///{
1583    ///  "type": "object",
1584    ///  "required": [
1585    ///    "group"
1586    ///  ],
1587    ///  "properties": {
1588    ///    "bytes": {
1589    ///      "type": "integer"
1590    ///    },
1591    ///    "checked": {
1592    ///      "type": "boolean"
1593    ///    },
1594    ///    "dstFs": {
1595    ///      "description": "Destination remote or filesystem used for the
1596    /// transfer.",
1597    ///      "type": "string"
1598    ///    },
1599    ///    "dstRemote": {
1600    ///      "description": "Destination path within `dstFs`, when provided.",
1601    ///      "type": "string"
1602    ///    },
1603    ///    "error": {
1604    ///      "type": "string"
1605    ///    },
1606    ///    "group": {
1607    ///      "description": "Stats group identifier this transfer belonged to.",
1608    ///      "type": "string"
1609    ///    },
1610    ///    "jobid": {
1611    ///      "type": "integer"
1612    ///    },
1613    ///    "name": {
1614    ///      "type": "string"
1615    ///    },
1616    ///    "size": {
1617    ///      "type": "integer"
1618    ///    },
1619    ///    "srcFs": {
1620    ///      "description": "Source remote or filesystem used for the
1621    /// transfer.",
1622    ///      "type": "string"
1623    ///    },
1624    ///    "srcRemote": {
1625    ///      "description": "Source path within `srcFs`, when provided.",
1626    ///      "type": "string"
1627    ///    },
1628    ///    "timestamp": {
1629    ///      "type": "integer"
1630    ///    },
1631    ///    "what": {
1632    ///      "type": "string"
1633    ///    }
1634    ///  },
1635    ///  "additionalProperties": true
1636    ///}
1637    /// ```
1638    /// </details>
1639    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1640    pub struct CoreTransferredResponseTransferredItem {
1641        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1642        pub bytes: ::std::option::Option<i64>,
1643        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1644        pub checked: ::std::option::Option<bool>,
1645        ///Destination remote or filesystem used for the transfer.
1646        #[serde(
1647            rename = "dstFs",
1648            default,
1649            skip_serializing_if = "::std::option::Option::is_none"
1650        )]
1651        pub dst_fs: ::std::option::Option<::std::string::String>,
1652        ///Destination path within `dstFs`, when provided.
1653        #[serde(
1654            rename = "dstRemote",
1655            default,
1656            skip_serializing_if = "::std::option::Option::is_none"
1657        )]
1658        pub dst_remote: ::std::option::Option<::std::string::String>,
1659        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1660        pub error: ::std::option::Option<::std::string::String>,
1661        ///Stats group identifier this transfer belonged to.
1662        pub group: ::std::string::String,
1663        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1664        pub jobid: ::std::option::Option<i64>,
1665        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1666        pub name: ::std::option::Option<::std::string::String>,
1667        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1668        pub size: ::std::option::Option<i64>,
1669        ///Source remote or filesystem used for the transfer.
1670        #[serde(
1671            rename = "srcFs",
1672            default,
1673            skip_serializing_if = "::std::option::Option::is_none"
1674        )]
1675        pub src_fs: ::std::option::Option<::std::string::String>,
1676        ///Source path within `srcFs`, when provided.
1677        #[serde(
1678            rename = "srcRemote",
1679            default,
1680            skip_serializing_if = "::std::option::Option::is_none"
1681        )]
1682        pub src_remote: ::std::option::Option<::std::string::String>,
1683        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1684        pub timestamp: ::std::option::Option<i64>,
1685        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1686        pub what: ::std::option::Option<::std::string::String>,
1687    }
1688
1689    impl ::std::convert::From<&CoreTransferredResponseTransferredItem>
1690        for CoreTransferredResponseTransferredItem
1691    {
1692        fn from(value: &CoreTransferredResponseTransferredItem) -> Self {
1693            value.clone()
1694        }
1695    }
1696
1697    ///`CoreVersionResponse`
1698    ///
1699    /// <details><summary>JSON schema</summary>
1700    ///
1701    /// ```json
1702    ///{
1703    ///  "type": "object",
1704    ///  "required": [
1705    ///    "arch",
1706    ///    "decomposed",
1707    ///    "goTags",
1708    ///    "goVersion",
1709    ///    "isBeta",
1710    ///    "isGit",
1711    ///    "linking",
1712    ///    "os",
1713    ///    "version"
1714    ///  ],
1715    ///  "properties": {
1716    ///    "arch": {
1717    ///      "description": "CPU architecture (e.g. amd64, arm64).",
1718    ///      "type": "string"
1719    ///    },
1720    ///    "decomposed": {
1721    ///      "description": "Version number broken into components.",
1722    ///      "type": "array",
1723    ///      "items": {
1724    ///        "type": "number"
1725    ///      }
1726    ///    },
1727    ///    "goTags": {
1728    ///      "description": "Space separated Go build tags, if any.",
1729    ///      "type": "string"
1730    ///    },
1731    ///    "goVersion": {
1732    ///      "description": "Go toolchain version used to build rclone.",
1733    ///      "type": "string"
1734    ///    },
1735    ///    "isBeta": {
1736    ///      "description": "Indicates whether this build is a beta version.",
1737    ///      "type": "boolean"
1738    ///    },
1739    ///    "isGit": {
1740    ///      "description": "True when built directly from a git checkout.",
1741    ///      "type": "boolean"
1742    ///    },
1743    ///    "linking": {
1744    ///      "description": "Linking mode for the binary (static or dynamic).",
1745    ///      "type": "string"
1746    ///    },
1747    ///    "os": {
1748    ///      "description": "Operating system rclone is running on (e.g. linux,
1749    /// darwin).",
1750    ///      "type": "string"
1751    ///    },
1752    ///    "version": {
1753    ///      "description": "Full semantic version string (e.g. 1.67.0).",
1754    ///      "type": "string"
1755    ///    }
1756    ///  }
1757    ///}
1758    /// ```
1759    /// </details>
1760    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1761    pub struct CoreVersionResponse {
1762        ///CPU architecture (e.g. amd64, arm64).
1763        pub arch: ::std::string::String,
1764        ///Version number broken into components.
1765        pub decomposed: ::std::vec::Vec<f64>,
1766        ///Space separated Go build tags, if any.
1767        #[serde(rename = "goTags")]
1768        pub go_tags: ::std::string::String,
1769        ///Go toolchain version used to build rclone.
1770        #[serde(rename = "goVersion")]
1771        pub go_version: ::std::string::String,
1772        ///Indicates whether this build is a beta version.
1773        #[serde(rename = "isBeta")]
1774        pub is_beta: bool,
1775        ///True when built directly from a git checkout.
1776        #[serde(rename = "isGit")]
1777        pub is_git: bool,
1778        ///Linking mode for the binary (static or dynamic).
1779        pub linking: ::std::string::String,
1780        ///Operating system rclone is running on (e.g. linux, darwin).
1781        pub os: ::std::string::String,
1782        ///Full semantic version string (e.g. 1.67.0).
1783        pub version: ::std::string::String,
1784    }
1785
1786    impl ::std::convert::From<&CoreVersionResponse> for CoreVersionResponse {
1787        fn from(value: &CoreVersionResponse) -> Self {
1788            value.clone()
1789        }
1790    }
1791
1792    ///`DebugSetGcPercentResponse`
1793    ///
1794    /// <details><summary>JSON schema</summary>
1795    ///
1796    /// ```json
1797    ///{
1798    ///  "type": "object",
1799    ///  "required": [
1800    ///    "existing-gc-percent"
1801    ///  ],
1802    ///  "properties": {
1803    ///    "existing-gc-percent": {
1804    ///      "type": "integer"
1805    ///    }
1806    ///  }
1807    ///}
1808    /// ```
1809    /// </details>
1810    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1811    pub struct DebugSetGcPercentResponse {
1812        #[serde(rename = "existing-gc-percent")]
1813        pub existing_gc_percent: i64,
1814    }
1815
1816    impl ::std::convert::From<&DebugSetGcPercentResponse> for DebugSetGcPercentResponse {
1817        fn from(value: &DebugSetGcPercentResponse) -> Self {
1818            value.clone()
1819        }
1820    }
1821
1822    ///`DebugSetMutexProfileFractionResponse`
1823    ///
1824    /// <details><summary>JSON schema</summary>
1825    ///
1826    /// ```json
1827    ///{
1828    ///  "type": "object",
1829    ///  "required": [
1830    ///    "previousRate"
1831    ///  ],
1832    ///  "properties": {
1833    ///    "previousRate": {
1834    ///      "type": "integer"
1835    ///    }
1836    ///  }
1837    ///}
1838    /// ```
1839    /// </details>
1840    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1841    pub struct DebugSetMutexProfileFractionResponse {
1842        #[serde(rename = "previousRate")]
1843        pub previous_rate: i64,
1844    }
1845
1846    impl ::std::convert::From<&DebugSetMutexProfileFractionResponse>
1847        for DebugSetMutexProfileFractionResponse
1848    {
1849        fn from(value: &DebugSetMutexProfileFractionResponse) -> Self {
1850            value.clone()
1851        }
1852    }
1853
1854    ///`DebugSetSoftMemoryLimitResponse`
1855    ///
1856    /// <details><summary>JSON schema</summary>
1857    ///
1858    /// ```json
1859    ///{
1860    ///  "type": "object",
1861    ///  "required": [
1862    ///    "existing-mem-limit"
1863    ///  ],
1864    ///  "properties": {
1865    ///    "existing-mem-limit": {
1866    ///      "type": "integer"
1867    ///    }
1868    ///  }
1869    ///}
1870    /// ```
1871    /// </details>
1872    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1873    pub struct DebugSetSoftMemoryLimitResponse {
1874        #[serde(rename = "existing-mem-limit")]
1875        pub existing_mem_limit: i64,
1876    }
1877
1878    impl ::std::convert::From<&DebugSetSoftMemoryLimitResponse> for DebugSetSoftMemoryLimitResponse {
1879        fn from(value: &DebugSetSoftMemoryLimitResponse) -> Self {
1880            value.clone()
1881        }
1882    }
1883
1884    ///`FscacheEntriesResponse`
1885    ///
1886    /// <details><summary>JSON schema</summary>
1887    ///
1888    /// ```json
1889    ///{
1890    ///  "type": "object",
1891    ///  "required": [
1892    ///    "entries"
1893    ///  ],
1894    ///  "properties": {
1895    ///    "entries": {
1896    ///      "type": "integer"
1897    ///    }
1898    ///  }
1899    ///}
1900    /// ```
1901    /// </details>
1902    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1903    pub struct FscacheEntriesResponse {
1904        pub entries: i64,
1905    }
1906
1907    impl ::std::convert::From<&FscacheEntriesResponse> for FscacheEntriesResponse {
1908        fn from(value: &FscacheEntriesResponse) -> Self {
1909            value.clone()
1910        }
1911    }
1912
1913    ///`JobListResponse`
1914    ///
1915    /// <details><summary>JSON schema</summary>
1916    ///
1917    /// ```json
1918    ///{
1919    ///  "type": "object",
1920    ///  "required": [
1921    ///    "executeId",
1922    ///    "jobids"
1923    ///  ],
1924    ///  "properties": {
1925    ///    "executeId": {
1926    ///      "description": "Identifier for this rclone process.",
1927    ///      "type": "string"
1928    ///    },
1929    ///    "jobids": {
1930    ///      "description": "Job IDs suitable for use with `job/status` and
1931    /// `job/stop`.",
1932    ///      "type": "array",
1933    ///      "items": {
1934    ///        "type": "number"
1935    ///      }
1936    ///    }
1937    ///  }
1938    ///}
1939    /// ```
1940    /// </details>
1941    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1942    pub struct JobListResponse {
1943        ///Identifier for this rclone process.
1944        #[serde(rename = "executeId")]
1945        pub execute_id: ::std::string::String,
1946        ///Job IDs suitable for use with `job/status` and `job/stop`.
1947        pub jobids: ::std::vec::Vec<f64>,
1948    }
1949
1950    impl ::std::convert::From<&JobListResponse> for JobListResponse {
1951        fn from(value: &JobListResponse) -> Self {
1952            value.clone()
1953        }
1954    }
1955
1956    ///`JobStatusResponse`
1957    ///
1958    /// <details><summary>JSON schema</summary>
1959    ///
1960    /// ```json
1961    ///{
1962    ///  "type": "object",
1963    ///  "required": [
1964    ///    "duration",
1965    ///    "endTime",
1966    ///    "error",
1967    ///    "finished",
1968    ///    "id",
1969    ///    "startTime",
1970    ///    "success"
1971    ///  ],
1972    ///  "properties": {
1973    ///    "duration": {
1974    ///      "description": "Execution time in seconds.",
1975    ///      "type": "number"
1976    ///    },
1977    ///    "endTime": {
1978    ///      "description": "Timestamp when the job finished.",
1979    ///      "type": "string"
1980    ///    },
1981    ///    "error": {
1982    ///      "description": "Error message, or empty string on success.",
1983    ///      "type": "string"
1984    ///    },
1985    ///    "finished": {
1986    ///      "description": "True once the job has completed.",
1987    ///      "type": "boolean"
1988    ///    },
1989    ///    "id": {
1990    ///      "description": "Job identifier.",
1991    ///      "type": "number"
1992    ///    },
1993    ///    "output": {
1994    ///      "description": "Synchronous-style output payload when available."
1995    ///    },
1996    ///    "progress": {
1997    ///      "description": "Progress measurements supplied by the underlying
1998    /// command."
1999    ///    },
2000    ///    "startTime": {
2001    ///      "description": "Timestamp when the job started.",
2002    ///      "type": "string"
2003    ///    },
2004    ///    "success": {
2005    ///      "description": "True if the job completed successfully.",
2006    ///      "type": "boolean"
2007    ///    }
2008    ///  }
2009    ///}
2010    /// ```
2011    /// </details>
2012    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2013    pub struct JobStatusResponse {
2014        pub duration: f64,
2015        ///Timestamp when the job finished.
2016        #[serde(rename = "endTime")]
2017        pub end_time: ::std::string::String,
2018        ///Error message, or empty string on success.
2019        pub error: ::std::string::String,
2020        ///True once the job has completed.
2021        pub finished: bool,
2022        pub id: f64,
2023        ///Synchronous-style output payload when available.
2024        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
2025        pub output: ::std::option::Option<::serde_json::Value>,
2026        ///Progress measurements supplied by the underlying command.
2027        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
2028        pub progress: ::std::option::Option<::serde_json::Value>,
2029        ///Timestamp when the job started.
2030        #[serde(rename = "startTime")]
2031        pub start_time: ::std::string::String,
2032        ///True if the job completed successfully.
2033        pub success: bool,
2034    }
2035
2036    impl ::std::convert::From<&JobStatusResponse> for JobStatusResponse {
2037        fn from(value: &JobStatusResponse) -> Self {
2038            value.clone()
2039        }
2040    }
2041
2042    ///`MountListmountsResponse`
2043    ///
2044    /// <details><summary>JSON schema</summary>
2045    ///
2046    /// ```json
2047    ///{
2048    ///  "type": "object",
2049    ///  "required": [
2050    ///    "mountPoints"
2051    ///  ],
2052    ///  "properties": {
2053    ///    "mountPoints": {
2054    ///      "type": "array",
2055    ///      "items": {
2056    ///        "type": "object",
2057    ///        "required": [
2058    ///          "Fs",
2059    ///          "MountPoint",
2060    ///          "MountedOn"
2061    ///        ],
2062    ///        "properties": {
2063    ///          "Fs": {
2064    ///            "type": "string"
2065    ///          },
2066    ///          "MountPoint": {
2067    ///            "type": "string"
2068    ///          },
2069    ///          "MountedOn": {
2070    ///            "type": "string",
2071    ///            "format": "date-time"
2072    ///          }
2073    ///        },
2074    ///        "additionalProperties": false
2075    ///      }
2076    ///    }
2077    ///  }
2078    ///}
2079    /// ```
2080    /// </details>
2081    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2082    pub struct MountListmountsResponse {
2083        #[serde(rename = "mountPoints")]
2084        pub mount_points: ::std::vec::Vec<MountListmountsResponseMountPointsItem>,
2085    }
2086
2087    impl ::std::convert::From<&MountListmountsResponse> for MountListmountsResponse {
2088        fn from(value: &MountListmountsResponse) -> Self {
2089            value.clone()
2090        }
2091    }
2092
2093    ///`MountListmountsResponseMountPointsItem`
2094    ///
2095    /// <details><summary>JSON schema</summary>
2096    ///
2097    /// ```json
2098    ///{
2099    ///  "type": "object",
2100    ///  "required": [
2101    ///    "Fs",
2102    ///    "MountPoint",
2103    ///    "MountedOn"
2104    ///  ],
2105    ///  "properties": {
2106    ///    "Fs": {
2107    ///      "type": "string"
2108    ///    },
2109    ///    "MountPoint": {
2110    ///      "type": "string"
2111    ///    },
2112    ///    "MountedOn": {
2113    ///      "type": "string",
2114    ///      "format": "date-time"
2115    ///    }
2116    ///  },
2117    ///  "additionalProperties": false
2118    ///}
2119    /// ```
2120    /// </details>
2121    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2122    #[serde(deny_unknown_fields)]
2123    pub struct MountListmountsResponseMountPointsItem {
2124        #[serde(rename = "Fs")]
2125        pub fs: ::std::string::String,
2126        #[serde(rename = "MountPoint")]
2127        pub mount_point: ::std::string::String,
2128        #[serde(rename = "MountedOn")]
2129        pub mounted_on: ::chrono::DateTime<::chrono::offset::Utc>,
2130    }
2131
2132    impl ::std::convert::From<&MountListmountsResponseMountPointsItem>
2133        for MountListmountsResponseMountPointsItem
2134    {
2135        fn from(value: &MountListmountsResponseMountPointsItem) -> Self {
2136            value.clone()
2137        }
2138    }
2139
2140    ///`MountTypesResponse`
2141    ///
2142    /// <details><summary>JSON schema</summary>
2143    ///
2144    /// ```json
2145    ///{
2146    ///  "type": "object",
2147    ///  "required": [
2148    ///    "mountTypes"
2149    ///  ],
2150    ///  "properties": {
2151    ///    "mountTypes": {
2152    ///      "type": "array",
2153    ///      "items": {
2154    ///        "type": "string"
2155    ///      }
2156    ///    }
2157    ///  }
2158    ///}
2159    /// ```
2160    /// </details>
2161    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2162    pub struct MountTypesResponse {
2163        #[serde(rename = "mountTypes")]
2164        pub mount_types: ::std::vec::Vec<::std::string::String>,
2165    }
2166
2167    impl ::std::convert::From<&MountTypesResponse> for MountTypesResponse {
2168        fn from(value: &MountTypesResponse) -> Self {
2169            value.clone()
2170        }
2171    }
2172
2173    ///`OperationsAboutResponse`
2174    ///
2175    /// <details><summary>JSON schema</summary>
2176    ///
2177    /// ```json
2178    ///{
2179    ///  "type": "object",
2180    ///  "required": [
2181    ///    "free",
2182    ///    "total",
2183    ///    "used"
2184    ///  ],
2185    ///  "properties": {
2186    ///    "free": {
2187    ///      "type": "number"
2188    ///    },
2189    ///    "objects": {
2190    ///      "type": "number"
2191    ///    },
2192    ///    "other": {
2193    ///      "type": "number"
2194    ///    },
2195    ///    "total": {
2196    ///      "type": "number"
2197    ///    },
2198    ///    "trashed": {
2199    ///      "type": "number"
2200    ///    },
2201    ///    "used": {
2202    ///      "type": "number"
2203    ///    }
2204    ///  }
2205    ///}
2206    /// ```
2207    /// </details>
2208    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2209    pub struct OperationsAboutResponse {
2210        pub free: f64,
2211        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
2212        pub objects: ::std::option::Option<f64>,
2213        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
2214        pub other: ::std::option::Option<f64>,
2215        pub total: f64,
2216        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
2217        pub trashed: ::std::option::Option<f64>,
2218        pub used: f64,
2219    }
2220
2221    impl ::std::convert::From<&OperationsAboutResponse> for OperationsAboutResponse {
2222        fn from(value: &OperationsAboutResponse) -> Self {
2223            value.clone()
2224        }
2225    }
2226
2227    ///`OperationsCheckResponse`
2228    ///
2229    /// <details><summary>JSON schema</summary>
2230    ///
2231    /// ```json
2232    ///{
2233    ///  "type": "object",
2234    ///  "required": [
2235    ///    "status",
2236    ///    "success"
2237    ///  ],
2238    ///  "properties": {
2239    ///    "combined": {
2240    ///      "description": "Combined summary lines when `combined=true` is
2241    /// requested.",
2242    ///      "type": "array",
2243    ///      "items": {
2244    ///        "type": "string"
2245    ///      }
2246    ///    },
2247    ///    "differ": {
2248    ///      "description": "Files that differed between source and
2249    /// destination.",
2250    ///      "type": "array",
2251    ///      "items": {
2252    ///        "type": "string"
2253    ///      }
2254    ///    },
2255    ///    "error": {
2256    ///      "description": "Entries that produced errors during the check.",
2257    ///      "type": "array",
2258    ///      "items": {
2259    ///        "type": "string"
2260    ///      }
2261    ///    },
2262    ///    "hashType": {
2263    ///      "description": "Hash algorithm used for comparisons when
2264    /// applicable.",
2265    ///      "type": "string"
2266    ///    },
2267    ///    "match": {
2268    ///      "description": "Files that matched on both sides.",
2269    ///      "type": "array",
2270    ///      "items": {
2271    ///        "type": "string"
2272    ///      }
2273    ///    },
2274    ///    "missingOnDst": {
2275    ///      "description": "Files present on the source but missing from the
2276    /// destination.",
2277    ///      "type": "array",
2278    ///      "items": {
2279    ///        "type": "string"
2280    ///      }
2281    ///    },
2282    ///    "missingOnSrc": {
2283    ///      "description": "Files present on the destination but missing from
2284    /// the source.",
2285    ///      "type": "array",
2286    ///      "items": {
2287    ///        "type": "string"
2288    ///      }
2289    ///    },
2290    ///    "status": {
2291    ///      "description": "Human readable status string.",
2292    ///      "type": "string"
2293    ///    },
2294    ///    "success": {
2295    ///      "description": "True when the check completes without differences
2296    /// or errors.",
2297    ///      "type": "boolean"
2298    ///    }
2299    ///  }
2300    ///}
2301    /// ```
2302    /// </details>
2303    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2304    pub struct OperationsCheckResponse {
2305        ///Combined summary lines when `combined=true` is requested.
2306        #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
2307        pub combined: ::std::vec::Vec<::std::string::String>,
2308        ///Files that differed between source and destination.
2309        #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
2310        pub differ: ::std::vec::Vec<::std::string::String>,
2311        ///Entries that produced errors during the check.
2312        #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
2313        pub error: ::std::vec::Vec<::std::string::String>,
2314        ///Hash algorithm used for comparisons when applicable.
2315        #[serde(
2316            rename = "hashType",
2317            default,
2318            skip_serializing_if = "::std::option::Option::is_none"
2319        )]
2320        pub hash_type: ::std::option::Option<::std::string::String>,
2321        ///Files that matched on both sides.
2322        #[serde(
2323            rename = "match",
2324            default,
2325            skip_serializing_if = "::std::vec::Vec::is_empty"
2326        )]
2327        pub match_: ::std::vec::Vec<::std::string::String>,
2328        ///Files present on the source but missing from the destination.
2329        #[serde(
2330            rename = "missingOnDst",
2331            default,
2332            skip_serializing_if = "::std::vec::Vec::is_empty"
2333        )]
2334        pub missing_on_dst: ::std::vec::Vec<::std::string::String>,
2335        ///Files present on the destination but missing from the source.
2336        #[serde(
2337            rename = "missingOnSrc",
2338            default,
2339            skip_serializing_if = "::std::vec::Vec::is_empty"
2340        )]
2341        pub missing_on_src: ::std::vec::Vec<::std::string::String>,
2342        ///Human readable status string.
2343        pub status: ::std::string::String,
2344        ///True when the check completes without differences or errors.
2345        pub success: bool,
2346    }
2347
2348    impl ::std::convert::From<&OperationsCheckResponse> for OperationsCheckResponse {
2349        fn from(value: &OperationsCheckResponse) -> Self {
2350            value.clone()
2351        }
2352    }
2353
2354    ///`OperationsFsinfoResponse`
2355    ///
2356    /// <details><summary>JSON schema</summary>
2357    ///
2358    /// ```json
2359    ///{
2360    ///  "type": "object",
2361    ///  "required": [
2362    ///    "Features",
2363    ///    "Hashes",
2364    ///    "Name",
2365    ///    "Precision",
2366    ///    "Root",
2367    ///    "String"
2368    ///  ],
2369    ///  "properties": {
2370    ///    "Features": {
2371    ///      "type": "object",
2372    ///      "additionalProperties": {
2373    ///        "type": "boolean"
2374    ///      }
2375    ///    },
2376    ///    "Hashes": {
2377    ///      "type": "array",
2378    ///      "items": {
2379    ///        "type": "string"
2380    ///      }
2381    ///    },
2382    ///    "MetadataInfo": {
2383    ///      "type": [
2384    ///        "object",
2385    ///        "null"
2386    ///      ],
2387    ///      "additionalProperties": true
2388    ///    },
2389    ///    "Name": {
2390    ///      "type": "string"
2391    ///    },
2392    ///    "Precision": {
2393    ///      "type": "number"
2394    ///    },
2395    ///    "Root": {
2396    ///      "type": "string"
2397    ///    },
2398    ///    "String": {
2399    ///      "type": "string"
2400    ///    }
2401    ///  }
2402    ///}
2403    /// ```
2404    /// </details>
2405    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2406    pub struct OperationsFsinfoResponse {
2407        #[serde(rename = "Features")]
2408        pub features: ::std::collections::HashMap<::std::string::String, bool>,
2409        #[serde(rename = "Hashes")]
2410        pub hashes: ::std::vec::Vec<::std::string::String>,
2411        #[serde(
2412            rename = "MetadataInfo",
2413            default,
2414            skip_serializing_if = "::std::option::Option::is_none"
2415        )]
2416        pub metadata_info:
2417            ::std::option::Option<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
2418        #[serde(rename = "Name")]
2419        pub name: ::std::string::String,
2420        #[serde(rename = "Precision")]
2421        pub precision: f64,
2422        #[serde(rename = "Root")]
2423        pub root: ::std::string::String,
2424        #[serde(rename = "String")]
2425        pub string: ::std::string::String,
2426    }
2427
2428    impl ::std::convert::From<&OperationsFsinfoResponse> for OperationsFsinfoResponse {
2429        fn from(value: &OperationsFsinfoResponse) -> Self {
2430            value.clone()
2431        }
2432    }
2433
2434    ///`OperationsHashsumResponse`
2435    ///
2436    /// <details><summary>JSON schema</summary>
2437    ///
2438    /// ```json
2439    ///{
2440    ///  "type": "object",
2441    ///  "required": [
2442    ///    "hashType",
2443    ///    "hashsum"
2444    ///  ],
2445    ///  "properties": {
2446    ///    "hashType": {
2447    ///      "type": "string"
2448    ///    },
2449    ///    "hashsum": {
2450    ///      "type": "array",
2451    ///      "items": {
2452    ///        "type": "string"
2453    ///      }
2454    ///    }
2455    ///  }
2456    ///}
2457    /// ```
2458    /// </details>
2459    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2460    pub struct OperationsHashsumResponse {
2461        #[serde(rename = "hashType")]
2462        pub hash_type: ::std::string::String,
2463        pub hashsum: ::std::vec::Vec<::std::string::String>,
2464    }
2465
2466    impl ::std::convert::From<&OperationsHashsumResponse> for OperationsHashsumResponse {
2467        fn from(value: &OperationsHashsumResponse) -> Self {
2468            value.clone()
2469        }
2470    }
2471
2472    ///`OperationsListResponse`
2473    ///
2474    /// <details><summary>JSON schema</summary>
2475    ///
2476    /// ```json
2477    ///{
2478    ///  "type": "object",
2479    ///  "required": [
2480    ///    "list"
2481    ///  ],
2482    ///  "properties": {
2483    ///    "list": {
2484    ///      "description": "Array of entries equivalent to the items returned
2485    /// by `rclone lsjson`.",
2486    ///      "type": "array",
2487    ///      "items": {
2488    ///        "type": "object",
2489    ///        "required": [
2490    ///          "IsDir",
2491    ///          "Name",
2492    ///          "Path"
2493    ///        ],
2494    ///        "properties": {
2495    ///          "Encrypted": {
2496    ///            "description": "Encrypted entry name when using crypt
2497    /// remotes.",
2498    ///            "type": "string"
2499    ///          },
2500    ///          "EncryptedPath": {
2501    ///            "description": "Encrypted path when using crypt remotes.",
2502    ///            "type": "string"
2503    ///          },
2504    ///          "Hashes": {
2505    ///            "description": "Hash digests keyed by algorithm when
2506    /// requested.",
2507    ///            "type": "object",
2508    ///            "additionalProperties": {
2509    ///              "type": "string"
2510    ///            }
2511    ///          },
2512    ///          "ID": {
2513    ///            "description": "Backend-specific identifier when provided.",
2514    ///            "type": "string"
2515    ///          },
2516    ///          "IsBucket": {
2517    ///            "description": "True for bucket/root entries on bucket-based
2518    /// remotes.",
2519    ///            "type": "boolean"
2520    ///          },
2521    ///          "IsDir": {
2522    ///            "description": "True if the entry represents a directory.",
2523    ///            "type": "boolean"
2524    ///          },
2525    ///          "Metadata": {
2526    ///            "description": "Backend-provided metadata map.",
2527    ///            "type": "object",
2528    ///            "additionalProperties": {}
2529    ///          },
2530    ///          "MimeType": {
2531    ///            "description": "MIME type where available.",
2532    ///            "type": "string"
2533    ///          },
2534    ///          "ModTime": {
2535    ///            "description": "Modification timestamp in RFC3339 format.",
2536    ///            "type": "string"
2537    ///          },
2538    ///          "Name": {
2539    ///            "description": "Base name of the entry.",
2540    ///            "type": "string"
2541    ///          },
2542    ///          "OrigID": {
2543    ///            "description": "Original backend identifier when recorded.",
2544    ///            "type": "string"
2545    ///          },
2546    ///          "Path": {
2547    ///            "description": "Path relative to the requested remote root.",
2548    ///            "type": "string"
2549    ///          },
2550    ///          "Size": {
2551    ///            "description": "Object size in bytes.",
2552    ///            "type": "number"
2553    ///          },
2554    ///          "Tier": {
2555    ///            "description": "Storage class or tier, if supplied by the
2556    /// backend.",
2557    ///            "type": "string"
2558    ///          }
2559    ///        }
2560    ///      }
2561    ///    }
2562    ///  }
2563    ///}
2564    /// ```
2565    /// </details>
2566    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2567    pub struct OperationsListResponse {
2568        ///Array of entries equivalent to the items returned by `rclone
2569        /// lsjson`.
2570        pub list: ::std::vec::Vec<OperationsListResponseListItem>,
2571    }
2572
2573    impl ::std::convert::From<&OperationsListResponse> for OperationsListResponse {
2574        fn from(value: &OperationsListResponse) -> Self {
2575            value.clone()
2576        }
2577    }
2578
2579    ///`OperationsListResponseListItem`
2580    ///
2581    /// <details><summary>JSON schema</summary>
2582    ///
2583    /// ```json
2584    ///{
2585    ///  "type": "object",
2586    ///  "required": [
2587    ///    "IsDir",
2588    ///    "Name",
2589    ///    "Path"
2590    ///  ],
2591    ///  "properties": {
2592    ///    "Encrypted": {
2593    ///      "description": "Encrypted entry name when using crypt remotes.",
2594    ///      "type": "string"
2595    ///    },
2596    ///    "EncryptedPath": {
2597    ///      "description": "Encrypted path when using crypt remotes.",
2598    ///      "type": "string"
2599    ///    },
2600    ///    "Hashes": {
2601    ///      "description": "Hash digests keyed by algorithm when requested.",
2602    ///      "type": "object",
2603    ///      "additionalProperties": {
2604    ///        "type": "string"
2605    ///      }
2606    ///    },
2607    ///    "ID": {
2608    ///      "description": "Backend-specific identifier when provided.",
2609    ///      "type": "string"
2610    ///    },
2611    ///    "IsBucket": {
2612    ///      "description": "True for bucket/root entries on bucket-based
2613    /// remotes.",
2614    ///      "type": "boolean"
2615    ///    },
2616    ///    "IsDir": {
2617    ///      "description": "True if the entry represents a directory.",
2618    ///      "type": "boolean"
2619    ///    },
2620    ///    "Metadata": {
2621    ///      "description": "Backend-provided metadata map.",
2622    ///      "type": "object",
2623    ///      "additionalProperties": {}
2624    ///    },
2625    ///    "MimeType": {
2626    ///      "description": "MIME type where available.",
2627    ///      "type": "string"
2628    ///    },
2629    ///    "ModTime": {
2630    ///      "description": "Modification timestamp in RFC3339 format.",
2631    ///      "type": "string"
2632    ///    },
2633    ///    "Name": {
2634    ///      "description": "Base name of the entry.",
2635    ///      "type": "string"
2636    ///    },
2637    ///    "OrigID": {
2638    ///      "description": "Original backend identifier when recorded.",
2639    ///      "type": "string"
2640    ///    },
2641    ///    "Path": {
2642    ///      "description": "Path relative to the requested remote root.",
2643    ///      "type": "string"
2644    ///    },
2645    ///    "Size": {
2646    ///      "description": "Object size in bytes.",
2647    ///      "type": "number"
2648    ///    },
2649    ///    "Tier": {
2650    ///      "description": "Storage class or tier, if supplied by the
2651    /// backend.",
2652    ///      "type": "string"
2653    ///    }
2654    ///  }
2655    ///}
2656    /// ```
2657    /// </details>
2658    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2659    pub struct OperationsListResponseListItem {
2660        ///Encrypted entry name when using crypt remotes.
2661        #[serde(
2662            rename = "Encrypted",
2663            default,
2664            skip_serializing_if = "::std::option::Option::is_none"
2665        )]
2666        pub encrypted: ::std::option::Option<::std::string::String>,
2667        ///Encrypted path when using crypt remotes.
2668        #[serde(
2669            rename = "EncryptedPath",
2670            default,
2671            skip_serializing_if = "::std::option::Option::is_none"
2672        )]
2673        pub encrypted_path: ::std::option::Option<::std::string::String>,
2674        ///Hash digests keyed by algorithm when requested.
2675        #[serde(
2676            rename = "Hashes",
2677            default,
2678            skip_serializing_if = ":: std :: collections :: HashMap::is_empty"
2679        )]
2680        pub hashes: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
2681        ///Backend-specific identifier when provided.
2682        #[serde(
2683            rename = "ID",
2684            default,
2685            skip_serializing_if = "::std::option::Option::is_none"
2686        )]
2687        pub id: ::std::option::Option<::std::string::String>,
2688        ///True for bucket/root entries on bucket-based remotes.
2689        #[serde(
2690            rename = "IsBucket",
2691            default,
2692            skip_serializing_if = "::std::option::Option::is_none"
2693        )]
2694        pub is_bucket: ::std::option::Option<bool>,
2695        ///True if the entry represents a directory.
2696        #[serde(rename = "IsDir")]
2697        pub is_dir: bool,
2698        ///Backend-provided metadata map.
2699        #[serde(
2700            rename = "Metadata",
2701            default,
2702            skip_serializing_if = "::serde_json::Map::is_empty"
2703        )]
2704        pub metadata: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
2705        ///MIME type where available.
2706        #[serde(
2707            rename = "MimeType",
2708            default,
2709            skip_serializing_if = "::std::option::Option::is_none"
2710        )]
2711        pub mime_type: ::std::option::Option<::std::string::String>,
2712        ///Modification timestamp in RFC3339 format.
2713        #[serde(
2714            rename = "ModTime",
2715            default,
2716            skip_serializing_if = "::std::option::Option::is_none"
2717        )]
2718        pub mod_time: ::std::option::Option<::std::string::String>,
2719        ///Base name of the entry.
2720        #[serde(rename = "Name")]
2721        pub name: ::std::string::String,
2722        ///Original backend identifier when recorded.
2723        #[serde(
2724            rename = "OrigID",
2725            default,
2726            skip_serializing_if = "::std::option::Option::is_none"
2727        )]
2728        pub orig_id: ::std::option::Option<::std::string::String>,
2729        ///Path relative to the requested remote root.
2730        #[serde(rename = "Path")]
2731        pub path: ::std::string::String,
2732        #[serde(
2733            rename = "Size",
2734            default,
2735            skip_serializing_if = "::std::option::Option::is_none"
2736        )]
2737        pub size: ::std::option::Option<f64>,
2738        ///Storage class or tier, if supplied by the backend.
2739        #[serde(
2740            rename = "Tier",
2741            default,
2742            skip_serializing_if = "::std::option::Option::is_none"
2743        )]
2744        pub tier: ::std::option::Option<::std::string::String>,
2745    }
2746
2747    impl ::std::convert::From<&OperationsListResponseListItem> for OperationsListResponseListItem {
2748        fn from(value: &OperationsListResponseListItem) -> Self {
2749            value.clone()
2750        }
2751    }
2752
2753    ///`OperationsPubliclinkResponse`
2754    ///
2755    /// <details><summary>JSON schema</summary>
2756    ///
2757    /// ```json
2758    ///{
2759    ///  "type": "object",
2760    ///  "required": [
2761    ///    "url"
2762    ///  ],
2763    ///  "properties": {
2764    ///    "url": {
2765    ///      "type": "string",
2766    ///      "format": "uri"
2767    ///    }
2768    ///  }
2769    ///}
2770    /// ```
2771    /// </details>
2772    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2773    pub struct OperationsPubliclinkResponse {
2774        pub url: ::std::string::String,
2775    }
2776
2777    impl ::std::convert::From<&OperationsPubliclinkResponse> for OperationsPubliclinkResponse {
2778        fn from(value: &OperationsPubliclinkResponse) -> Self {
2779            value.clone()
2780        }
2781    }
2782
2783    ///`OperationsSizeResponse`
2784    ///
2785    /// <details><summary>JSON schema</summary>
2786    ///
2787    /// ```json
2788    ///{
2789    ///  "type": "object",
2790    ///  "required": [
2791    ///    "bytes",
2792    ///    "count",
2793    ///    "sizeless"
2794    ///  ],
2795    ///  "properties": {
2796    ///    "bytes": {
2797    ///      "type": "number"
2798    ///    },
2799    ///    "count": {
2800    ///      "type": "integer"
2801    ///    },
2802    ///    "sizeless": {
2803    ///      "type": "integer"
2804    ///    }
2805    ///  }
2806    ///}
2807    /// ```
2808    /// </details>
2809    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2810    pub struct OperationsSizeResponse {
2811        pub bytes: f64,
2812        pub count: i64,
2813        pub sizeless: i64,
2814    }
2815
2816    impl ::std::convert::From<&OperationsSizeResponse> for OperationsSizeResponse {
2817        fn from(value: &OperationsSizeResponse) -> Self {
2818            value.clone()
2819        }
2820    }
2821
2822    ///`OperationsStatResponse`
2823    ///
2824    /// <details><summary>JSON schema</summary>
2825    ///
2826    /// ```json
2827    ///{
2828    ///  "type": "object",
2829    ///  "required": [
2830    ///    "IsDir",
2831    ///    "MimeType",
2832    ///    "ModTime",
2833    ///    "Name",
2834    ///    "Path",
2835    ///    "Size"
2836    ///  ],
2837    ///  "properties": {
2838    ///    "Encrypted": {
2839    ///      "description": "Encrypted entry name when using crypt remotes.",
2840    ///      "type": "string"
2841    ///    },
2842    ///    "EncryptedPath": {
2843    ///      "description": "Encrypted path when using crypt remotes.",
2844    ///      "type": "string"
2845    ///    },
2846    ///    "Hashes": {
2847    ///      "description": "Hash digests keyed by algorithm when requested.",
2848    ///      "type": "object",
2849    ///      "additionalProperties": {
2850    ///        "type": "string"
2851    ///      }
2852    ///    },
2853    ///    "ID": {
2854    ///      "description": "Backend-specific identifier when provided.",
2855    ///      "type": "string"
2856    ///    },
2857    ///    "IsBucket": {
2858    ///      "description": "True for bucket/root entries on bucket-based
2859    /// remotes.",
2860    ///      "type": "boolean"
2861    ///    },
2862    ///    "IsDir": {
2863    ///      "description": "True if the entry is a directory.",
2864    ///      "type": "boolean"
2865    ///    },
2866    ///    "Metadata": {
2867    ///      "description": "Backend-provided metadata map.",
2868    ///      "type": "object",
2869    ///      "additionalProperties": {}
2870    ///    },
2871    ///    "MimeType": {
2872    ///      "description": "MIME type where available.",
2873    ///      "type": "string"
2874    ///    },
2875    ///    "ModTime": {
2876    ///      "description": "Modification timestamp in RFC3339 format.",
2877    ///      "type": "string"
2878    ///    },
2879    ///    "Name": {
2880    ///      "description": "Base name of the entry.",
2881    ///      "type": "string"
2882    ///    },
2883    ///    "OrigID": {
2884    ///      "description": "Original backend identifier when recorded.",
2885    ///      "type": "string"
2886    ///    },
2887    ///    "Path": {
2888    ///      "description": "Path relative to the remote root.",
2889    ///      "type": "string"
2890    ///    },
2891    ///    "Size": {
2892    ///      "description": "Object size in bytes.",
2893    ///      "type": "number"
2894    ///    },
2895    ///    "Tier": {
2896    ///      "description": "Storage class or tier, if supplied by the
2897    /// backend.",
2898    ///      "type": "string"
2899    ///    }
2900    ///  }
2901    ///}
2902    /// ```
2903    /// </details>
2904    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2905    pub struct OperationsStatResponse {
2906        ///Encrypted entry name when using crypt remotes.
2907        #[serde(
2908            rename = "Encrypted",
2909            default,
2910            skip_serializing_if = "::std::option::Option::is_none"
2911        )]
2912        pub encrypted: ::std::option::Option<::std::string::String>,
2913        ///Encrypted path when using crypt remotes.
2914        #[serde(
2915            rename = "EncryptedPath",
2916            default,
2917            skip_serializing_if = "::std::option::Option::is_none"
2918        )]
2919        pub encrypted_path: ::std::option::Option<::std::string::String>,
2920        ///Hash digests keyed by algorithm when requested.
2921        #[serde(
2922            rename = "Hashes",
2923            default,
2924            skip_serializing_if = ":: std :: collections :: HashMap::is_empty"
2925        )]
2926        pub hashes: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
2927        ///Backend-specific identifier when provided.
2928        #[serde(
2929            rename = "ID",
2930            default,
2931            skip_serializing_if = "::std::option::Option::is_none"
2932        )]
2933        pub id: ::std::option::Option<::std::string::String>,
2934        ///True for bucket/root entries on bucket-based remotes.
2935        #[serde(
2936            rename = "IsBucket",
2937            default,
2938            skip_serializing_if = "::std::option::Option::is_none"
2939        )]
2940        pub is_bucket: ::std::option::Option<bool>,
2941        ///True if the entry is a directory.
2942        #[serde(rename = "IsDir")]
2943        pub is_dir: bool,
2944        ///Backend-provided metadata map.
2945        #[serde(
2946            rename = "Metadata",
2947            default,
2948            skip_serializing_if = "::serde_json::Map::is_empty"
2949        )]
2950        pub metadata: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
2951        ///MIME type where available.
2952        #[serde(rename = "MimeType")]
2953        pub mime_type: ::std::string::String,
2954        ///Modification timestamp in RFC3339 format.
2955        #[serde(rename = "ModTime")]
2956        pub mod_time: ::std::string::String,
2957        ///Base name of the entry.
2958        #[serde(rename = "Name")]
2959        pub name: ::std::string::String,
2960        ///Original backend identifier when recorded.
2961        #[serde(
2962            rename = "OrigID",
2963            default,
2964            skip_serializing_if = "::std::option::Option::is_none"
2965        )]
2966        pub orig_id: ::std::option::Option<::std::string::String>,
2967        ///Path relative to the remote root.
2968        #[serde(rename = "Path")]
2969        pub path: ::std::string::String,
2970        #[serde(rename = "Size")]
2971        pub size: f64,
2972        ///Storage class or tier, if supplied by the backend.
2973        #[serde(
2974            rename = "Tier",
2975            default,
2976            skip_serializing_if = "::std::option::Option::is_none"
2977        )]
2978        pub tier: ::std::option::Option<::std::string::String>,
2979    }
2980
2981    impl ::std::convert::From<&OperationsStatResponse> for OperationsStatResponse {
2982        fn from(value: &OperationsStatResponse) -> Self {
2983            value.clone()
2984        }
2985    }
2986
2987    ///`OptionsBlocksResponse`
2988    ///
2989    /// <details><summary>JSON schema</summary>
2990    ///
2991    /// ```json
2992    ///{
2993    ///  "type": "object",
2994    ///  "required": [
2995    ///    "options"
2996    ///  ],
2997    ///  "properties": {
2998    ///    "options": {
2999    ///      "type": "array",
3000    ///      "items": {
3001    ///        "type": "string"
3002    ///      }
3003    ///    }
3004    ///  }
3005    ///}
3006    /// ```
3007    /// </details>
3008    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3009    pub struct OptionsBlocksResponse {
3010        pub options: ::std::vec::Vec<::std::string::String>,
3011    }
3012
3013    impl ::std::convert::From<&OptionsBlocksResponse> for OptionsBlocksResponse {
3014        fn from(value: &OptionsBlocksResponse) -> Self {
3015            value.clone()
3016        }
3017    }
3018
3019    ///`OptionsGetResponse`
3020    ///
3021    /// <details><summary>JSON schema</summary>
3022    ///
3023    /// ```json
3024    ///{
3025    ///  "type": "object",
3026    ///  "required": [
3027    ///    "dlna",
3028    ///    "filter",
3029    ///    "ftp",
3030    ///    "http",
3031    ///    "log",
3032    ///    "main",
3033    ///    "mount",
3034    ///    "nfs",
3035    ///    "proxy",
3036    ///    "rc",
3037    ///    "restic",
3038    ///    "s3",
3039    ///    "sftp",
3040    ///    "vfs",
3041    ///    "webdav"
3042    ///  ],
3043    ///  "properties": {
3044    ///    "dlna": {
3045    ///      "type": "object",
3046    ///      "additionalProperties": true
3047    ///    },
3048    ///    "filter": {
3049    ///      "type": "object",
3050    ///      "additionalProperties": true
3051    ///    },
3052    ///    "ftp": {
3053    ///      "type": "object",
3054    ///      "additionalProperties": true
3055    ///    },
3056    ///    "http": {
3057    ///      "type": "object",
3058    ///      "additionalProperties": true
3059    ///    },
3060    ///    "log": {
3061    ///      "type": "object",
3062    ///      "additionalProperties": true
3063    ///    },
3064    ///    "main": {
3065    ///      "type": "object",
3066    ///      "additionalProperties": true
3067    ///    },
3068    ///    "mount": {
3069    ///      "type": "object",
3070    ///      "additionalProperties": true
3071    ///    },
3072    ///    "nfs": {
3073    ///      "type": "object",
3074    ///      "additionalProperties": true
3075    ///    },
3076    ///    "proxy": {
3077    ///      "type": "object",
3078    ///      "additionalProperties": true
3079    ///    },
3080    ///    "rc": {
3081    ///      "type": "object",
3082    ///      "additionalProperties": true
3083    ///    },
3084    ///    "restic": {
3085    ///      "type": "object",
3086    ///      "additionalProperties": true
3087    ///    },
3088    ///    "s3": {
3089    ///      "type": "object",
3090    ///      "additionalProperties": true
3091    ///    },
3092    ///    "sftp": {
3093    ///      "type": "object",
3094    ///      "additionalProperties": true
3095    ///    },
3096    ///    "vfs": {
3097    ///      "type": "object",
3098    ///      "additionalProperties": true
3099    ///    },
3100    ///    "webdav": {
3101    ///      "type": "object",
3102    ///      "additionalProperties": true
3103    ///    }
3104    ///  },
3105    ///  "additionalProperties": true
3106    ///}
3107    /// ```
3108    /// </details>
3109    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3110    pub struct OptionsGetResponse {
3111        pub dlna: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3112        pub filter: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3113        pub ftp: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3114        pub http: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3115        pub log: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3116        pub main: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3117        pub mount: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3118        pub nfs: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3119        pub proxy: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3120        pub rc: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3121        pub restic: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3122        pub s3: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3123        pub sftp: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3124        pub vfs: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3125        pub webdav: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3126    }
3127
3128    impl ::std::convert::From<&OptionsGetResponse> for OptionsGetResponse {
3129        fn from(value: &OptionsGetResponse) -> Self {
3130            value.clone()
3131        }
3132    }
3133
3134    ///`OptionsInfoOption`
3135    ///
3136    /// <details><summary>JSON schema</summary>
3137    ///
3138    /// ```json
3139    ///{
3140    ///  "type": "object",
3141    ///  "required": [
3142    ///    "Advanced",
3143    ///    "Default",
3144    ///    "DefaultStr",
3145    ///    "Exclusive",
3146    ///    "FieldName",
3147    ///    "Help",
3148    ///    "Hide",
3149    ///    "IsPassword",
3150    ///    "Name",
3151    ///    "NoPrefix",
3152    ///    "Required",
3153    ///    "Sensitive",
3154    ///    "Type",
3155    ///    "Value",
3156    ///    "ValueStr"
3157    ///  ],
3158    ///  "properties": {
3159    ///    "Advanced": {
3160    ///      "type": "boolean"
3161    ///    },
3162    ///    "Default": {
3163    ///      "description": "Default value for this option.",
3164    ///      "anyOf": [
3165    ///        {
3166    ///          "type": "array",
3167    ///          "items": {
3168    ///            "type": "string"
3169    ///          }
3170    ///        },
3171    ///        {
3172    ///          "type": "boolean"
3173    ///        },
3174    ///        {
3175    ///          "type": "number"
3176    ///        },
3177    ///        {
3178    ///          "type": "string"
3179    ///        },
3180    ///        {
3181    ///          "type": "object",
3182    ///          "required": [
3183    ///            "Valid",
3184    ///            "Value"
3185    ///          ],
3186    ///          "properties": {
3187    ///            "Valid": {
3188    ///              "type": "boolean"
3189    ///            },
3190    ///            "Value": {
3191    ///              "type": "boolean"
3192    ///            }
3193    ///          },
3194    ///          "additionalProperties": false
3195    ///        }
3196    ///      ]
3197    ///    },
3198    ///    "DefaultStr": {
3199    ///      "type": "string"
3200    ///    },
3201    ///    "Examples": {
3202    ///      "type": "array",
3203    ///      "items": {
3204    ///        "$ref": "#/components/schemas/OptionsInfoOptionExample"
3205    ///      }
3206    ///    },
3207    ///    "Exclusive": {
3208    ///      "type": "boolean"
3209    ///    },
3210    ///    "FieldName": {
3211    ///      "type": "string"
3212    ///    },
3213    ///    "Groups": {
3214    ///      "type": "string"
3215    ///    },
3216    ///    "Help": {
3217    ///      "type": "string"
3218    ///    },
3219    ///    "Hide": {
3220    ///      "type": "integer"
3221    ///    },
3222    ///    "IsPassword": {
3223    ///      "type": "boolean"
3224    ///    },
3225    ///    "Name": {
3226    ///      "type": "string"
3227    ///    },
3228    ///    "NoPrefix": {
3229    ///      "type": "boolean"
3230    ///    },
3231    ///    "Required": {
3232    ///      "type": "boolean"
3233    ///    },
3234    ///    "Sensitive": {
3235    ///      "type": "boolean"
3236    ///    },
3237    ///    "ShortOpt": {
3238    ///      "type": "string"
3239    ///    },
3240    ///    "Type": {
3241    ///      "type": "string"
3242    ///    },
3243    ///    "Value": {
3244    ///      "oneOf": [
3245    ///        {
3246    ///          "type": "null"
3247    ///        },
3248    ///        {
3249    ///          "anyOf": [
3250    ///            {
3251    ///              "type": "boolean"
3252    ///            },
3253    ///            {
3254    ///              "type": "number"
3255    ///            }
3256    ///          ]
3257    ///        }
3258    ///      ]
3259    ///    },
3260    ///    "ValueStr": {
3261    ///      "type": "string"
3262    ///    }
3263    ///  },
3264    ///  "additionalProperties": true
3265    ///}
3266    /// ```
3267    /// </details>
3268    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3269    pub struct OptionsInfoOption {
3270        #[serde(rename = "Advanced")]
3271        pub advanced: bool,
3272        ///Default value for this option.
3273        #[serde(rename = "Default")]
3274        pub default: OptionsInfoOptionDefault,
3275        #[serde(rename = "DefaultStr")]
3276        pub default_str: ::std::string::String,
3277        #[serde(
3278            rename = "Examples",
3279            default,
3280            skip_serializing_if = "::std::vec::Vec::is_empty"
3281        )]
3282        pub examples: ::std::vec::Vec<OptionsInfoOptionExample>,
3283        #[serde(rename = "Exclusive")]
3284        pub exclusive: bool,
3285        #[serde(rename = "FieldName")]
3286        pub field_name: ::std::string::String,
3287        #[serde(
3288            rename = "Groups",
3289            default,
3290            skip_serializing_if = "::std::option::Option::is_none"
3291        )]
3292        pub groups: ::std::option::Option<::std::string::String>,
3293        #[serde(rename = "Help")]
3294        pub help: ::std::string::String,
3295        #[serde(rename = "Hide")]
3296        pub hide: i64,
3297        #[serde(rename = "IsPassword")]
3298        pub is_password: bool,
3299        #[serde(rename = "Name")]
3300        pub name: ::std::string::String,
3301        #[serde(rename = "NoPrefix")]
3302        pub no_prefix: bool,
3303        #[serde(rename = "Required")]
3304        pub required: bool,
3305        #[serde(rename = "Sensitive")]
3306        pub sensitive: bool,
3307        #[serde(
3308            rename = "ShortOpt",
3309            default,
3310            skip_serializing_if = "::std::option::Option::is_none"
3311        )]
3312        pub short_opt: ::std::option::Option<::std::string::String>,
3313        #[serde(rename = "Type")]
3314        pub type_: ::std::string::String,
3315        #[serde(rename = "Value")]
3316        pub value: ::std::option::Option<OptionsInfoOptionValue>,
3317        #[serde(rename = "ValueStr")]
3318        pub value_str: ::std::string::String,
3319    }
3320
3321    impl ::std::convert::From<&OptionsInfoOption> for OptionsInfoOption {
3322        fn from(value: &OptionsInfoOption) -> Self {
3323            value.clone()
3324        }
3325    }
3326
3327    ///Default value for this option.
3328    ///
3329    /// <details><summary>JSON schema</summary>
3330    ///
3331    /// ```json
3332    ///{
3333    ///  "description": "Default value for this option.",
3334    ///  "anyOf": [
3335    ///    {
3336    ///      "type": "array",
3337    ///      "items": {
3338    ///        "type": "string"
3339    ///      }
3340    ///    },
3341    ///    {
3342    ///      "type": "boolean"
3343    ///    },
3344    ///    {
3345    ///      "type": "number"
3346    ///    },
3347    ///    {
3348    ///      "type": "string"
3349    ///    },
3350    ///    {
3351    ///      "type": "object",
3352    ///      "required": [
3353    ///        "Valid",
3354    ///        "Value"
3355    ///      ],
3356    ///      "properties": {
3357    ///        "Valid": {
3358    ///          "type": "boolean"
3359    ///        },
3360    ///        "Value": {
3361    ///          "type": "boolean"
3362    ///        }
3363    ///      },
3364    ///      "additionalProperties": false
3365    ///    }
3366    ///  ]
3367    ///}
3368    /// ```
3369    /// </details>
3370    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3371    #[serde(untagged, deny_unknown_fields)]
3372    pub enum OptionsInfoOptionDefault {
3373        Variant0(::std::vec::Vec<::std::string::String>),
3374        Variant1(bool),
3375        Variant2(f64),
3376        Variant3(::std::string::String),
3377        Variant4 {
3378            #[serde(rename = "Valid")]
3379            valid: bool,
3380            #[serde(rename = "Value")]
3381            value: bool,
3382        },
3383    }
3384
3385    impl ::std::convert::From<&Self> for OptionsInfoOptionDefault {
3386        fn from(value: &OptionsInfoOptionDefault) -> Self {
3387            value.clone()
3388        }
3389    }
3390
3391    impl ::std::convert::From<::std::vec::Vec<::std::string::String>> for OptionsInfoOptionDefault {
3392        fn from(value: ::std::vec::Vec<::std::string::String>) -> Self {
3393            Self::Variant0(value)
3394        }
3395    }
3396
3397    impl ::std::convert::From<bool> for OptionsInfoOptionDefault {
3398        fn from(value: bool) -> Self {
3399            Self::Variant1(value)
3400        }
3401    }
3402
3403    impl ::std::convert::From<f64> for OptionsInfoOptionDefault {
3404        fn from(value: f64) -> Self {
3405            Self::Variant2(value)
3406        }
3407    }
3408
3409    ///`OptionsInfoOptionExample`
3410    ///
3411    /// <details><summary>JSON schema</summary>
3412    ///
3413    /// ```json
3414    ///{
3415    ///  "type": "object",
3416    ///  "required": [
3417    ///    "Help",
3418    ///    "Value"
3419    ///  ],
3420    ///  "properties": {
3421    ///    "Help": {
3422    ///      "type": "string"
3423    ///    },
3424    ///    "Value": {
3425    ///      "type": "string"
3426    ///    }
3427    ///  },
3428    ///  "additionalProperties": true
3429    ///}
3430    /// ```
3431    /// </details>
3432    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3433    pub struct OptionsInfoOptionExample {
3434        #[serde(rename = "Help")]
3435        pub help: ::std::string::String,
3436        #[serde(rename = "Value")]
3437        pub value: ::std::string::String,
3438    }
3439
3440    impl ::std::convert::From<&OptionsInfoOptionExample> for OptionsInfoOptionExample {
3441        fn from(value: &OptionsInfoOptionExample) -> Self {
3442            value.clone()
3443        }
3444    }
3445
3446    ///`OptionsInfoOptionValue`
3447    ///
3448    /// <details><summary>JSON schema</summary>
3449    ///
3450    /// ```json
3451    ///{
3452    ///  "anyOf": [
3453    ///    {
3454    ///      "type": "boolean"
3455    ///    },
3456    ///    {
3457    ///      "type": "number"
3458    ///    }
3459    ///  ]
3460    ///}
3461    /// ```
3462    /// </details>
3463    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3464    #[serde(untagged)]
3465    pub enum OptionsInfoOptionValue {
3466        Variant0(bool),
3467        Variant1(f64),
3468    }
3469
3470    impl ::std::convert::From<&Self> for OptionsInfoOptionValue {
3471        fn from(value: &OptionsInfoOptionValue) -> Self {
3472            value.clone()
3473        }
3474    }
3475
3476    impl ::std::str::FromStr for OptionsInfoOptionValue {
3477        type Err = self::error::ConversionError;
3478        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
3479            if let Ok(v) = value.parse() {
3480                Ok(Self::Variant0(v))
3481            } else if let Ok(v) = value.parse() {
3482                Ok(Self::Variant1(v))
3483            } else {
3484                Err("string conversion failed for all variants".into())
3485            }
3486        }
3487    }
3488
3489    impl ::std::convert::TryFrom<&str> for OptionsInfoOptionValue {
3490        type Error = self::error::ConversionError;
3491        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
3492            value.parse()
3493        }
3494    }
3495
3496    impl ::std::convert::TryFrom<&::std::string::String> for OptionsInfoOptionValue {
3497        type Error = self::error::ConversionError;
3498        fn try_from(
3499            value: &::std::string::String,
3500        ) -> ::std::result::Result<Self, self::error::ConversionError> {
3501            value.parse()
3502        }
3503    }
3504
3505    impl ::std::convert::TryFrom<::std::string::String> for OptionsInfoOptionValue {
3506        type Error = self::error::ConversionError;
3507        fn try_from(
3508            value: ::std::string::String,
3509        ) -> ::std::result::Result<Self, self::error::ConversionError> {
3510            value.parse()
3511        }
3512    }
3513
3514    impl ::std::fmt::Display for OptionsInfoOptionValue {
3515        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3516            match self {
3517                Self::Variant0(x) => x.fmt(f),
3518                Self::Variant1(x) => x.fmt(f),
3519            }
3520        }
3521    }
3522
3523    impl ::std::convert::From<bool> for OptionsInfoOptionValue {
3524        fn from(value: bool) -> Self {
3525            Self::Variant0(value)
3526        }
3527    }
3528
3529    impl ::std::convert::From<f64> for OptionsInfoOptionValue {
3530        fn from(value: f64) -> Self {
3531            Self::Variant1(value)
3532        }
3533    }
3534
3535    ///`OptionsInfoResponse`
3536    ///
3537    /// <details><summary>JSON schema</summary>
3538    ///
3539    /// ```json
3540    ///{
3541    ///  "type": "object",
3542    ///  "required": [
3543    ///    "dlna",
3544    ///    "filter",
3545    ///    "ftp",
3546    ///    "http",
3547    ///    "log",
3548    ///    "main",
3549    ///    "mount",
3550    ///    "nfs",
3551    ///    "proxy",
3552    ///    "rc",
3553    ///    "restic",
3554    ///    "s3",
3555    ///    "sftp",
3556    ///    "vfs",
3557    ///    "webdav"
3558    ///  ],
3559    ///  "properties": {
3560    ///    "dlna": {
3561    ///      "type": "array",
3562    ///      "items": {
3563    ///        "$ref": "#/components/schemas/OptionsInfoOption"
3564    ///      }
3565    ///    },
3566    ///    "filter": {
3567    ///      "type": "array",
3568    ///      "items": {
3569    ///        "$ref": "#/components/schemas/OptionsInfoOption"
3570    ///      }
3571    ///    },
3572    ///    "ftp": {
3573    ///      "type": "array",
3574    ///      "items": {
3575    ///        "$ref": "#/components/schemas/OptionsInfoOption"
3576    ///      }
3577    ///    },
3578    ///    "http": {
3579    ///      "type": "array",
3580    ///      "items": {
3581    ///        "$ref": "#/components/schemas/OptionsInfoOption"
3582    ///      }
3583    ///    },
3584    ///    "log": {
3585    ///      "type": "array",
3586    ///      "items": {
3587    ///        "$ref": "#/components/schemas/OptionsInfoOption"
3588    ///      }
3589    ///    },
3590    ///    "main": {
3591    ///      "type": "array",
3592    ///      "items": {
3593    ///        "$ref": "#/components/schemas/OptionsInfoOption"
3594    ///      }
3595    ///    },
3596    ///    "mount": {
3597    ///      "type": "array",
3598    ///      "items": {
3599    ///        "$ref": "#/components/schemas/OptionsInfoOption"
3600    ///      }
3601    ///    },
3602    ///    "nfs": {
3603    ///      "type": "array",
3604    ///      "items": {
3605    ///        "$ref": "#/components/schemas/OptionsInfoOption"
3606    ///      }
3607    ///    },
3608    ///    "proxy": {
3609    ///      "type": "array",
3610    ///      "items": {
3611    ///        "$ref": "#/components/schemas/OptionsInfoOption"
3612    ///      }
3613    ///    },
3614    ///    "rc": {
3615    ///      "type": "array",
3616    ///      "items": {
3617    ///        "$ref": "#/components/schemas/OptionsInfoOption"
3618    ///      }
3619    ///    },
3620    ///    "restic": {
3621    ///      "type": "array",
3622    ///      "items": {
3623    ///        "$ref": "#/components/schemas/OptionsInfoOption"
3624    ///      }
3625    ///    },
3626    ///    "s3": {
3627    ///      "type": "array",
3628    ///      "items": {
3629    ///        "$ref": "#/components/schemas/OptionsInfoOption"
3630    ///      }
3631    ///    },
3632    ///    "sftp": {
3633    ///      "type": "array",
3634    ///      "items": {
3635    ///        "$ref": "#/components/schemas/OptionsInfoOption"
3636    ///      }
3637    ///    },
3638    ///    "vfs": {
3639    ///      "type": "array",
3640    ///      "items": {
3641    ///        "$ref": "#/components/schemas/OptionsInfoOption"
3642    ///      }
3643    ///    },
3644    ///    "webdav": {
3645    ///      "type": "array",
3646    ///      "items": {
3647    ///        "$ref": "#/components/schemas/OptionsInfoOption"
3648    ///      }
3649    ///    }
3650    ///  },
3651    ///  "additionalProperties": {
3652    ///    "type": "array",
3653    ///    "items": {
3654    ///      "$ref": "#/components/schemas/OptionsInfoOption"
3655    ///    }
3656    ///  }
3657    ///}
3658    /// ```
3659    /// </details>
3660    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3661    pub struct OptionsInfoResponse {
3662        pub dlna: ::std::vec::Vec<OptionsInfoOption>,
3663        pub filter: ::std::vec::Vec<OptionsInfoOption>,
3664        pub ftp: ::std::vec::Vec<OptionsInfoOption>,
3665        pub http: ::std::vec::Vec<OptionsInfoOption>,
3666        pub log: ::std::vec::Vec<OptionsInfoOption>,
3667        pub main: ::std::vec::Vec<OptionsInfoOption>,
3668        pub mount: ::std::vec::Vec<OptionsInfoOption>,
3669        pub nfs: ::std::vec::Vec<OptionsInfoOption>,
3670        pub proxy: ::std::vec::Vec<OptionsInfoOption>,
3671        pub rc: ::std::vec::Vec<OptionsInfoOption>,
3672        pub restic: ::std::vec::Vec<OptionsInfoOption>,
3673        pub s3: ::std::vec::Vec<OptionsInfoOption>,
3674        pub sftp: ::std::vec::Vec<OptionsInfoOption>,
3675        pub vfs: ::std::vec::Vec<OptionsInfoOption>,
3676        pub webdav: ::std::vec::Vec<OptionsInfoOption>,
3677        #[serde(flatten)]
3678        pub extra:
3679            ::std::collections::HashMap<::std::string::String, ::std::vec::Vec<OptionsInfoOption>>,
3680    }
3681
3682    impl ::std::convert::From<&OptionsInfoResponse> for OptionsInfoResponse {
3683        fn from(value: &OptionsInfoResponse) -> Self {
3684            value.clone()
3685        }
3686    }
3687
3688    ///`OptionsLocalResponse`
3689    ///
3690    /// <details><summary>JSON schema</summary>
3691    ///
3692    /// ```json
3693    ///{
3694    ///  "type": "object",
3695    ///  "required": [
3696    ///    "config",
3697    ///    "filter"
3698    ///  ],
3699    ///  "properties": {
3700    ///    "config": {
3701    ///      "type": "object",
3702    ///      "required": [
3703    ///        "AskPassword",
3704    ///        "AutoConfirm",
3705    ///        "BackupDir",
3706    ///        "BindAddr",
3707    ///        "BufferSize",
3708    ///        "BwLimit",
3709    ///        "BwLimitFile",
3710    ///        "CaCert",
3711    ///        "CheckFirst",
3712    ///        "CheckSum",
3713    ///        "Checkers",
3714    ///        "ClientCert",
3715    ///        "ClientKey",
3716    ///        "CompareDest",
3717    ///        "ConnectTimeout",
3718    ///        "Cookie",
3719    ///        "CopyDest",
3720    ///        "CutoffMode",
3721    ///        "DataRateUnit",
3722    ///        "DefaultTime",
3723    ///        "DeleteMode",
3724    ///        "DisableFeatures",
3725    ///        "DisableHTTP2",
3726    ///        "DisableHTTPKeepAlives",
3727    ///        "DownloadHeaders",
3728    ///        "DryRun",
3729    ///        "Dump",
3730    ///        "ErrorOnNoTransfer",
3731    ///        "ExpectContinueTimeout",
3732    ///        "FixCase",
3733    ///        "FsCacheExpireDuration",
3734    ///        "FsCacheExpireInterval",
3735    ///        "Headers",
3736    ///        "HumanReadable",
3737    ///        "IgnoreCaseSync",
3738    ///        "IgnoreChecksum",
3739    ///        "IgnoreErrors",
3740    ///        "IgnoreExisting",
3741    ///        "IgnoreSize",
3742    ///        "IgnoreTimes",
3743    ///        "Immutable",
3744    ///        "Inplace",
3745    ///        "InsecureSkipVerify",
3746    ///        "Interactive",
3747    ///        "KvLockTime",
3748    ///        "Links",
3749    ///        "LogLevel",
3750    ///        "LowLevelRetries",
3751    ///        "MaxBacklog",
3752    ///        "MaxBufferMemory",
3753    ///        "MaxDelete",
3754    ///        "MaxDeleteSize",
3755    ///        "MaxDepth",
3756    ///        "MaxDuration",
3757    ///        "MaxStatsGroups",
3758    ///        "MaxTransfer",
3759    ///        "Metadata",
3760    ///        "MetadataMapper",
3761    ///        "MetadataSet",
3762    ///        "ModifyWindow",
3763    ///        "MultiThreadChunkSize",
3764    ///        "MultiThreadCutoff",
3765    ///        "MultiThreadSet",
3766    ///        "MultiThreadStreams",
3767    ///        "MultiThreadWriteBufferSize",
3768    ///        "NoCheckDest",
3769    ///        "NoConsole",
3770    ///        "NoGzip",
3771    ///        "NoTraverse",
3772    ///        "NoUnicodeNormalization",
3773    ///        "NoUpdateDirModTime",
3774    ///        "NoUpdateModTime",
3775    ///        "OrderBy",
3776    ///        "PartialSuffix",
3777    ///        "PasswordCommand",
3778    ///        "Progress",
3779    ///        "ProgressTerminalTitle",
3780    ///        "RefreshTimes",
3781    ///        "Retries",
3782    ///        "RetriesInterval",
3783    ///        "ServerSideAcrossConfigs",
3784    ///        "SizeOnly",
3785    ///        "StatsFileNameLength",
3786    ///        "StatsLogLevel",
3787    ///        "StatsOneLine",
3788    ///        "StatsOneLineDate",
3789    ///        "StatsOneLineDateFormat",
3790    ///        "StreamingUploadCutoff",
3791    ///        "Suffix",
3792    ///        "SuffixKeepExtension",
3793    ///        "TPSLimit",
3794    ///        "TPSLimitBurst",
3795    ///        "TerminalColorMode",
3796    ///        "Timeout",
3797    ///        "TrackRenames",
3798    ///        "TrackRenamesStrategy",
3799    ///        "TrafficClass",
3800    ///        "Transfers",
3801    ///        "UpdateOlder",
3802    ///        "UploadHeaders",
3803    ///        "UseJSONLog",
3804    ///        "UseListR",
3805    ///        "UseMmap",
3806    ///        "UseServerModTime",
3807    ///        "UserAgent"
3808    ///      ],
3809    ///      "properties": {
3810    ///        "AskPassword": {
3811    ///          "type": "boolean"
3812    ///        },
3813    ///        "AutoConfirm": {
3814    ///          "type": "boolean"
3815    ///        },
3816    ///        "BackupDir": {
3817    ///          "type": "string"
3818    ///        },
3819    ///        "BindAddr": {
3820    ///          "type": "string"
3821    ///        },
3822    ///        "BufferSize": {
3823    ///          "type": "number"
3824    ///        },
3825    ///        "BwLimit": {
3826    ///          "type": "string"
3827    ///        },
3828    ///        "BwLimitFile": {
3829    ///          "type": "string"
3830    ///        },
3831    ///        "CaCert": {
3832    ///          "type": "array",
3833    ///          "items": {
3834    ///            "type": "string"
3835    ///          }
3836    ///        },
3837    ///        "CheckFirst": {
3838    ///          "type": "boolean"
3839    ///        },
3840    ///        "CheckSum": {
3841    ///          "type": "boolean"
3842    ///        },
3843    ///        "Checkers": {
3844    ///          "type": "number"
3845    ///        },
3846    ///        "ClientCert": {
3847    ///          "type": "string"
3848    ///        },
3849    ///        "ClientKey": {
3850    ///          "type": "string"
3851    ///        },
3852    ///        "CompareDest": {
3853    ///          "type": "array",
3854    ///          "items": {
3855    ///            "type": "string"
3856    ///          }
3857    ///        },
3858    ///        "ConnectTimeout": {
3859    ///          "type": "number"
3860    ///        },
3861    ///        "Cookie": {
3862    ///          "type": "boolean"
3863    ///        },
3864    ///        "CopyDest": {
3865    ///          "type": "array",
3866    ///          "items": {
3867    ///            "type": "string"
3868    ///          }
3869    ///        },
3870    ///        "CutoffMode": {
3871    ///          "type": "string"
3872    ///        },
3873    ///        "DataRateUnit": {
3874    ///          "type": "string"
3875    ///        },
3876    ///        "DefaultTime": {
3877    ///          "type": "string"
3878    ///        },
3879    ///        "DeleteMode": {
3880    ///          "type": "number"
3881    ///        },
3882    ///        "DisableFeatures": {
3883    ///          "type": [
3884    ///            "string",
3885    ///            "null"
3886    ///          ],
3887    ///          "format": "null"
3888    ///        },
3889    ///        "DisableHTTP2": {
3890    ///          "type": "boolean"
3891    ///        },
3892    ///        "DisableHTTPKeepAlives": {
3893    ///          "type": "boolean"
3894    ///        },
3895    ///        "DownloadHeaders": {
3896    ///          "type": [
3897    ///            "string",
3898    ///            "null"
3899    ///          ],
3900    ///          "format": "null"
3901    ///        },
3902    ///        "DryRun": {
3903    ///          "type": "boolean"
3904    ///        },
3905    ///        "Dump": {
3906    ///          "type": "string"
3907    ///        },
3908    ///        "ErrorOnNoTransfer": {
3909    ///          "type": "boolean"
3910    ///        },
3911    ///        "ExpectContinueTimeout": {
3912    ///          "type": "number"
3913    ///        },
3914    ///        "FixCase": {
3915    ///          "type": "boolean"
3916    ///        },
3917    ///        "FsCacheExpireDuration": {
3918    ///          "type": "number"
3919    ///        },
3920    ///        "FsCacheExpireInterval": {
3921    ///          "type": "number"
3922    ///        },
3923    ///        "Headers": {
3924    ///          "type": [
3925    ///            "string",
3926    ///            "null"
3927    ///          ],
3928    ///          "format": "null"
3929    ///        },
3930    ///        "HumanReadable": {
3931    ///          "type": "boolean"
3932    ///        },
3933    ///        "IgnoreCaseSync": {
3934    ///          "type": "boolean"
3935    ///        },
3936    ///        "IgnoreChecksum": {
3937    ///          "type": "boolean"
3938    ///        },
3939    ///        "IgnoreErrors": {
3940    ///          "type": "boolean"
3941    ///        },
3942    ///        "IgnoreExisting": {
3943    ///          "type": "boolean"
3944    ///        },
3945    ///        "IgnoreSize": {
3946    ///          "type": "boolean"
3947    ///        },
3948    ///        "IgnoreTimes": {
3949    ///          "type": "boolean"
3950    ///        },
3951    ///        "Immutable": {
3952    ///          "type": "boolean"
3953    ///        },
3954    ///        "Inplace": {
3955    ///          "type": "boolean"
3956    ///        },
3957    ///        "InsecureSkipVerify": {
3958    ///          "type": "boolean"
3959    ///        },
3960    ///        "Interactive": {
3961    ///          "type": "boolean"
3962    ///        },
3963    ///        "KvLockTime": {
3964    ///          "type": "number"
3965    ///        },
3966    ///        "Links": {
3967    ///          "type": "boolean"
3968    ///        },
3969    ///        "LogLevel": {
3970    ///          "type": "string"
3971    ///        },
3972    ///        "LowLevelRetries": {
3973    ///          "type": "number"
3974    ///        },
3975    ///        "MaxBacklog": {
3976    ///          "type": "number"
3977    ///        },
3978    ///        "MaxBufferMemory": {
3979    ///          "type": "number"
3980    ///        },
3981    ///        "MaxDelete": {
3982    ///          "type": "number"
3983    ///        },
3984    ///        "MaxDeleteSize": {
3985    ///          "type": "number"
3986    ///        },
3987    ///        "MaxDepth": {
3988    ///          "type": "number"
3989    ///        },
3990    ///        "MaxDuration": {
3991    ///          "type": "number"
3992    ///        },
3993    ///        "MaxStatsGroups": {
3994    ///          "type": "number"
3995    ///        },
3996    ///        "MaxTransfer": {
3997    ///          "type": "number"
3998    ///        },
3999    ///        "Metadata": {
4000    ///          "type": "boolean"
4001    ///        },
4002    ///        "MetadataMapper": {
4003    ///          "type": [
4004    ///            "string",
4005    ///            "null"
4006    ///          ],
4007    ///          "format": "null"
4008    ///        },
4009    ///        "MetadataSet": {
4010    ///          "type": [
4011    ///            "string",
4012    ///            "null"
4013    ///          ],
4014    ///          "format": "null"
4015    ///        },
4016    ///        "ModifyWindow": {
4017    ///          "type": "number"
4018    ///        },
4019    ///        "MultiThreadChunkSize": {
4020    ///          "type": "number"
4021    ///        },
4022    ///        "MultiThreadCutoff": {
4023    ///          "type": "number"
4024    ///        },
4025    ///        "MultiThreadSet": {
4026    ///          "type": "boolean"
4027    ///        },
4028    ///        "MultiThreadStreams": {
4029    ///          "type": "number"
4030    ///        },
4031    ///        "MultiThreadWriteBufferSize": {
4032    ///          "type": "number"
4033    ///        },
4034    ///        "NoCheckDest": {
4035    ///          "type": "boolean"
4036    ///        },
4037    ///        "NoConsole": {
4038    ///          "type": "boolean"
4039    ///        },
4040    ///        "NoGzip": {
4041    ///          "type": "boolean"
4042    ///        },
4043    ///        "NoTraverse": {
4044    ///          "type": "boolean"
4045    ///        },
4046    ///        "NoUnicodeNormalization": {
4047    ///          "type": "boolean"
4048    ///        },
4049    ///        "NoUpdateDirModTime": {
4050    ///          "type": "boolean"
4051    ///        },
4052    ///        "NoUpdateModTime": {
4053    ///          "type": "boolean"
4054    ///        },
4055    ///        "OrderBy": {
4056    ///          "type": "string"
4057    ///        },
4058    ///        "PartialSuffix": {
4059    ///          "type": "string"
4060    ///        },
4061    ///        "PasswordCommand": {
4062    ///          "type": [
4063    ///            "string",
4064    ///            "null"
4065    ///          ],
4066    ///          "format": "null"
4067    ///        },
4068    ///        "Progress": {
4069    ///          "type": "boolean"
4070    ///        },
4071    ///        "ProgressTerminalTitle": {
4072    ///          "type": "boolean"
4073    ///        },
4074    ///        "RefreshTimes": {
4075    ///          "type": "boolean"
4076    ///        },
4077    ///        "Retries": {
4078    ///          "type": "number"
4079    ///        },
4080    ///        "RetriesInterval": {
4081    ///          "type": "number"
4082    ///        },
4083    ///        "ServerSideAcrossConfigs": {
4084    ///          "type": "boolean"
4085    ///        },
4086    ///        "SizeOnly": {
4087    ///          "type": "boolean"
4088    ///        },
4089    ///        "StatsFileNameLength": {
4090    ///          "type": "number"
4091    ///        },
4092    ///        "StatsLogLevel": {
4093    ///          "type": "string"
4094    ///        },
4095    ///        "StatsOneLine": {
4096    ///          "type": "boolean"
4097    ///        },
4098    ///        "StatsOneLineDate": {
4099    ///          "type": "boolean"
4100    ///        },
4101    ///        "StatsOneLineDateFormat": {
4102    ///          "type": "string"
4103    ///        },
4104    ///        "StreamingUploadCutoff": {
4105    ///          "type": "number"
4106    ///        },
4107    ///        "Suffix": {
4108    ///          "type": "string"
4109    ///        },
4110    ///        "SuffixKeepExtension": {
4111    ///          "type": "boolean"
4112    ///        },
4113    ///        "TPSLimit": {
4114    ///          "type": "number"
4115    ///        },
4116    ///        "TPSLimitBurst": {
4117    ///          "type": "number"
4118    ///        },
4119    ///        "TerminalColorMode": {
4120    ///          "type": "string"
4121    ///        },
4122    ///        "Timeout": {
4123    ///          "type": "number"
4124    ///        },
4125    ///        "TrackRenames": {
4126    ///          "type": "boolean"
4127    ///        },
4128    ///        "TrackRenamesStrategy": {
4129    ///          "type": "string"
4130    ///        },
4131    ///        "TrafficClass": {
4132    ///          "type": "number"
4133    ///        },
4134    ///        "Transfers": {
4135    ///          "type": "number"
4136    ///        },
4137    ///        "UpdateOlder": {
4138    ///          "type": "boolean"
4139    ///        },
4140    ///        "UploadHeaders": {
4141    ///          "type": [
4142    ///            "string",
4143    ///            "null"
4144    ///          ],
4145    ///          "format": "null"
4146    ///        },
4147    ///        "UseJSONLog": {
4148    ///          "type": "boolean"
4149    ///        },
4150    ///        "UseListR": {
4151    ///          "type": "boolean"
4152    ///        },
4153    ///        "UseMmap": {
4154    ///          "type": "boolean"
4155    ///        },
4156    ///        "UseServerModTime": {
4157    ///          "type": "boolean"
4158    ///        },
4159    ///        "UserAgent": {
4160    ///          "type": "string"
4161    ///        }
4162    ///      }
4163    ///    },
4164    ///    "filter": {
4165    ///      "type": "object",
4166    ///      "required": [
4167    ///        "DeleteExcluded",
4168    ///        "ExcludeFile",
4169    ///        "ExcludeFrom",
4170    ///        "ExcludeRule",
4171    ///        "FilesFrom",
4172    ///        "FilesFromRaw",
4173    ///        "FilterFrom",
4174    ///        "FilterRule",
4175    ///        "HashFilter",
4176    ///        "IgnoreCase",
4177    ///        "IncludeFrom",
4178    ///        "IncludeRule",
4179    ///        "MaxAge",
4180    ///        "MaxSize",
4181    ///        "MetaRules",
4182    ///        "MinAge",
4183    ///        "MinSize"
4184    ///      ],
4185    ///      "properties": {
4186    ///        "DeleteExcluded": {
4187    ///          "type": "boolean"
4188    ///        },
4189    ///        "ExcludeFile": {
4190    ///          "type": "array",
4191    ///          "items": {
4192    ///            "type": "string"
4193    ///          }
4194    ///        },
4195    ///        "ExcludeFrom": {
4196    ///          "type": "array",
4197    ///          "items": {
4198    ///            "type": "string"
4199    ///          }
4200    ///        },
4201    ///        "ExcludeRule": {
4202    ///          "type": "array",
4203    ///          "items": {
4204    ///            "type": "string"
4205    ///          }
4206    ///        },
4207    ///        "FilesFrom": {
4208    ///          "type": "array",
4209    ///          "items": {
4210    ///            "type": "string"
4211    ///          }
4212    ///        },
4213    ///        "FilesFromRaw": {
4214    ///          "type": "array",
4215    ///          "items": {
4216    ///            "type": "string"
4217    ///          }
4218    ///        },
4219    ///        "FilterFrom": {
4220    ///          "type": "array",
4221    ///          "items": {
4222    ///            "type": "string"
4223    ///          }
4224    ///        },
4225    ///        "FilterRule": {
4226    ///          "type": "array",
4227    ///          "items": {
4228    ///            "type": "string"
4229    ///          }
4230    ///        },
4231    ///        "HashFilter": {
4232    ///          "type": "string"
4233    ///        },
4234    ///        "IgnoreCase": {
4235    ///          "type": "boolean"
4236    ///        },
4237    ///        "IncludeFrom": {
4238    ///          "type": "array",
4239    ///          "items": {
4240    ///            "type": "string"
4241    ///          }
4242    ///        },
4243    ///        "IncludeRule": {
4244    ///          "type": "array",
4245    ///          "items": {
4246    ///            "type": "string"
4247    ///          }
4248    ///        },
4249    ///        "MaxAge": {
4250    ///          "type": "number"
4251    ///        },
4252    ///        "MaxSize": {
4253    ///          "type": "number"
4254    ///        },
4255    ///        "MetaRules": {
4256    ///          "type": "object",
4257    ///          "required": [
4258    ///            "ExcludeFrom",
4259    ///            "ExcludeRule",
4260    ///            "FilterFrom",
4261    ///            "FilterRule",
4262    ///            "IncludeFrom",
4263    ///            "IncludeRule"
4264    ///          ],
4265    ///          "properties": {
4266    ///            "ExcludeFrom": {
4267    ///              "type": "array",
4268    ///              "items": {
4269    ///                "type": "string"
4270    ///              }
4271    ///            },
4272    ///            "ExcludeRule": {
4273    ///              "type": "array",
4274    ///              "items": {
4275    ///                "type": "string"
4276    ///              }
4277    ///            },
4278    ///            "FilterFrom": {
4279    ///              "type": "array",
4280    ///              "items": {
4281    ///                "type": "string"
4282    ///              }
4283    ///            },
4284    ///            "FilterRule": {
4285    ///              "type": "array",
4286    ///              "items": {
4287    ///                "type": "string"
4288    ///              }
4289    ///            },
4290    ///            "IncludeFrom": {
4291    ///              "type": "array",
4292    ///              "items": {
4293    ///                "type": "string"
4294    ///              }
4295    ///            },
4296    ///            "IncludeRule": {
4297    ///              "type": "array",
4298    ///              "items": {
4299    ///                "type": "string"
4300    ///              }
4301    ///            }
4302    ///          }
4303    ///        },
4304    ///        "MinAge": {
4305    ///          "type": "number"
4306    ///        },
4307    ///        "MinSize": {
4308    ///          "type": "number"
4309    ///        }
4310    ///      }
4311    ///    }
4312    ///  }
4313    ///}
4314    /// ```
4315    /// </details>
4316    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
4317    pub struct OptionsLocalResponse {
4318        pub config: OptionsLocalResponseConfig,
4319        pub filter: OptionsLocalResponseFilter,
4320    }
4321
4322    impl ::std::convert::From<&OptionsLocalResponse> for OptionsLocalResponse {
4323        fn from(value: &OptionsLocalResponse) -> Self {
4324            value.clone()
4325        }
4326    }
4327
4328    ///`OptionsLocalResponseConfig`
4329    ///
4330    /// <details><summary>JSON schema</summary>
4331    ///
4332    /// ```json
4333    ///{
4334    ///  "type": "object",
4335    ///  "required": [
4336    ///    "AskPassword",
4337    ///    "AutoConfirm",
4338    ///    "BackupDir",
4339    ///    "BindAddr",
4340    ///    "BufferSize",
4341    ///    "BwLimit",
4342    ///    "BwLimitFile",
4343    ///    "CaCert",
4344    ///    "CheckFirst",
4345    ///    "CheckSum",
4346    ///    "Checkers",
4347    ///    "ClientCert",
4348    ///    "ClientKey",
4349    ///    "CompareDest",
4350    ///    "ConnectTimeout",
4351    ///    "Cookie",
4352    ///    "CopyDest",
4353    ///    "CutoffMode",
4354    ///    "DataRateUnit",
4355    ///    "DefaultTime",
4356    ///    "DeleteMode",
4357    ///    "DisableFeatures",
4358    ///    "DisableHTTP2",
4359    ///    "DisableHTTPKeepAlives",
4360    ///    "DownloadHeaders",
4361    ///    "DryRun",
4362    ///    "Dump",
4363    ///    "ErrorOnNoTransfer",
4364    ///    "ExpectContinueTimeout",
4365    ///    "FixCase",
4366    ///    "FsCacheExpireDuration",
4367    ///    "FsCacheExpireInterval",
4368    ///    "Headers",
4369    ///    "HumanReadable",
4370    ///    "IgnoreCaseSync",
4371    ///    "IgnoreChecksum",
4372    ///    "IgnoreErrors",
4373    ///    "IgnoreExisting",
4374    ///    "IgnoreSize",
4375    ///    "IgnoreTimes",
4376    ///    "Immutable",
4377    ///    "Inplace",
4378    ///    "InsecureSkipVerify",
4379    ///    "Interactive",
4380    ///    "KvLockTime",
4381    ///    "Links",
4382    ///    "LogLevel",
4383    ///    "LowLevelRetries",
4384    ///    "MaxBacklog",
4385    ///    "MaxBufferMemory",
4386    ///    "MaxDelete",
4387    ///    "MaxDeleteSize",
4388    ///    "MaxDepth",
4389    ///    "MaxDuration",
4390    ///    "MaxStatsGroups",
4391    ///    "MaxTransfer",
4392    ///    "Metadata",
4393    ///    "MetadataMapper",
4394    ///    "MetadataSet",
4395    ///    "ModifyWindow",
4396    ///    "MultiThreadChunkSize",
4397    ///    "MultiThreadCutoff",
4398    ///    "MultiThreadSet",
4399    ///    "MultiThreadStreams",
4400    ///    "MultiThreadWriteBufferSize",
4401    ///    "NoCheckDest",
4402    ///    "NoConsole",
4403    ///    "NoGzip",
4404    ///    "NoTraverse",
4405    ///    "NoUnicodeNormalization",
4406    ///    "NoUpdateDirModTime",
4407    ///    "NoUpdateModTime",
4408    ///    "OrderBy",
4409    ///    "PartialSuffix",
4410    ///    "PasswordCommand",
4411    ///    "Progress",
4412    ///    "ProgressTerminalTitle",
4413    ///    "RefreshTimes",
4414    ///    "Retries",
4415    ///    "RetriesInterval",
4416    ///    "ServerSideAcrossConfigs",
4417    ///    "SizeOnly",
4418    ///    "StatsFileNameLength",
4419    ///    "StatsLogLevel",
4420    ///    "StatsOneLine",
4421    ///    "StatsOneLineDate",
4422    ///    "StatsOneLineDateFormat",
4423    ///    "StreamingUploadCutoff",
4424    ///    "Suffix",
4425    ///    "SuffixKeepExtension",
4426    ///    "TPSLimit",
4427    ///    "TPSLimitBurst",
4428    ///    "TerminalColorMode",
4429    ///    "Timeout",
4430    ///    "TrackRenames",
4431    ///    "TrackRenamesStrategy",
4432    ///    "TrafficClass",
4433    ///    "Transfers",
4434    ///    "UpdateOlder",
4435    ///    "UploadHeaders",
4436    ///    "UseJSONLog",
4437    ///    "UseListR",
4438    ///    "UseMmap",
4439    ///    "UseServerModTime",
4440    ///    "UserAgent"
4441    ///  ],
4442    ///  "properties": {
4443    ///    "AskPassword": {
4444    ///      "type": "boolean"
4445    ///    },
4446    ///    "AutoConfirm": {
4447    ///      "type": "boolean"
4448    ///    },
4449    ///    "BackupDir": {
4450    ///      "type": "string"
4451    ///    },
4452    ///    "BindAddr": {
4453    ///      "type": "string"
4454    ///    },
4455    ///    "BufferSize": {
4456    ///      "type": "number"
4457    ///    },
4458    ///    "BwLimit": {
4459    ///      "type": "string"
4460    ///    },
4461    ///    "BwLimitFile": {
4462    ///      "type": "string"
4463    ///    },
4464    ///    "CaCert": {
4465    ///      "type": "array",
4466    ///      "items": {
4467    ///        "type": "string"
4468    ///      }
4469    ///    },
4470    ///    "CheckFirst": {
4471    ///      "type": "boolean"
4472    ///    },
4473    ///    "CheckSum": {
4474    ///      "type": "boolean"
4475    ///    },
4476    ///    "Checkers": {
4477    ///      "type": "number"
4478    ///    },
4479    ///    "ClientCert": {
4480    ///      "type": "string"
4481    ///    },
4482    ///    "ClientKey": {
4483    ///      "type": "string"
4484    ///    },
4485    ///    "CompareDest": {
4486    ///      "type": "array",
4487    ///      "items": {
4488    ///        "type": "string"
4489    ///      }
4490    ///    },
4491    ///    "ConnectTimeout": {
4492    ///      "type": "number"
4493    ///    },
4494    ///    "Cookie": {
4495    ///      "type": "boolean"
4496    ///    },
4497    ///    "CopyDest": {
4498    ///      "type": "array",
4499    ///      "items": {
4500    ///        "type": "string"
4501    ///      }
4502    ///    },
4503    ///    "CutoffMode": {
4504    ///      "type": "string"
4505    ///    },
4506    ///    "DataRateUnit": {
4507    ///      "type": "string"
4508    ///    },
4509    ///    "DefaultTime": {
4510    ///      "type": "string"
4511    ///    },
4512    ///    "DeleteMode": {
4513    ///      "type": "number"
4514    ///    },
4515    ///    "DisableFeatures": {
4516    ///      "type": [
4517    ///        "string",
4518    ///        "null"
4519    ///      ],
4520    ///      "format": "null"
4521    ///    },
4522    ///    "DisableHTTP2": {
4523    ///      "type": "boolean"
4524    ///    },
4525    ///    "DisableHTTPKeepAlives": {
4526    ///      "type": "boolean"
4527    ///    },
4528    ///    "DownloadHeaders": {
4529    ///      "type": [
4530    ///        "string",
4531    ///        "null"
4532    ///      ],
4533    ///      "format": "null"
4534    ///    },
4535    ///    "DryRun": {
4536    ///      "type": "boolean"
4537    ///    },
4538    ///    "Dump": {
4539    ///      "type": "string"
4540    ///    },
4541    ///    "ErrorOnNoTransfer": {
4542    ///      "type": "boolean"
4543    ///    },
4544    ///    "ExpectContinueTimeout": {
4545    ///      "type": "number"
4546    ///    },
4547    ///    "FixCase": {
4548    ///      "type": "boolean"
4549    ///    },
4550    ///    "FsCacheExpireDuration": {
4551    ///      "type": "number"
4552    ///    },
4553    ///    "FsCacheExpireInterval": {
4554    ///      "type": "number"
4555    ///    },
4556    ///    "Headers": {
4557    ///      "type": [
4558    ///        "string",
4559    ///        "null"
4560    ///      ],
4561    ///      "format": "null"
4562    ///    },
4563    ///    "HumanReadable": {
4564    ///      "type": "boolean"
4565    ///    },
4566    ///    "IgnoreCaseSync": {
4567    ///      "type": "boolean"
4568    ///    },
4569    ///    "IgnoreChecksum": {
4570    ///      "type": "boolean"
4571    ///    },
4572    ///    "IgnoreErrors": {
4573    ///      "type": "boolean"
4574    ///    },
4575    ///    "IgnoreExisting": {
4576    ///      "type": "boolean"
4577    ///    },
4578    ///    "IgnoreSize": {
4579    ///      "type": "boolean"
4580    ///    },
4581    ///    "IgnoreTimes": {
4582    ///      "type": "boolean"
4583    ///    },
4584    ///    "Immutable": {
4585    ///      "type": "boolean"
4586    ///    },
4587    ///    "Inplace": {
4588    ///      "type": "boolean"
4589    ///    },
4590    ///    "InsecureSkipVerify": {
4591    ///      "type": "boolean"
4592    ///    },
4593    ///    "Interactive": {
4594    ///      "type": "boolean"
4595    ///    },
4596    ///    "KvLockTime": {
4597    ///      "type": "number"
4598    ///    },
4599    ///    "Links": {
4600    ///      "type": "boolean"
4601    ///    },
4602    ///    "LogLevel": {
4603    ///      "type": "string"
4604    ///    },
4605    ///    "LowLevelRetries": {
4606    ///      "type": "number"
4607    ///    },
4608    ///    "MaxBacklog": {
4609    ///      "type": "number"
4610    ///    },
4611    ///    "MaxBufferMemory": {
4612    ///      "type": "number"
4613    ///    },
4614    ///    "MaxDelete": {
4615    ///      "type": "number"
4616    ///    },
4617    ///    "MaxDeleteSize": {
4618    ///      "type": "number"
4619    ///    },
4620    ///    "MaxDepth": {
4621    ///      "type": "number"
4622    ///    },
4623    ///    "MaxDuration": {
4624    ///      "type": "number"
4625    ///    },
4626    ///    "MaxStatsGroups": {
4627    ///      "type": "number"
4628    ///    },
4629    ///    "MaxTransfer": {
4630    ///      "type": "number"
4631    ///    },
4632    ///    "Metadata": {
4633    ///      "type": "boolean"
4634    ///    },
4635    ///    "MetadataMapper": {
4636    ///      "type": [
4637    ///        "string",
4638    ///        "null"
4639    ///      ],
4640    ///      "format": "null"
4641    ///    },
4642    ///    "MetadataSet": {
4643    ///      "type": [
4644    ///        "string",
4645    ///        "null"
4646    ///      ],
4647    ///      "format": "null"
4648    ///    },
4649    ///    "ModifyWindow": {
4650    ///      "type": "number"
4651    ///    },
4652    ///    "MultiThreadChunkSize": {
4653    ///      "type": "number"
4654    ///    },
4655    ///    "MultiThreadCutoff": {
4656    ///      "type": "number"
4657    ///    },
4658    ///    "MultiThreadSet": {
4659    ///      "type": "boolean"
4660    ///    },
4661    ///    "MultiThreadStreams": {
4662    ///      "type": "number"
4663    ///    },
4664    ///    "MultiThreadWriteBufferSize": {
4665    ///      "type": "number"
4666    ///    },
4667    ///    "NoCheckDest": {
4668    ///      "type": "boolean"
4669    ///    },
4670    ///    "NoConsole": {
4671    ///      "type": "boolean"
4672    ///    },
4673    ///    "NoGzip": {
4674    ///      "type": "boolean"
4675    ///    },
4676    ///    "NoTraverse": {
4677    ///      "type": "boolean"
4678    ///    },
4679    ///    "NoUnicodeNormalization": {
4680    ///      "type": "boolean"
4681    ///    },
4682    ///    "NoUpdateDirModTime": {
4683    ///      "type": "boolean"
4684    ///    },
4685    ///    "NoUpdateModTime": {
4686    ///      "type": "boolean"
4687    ///    },
4688    ///    "OrderBy": {
4689    ///      "type": "string"
4690    ///    },
4691    ///    "PartialSuffix": {
4692    ///      "type": "string"
4693    ///    },
4694    ///    "PasswordCommand": {
4695    ///      "type": [
4696    ///        "string",
4697    ///        "null"
4698    ///      ],
4699    ///      "format": "null"
4700    ///    },
4701    ///    "Progress": {
4702    ///      "type": "boolean"
4703    ///    },
4704    ///    "ProgressTerminalTitle": {
4705    ///      "type": "boolean"
4706    ///    },
4707    ///    "RefreshTimes": {
4708    ///      "type": "boolean"
4709    ///    },
4710    ///    "Retries": {
4711    ///      "type": "number"
4712    ///    },
4713    ///    "RetriesInterval": {
4714    ///      "type": "number"
4715    ///    },
4716    ///    "ServerSideAcrossConfigs": {
4717    ///      "type": "boolean"
4718    ///    },
4719    ///    "SizeOnly": {
4720    ///      "type": "boolean"
4721    ///    },
4722    ///    "StatsFileNameLength": {
4723    ///      "type": "number"
4724    ///    },
4725    ///    "StatsLogLevel": {
4726    ///      "type": "string"
4727    ///    },
4728    ///    "StatsOneLine": {
4729    ///      "type": "boolean"
4730    ///    },
4731    ///    "StatsOneLineDate": {
4732    ///      "type": "boolean"
4733    ///    },
4734    ///    "StatsOneLineDateFormat": {
4735    ///      "type": "string"
4736    ///    },
4737    ///    "StreamingUploadCutoff": {
4738    ///      "type": "number"
4739    ///    },
4740    ///    "Suffix": {
4741    ///      "type": "string"
4742    ///    },
4743    ///    "SuffixKeepExtension": {
4744    ///      "type": "boolean"
4745    ///    },
4746    ///    "TPSLimit": {
4747    ///      "type": "number"
4748    ///    },
4749    ///    "TPSLimitBurst": {
4750    ///      "type": "number"
4751    ///    },
4752    ///    "TerminalColorMode": {
4753    ///      "type": "string"
4754    ///    },
4755    ///    "Timeout": {
4756    ///      "type": "number"
4757    ///    },
4758    ///    "TrackRenames": {
4759    ///      "type": "boolean"
4760    ///    },
4761    ///    "TrackRenamesStrategy": {
4762    ///      "type": "string"
4763    ///    },
4764    ///    "TrafficClass": {
4765    ///      "type": "number"
4766    ///    },
4767    ///    "Transfers": {
4768    ///      "type": "number"
4769    ///    },
4770    ///    "UpdateOlder": {
4771    ///      "type": "boolean"
4772    ///    },
4773    ///    "UploadHeaders": {
4774    ///      "type": [
4775    ///        "string",
4776    ///        "null"
4777    ///      ],
4778    ///      "format": "null"
4779    ///    },
4780    ///    "UseJSONLog": {
4781    ///      "type": "boolean"
4782    ///    },
4783    ///    "UseListR": {
4784    ///      "type": "boolean"
4785    ///    },
4786    ///    "UseMmap": {
4787    ///      "type": "boolean"
4788    ///    },
4789    ///    "UseServerModTime": {
4790    ///      "type": "boolean"
4791    ///    },
4792    ///    "UserAgent": {
4793    ///      "type": "string"
4794    ///    }
4795    ///  }
4796    ///}
4797    /// ```
4798    /// </details>
4799    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
4800    pub struct OptionsLocalResponseConfig {
4801        #[serde(rename = "AskPassword")]
4802        pub ask_password: bool,
4803        #[serde(rename = "AutoConfirm")]
4804        pub auto_confirm: bool,
4805        #[serde(rename = "BackupDir")]
4806        pub backup_dir: ::std::string::String,
4807        #[serde(rename = "BindAddr")]
4808        pub bind_addr: ::std::string::String,
4809        #[serde(rename = "BufferSize")]
4810        pub buffer_size: f64,
4811        #[serde(rename = "BwLimit")]
4812        pub bw_limit: ::std::string::String,
4813        #[serde(rename = "BwLimitFile")]
4814        pub bw_limit_file: ::std::string::String,
4815        #[serde(rename = "CaCert")]
4816        pub ca_cert: ::std::vec::Vec<::std::string::String>,
4817        #[serde(rename = "CheckFirst")]
4818        pub check_first: bool,
4819        #[serde(rename = "CheckSum")]
4820        pub check_sum: bool,
4821        #[serde(rename = "Checkers")]
4822        pub checkers: f64,
4823        #[serde(rename = "ClientCert")]
4824        pub client_cert: ::std::string::String,
4825        #[serde(rename = "ClientKey")]
4826        pub client_key: ::std::string::String,
4827        #[serde(rename = "CompareDest")]
4828        pub compare_dest: ::std::vec::Vec<::std::string::String>,
4829        #[serde(rename = "ConnectTimeout")]
4830        pub connect_timeout: f64,
4831        #[serde(rename = "Cookie")]
4832        pub cookie: bool,
4833        #[serde(rename = "CopyDest")]
4834        pub copy_dest: ::std::vec::Vec<::std::string::String>,
4835        #[serde(rename = "CutoffMode")]
4836        pub cutoff_mode: ::std::string::String,
4837        #[serde(rename = "DataRateUnit")]
4838        pub data_rate_unit: ::std::string::String,
4839        #[serde(rename = "DefaultTime")]
4840        pub default_time: ::std::string::String,
4841        #[serde(rename = "DeleteMode")]
4842        pub delete_mode: f64,
4843        #[serde(rename = "DisableFeatures")]
4844        pub disable_features: ::std::option::Option<::std::string::String>,
4845        #[serde(rename = "DisableHTTP2")]
4846        pub disable_http2: bool,
4847        #[serde(rename = "DisableHTTPKeepAlives")]
4848        pub disable_http_keep_alives: bool,
4849        #[serde(rename = "DownloadHeaders")]
4850        pub download_headers: ::std::option::Option<::std::string::String>,
4851        #[serde(rename = "DryRun")]
4852        pub dry_run: bool,
4853        #[serde(rename = "Dump")]
4854        pub dump: ::std::string::String,
4855        #[serde(rename = "ErrorOnNoTransfer")]
4856        pub error_on_no_transfer: bool,
4857        #[serde(rename = "ExpectContinueTimeout")]
4858        pub expect_continue_timeout: f64,
4859        #[serde(rename = "FixCase")]
4860        pub fix_case: bool,
4861        #[serde(rename = "FsCacheExpireDuration")]
4862        pub fs_cache_expire_duration: f64,
4863        #[serde(rename = "FsCacheExpireInterval")]
4864        pub fs_cache_expire_interval: f64,
4865        #[serde(rename = "Headers")]
4866        pub headers: ::std::option::Option<::std::string::String>,
4867        #[serde(rename = "HumanReadable")]
4868        pub human_readable: bool,
4869        #[serde(rename = "IgnoreCaseSync")]
4870        pub ignore_case_sync: bool,
4871        #[serde(rename = "IgnoreChecksum")]
4872        pub ignore_checksum: bool,
4873        #[serde(rename = "IgnoreErrors")]
4874        pub ignore_errors: bool,
4875        #[serde(rename = "IgnoreExisting")]
4876        pub ignore_existing: bool,
4877        #[serde(rename = "IgnoreSize")]
4878        pub ignore_size: bool,
4879        #[serde(rename = "IgnoreTimes")]
4880        pub ignore_times: bool,
4881        #[serde(rename = "Immutable")]
4882        pub immutable: bool,
4883        #[serde(rename = "Inplace")]
4884        pub inplace: bool,
4885        #[serde(rename = "InsecureSkipVerify")]
4886        pub insecure_skip_verify: bool,
4887        #[serde(rename = "Interactive")]
4888        pub interactive: bool,
4889        #[serde(rename = "KvLockTime")]
4890        pub kv_lock_time: f64,
4891        #[serde(rename = "Links")]
4892        pub links: bool,
4893        #[serde(rename = "LogLevel")]
4894        pub log_level: ::std::string::String,
4895        #[serde(rename = "LowLevelRetries")]
4896        pub low_level_retries: f64,
4897        #[serde(rename = "MaxBacklog")]
4898        pub max_backlog: f64,
4899        #[serde(rename = "MaxBufferMemory")]
4900        pub max_buffer_memory: f64,
4901        #[serde(rename = "MaxDelete")]
4902        pub max_delete: f64,
4903        #[serde(rename = "MaxDeleteSize")]
4904        pub max_delete_size: f64,
4905        #[serde(rename = "MaxDepth")]
4906        pub max_depth: f64,
4907        #[serde(rename = "MaxDuration")]
4908        pub max_duration: f64,
4909        #[serde(rename = "MaxStatsGroups")]
4910        pub max_stats_groups: f64,
4911        #[serde(rename = "MaxTransfer")]
4912        pub max_transfer: f64,
4913        #[serde(rename = "Metadata")]
4914        pub metadata: bool,
4915        #[serde(rename = "MetadataMapper")]
4916        pub metadata_mapper: ::std::option::Option<::std::string::String>,
4917        #[serde(rename = "MetadataSet")]
4918        pub metadata_set: ::std::option::Option<::std::string::String>,
4919        #[serde(rename = "ModifyWindow")]
4920        pub modify_window: f64,
4921        #[serde(rename = "MultiThreadChunkSize")]
4922        pub multi_thread_chunk_size: f64,
4923        #[serde(rename = "MultiThreadCutoff")]
4924        pub multi_thread_cutoff: f64,
4925        #[serde(rename = "MultiThreadSet")]
4926        pub multi_thread_set: bool,
4927        #[serde(rename = "MultiThreadStreams")]
4928        pub multi_thread_streams: f64,
4929        #[serde(rename = "MultiThreadWriteBufferSize")]
4930        pub multi_thread_write_buffer_size: f64,
4931        #[serde(rename = "NoCheckDest")]
4932        pub no_check_dest: bool,
4933        #[serde(rename = "NoConsole")]
4934        pub no_console: bool,
4935        #[serde(rename = "NoGzip")]
4936        pub no_gzip: bool,
4937        #[serde(rename = "NoTraverse")]
4938        pub no_traverse: bool,
4939        #[serde(rename = "NoUnicodeNormalization")]
4940        pub no_unicode_normalization: bool,
4941        #[serde(rename = "NoUpdateDirModTime")]
4942        pub no_update_dir_mod_time: bool,
4943        #[serde(rename = "NoUpdateModTime")]
4944        pub no_update_mod_time: bool,
4945        #[serde(rename = "OrderBy")]
4946        pub order_by: ::std::string::String,
4947        #[serde(rename = "PartialSuffix")]
4948        pub partial_suffix: ::std::string::String,
4949        #[serde(rename = "PasswordCommand")]
4950        pub password_command: ::std::option::Option<::std::string::String>,
4951        #[serde(rename = "Progress")]
4952        pub progress: bool,
4953        #[serde(rename = "ProgressTerminalTitle")]
4954        pub progress_terminal_title: bool,
4955        #[serde(rename = "RefreshTimes")]
4956        pub refresh_times: bool,
4957        #[serde(rename = "Retries")]
4958        pub retries: f64,
4959        #[serde(rename = "RetriesInterval")]
4960        pub retries_interval: f64,
4961        #[serde(rename = "ServerSideAcrossConfigs")]
4962        pub server_side_across_configs: bool,
4963        #[serde(rename = "SizeOnly")]
4964        pub size_only: bool,
4965        #[serde(rename = "StatsFileNameLength")]
4966        pub stats_file_name_length: f64,
4967        #[serde(rename = "StatsLogLevel")]
4968        pub stats_log_level: ::std::string::String,
4969        #[serde(rename = "StatsOneLine")]
4970        pub stats_one_line: bool,
4971        #[serde(rename = "StatsOneLineDate")]
4972        pub stats_one_line_date: bool,
4973        #[serde(rename = "StatsOneLineDateFormat")]
4974        pub stats_one_line_date_format: ::std::string::String,
4975        #[serde(rename = "StreamingUploadCutoff")]
4976        pub streaming_upload_cutoff: f64,
4977        #[serde(rename = "Suffix")]
4978        pub suffix: ::std::string::String,
4979        #[serde(rename = "SuffixKeepExtension")]
4980        pub suffix_keep_extension: bool,
4981        #[serde(rename = "TerminalColorMode")]
4982        pub terminal_color_mode: ::std::string::String,
4983        #[serde(rename = "Timeout")]
4984        pub timeout: f64,
4985        #[serde(rename = "TPSLimit")]
4986        pub tps_limit: f64,
4987        #[serde(rename = "TPSLimitBurst")]
4988        pub tps_limit_burst: f64,
4989        #[serde(rename = "TrackRenames")]
4990        pub track_renames: bool,
4991        #[serde(rename = "TrackRenamesStrategy")]
4992        pub track_renames_strategy: ::std::string::String,
4993        #[serde(rename = "TrafficClass")]
4994        pub traffic_class: f64,
4995        #[serde(rename = "Transfers")]
4996        pub transfers: f64,
4997        #[serde(rename = "UpdateOlder")]
4998        pub update_older: bool,
4999        #[serde(rename = "UploadHeaders")]
5000        pub upload_headers: ::std::option::Option<::std::string::String>,
5001        #[serde(rename = "UseJSONLog")]
5002        pub use_json_log: bool,
5003        #[serde(rename = "UseListR")]
5004        pub use_list_r: bool,
5005        #[serde(rename = "UseMmap")]
5006        pub use_mmap: bool,
5007        #[serde(rename = "UseServerModTime")]
5008        pub use_server_mod_time: bool,
5009        #[serde(rename = "UserAgent")]
5010        pub user_agent: ::std::string::String,
5011    }
5012
5013    impl ::std::convert::From<&OptionsLocalResponseConfig> for OptionsLocalResponseConfig {
5014        fn from(value: &OptionsLocalResponseConfig) -> Self {
5015            value.clone()
5016        }
5017    }
5018
5019    ///`OptionsLocalResponseFilter`
5020    ///
5021    /// <details><summary>JSON schema</summary>
5022    ///
5023    /// ```json
5024    ///{
5025    ///  "type": "object",
5026    ///  "required": [
5027    ///    "DeleteExcluded",
5028    ///    "ExcludeFile",
5029    ///    "ExcludeFrom",
5030    ///    "ExcludeRule",
5031    ///    "FilesFrom",
5032    ///    "FilesFromRaw",
5033    ///    "FilterFrom",
5034    ///    "FilterRule",
5035    ///    "HashFilter",
5036    ///    "IgnoreCase",
5037    ///    "IncludeFrom",
5038    ///    "IncludeRule",
5039    ///    "MaxAge",
5040    ///    "MaxSize",
5041    ///    "MetaRules",
5042    ///    "MinAge",
5043    ///    "MinSize"
5044    ///  ],
5045    ///  "properties": {
5046    ///    "DeleteExcluded": {
5047    ///      "type": "boolean"
5048    ///    },
5049    ///    "ExcludeFile": {
5050    ///      "type": "array",
5051    ///      "items": {
5052    ///        "type": "string"
5053    ///      }
5054    ///    },
5055    ///    "ExcludeFrom": {
5056    ///      "type": "array",
5057    ///      "items": {
5058    ///        "type": "string"
5059    ///      }
5060    ///    },
5061    ///    "ExcludeRule": {
5062    ///      "type": "array",
5063    ///      "items": {
5064    ///        "type": "string"
5065    ///      }
5066    ///    },
5067    ///    "FilesFrom": {
5068    ///      "type": "array",
5069    ///      "items": {
5070    ///        "type": "string"
5071    ///      }
5072    ///    },
5073    ///    "FilesFromRaw": {
5074    ///      "type": "array",
5075    ///      "items": {
5076    ///        "type": "string"
5077    ///      }
5078    ///    },
5079    ///    "FilterFrom": {
5080    ///      "type": "array",
5081    ///      "items": {
5082    ///        "type": "string"
5083    ///      }
5084    ///    },
5085    ///    "FilterRule": {
5086    ///      "type": "array",
5087    ///      "items": {
5088    ///        "type": "string"
5089    ///      }
5090    ///    },
5091    ///    "HashFilter": {
5092    ///      "type": "string"
5093    ///    },
5094    ///    "IgnoreCase": {
5095    ///      "type": "boolean"
5096    ///    },
5097    ///    "IncludeFrom": {
5098    ///      "type": "array",
5099    ///      "items": {
5100    ///        "type": "string"
5101    ///      }
5102    ///    },
5103    ///    "IncludeRule": {
5104    ///      "type": "array",
5105    ///      "items": {
5106    ///        "type": "string"
5107    ///      }
5108    ///    },
5109    ///    "MaxAge": {
5110    ///      "type": "number"
5111    ///    },
5112    ///    "MaxSize": {
5113    ///      "type": "number"
5114    ///    },
5115    ///    "MetaRules": {
5116    ///      "type": "object",
5117    ///      "required": [
5118    ///        "ExcludeFrom",
5119    ///        "ExcludeRule",
5120    ///        "FilterFrom",
5121    ///        "FilterRule",
5122    ///        "IncludeFrom",
5123    ///        "IncludeRule"
5124    ///      ],
5125    ///      "properties": {
5126    ///        "ExcludeFrom": {
5127    ///          "type": "array",
5128    ///          "items": {
5129    ///            "type": "string"
5130    ///          }
5131    ///        },
5132    ///        "ExcludeRule": {
5133    ///          "type": "array",
5134    ///          "items": {
5135    ///            "type": "string"
5136    ///          }
5137    ///        },
5138    ///        "FilterFrom": {
5139    ///          "type": "array",
5140    ///          "items": {
5141    ///            "type": "string"
5142    ///          }
5143    ///        },
5144    ///        "FilterRule": {
5145    ///          "type": "array",
5146    ///          "items": {
5147    ///            "type": "string"
5148    ///          }
5149    ///        },
5150    ///        "IncludeFrom": {
5151    ///          "type": "array",
5152    ///          "items": {
5153    ///            "type": "string"
5154    ///          }
5155    ///        },
5156    ///        "IncludeRule": {
5157    ///          "type": "array",
5158    ///          "items": {
5159    ///            "type": "string"
5160    ///          }
5161    ///        }
5162    ///      }
5163    ///    },
5164    ///    "MinAge": {
5165    ///      "type": "number"
5166    ///    },
5167    ///    "MinSize": {
5168    ///      "type": "number"
5169    ///    }
5170    ///  }
5171    ///}
5172    /// ```
5173    /// </details>
5174    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5175    pub struct OptionsLocalResponseFilter {
5176        #[serde(rename = "DeleteExcluded")]
5177        pub delete_excluded: bool,
5178        #[serde(rename = "ExcludeFile")]
5179        pub exclude_file: ::std::vec::Vec<::std::string::String>,
5180        #[serde(rename = "ExcludeFrom")]
5181        pub exclude_from: ::std::vec::Vec<::std::string::String>,
5182        #[serde(rename = "ExcludeRule")]
5183        pub exclude_rule: ::std::vec::Vec<::std::string::String>,
5184        #[serde(rename = "FilesFrom")]
5185        pub files_from: ::std::vec::Vec<::std::string::String>,
5186        #[serde(rename = "FilesFromRaw")]
5187        pub files_from_raw: ::std::vec::Vec<::std::string::String>,
5188        #[serde(rename = "FilterFrom")]
5189        pub filter_from: ::std::vec::Vec<::std::string::String>,
5190        #[serde(rename = "FilterRule")]
5191        pub filter_rule: ::std::vec::Vec<::std::string::String>,
5192        #[serde(rename = "HashFilter")]
5193        pub hash_filter: ::std::string::String,
5194        #[serde(rename = "IgnoreCase")]
5195        pub ignore_case: bool,
5196        #[serde(rename = "IncludeFrom")]
5197        pub include_from: ::std::vec::Vec<::std::string::String>,
5198        #[serde(rename = "IncludeRule")]
5199        pub include_rule: ::std::vec::Vec<::std::string::String>,
5200        #[serde(rename = "MaxAge")]
5201        pub max_age: f64,
5202        #[serde(rename = "MaxSize")]
5203        pub max_size: f64,
5204        #[serde(rename = "MetaRules")]
5205        pub meta_rules: OptionsLocalResponseFilterMetaRules,
5206        #[serde(rename = "MinAge")]
5207        pub min_age: f64,
5208        #[serde(rename = "MinSize")]
5209        pub min_size: f64,
5210    }
5211
5212    impl ::std::convert::From<&OptionsLocalResponseFilter> for OptionsLocalResponseFilter {
5213        fn from(value: &OptionsLocalResponseFilter) -> Self {
5214            value.clone()
5215        }
5216    }
5217
5218    ///`OptionsLocalResponseFilterMetaRules`
5219    ///
5220    /// <details><summary>JSON schema</summary>
5221    ///
5222    /// ```json
5223    ///{
5224    ///  "type": "object",
5225    ///  "required": [
5226    ///    "ExcludeFrom",
5227    ///    "ExcludeRule",
5228    ///    "FilterFrom",
5229    ///    "FilterRule",
5230    ///    "IncludeFrom",
5231    ///    "IncludeRule"
5232    ///  ],
5233    ///  "properties": {
5234    ///    "ExcludeFrom": {
5235    ///      "type": "array",
5236    ///      "items": {
5237    ///        "type": "string"
5238    ///      }
5239    ///    },
5240    ///    "ExcludeRule": {
5241    ///      "type": "array",
5242    ///      "items": {
5243    ///        "type": "string"
5244    ///      }
5245    ///    },
5246    ///    "FilterFrom": {
5247    ///      "type": "array",
5248    ///      "items": {
5249    ///        "type": "string"
5250    ///      }
5251    ///    },
5252    ///    "FilterRule": {
5253    ///      "type": "array",
5254    ///      "items": {
5255    ///        "type": "string"
5256    ///      }
5257    ///    },
5258    ///    "IncludeFrom": {
5259    ///      "type": "array",
5260    ///      "items": {
5261    ///        "type": "string"
5262    ///      }
5263    ///    },
5264    ///    "IncludeRule": {
5265    ///      "type": "array",
5266    ///      "items": {
5267    ///        "type": "string"
5268    ///      }
5269    ///    }
5270    ///  }
5271    ///}
5272    /// ```
5273    /// </details>
5274    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5275    pub struct OptionsLocalResponseFilterMetaRules {
5276        #[serde(rename = "ExcludeFrom")]
5277        pub exclude_from: ::std::vec::Vec<::std::string::String>,
5278        #[serde(rename = "ExcludeRule")]
5279        pub exclude_rule: ::std::vec::Vec<::std::string::String>,
5280        #[serde(rename = "FilterFrom")]
5281        pub filter_from: ::std::vec::Vec<::std::string::String>,
5282        #[serde(rename = "FilterRule")]
5283        pub filter_rule: ::std::vec::Vec<::std::string::String>,
5284        #[serde(rename = "IncludeFrom")]
5285        pub include_from: ::std::vec::Vec<::std::string::String>,
5286        #[serde(rename = "IncludeRule")]
5287        pub include_rule: ::std::vec::Vec<::std::string::String>,
5288    }
5289
5290    impl ::std::convert::From<&OptionsLocalResponseFilterMetaRules>
5291        for OptionsLocalResponseFilterMetaRules
5292    {
5293        fn from(value: &OptionsLocalResponseFilterMetaRules) -> Self {
5294            value.clone()
5295        }
5296    }
5297
5298    ///`OptionsSetDlnaValue`
5299    ///
5300    /// <details><summary>JSON schema</summary>
5301    ///
5302    /// ```json
5303    ///{
5304    ///  "oneOf": [
5305    ///    {
5306    ///      "type": "string"
5307    ///    },
5308    ///    {
5309    ///      "type": "number"
5310    ///    },
5311    ///    {
5312    ///      "type": "integer"
5313    ///    },
5314    ///    {
5315    ///      "type": "boolean"
5316    ///    },
5317    ///    {
5318    ///      "type": "array",
5319    ///      "items": {}
5320    ///    },
5321    ///    {
5322    ///      "type": "object",
5323    ///      "additionalProperties": {}
5324    ///    }
5325    ///  ]
5326    ///}
5327    /// ```
5328    /// </details>
5329    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5330    #[serde(untagged)]
5331    pub enum OptionsSetDlnaValue {
5332        Variant0(::std::string::String),
5333        Variant1(f64),
5334        Variant2(i64),
5335        Variant3(bool),
5336        Variant4(::std::vec::Vec<::serde_json::Value>),
5337        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
5338    }
5339
5340    impl ::std::convert::From<&Self> for OptionsSetDlnaValue {
5341        fn from(value: &OptionsSetDlnaValue) -> Self {
5342            value.clone()
5343        }
5344    }
5345
5346    impl ::std::convert::From<f64> for OptionsSetDlnaValue {
5347        fn from(value: f64) -> Self {
5348            Self::Variant1(value)
5349        }
5350    }
5351
5352    impl ::std::convert::From<i64> for OptionsSetDlnaValue {
5353        fn from(value: i64) -> Self {
5354            Self::Variant2(value)
5355        }
5356    }
5357
5358    impl ::std::convert::From<bool> for OptionsSetDlnaValue {
5359        fn from(value: bool) -> Self {
5360            Self::Variant3(value)
5361        }
5362    }
5363
5364    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetDlnaValue {
5365        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
5366            Self::Variant4(value)
5367        }
5368    }
5369
5370    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
5371        for OptionsSetDlnaValue
5372    {
5373        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
5374            Self::Variant5(value)
5375        }
5376    }
5377
5378    ///`OptionsSetFilterValue`
5379    ///
5380    /// <details><summary>JSON schema</summary>
5381    ///
5382    /// ```json
5383    ///{
5384    ///  "oneOf": [
5385    ///    {
5386    ///      "type": "string"
5387    ///    },
5388    ///    {
5389    ///      "type": "number"
5390    ///    },
5391    ///    {
5392    ///      "type": "integer"
5393    ///    },
5394    ///    {
5395    ///      "type": "boolean"
5396    ///    },
5397    ///    {
5398    ///      "type": "array",
5399    ///      "items": {}
5400    ///    },
5401    ///    {
5402    ///      "type": "object",
5403    ///      "additionalProperties": {}
5404    ///    }
5405    ///  ]
5406    ///}
5407    /// ```
5408    /// </details>
5409    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5410    #[serde(untagged)]
5411    pub enum OptionsSetFilterValue {
5412        Variant0(::std::string::String),
5413        Variant1(f64),
5414        Variant2(i64),
5415        Variant3(bool),
5416        Variant4(::std::vec::Vec<::serde_json::Value>),
5417        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
5418    }
5419
5420    impl ::std::convert::From<&Self> for OptionsSetFilterValue {
5421        fn from(value: &OptionsSetFilterValue) -> Self {
5422            value.clone()
5423        }
5424    }
5425
5426    impl ::std::convert::From<f64> for OptionsSetFilterValue {
5427        fn from(value: f64) -> Self {
5428            Self::Variant1(value)
5429        }
5430    }
5431
5432    impl ::std::convert::From<i64> for OptionsSetFilterValue {
5433        fn from(value: i64) -> Self {
5434            Self::Variant2(value)
5435        }
5436    }
5437
5438    impl ::std::convert::From<bool> for OptionsSetFilterValue {
5439        fn from(value: bool) -> Self {
5440            Self::Variant3(value)
5441        }
5442    }
5443
5444    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetFilterValue {
5445        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
5446            Self::Variant4(value)
5447        }
5448    }
5449
5450    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
5451        for OptionsSetFilterValue
5452    {
5453        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
5454            Self::Variant5(value)
5455        }
5456    }
5457
5458    ///`OptionsSetFtpValue`
5459    ///
5460    /// <details><summary>JSON schema</summary>
5461    ///
5462    /// ```json
5463    ///{
5464    ///  "oneOf": [
5465    ///    {
5466    ///      "type": "string"
5467    ///    },
5468    ///    {
5469    ///      "type": "number"
5470    ///    },
5471    ///    {
5472    ///      "type": "integer"
5473    ///    },
5474    ///    {
5475    ///      "type": "boolean"
5476    ///    },
5477    ///    {
5478    ///      "type": "array",
5479    ///      "items": {}
5480    ///    },
5481    ///    {
5482    ///      "type": "object",
5483    ///      "additionalProperties": {}
5484    ///    }
5485    ///  ]
5486    ///}
5487    /// ```
5488    /// </details>
5489    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5490    #[serde(untagged)]
5491    pub enum OptionsSetFtpValue {
5492        Variant0(::std::string::String),
5493        Variant1(f64),
5494        Variant2(i64),
5495        Variant3(bool),
5496        Variant4(::std::vec::Vec<::serde_json::Value>),
5497        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
5498    }
5499
5500    impl ::std::convert::From<&Self> for OptionsSetFtpValue {
5501        fn from(value: &OptionsSetFtpValue) -> Self {
5502            value.clone()
5503        }
5504    }
5505
5506    impl ::std::convert::From<f64> for OptionsSetFtpValue {
5507        fn from(value: f64) -> Self {
5508            Self::Variant1(value)
5509        }
5510    }
5511
5512    impl ::std::convert::From<i64> for OptionsSetFtpValue {
5513        fn from(value: i64) -> Self {
5514            Self::Variant2(value)
5515        }
5516    }
5517
5518    impl ::std::convert::From<bool> for OptionsSetFtpValue {
5519        fn from(value: bool) -> Self {
5520            Self::Variant3(value)
5521        }
5522    }
5523
5524    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetFtpValue {
5525        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
5526            Self::Variant4(value)
5527        }
5528    }
5529
5530    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
5531        for OptionsSetFtpValue
5532    {
5533        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
5534            Self::Variant5(value)
5535        }
5536    }
5537
5538    ///`OptionsSetHttpValue`
5539    ///
5540    /// <details><summary>JSON schema</summary>
5541    ///
5542    /// ```json
5543    ///{
5544    ///  "oneOf": [
5545    ///    {
5546    ///      "type": "string"
5547    ///    },
5548    ///    {
5549    ///      "type": "number"
5550    ///    },
5551    ///    {
5552    ///      "type": "integer"
5553    ///    },
5554    ///    {
5555    ///      "type": "boolean"
5556    ///    },
5557    ///    {
5558    ///      "type": "array",
5559    ///      "items": {}
5560    ///    },
5561    ///    {
5562    ///      "type": "object",
5563    ///      "additionalProperties": {}
5564    ///    }
5565    ///  ]
5566    ///}
5567    /// ```
5568    /// </details>
5569    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5570    #[serde(untagged)]
5571    pub enum OptionsSetHttpValue {
5572        Variant0(::std::string::String),
5573        Variant1(f64),
5574        Variant2(i64),
5575        Variant3(bool),
5576        Variant4(::std::vec::Vec<::serde_json::Value>),
5577        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
5578    }
5579
5580    impl ::std::convert::From<&Self> for OptionsSetHttpValue {
5581        fn from(value: &OptionsSetHttpValue) -> Self {
5582            value.clone()
5583        }
5584    }
5585
5586    impl ::std::convert::From<f64> for OptionsSetHttpValue {
5587        fn from(value: f64) -> Self {
5588            Self::Variant1(value)
5589        }
5590    }
5591
5592    impl ::std::convert::From<i64> for OptionsSetHttpValue {
5593        fn from(value: i64) -> Self {
5594            Self::Variant2(value)
5595        }
5596    }
5597
5598    impl ::std::convert::From<bool> for OptionsSetHttpValue {
5599        fn from(value: bool) -> Self {
5600            Self::Variant3(value)
5601        }
5602    }
5603
5604    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetHttpValue {
5605        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
5606            Self::Variant4(value)
5607        }
5608    }
5609
5610    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
5611        for OptionsSetHttpValue
5612    {
5613        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
5614            Self::Variant5(value)
5615        }
5616    }
5617
5618    ///`OptionsSetLogValue`
5619    ///
5620    /// <details><summary>JSON schema</summary>
5621    ///
5622    /// ```json
5623    ///{
5624    ///  "oneOf": [
5625    ///    {
5626    ///      "type": "string"
5627    ///    },
5628    ///    {
5629    ///      "type": "number"
5630    ///    },
5631    ///    {
5632    ///      "type": "integer"
5633    ///    },
5634    ///    {
5635    ///      "type": "boolean"
5636    ///    },
5637    ///    {
5638    ///      "type": "array",
5639    ///      "items": {}
5640    ///    },
5641    ///    {
5642    ///      "type": "object",
5643    ///      "additionalProperties": {}
5644    ///    }
5645    ///  ]
5646    ///}
5647    /// ```
5648    /// </details>
5649    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5650    #[serde(untagged)]
5651    pub enum OptionsSetLogValue {
5652        Variant0(::std::string::String),
5653        Variant1(f64),
5654        Variant2(i64),
5655        Variant3(bool),
5656        Variant4(::std::vec::Vec<::serde_json::Value>),
5657        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
5658    }
5659
5660    impl ::std::convert::From<&Self> for OptionsSetLogValue {
5661        fn from(value: &OptionsSetLogValue) -> Self {
5662            value.clone()
5663        }
5664    }
5665
5666    impl ::std::convert::From<f64> for OptionsSetLogValue {
5667        fn from(value: f64) -> Self {
5668            Self::Variant1(value)
5669        }
5670    }
5671
5672    impl ::std::convert::From<i64> for OptionsSetLogValue {
5673        fn from(value: i64) -> Self {
5674            Self::Variant2(value)
5675        }
5676    }
5677
5678    impl ::std::convert::From<bool> for OptionsSetLogValue {
5679        fn from(value: bool) -> Self {
5680            Self::Variant3(value)
5681        }
5682    }
5683
5684    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetLogValue {
5685        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
5686            Self::Variant4(value)
5687        }
5688    }
5689
5690    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
5691        for OptionsSetLogValue
5692    {
5693        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
5694            Self::Variant5(value)
5695        }
5696    }
5697
5698    ///`OptionsSetMainValue`
5699    ///
5700    /// <details><summary>JSON schema</summary>
5701    ///
5702    /// ```json
5703    ///{
5704    ///  "oneOf": [
5705    ///    {
5706    ///      "type": "string"
5707    ///    },
5708    ///    {
5709    ///      "type": "number"
5710    ///    },
5711    ///    {
5712    ///      "type": "integer"
5713    ///    },
5714    ///    {
5715    ///      "type": "boolean"
5716    ///    },
5717    ///    {
5718    ///      "type": "array",
5719    ///      "items": {}
5720    ///    },
5721    ///    {
5722    ///      "type": "object",
5723    ///      "additionalProperties": {}
5724    ///    }
5725    ///  ]
5726    ///}
5727    /// ```
5728    /// </details>
5729    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5730    #[serde(untagged)]
5731    pub enum OptionsSetMainValue {
5732        Variant0(::std::string::String),
5733        Variant1(f64),
5734        Variant2(i64),
5735        Variant3(bool),
5736        Variant4(::std::vec::Vec<::serde_json::Value>),
5737        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
5738    }
5739
5740    impl ::std::convert::From<&Self> for OptionsSetMainValue {
5741        fn from(value: &OptionsSetMainValue) -> Self {
5742            value.clone()
5743        }
5744    }
5745
5746    impl ::std::convert::From<f64> for OptionsSetMainValue {
5747        fn from(value: f64) -> Self {
5748            Self::Variant1(value)
5749        }
5750    }
5751
5752    impl ::std::convert::From<i64> for OptionsSetMainValue {
5753        fn from(value: i64) -> Self {
5754            Self::Variant2(value)
5755        }
5756    }
5757
5758    impl ::std::convert::From<bool> for OptionsSetMainValue {
5759        fn from(value: bool) -> Self {
5760            Self::Variant3(value)
5761        }
5762    }
5763
5764    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetMainValue {
5765        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
5766            Self::Variant4(value)
5767        }
5768    }
5769
5770    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
5771        for OptionsSetMainValue
5772    {
5773        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
5774            Self::Variant5(value)
5775        }
5776    }
5777
5778    ///`OptionsSetMountValue`
5779    ///
5780    /// <details><summary>JSON schema</summary>
5781    ///
5782    /// ```json
5783    ///{
5784    ///  "oneOf": [
5785    ///    {
5786    ///      "type": "string"
5787    ///    },
5788    ///    {
5789    ///      "type": "number"
5790    ///    },
5791    ///    {
5792    ///      "type": "integer"
5793    ///    },
5794    ///    {
5795    ///      "type": "boolean"
5796    ///    },
5797    ///    {
5798    ///      "type": "array",
5799    ///      "items": {}
5800    ///    },
5801    ///    {
5802    ///      "type": "object",
5803    ///      "additionalProperties": {}
5804    ///    }
5805    ///  ]
5806    ///}
5807    /// ```
5808    /// </details>
5809    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5810    #[serde(untagged)]
5811    pub enum OptionsSetMountValue {
5812        Variant0(::std::string::String),
5813        Variant1(f64),
5814        Variant2(i64),
5815        Variant3(bool),
5816        Variant4(::std::vec::Vec<::serde_json::Value>),
5817        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
5818    }
5819
5820    impl ::std::convert::From<&Self> for OptionsSetMountValue {
5821        fn from(value: &OptionsSetMountValue) -> Self {
5822            value.clone()
5823        }
5824    }
5825
5826    impl ::std::convert::From<f64> for OptionsSetMountValue {
5827        fn from(value: f64) -> Self {
5828            Self::Variant1(value)
5829        }
5830    }
5831
5832    impl ::std::convert::From<i64> for OptionsSetMountValue {
5833        fn from(value: i64) -> Self {
5834            Self::Variant2(value)
5835        }
5836    }
5837
5838    impl ::std::convert::From<bool> for OptionsSetMountValue {
5839        fn from(value: bool) -> Self {
5840            Self::Variant3(value)
5841        }
5842    }
5843
5844    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetMountValue {
5845        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
5846            Self::Variant4(value)
5847        }
5848    }
5849
5850    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
5851        for OptionsSetMountValue
5852    {
5853        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
5854            Self::Variant5(value)
5855        }
5856    }
5857
5858    ///`OptionsSetNfsValue`
5859    ///
5860    /// <details><summary>JSON schema</summary>
5861    ///
5862    /// ```json
5863    ///{
5864    ///  "oneOf": [
5865    ///    {
5866    ///      "type": "string"
5867    ///    },
5868    ///    {
5869    ///      "type": "number"
5870    ///    },
5871    ///    {
5872    ///      "type": "integer"
5873    ///    },
5874    ///    {
5875    ///      "type": "boolean"
5876    ///    },
5877    ///    {
5878    ///      "type": "array",
5879    ///      "items": {}
5880    ///    },
5881    ///    {
5882    ///      "type": "object",
5883    ///      "additionalProperties": {}
5884    ///    }
5885    ///  ]
5886    ///}
5887    /// ```
5888    /// </details>
5889    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5890    #[serde(untagged)]
5891    pub enum OptionsSetNfsValue {
5892        Variant0(::std::string::String),
5893        Variant1(f64),
5894        Variant2(i64),
5895        Variant3(bool),
5896        Variant4(::std::vec::Vec<::serde_json::Value>),
5897        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
5898    }
5899
5900    impl ::std::convert::From<&Self> for OptionsSetNfsValue {
5901        fn from(value: &OptionsSetNfsValue) -> Self {
5902            value.clone()
5903        }
5904    }
5905
5906    impl ::std::convert::From<f64> for OptionsSetNfsValue {
5907        fn from(value: f64) -> Self {
5908            Self::Variant1(value)
5909        }
5910    }
5911
5912    impl ::std::convert::From<i64> for OptionsSetNfsValue {
5913        fn from(value: i64) -> Self {
5914            Self::Variant2(value)
5915        }
5916    }
5917
5918    impl ::std::convert::From<bool> for OptionsSetNfsValue {
5919        fn from(value: bool) -> Self {
5920            Self::Variant3(value)
5921        }
5922    }
5923
5924    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetNfsValue {
5925        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
5926            Self::Variant4(value)
5927        }
5928    }
5929
5930    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
5931        for OptionsSetNfsValue
5932    {
5933        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
5934            Self::Variant5(value)
5935        }
5936    }
5937
5938    ///`OptionsSetProxyValue`
5939    ///
5940    /// <details><summary>JSON schema</summary>
5941    ///
5942    /// ```json
5943    ///{
5944    ///  "oneOf": [
5945    ///    {
5946    ///      "type": "string"
5947    ///    },
5948    ///    {
5949    ///      "type": "number"
5950    ///    },
5951    ///    {
5952    ///      "type": "integer"
5953    ///    },
5954    ///    {
5955    ///      "type": "boolean"
5956    ///    },
5957    ///    {
5958    ///      "type": "array",
5959    ///      "items": {}
5960    ///    },
5961    ///    {
5962    ///      "type": "object",
5963    ///      "additionalProperties": {}
5964    ///    }
5965    ///  ]
5966    ///}
5967    /// ```
5968    /// </details>
5969    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5970    #[serde(untagged)]
5971    pub enum OptionsSetProxyValue {
5972        Variant0(::std::string::String),
5973        Variant1(f64),
5974        Variant2(i64),
5975        Variant3(bool),
5976        Variant4(::std::vec::Vec<::serde_json::Value>),
5977        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
5978    }
5979
5980    impl ::std::convert::From<&Self> for OptionsSetProxyValue {
5981        fn from(value: &OptionsSetProxyValue) -> Self {
5982            value.clone()
5983        }
5984    }
5985
5986    impl ::std::convert::From<f64> for OptionsSetProxyValue {
5987        fn from(value: f64) -> Self {
5988            Self::Variant1(value)
5989        }
5990    }
5991
5992    impl ::std::convert::From<i64> for OptionsSetProxyValue {
5993        fn from(value: i64) -> Self {
5994            Self::Variant2(value)
5995        }
5996    }
5997
5998    impl ::std::convert::From<bool> for OptionsSetProxyValue {
5999        fn from(value: bool) -> Self {
6000            Self::Variant3(value)
6001        }
6002    }
6003
6004    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetProxyValue {
6005        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
6006            Self::Variant4(value)
6007        }
6008    }
6009
6010    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
6011        for OptionsSetProxyValue
6012    {
6013        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
6014            Self::Variant5(value)
6015        }
6016    }
6017
6018    ///`OptionsSetRcValue`
6019    ///
6020    /// <details><summary>JSON schema</summary>
6021    ///
6022    /// ```json
6023    ///{
6024    ///  "oneOf": [
6025    ///    {
6026    ///      "type": "string"
6027    ///    },
6028    ///    {
6029    ///      "type": "number"
6030    ///    },
6031    ///    {
6032    ///      "type": "integer"
6033    ///    },
6034    ///    {
6035    ///      "type": "boolean"
6036    ///    },
6037    ///    {
6038    ///      "type": "array",
6039    ///      "items": {}
6040    ///    },
6041    ///    {
6042    ///      "type": "object",
6043    ///      "additionalProperties": {}
6044    ///    }
6045    ///  ]
6046    ///}
6047    /// ```
6048    /// </details>
6049    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6050    #[serde(untagged)]
6051    pub enum OptionsSetRcValue {
6052        Variant0(::std::string::String),
6053        Variant1(f64),
6054        Variant2(i64),
6055        Variant3(bool),
6056        Variant4(::std::vec::Vec<::serde_json::Value>),
6057        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
6058    }
6059
6060    impl ::std::convert::From<&Self> for OptionsSetRcValue {
6061        fn from(value: &OptionsSetRcValue) -> Self {
6062            value.clone()
6063        }
6064    }
6065
6066    impl ::std::convert::From<f64> for OptionsSetRcValue {
6067        fn from(value: f64) -> Self {
6068            Self::Variant1(value)
6069        }
6070    }
6071
6072    impl ::std::convert::From<i64> for OptionsSetRcValue {
6073        fn from(value: i64) -> Self {
6074            Self::Variant2(value)
6075        }
6076    }
6077
6078    impl ::std::convert::From<bool> for OptionsSetRcValue {
6079        fn from(value: bool) -> Self {
6080            Self::Variant3(value)
6081        }
6082    }
6083
6084    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetRcValue {
6085        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
6086            Self::Variant4(value)
6087        }
6088    }
6089
6090    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
6091        for OptionsSetRcValue
6092    {
6093        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
6094            Self::Variant5(value)
6095        }
6096    }
6097
6098    ///`OptionsSetResticValue`
6099    ///
6100    /// <details><summary>JSON schema</summary>
6101    ///
6102    /// ```json
6103    ///{
6104    ///  "oneOf": [
6105    ///    {
6106    ///      "type": "string"
6107    ///    },
6108    ///    {
6109    ///      "type": "number"
6110    ///    },
6111    ///    {
6112    ///      "type": "integer"
6113    ///    },
6114    ///    {
6115    ///      "type": "boolean"
6116    ///    },
6117    ///    {
6118    ///      "type": "array",
6119    ///      "items": {}
6120    ///    },
6121    ///    {
6122    ///      "type": "object",
6123    ///      "additionalProperties": {}
6124    ///    }
6125    ///  ]
6126    ///}
6127    /// ```
6128    /// </details>
6129    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6130    #[serde(untagged)]
6131    pub enum OptionsSetResticValue {
6132        Variant0(::std::string::String),
6133        Variant1(f64),
6134        Variant2(i64),
6135        Variant3(bool),
6136        Variant4(::std::vec::Vec<::serde_json::Value>),
6137        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
6138    }
6139
6140    impl ::std::convert::From<&Self> for OptionsSetResticValue {
6141        fn from(value: &OptionsSetResticValue) -> Self {
6142            value.clone()
6143        }
6144    }
6145
6146    impl ::std::convert::From<f64> for OptionsSetResticValue {
6147        fn from(value: f64) -> Self {
6148            Self::Variant1(value)
6149        }
6150    }
6151
6152    impl ::std::convert::From<i64> for OptionsSetResticValue {
6153        fn from(value: i64) -> Self {
6154            Self::Variant2(value)
6155        }
6156    }
6157
6158    impl ::std::convert::From<bool> for OptionsSetResticValue {
6159        fn from(value: bool) -> Self {
6160            Self::Variant3(value)
6161        }
6162    }
6163
6164    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetResticValue {
6165        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
6166            Self::Variant4(value)
6167        }
6168    }
6169
6170    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
6171        for OptionsSetResticValue
6172    {
6173        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
6174            Self::Variant5(value)
6175        }
6176    }
6177
6178    ///`OptionsSetS3Value`
6179    ///
6180    /// <details><summary>JSON schema</summary>
6181    ///
6182    /// ```json
6183    ///{
6184    ///  "oneOf": [
6185    ///    {
6186    ///      "type": "string"
6187    ///    },
6188    ///    {
6189    ///      "type": "number"
6190    ///    },
6191    ///    {
6192    ///      "type": "integer"
6193    ///    },
6194    ///    {
6195    ///      "type": "boolean"
6196    ///    },
6197    ///    {
6198    ///      "type": "array",
6199    ///      "items": {}
6200    ///    },
6201    ///    {
6202    ///      "type": "object",
6203    ///      "additionalProperties": {}
6204    ///    }
6205    ///  ]
6206    ///}
6207    /// ```
6208    /// </details>
6209    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6210    #[serde(untagged)]
6211    pub enum OptionsSetS3Value {
6212        Variant0(::std::string::String),
6213        Variant1(f64),
6214        Variant2(i64),
6215        Variant3(bool),
6216        Variant4(::std::vec::Vec<::serde_json::Value>),
6217        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
6218    }
6219
6220    impl ::std::convert::From<&Self> for OptionsSetS3Value {
6221        fn from(value: &OptionsSetS3Value) -> Self {
6222            value.clone()
6223        }
6224    }
6225
6226    impl ::std::convert::From<f64> for OptionsSetS3Value {
6227        fn from(value: f64) -> Self {
6228            Self::Variant1(value)
6229        }
6230    }
6231
6232    impl ::std::convert::From<i64> for OptionsSetS3Value {
6233        fn from(value: i64) -> Self {
6234            Self::Variant2(value)
6235        }
6236    }
6237
6238    impl ::std::convert::From<bool> for OptionsSetS3Value {
6239        fn from(value: bool) -> Self {
6240            Self::Variant3(value)
6241        }
6242    }
6243
6244    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetS3Value {
6245        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
6246            Self::Variant4(value)
6247        }
6248    }
6249
6250    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
6251        for OptionsSetS3Value
6252    {
6253        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
6254            Self::Variant5(value)
6255        }
6256    }
6257
6258    ///`OptionsSetSftpValue`
6259    ///
6260    /// <details><summary>JSON schema</summary>
6261    ///
6262    /// ```json
6263    ///{
6264    ///  "oneOf": [
6265    ///    {
6266    ///      "type": "string"
6267    ///    },
6268    ///    {
6269    ///      "type": "number"
6270    ///    },
6271    ///    {
6272    ///      "type": "integer"
6273    ///    },
6274    ///    {
6275    ///      "type": "boolean"
6276    ///    },
6277    ///    {
6278    ///      "type": "array",
6279    ///      "items": {}
6280    ///    },
6281    ///    {
6282    ///      "type": "object",
6283    ///      "additionalProperties": {}
6284    ///    }
6285    ///  ]
6286    ///}
6287    /// ```
6288    /// </details>
6289    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6290    #[serde(untagged)]
6291    pub enum OptionsSetSftpValue {
6292        Variant0(::std::string::String),
6293        Variant1(f64),
6294        Variant2(i64),
6295        Variant3(bool),
6296        Variant4(::std::vec::Vec<::serde_json::Value>),
6297        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
6298    }
6299
6300    impl ::std::convert::From<&Self> for OptionsSetSftpValue {
6301        fn from(value: &OptionsSetSftpValue) -> Self {
6302            value.clone()
6303        }
6304    }
6305
6306    impl ::std::convert::From<f64> for OptionsSetSftpValue {
6307        fn from(value: f64) -> Self {
6308            Self::Variant1(value)
6309        }
6310    }
6311
6312    impl ::std::convert::From<i64> for OptionsSetSftpValue {
6313        fn from(value: i64) -> Self {
6314            Self::Variant2(value)
6315        }
6316    }
6317
6318    impl ::std::convert::From<bool> for OptionsSetSftpValue {
6319        fn from(value: bool) -> Self {
6320            Self::Variant3(value)
6321        }
6322    }
6323
6324    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetSftpValue {
6325        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
6326            Self::Variant4(value)
6327        }
6328    }
6329
6330    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
6331        for OptionsSetSftpValue
6332    {
6333        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
6334            Self::Variant5(value)
6335        }
6336    }
6337
6338    ///`OptionsSetVfsValue`
6339    ///
6340    /// <details><summary>JSON schema</summary>
6341    ///
6342    /// ```json
6343    ///{
6344    ///  "oneOf": [
6345    ///    {
6346    ///      "type": "string"
6347    ///    },
6348    ///    {
6349    ///      "type": "number"
6350    ///    },
6351    ///    {
6352    ///      "type": "integer"
6353    ///    },
6354    ///    {
6355    ///      "type": "boolean"
6356    ///    },
6357    ///    {
6358    ///      "type": "array",
6359    ///      "items": {}
6360    ///    },
6361    ///    {
6362    ///      "type": "object",
6363    ///      "additionalProperties": {}
6364    ///    }
6365    ///  ]
6366    ///}
6367    /// ```
6368    /// </details>
6369    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6370    #[serde(untagged)]
6371    pub enum OptionsSetVfsValue {
6372        Variant0(::std::string::String),
6373        Variant1(f64),
6374        Variant2(i64),
6375        Variant3(bool),
6376        Variant4(::std::vec::Vec<::serde_json::Value>),
6377        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
6378    }
6379
6380    impl ::std::convert::From<&Self> for OptionsSetVfsValue {
6381        fn from(value: &OptionsSetVfsValue) -> Self {
6382            value.clone()
6383        }
6384    }
6385
6386    impl ::std::convert::From<f64> for OptionsSetVfsValue {
6387        fn from(value: f64) -> Self {
6388            Self::Variant1(value)
6389        }
6390    }
6391
6392    impl ::std::convert::From<i64> for OptionsSetVfsValue {
6393        fn from(value: i64) -> Self {
6394            Self::Variant2(value)
6395        }
6396    }
6397
6398    impl ::std::convert::From<bool> for OptionsSetVfsValue {
6399        fn from(value: bool) -> Self {
6400            Self::Variant3(value)
6401        }
6402    }
6403
6404    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetVfsValue {
6405        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
6406            Self::Variant4(value)
6407        }
6408    }
6409
6410    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
6411        for OptionsSetVfsValue
6412    {
6413        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
6414            Self::Variant5(value)
6415        }
6416    }
6417
6418    ///`OptionsSetWebdavValue`
6419    ///
6420    /// <details><summary>JSON schema</summary>
6421    ///
6422    /// ```json
6423    ///{
6424    ///  "oneOf": [
6425    ///    {
6426    ///      "type": "string"
6427    ///    },
6428    ///    {
6429    ///      "type": "number"
6430    ///    },
6431    ///    {
6432    ///      "type": "integer"
6433    ///    },
6434    ///    {
6435    ///      "type": "boolean"
6436    ///    },
6437    ///    {
6438    ///      "type": "array",
6439    ///      "items": {}
6440    ///    },
6441    ///    {
6442    ///      "type": "object",
6443    ///      "additionalProperties": {}
6444    ///    }
6445    ///  ]
6446    ///}
6447    /// ```
6448    /// </details>
6449    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6450    #[serde(untagged)]
6451    pub enum OptionsSetWebdavValue {
6452        Variant0(::std::string::String),
6453        Variant1(f64),
6454        Variant2(i64),
6455        Variant3(bool),
6456        Variant4(::std::vec::Vec<::serde_json::Value>),
6457        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
6458    }
6459
6460    impl ::std::convert::From<&Self> for OptionsSetWebdavValue {
6461        fn from(value: &OptionsSetWebdavValue) -> Self {
6462            value.clone()
6463        }
6464    }
6465
6466    impl ::std::convert::From<f64> for OptionsSetWebdavValue {
6467        fn from(value: f64) -> Self {
6468            Self::Variant1(value)
6469        }
6470    }
6471
6472    impl ::std::convert::From<i64> for OptionsSetWebdavValue {
6473        fn from(value: i64) -> Self {
6474            Self::Variant2(value)
6475        }
6476    }
6477
6478    impl ::std::convert::From<bool> for OptionsSetWebdavValue {
6479        fn from(value: bool) -> Self {
6480            Self::Variant3(value)
6481        }
6482    }
6483
6484    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetWebdavValue {
6485        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
6486            Self::Variant4(value)
6487        }
6488    }
6489
6490    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
6491        for OptionsSetWebdavValue
6492    {
6493        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
6494            Self::Variant5(value)
6495        }
6496    }
6497
6498    ///`PluginsctlGetPluginsForTypeResponse`
6499    ///
6500    /// <details><summary>JSON schema</summary>
6501    ///
6502    /// ```json
6503    ///{
6504    ///  "type": "object",
6505    ///  "required": [
6506    ///    "loadedPlugins",
6507    ///    "loadedTestPlugins"
6508    ///  ],
6509    ///  "properties": {
6510    ///    "loadedPlugins": {
6511    ///      "description": "Installed plugins keyed by repository name.",
6512    ///      "type": "object",
6513    ///      "additionalProperties": {
6514    ///        "type": "object",
6515    ///        "additionalProperties": true
6516    ///      }
6517    ///    },
6518    ///    "loadedTestPlugins": {
6519    ///      "description": "Installed test plugins keyed by repository name.",
6520    ///      "type": "object",
6521    ///      "additionalProperties": {
6522    ///        "type": "object",
6523    ///        "additionalProperties": true
6524    ///      }
6525    ///    }
6526    ///  }
6527    ///}
6528    /// ```
6529    /// </details>
6530    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6531    pub struct PluginsctlGetPluginsForTypeResponse {
6532        ///Installed plugins keyed by repository name.
6533        #[serde(rename = "loadedPlugins")]
6534        pub loaded_plugins: ::std::collections::HashMap<
6535            ::std::string::String,
6536            ::serde_json::Map<::std::string::String, ::serde_json::Value>,
6537        >,
6538        ///Installed test plugins keyed by repository name.
6539        #[serde(rename = "loadedTestPlugins")]
6540        pub loaded_test_plugins: ::std::collections::HashMap<
6541            ::std::string::String,
6542            ::serde_json::Map<::std::string::String, ::serde_json::Value>,
6543        >,
6544    }
6545
6546    impl ::std::convert::From<&PluginsctlGetPluginsForTypeResponse>
6547        for PluginsctlGetPluginsForTypeResponse
6548    {
6549        fn from(value: &PluginsctlGetPluginsForTypeResponse) -> Self {
6550            value.clone()
6551        }
6552    }
6553
6554    ///`PluginsctlListPluginsResponse`
6555    ///
6556    /// <details><summary>JSON schema</summary>
6557    ///
6558    /// ```json
6559    ///{
6560    ///  "type": "object",
6561    ///  "required": [
6562    ///    "loadedPlugins",
6563    ///    "testPlugins"
6564    ///  ],
6565    ///  "properties": {
6566    ///    "loadedPlugins": {
6567    ///      "description": "Metadata entries for installed plugins.",
6568    ///      "type": "array",
6569    ///      "items": {
6570    ///        "type": "object",
6571    ///        "additionalProperties": true
6572    ///      }
6573    ///    },
6574    ///    "testPlugins": {
6575    ///      "description": "Metadata entries for installed test plugins.",
6576    ///      "type": "array",
6577    ///      "items": {
6578    ///        "type": "object",
6579    ///        "additionalProperties": true
6580    ///      }
6581    ///    }
6582    ///  }
6583    ///}
6584    /// ```
6585    /// </details>
6586    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6587    pub struct PluginsctlListPluginsResponse {
6588        ///Metadata entries for installed plugins.
6589        #[serde(rename = "loadedPlugins")]
6590        pub loaded_plugins:
6591            ::std::vec::Vec<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
6592        ///Metadata entries for installed test plugins.
6593        #[serde(rename = "testPlugins")]
6594        pub test_plugins:
6595            ::std::vec::Vec<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
6596    }
6597
6598    impl ::std::convert::From<&PluginsctlListPluginsResponse> for PluginsctlListPluginsResponse {
6599        fn from(value: &PluginsctlListPluginsResponse) -> Self {
6600            value.clone()
6601        }
6602    }
6603
6604    ///`PluginsctlListTestPluginsResponse`
6605    ///
6606    /// <details><summary>JSON schema</summary>
6607    ///
6608    /// ```json
6609    ///{
6610    ///  "type": "object",
6611    ///  "required": [
6612    ///    "loadedTestPlugins"
6613    ///  ],
6614    ///  "properties": {
6615    ///    "loadedTestPlugins": {
6616    ///      "description": "Installed test plugin metadata keyed by
6617    /// repository.",
6618    ///      "type": "object",
6619    ///      "additionalProperties": {
6620    ///        "type": "object",
6621    ///        "additionalProperties": true
6622    ///      }
6623    ///    }
6624    ///  }
6625    ///}
6626    /// ```
6627    /// </details>
6628    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6629    pub struct PluginsctlListTestPluginsResponse {
6630        ///Installed test plugin metadata keyed by repository.
6631        #[serde(rename = "loadedTestPlugins")]
6632        pub loaded_test_plugins: ::std::collections::HashMap<
6633            ::std::string::String,
6634            ::serde_json::Map<::std::string::String, ::serde_json::Value>,
6635        >,
6636    }
6637
6638    impl ::std::convert::From<&PluginsctlListTestPluginsResponse>
6639        for PluginsctlListTestPluginsResponse
6640    {
6641        fn from(value: &PluginsctlListTestPluginsResponse) -> Self {
6642            value.clone()
6643        }
6644    }
6645
6646    ///`RcError`
6647    ///
6648    /// <details><summary>JSON schema</summary>
6649    ///
6650    /// ```json
6651    ///{
6652    ///  "type": "object",
6653    ///  "required": [
6654    ///    "error",
6655    ///    "input",
6656    ///    "path",
6657    ///    "status"
6658    ///  ],
6659    ///  "properties": {
6660    ///    "error": {
6661    ///      "type": "string"
6662    ///    },
6663    ///    "input": {
6664    ///      "description": "Original request parameters echoed for debugging.",
6665    ///      "type": [
6666    ///        "object",
6667    ///        "null"
6668    ///      ],
6669    ///      "additionalProperties": {}
6670    ///    },
6671    ///    "path": {
6672    ///      "type": "string"
6673    ///    },
6674    ///    "status": {
6675    ///      "type": "integer"
6676    ///    }
6677    ///  }
6678    ///}
6679    /// ```
6680    /// </details>
6681    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6682    pub struct RcError {
6683        pub error: ::std::string::String,
6684        ///Original request parameters echoed for debugging.
6685        pub input:
6686            ::std::option::Option<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
6687        pub path: ::std::string::String,
6688        pub status: i64,
6689    }
6690
6691    impl ::std::convert::From<&RcError> for RcError {
6692        fn from(value: &RcError) -> Self {
6693            value.clone()
6694        }
6695    }
6696
6697    ///`RcListResponse`
6698    ///
6699    /// <details><summary>JSON schema</summary>
6700    ///
6701    /// ```json
6702    ///{
6703    ///  "type": "object",
6704    ///  "required": [
6705    ///    "commands"
6706    ///  ],
6707    ///  "properties": {
6708    ///    "commands": {
6709    ///      "type": "array",
6710    ///      "items": {
6711    ///        "type": "object",
6712    ///        "properties": {
6713    ///          "AuthRequired": {
6714    ///            "type": "boolean"
6715    ///          },
6716    ///          "Help": {
6717    ///            "type": "string"
6718    ///          },
6719    ///          "NeedsRequest": {
6720    ///            "type": "boolean"
6721    ///          },
6722    ///          "NeedsResponse": {
6723    ///            "type": "boolean"
6724    ///          },
6725    ///          "Path": {
6726    ///            "type": "string"
6727    ///          },
6728    ///          "Title": {
6729    ///            "type": "string"
6730    ///          }
6731    ///        },
6732    ///        "additionalProperties": true
6733    ///      }
6734    ///    }
6735    ///  }
6736    ///}
6737    /// ```
6738    /// </details>
6739    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6740    pub struct RcListResponse {
6741        pub commands: ::std::vec::Vec<RcListResponseCommandsItem>,
6742    }
6743
6744    impl ::std::convert::From<&RcListResponse> for RcListResponse {
6745        fn from(value: &RcListResponse) -> Self {
6746            value.clone()
6747        }
6748    }
6749
6750    ///`RcListResponseCommandsItem`
6751    ///
6752    /// <details><summary>JSON schema</summary>
6753    ///
6754    /// ```json
6755    ///{
6756    ///  "type": "object",
6757    ///  "properties": {
6758    ///    "AuthRequired": {
6759    ///      "type": "boolean"
6760    ///    },
6761    ///    "Help": {
6762    ///      "type": "string"
6763    ///    },
6764    ///    "NeedsRequest": {
6765    ///      "type": "boolean"
6766    ///    },
6767    ///    "NeedsResponse": {
6768    ///      "type": "boolean"
6769    ///    },
6770    ///    "Path": {
6771    ///      "type": "string"
6772    ///    },
6773    ///    "Title": {
6774    ///      "type": "string"
6775    ///    }
6776    ///  },
6777    ///  "additionalProperties": true
6778    ///}
6779    /// ```
6780    /// </details>
6781    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6782    pub struct RcListResponseCommandsItem {
6783        #[serde(
6784            rename = "AuthRequired",
6785            default,
6786            skip_serializing_if = "::std::option::Option::is_none"
6787        )]
6788        pub auth_required: ::std::option::Option<bool>,
6789        #[serde(
6790            rename = "Help",
6791            default,
6792            skip_serializing_if = "::std::option::Option::is_none"
6793        )]
6794        pub help: ::std::option::Option<::std::string::String>,
6795        #[serde(
6796            rename = "NeedsRequest",
6797            default,
6798            skip_serializing_if = "::std::option::Option::is_none"
6799        )]
6800        pub needs_request: ::std::option::Option<bool>,
6801        #[serde(
6802            rename = "NeedsResponse",
6803            default,
6804            skip_serializing_if = "::std::option::Option::is_none"
6805        )]
6806        pub needs_response: ::std::option::Option<bool>,
6807        #[serde(
6808            rename = "Path",
6809            default,
6810            skip_serializing_if = "::std::option::Option::is_none"
6811        )]
6812        pub path: ::std::option::Option<::std::string::String>,
6813        #[serde(
6814            rename = "Title",
6815            default,
6816            skip_serializing_if = "::std::option::Option::is_none"
6817        )]
6818        pub title: ::std::option::Option<::std::string::String>,
6819    }
6820
6821    impl ::std::convert::From<&RcListResponseCommandsItem> for RcListResponseCommandsItem {
6822        fn from(value: &RcListResponseCommandsItem) -> Self {
6823            value.clone()
6824        }
6825    }
6826
6827    impl ::std::default::Default for RcListResponseCommandsItem {
6828        fn default() -> Self {
6829            Self {
6830                auth_required: Default::default(),
6831                help: Default::default(),
6832                needs_request: Default::default(),
6833                needs_response: Default::default(),
6834                path: Default::default(),
6835                title: Default::default(),
6836            }
6837        }
6838    }
6839
6840    ///`ServeListResponse`
6841    ///
6842    /// <details><summary>JSON schema</summary>
6843    ///
6844    /// ```json
6845    ///{
6846    ///  "type": "object",
6847    ///  "required": [
6848    ///    "list"
6849    ///  ],
6850    ///  "properties": {
6851    ///    "list": {
6852    ///      "type": "array",
6853    ///      "items": {
6854    ///        "type": "object",
6855    ///        "required": [
6856    ///          "addr",
6857    ///          "id"
6858    ///        ],
6859    ///        "properties": {
6860    ///          "addr": {
6861    ///            "description": "Address and port the server is listening
6862    /// on.",
6863    ///            "type": "string"
6864    ///          },
6865    ///          "id": {
6866    ///            "description": "Identifier returned by `serve/start`.",
6867    ///            "type": "string"
6868    ///          },
6869    ///          "params": {
6870    ///            "description": "Serve configuration parameters supplied at
6871    /// startup.",
6872    ///            "type": "object",
6873    ///            "required": [
6874    ///              "fs",
6875    ///              "id",
6876    ///              "type"
6877    ///            ],
6878    ///            "properties": {
6879    ///              "fs": {
6880    ///                "type": "string"
6881    ///              },
6882    ///              "opt": {
6883    ///                "type": "object",
6884    ///                "additionalProperties": true
6885    ///              },
6886    ///              "type": {
6887    ///                "type": "string"
6888    ///              },
6889    ///              "vfsOpt": {
6890    ///                "type": "object",
6891    ///                "additionalProperties": true
6892    ///              }
6893    ///            },
6894    ///            "additionalProperties": true
6895    ///          }
6896    ///        },
6897    ///        "additionalProperties": false
6898    ///      }
6899    ///    }
6900    ///  }
6901    ///}
6902    /// ```
6903    /// </details>
6904    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6905    pub struct ServeListResponse {
6906        pub list: ::std::vec::Vec<ServeListResponseListItem>,
6907    }
6908
6909    impl ::std::convert::From<&ServeListResponse> for ServeListResponse {
6910        fn from(value: &ServeListResponse) -> Self {
6911            value.clone()
6912        }
6913    }
6914
6915    ///`ServeListResponseListItem`
6916    ///
6917    /// <details><summary>JSON schema</summary>
6918    ///
6919    /// ```json
6920    ///{
6921    ///  "type": "object",
6922    ///  "required": [
6923    ///    "addr",
6924    ///    "id"
6925    ///  ],
6926    ///  "properties": {
6927    ///    "addr": {
6928    ///      "description": "Address and port the server is listening on.",
6929    ///      "type": "string"
6930    ///    },
6931    ///    "id": {
6932    ///      "description": "Identifier returned by `serve/start`.",
6933    ///      "type": "string"
6934    ///    },
6935    ///    "params": {
6936    ///      "description": "Serve configuration parameters supplied at
6937    /// startup.",
6938    ///      "type": "object",
6939    ///      "required": [
6940    ///        "fs",
6941    ///        "id",
6942    ///        "type"
6943    ///      ],
6944    ///      "properties": {
6945    ///        "fs": {
6946    ///          "type": "string"
6947    ///        },
6948    ///        "opt": {
6949    ///          "type": "object",
6950    ///          "additionalProperties": true
6951    ///        },
6952    ///        "type": {
6953    ///          "type": "string"
6954    ///        },
6955    ///        "vfsOpt": {
6956    ///          "type": "object",
6957    ///          "additionalProperties": true
6958    ///        }
6959    ///      },
6960    ///      "additionalProperties": true
6961    ///    }
6962    ///  },
6963    ///  "additionalProperties": false
6964    ///}
6965    /// ```
6966    /// </details>
6967    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6968    #[serde(deny_unknown_fields)]
6969    pub struct ServeListResponseListItem {
6970        ///Address and port the server is listening on.
6971        pub addr: ::std::string::String,
6972        ///Identifier returned by `serve/start`.
6973        pub id: ::std::string::String,
6974        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
6975        pub params: ::std::option::Option<ServeListResponseListItemParams>,
6976    }
6977
6978    impl ::std::convert::From<&ServeListResponseListItem> for ServeListResponseListItem {
6979        fn from(value: &ServeListResponseListItem) -> Self {
6980            value.clone()
6981        }
6982    }
6983
6984    ///Serve configuration parameters supplied at startup.
6985    ///
6986    /// <details><summary>JSON schema</summary>
6987    ///
6988    /// ```json
6989    ///{
6990    ///  "description": "Serve configuration parameters supplied at startup.",
6991    ///  "type": "object",
6992    ///  "required": [
6993    ///    "fs",
6994    ///    "id",
6995    ///    "type"
6996    ///  ],
6997    ///  "properties": {
6998    ///    "fs": {
6999    ///      "type": "string"
7000    ///    },
7001    ///    "opt": {
7002    ///      "type": "object",
7003    ///      "additionalProperties": true
7004    ///    },
7005    ///    "type": {
7006    ///      "type": "string"
7007    ///    },
7008    ///    "vfsOpt": {
7009    ///      "type": "object",
7010    ///      "additionalProperties": true
7011    ///    }
7012    ///  },
7013    ///  "additionalProperties": true
7014    ///}
7015    /// ```
7016    /// </details>
7017    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7018    pub struct ServeListResponseListItemParams {
7019        pub fs: ::std::string::String,
7020        pub id: ::serde_json::Value,
7021        #[serde(default, skip_serializing_if = "::serde_json::Map::is_empty")]
7022        pub opt: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
7023        #[serde(rename = "type")]
7024        pub type_: ::std::string::String,
7025        #[serde(
7026            rename = "vfsOpt",
7027            default,
7028            skip_serializing_if = "::serde_json::Map::is_empty"
7029        )]
7030        pub vfs_opt: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
7031    }
7032
7033    impl ::std::convert::From<&ServeListResponseListItemParams> for ServeListResponseListItemParams {
7034        fn from(value: &ServeListResponseListItemParams) -> Self {
7035            value.clone()
7036        }
7037    }
7038
7039    ///`ServeStartResponse`
7040    ///
7041    /// <details><summary>JSON schema</summary>
7042    ///
7043    /// ```json
7044    ///{
7045    ///  "type": "object",
7046    ///  "required": [
7047    ///    "addr",
7048    ///    "id"
7049    ///  ],
7050    ///  "properties": {
7051    ///    "addr": {
7052    ///      "description": "Address and port the server is listening on.",
7053    ///      "type": "string"
7054    ///    },
7055    ///    "id": {
7056    ///      "description": "Identifier to pass to `serve/stop`.",
7057    ///      "type": "string"
7058    ///    }
7059    ///  }
7060    ///}
7061    /// ```
7062    /// </details>
7063    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7064    pub struct ServeStartResponse {
7065        ///Address and port the server is listening on.
7066        pub addr: ::std::string::String,
7067        ///Identifier to pass to `serve/stop`.
7068        pub id: ::std::string::String,
7069    }
7070
7071    impl ::std::convert::From<&ServeStartResponse> for ServeStartResponse {
7072        fn from(value: &ServeStartResponse) -> Self {
7073            value.clone()
7074        }
7075    }
7076
7077    ///`VfsForgetResponse`
7078    ///
7079    /// <details><summary>JSON schema</summary>
7080    ///
7081    /// ```json
7082    ///{
7083    ///  "type": "object",
7084    ///  "required": [
7085    ///    "forgotten"
7086    ///  ],
7087    ///  "properties": {
7088    ///    "forgotten": {
7089    ///      "description": "Paths that were successfully forgotten.",
7090    ///      "type": "array",
7091    ///      "items": {
7092    ///        "type": "string"
7093    ///      }
7094    ///    }
7095    ///  }
7096    ///}
7097    /// ```
7098    /// </details>
7099    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7100    pub struct VfsForgetResponse {
7101        ///Paths that were successfully forgotten.
7102        pub forgotten: ::std::vec::Vec<::std::string::String>,
7103    }
7104
7105    impl ::std::convert::From<&VfsForgetResponse> for VfsForgetResponse {
7106        fn from(value: &VfsForgetResponse) -> Self {
7107            value.clone()
7108        }
7109    }
7110
7111    ///`VfsListResponse`
7112    ///
7113    /// <details><summary>JSON schema</summary>
7114    ///
7115    /// ```json
7116    ///{
7117    ///  "type": "object",
7118    ///  "required": [
7119    ///    "vfses"
7120    ///  ],
7121    ///  "properties": {
7122    ///    "vfses": {
7123    ///      "description": "VFS name that can be used with other VFS
7124    /// endpoints.",
7125    ///      "type": "array",
7126    ///      "items": {
7127    ///        "type": "string"
7128    ///      }
7129    ///    }
7130    ///  }
7131    ///}
7132    /// ```
7133    /// </details>
7134    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7135    pub struct VfsListResponse {
7136        ///VFS name that can be used with other VFS endpoints.
7137        pub vfses: ::std::vec::Vec<::std::string::String>,
7138    }
7139
7140    impl ::std::convert::From<&VfsListResponse> for VfsListResponse {
7141        fn from(value: &VfsListResponse) -> Self {
7142            value.clone()
7143        }
7144    }
7145
7146    ///`VfsQueueResponse`
7147    ///
7148    /// <details><summary>JSON schema</summary>
7149    ///
7150    /// ```json
7151    ///{
7152    ///  "type": "object",
7153    ///  "properties": {
7154    ///    "queued": {
7155    ///      "type": "array",
7156    ///      "items": {
7157    ///        "description": "Queued item metadata such as name, size, expiry,
7158    /// and upload state.",
7159    ///        "type": "object",
7160    ///        "additionalProperties": true
7161    ///      }
7162    ///    }
7163    ///  }
7164    ///}
7165    /// ```
7166    /// </details>
7167    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7168    pub struct VfsQueueResponse {
7169        #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
7170        pub queued: ::std::vec::Vec<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
7171    }
7172
7173    impl ::std::convert::From<&VfsQueueResponse> for VfsQueueResponse {
7174        fn from(value: &VfsQueueResponse) -> Self {
7175            value.clone()
7176        }
7177    }
7178
7179    impl ::std::default::Default for VfsQueueResponse {
7180        fn default() -> Self {
7181            Self {
7182                queued: Default::default(),
7183            }
7184        }
7185    }
7186
7187    ///`VfsRefreshResponse`
7188    ///
7189    /// <details><summary>JSON schema</summary>
7190    ///
7191    /// ```json
7192    ///{
7193    ///  "type": "object",
7194    ///  "required": [
7195    ///    "result"
7196    ///  ],
7197    ///  "properties": {
7198    ///    "result": {
7199    ///      "description": "Map of refreshed directories to status messages.",
7200    ///      "type": "object",
7201    ///      "additionalProperties": {
7202    ///        "type": "string"
7203    ///      }
7204    ///    }
7205    ///  }
7206    ///}
7207    /// ```
7208    /// </details>
7209    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7210    pub struct VfsRefreshResponse {
7211        ///Map of refreshed directories to status messages.
7212        pub result: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
7213    }
7214
7215    impl ::std::convert::From<&VfsRefreshResponse> for VfsRefreshResponse {
7216        fn from(value: &VfsRefreshResponse) -> Self {
7217            value.clone()
7218        }
7219    }
7220
7221    ///`VfsStatsResponse`
7222    ///
7223    /// <details><summary>JSON schema</summary>
7224    ///
7225    /// ```json
7226    ///{
7227    ///  "type": "object",
7228    ///  "required": [
7229    ///    "fs",
7230    ///    "inUse",
7231    ///    "metadataCache",
7232    ///    "opt"
7233    ///  ],
7234    ///  "properties": {
7235    ///    "diskCache": {
7236    ///      "description": "Disk cache metrics when caching is enabled.",
7237    ///      "type": [
7238    ///        "object",
7239    ///        "null"
7240    ///      ],
7241    ///      "additionalProperties": true
7242    ///    },
7243    ///    "fs": {
7244    ///      "description": "Name of the VFS.",
7245    ///      "type": "string"
7246    ///    },
7247    ///    "inUse": {
7248    ///      "description": "Number of active references to the VFS.",
7249    ///      "type": "integer"
7250    ///    },
7251    ///    "metadataCache": {
7252    ///      "description": "In-memory metadata cache counters.",
7253    ///      "type": "object",
7254    ///      "additionalProperties": {
7255    ///        "type": "integer"
7256    ///      }
7257    ///    },
7258    ///    "opt": {
7259    ///      "description": "Effective options applied to the VFS.",
7260    ///      "type": "object",
7261    ///      "additionalProperties": true
7262    ///    }
7263    ///  }
7264    ///}
7265    /// ```
7266    /// </details>
7267    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7268    pub struct VfsStatsResponse {
7269        ///Disk cache metrics when caching is enabled.
7270        #[serde(
7271            rename = "diskCache",
7272            default,
7273            skip_serializing_if = "::std::option::Option::is_none"
7274        )]
7275        pub disk_cache:
7276            ::std::option::Option<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
7277        ///Name of the VFS.
7278        pub fs: ::std::string::String,
7279        ///Number of active references to the VFS.
7280        #[serde(rename = "inUse")]
7281        pub in_use: i64,
7282        ///In-memory metadata cache counters.
7283        #[serde(rename = "metadataCache")]
7284        pub metadata_cache: ::std::collections::HashMap<::std::string::String, i64>,
7285        ///Effective options applied to the VFS.
7286        pub opt: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
7287    }
7288
7289    impl ::std::convert::From<&VfsStatsResponse> for VfsStatsResponse {
7290        fn from(value: &VfsStatsResponse) -> Self {
7291            value.clone()
7292        }
7293    }
7294}
7295
7296#[derive(Clone, Debug)]
7297///Client for Rclone RC API
7298///
7299///Full OpenAPI specification for the Rclone RC API.
7300///
7301///Version: 0.1.3
7302pub struct Client {
7303    pub(crate) baseurl: String,
7304    pub(crate) client: reqwest::Client,
7305}
7306
7307impl Client {
7308    /// Create a new client.
7309    ///
7310    /// `baseurl` is the base URL provided to the internal
7311    /// `reqwest::Client`, and should include a scheme and hostname,
7312    /// as well as port and a path stem if applicable.
7313    pub fn new(baseurl: &str) -> Self {
7314        #[cfg(not(target_arch = "wasm32"))]
7315        let client = {
7316            let dur = ::std::time::Duration::from_secs(15u64);
7317            reqwest::ClientBuilder::new()
7318                .connect_timeout(dur)
7319                .timeout(dur)
7320        };
7321        #[cfg(target_arch = "wasm32")]
7322        let client = reqwest::ClientBuilder::new();
7323        Self::new_with_client(baseurl, client.build().unwrap())
7324    }
7325
7326    /// Construct a new client with an existing `reqwest::Client`,
7327    /// allowing more control over its configuration.
7328    ///
7329    /// `baseurl` is the base URL provided to the internal
7330    /// `reqwest::Client`, and should include a scheme and hostname,
7331    /// as well as port and a path stem if applicable.
7332    pub fn new_with_client(baseurl: &str, client: reqwest::Client) -> Self {
7333        Self {
7334            baseurl: baseurl.to_string(),
7335            client,
7336        }
7337    }
7338}
7339
7340impl ClientInfo<()> for Client {
7341    fn api_version() -> &'static str {
7342        "0.1.3"
7343    }
7344
7345    fn baseurl(&self) -> &str {
7346        self.baseurl.as_str()
7347    }
7348
7349    fn client(&self) -> &reqwest::Client {
7350        &self.client
7351    }
7352
7353    fn inner(&self) -> &() {
7354        &()
7355    }
7356}
7357
7358impl ClientHooks<()> for &Client {}
7359#[allow(clippy::all)]
7360impl Client {
7361    ///Echo request parameters
7362    ///
7363    ///Returns all supplied parameters unchanged so you can verify RC
7364    /// connectivity.
7365    ///
7366    ///Sends a `POST` request to `/rc/noop`
7367    ///
7368    ///Arguments:
7369    /// - `async_`: Run the command asynchronously. Returns a job id
7370    ///   immediately.
7371    /// - `params`: Additional arbitrary parameters allowed.
7372    pub async fn rc_noop<'a>(
7373        &'a self,
7374        async_: Option<bool>,
7375        params: Option<&'a ::serde_json::Map<::std::string::String, ::serde_json::Value>>,
7376    ) -> Result<
7377        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
7378        Error<types::RcError>,
7379    > {
7380        let url = format!("{}/rc/noop", self.baseurl,);
7381        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
7382        header_map.append(
7383            ::reqwest::header::HeaderName::from_static("api-version"),
7384            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
7385        );
7386        #[allow(unused_mut)]
7387        let mut request = self
7388            .client
7389            .post(url)
7390            .header(
7391                ::reqwest::header::ACCEPT,
7392                ::reqwest::header::HeaderValue::from_static("application/json"),
7393            )
7394            .query(&progenitor_client::QueryParam::new("_async", &async_))
7395            .query(&progenitor_client::QueryParam::new("params", &params))
7396            .headers(header_map)
7397            .build()?;
7398        let info = OperationInfo {
7399            operation_id: "rc_noop",
7400        };
7401        self.pre(&mut request, &info).await?;
7402        let result = self.exec(request, &info).await;
7403        self.post(&result, &info).await?;
7404        let response = result?;
7405        match response.status().as_u16() {
7406            200u16 => ResponseValue::from_response(response).await,
7407            400u16..=499u16 => Err(Error::ErrorResponse(
7408                ResponseValue::from_response(response).await?,
7409            )),
7410            500u16..=599u16 => Err(Error::ErrorResponse(
7411                ResponseValue::from_response(response).await?,
7412            )),
7413            _ => Err(Error::UnexpectedResponse(response)),
7414        }
7415    }
7416
7417    ///Remove trashed files
7418    ///
7419    ///Permanently removes trashed objects from the specified remote path.
7420    ///
7421    ///Sends a `POST` request to `/operations/cleanup`
7422    ///
7423    ///Arguments:
7424    /// - `async_`: Run the command asynchronously. Returns a job id
7425    ///   immediately.
7426    /// - `group`: Assign the request to a custom stats group.
7427    /// - `fs`: Remote name or path to clean up, for example `drive:`.
7428    pub async fn operations_cleanup<'a>(
7429        &'a self,
7430        async_: Option<bool>,
7431        group: Option<&'a str>,
7432        fs: &'a str,
7433    ) -> Result<
7434        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
7435        Error<types::RcError>,
7436    > {
7437        let url = format!("{}/operations/cleanup", self.baseurl,);
7438        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
7439        header_map.append(
7440            ::reqwest::header::HeaderName::from_static("api-version"),
7441            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
7442        );
7443        #[allow(unused_mut)]
7444        let mut request = self
7445            .client
7446            .post(url)
7447            .header(
7448                ::reqwest::header::ACCEPT,
7449                ::reqwest::header::HeaderValue::from_static("application/json"),
7450            )
7451            .query(&progenitor_client::QueryParam::new("_async", &async_))
7452            .query(&progenitor_client::QueryParam::new("_group", &group))
7453            .query(&progenitor_client::QueryParam::new("fs", &fs))
7454            .headers(header_map)
7455            .build()?;
7456        let info = OperationInfo {
7457            operation_id: "operations_cleanup",
7458        };
7459        self.pre(&mut request, &info).await?;
7460        let result = self.exec(request, &info).await;
7461        self.post(&result, &info).await?;
7462        let response = result?;
7463        match response.status().as_u16() {
7464            200u16 => ResponseValue::from_response(response).await,
7465            400u16..=499u16 => Err(Error::ErrorResponse(
7466                ResponseValue::from_response(response).await?,
7467            )),
7468            500u16..=599u16 => Err(Error::ErrorResponse(
7469                ResponseValue::from_response(response).await?,
7470            )),
7471            _ => Err(Error::UnexpectedResponse(response)),
7472        }
7473    }
7474
7475    ///Copy a single file
7476    ///
7477    ///Copies one object from a source remote and path to a destination remote
7478    /// and path.
7479    ///
7480    ///Sends a `POST` request to `/operations/copyfile`
7481    ///
7482    ///Arguments:
7483    /// - `async_`: Run the command asynchronously. Returns a job id
7484    ///   immediately.
7485    /// - `group`: Assign the request to a custom stats group.
7486    /// - `dst_fs`: Destination remote name or path, such as `drive2:` or `/`
7487    ///   for local filesystem.
7488    /// - `dst_remote`: Target path within `dstFs` where the file should be
7489    ///   written.
7490    /// - `src_fs`: Source remote name or path, such as `drive:` or `/` for the
7491    ///   local filesystem.
7492    /// - `src_remote`: Path to the source object within `srcFs`, for example
7493    ///   `dir/file.txt`.
7494    pub async fn operations_copyfile<'a>(
7495        &'a self,
7496        async_: Option<bool>,
7497        group: Option<&'a str>,
7498        dst_fs: &'a str,
7499        dst_remote: &'a str,
7500        src_fs: &'a str,
7501        src_remote: &'a str,
7502    ) -> Result<
7503        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
7504        Error<types::RcError>,
7505    > {
7506        let url = format!("{}/operations/copyfile", self.baseurl,);
7507        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
7508        header_map.append(
7509            ::reqwest::header::HeaderName::from_static("api-version"),
7510            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
7511        );
7512        #[allow(unused_mut)]
7513        let mut request = self
7514            .client
7515            .post(url)
7516            .header(
7517                ::reqwest::header::ACCEPT,
7518                ::reqwest::header::HeaderValue::from_static("application/json"),
7519            )
7520            .query(&progenitor_client::QueryParam::new("_async", &async_))
7521            .query(&progenitor_client::QueryParam::new("_group", &group))
7522            .query(&progenitor_client::QueryParam::new("dstFs", &dst_fs))
7523            .query(&progenitor_client::QueryParam::new(
7524                "dstRemote",
7525                &dst_remote,
7526            ))
7527            .query(&progenitor_client::QueryParam::new("srcFs", &src_fs))
7528            .query(&progenitor_client::QueryParam::new(
7529                "srcRemote",
7530                &src_remote,
7531            ))
7532            .headers(header_map)
7533            .build()?;
7534        let info = OperationInfo {
7535            operation_id: "operations_copyfile",
7536        };
7537        self.pre(&mut request, &info).await?;
7538        let result = self.exec(request, &info).await;
7539        self.post(&result, &info).await?;
7540        let response = result?;
7541        match response.status().as_u16() {
7542            200u16 => ResponseValue::from_response(response).await,
7543            400u16..=499u16 => Err(Error::ErrorResponse(
7544                ResponseValue::from_response(response).await?,
7545            )),
7546            500u16..=599u16 => Err(Error::ErrorResponse(
7547                ResponseValue::from_response(response).await?,
7548            )),
7549            _ => Err(Error::UnexpectedResponse(response)),
7550        }
7551    }
7552
7553    ///Copy from URL
7554    ///
7555    ///Downloads a public URL and stores it at the requested remote path.
7556    ///
7557    ///Sends a `POST` request to `/operations/copyurl`
7558    ///
7559    ///Arguments:
7560    /// - `async_`: Run the command asynchronously. Returns a job id
7561    ///   immediately.
7562    /// - `group`: Assign the request to a custom stats group.
7563    /// - `auto_filename`: Set to true to derive the destination filename from
7564    ///   the URL.
7565    /// - `fs`: Remote name or path that will receive the downloaded file, e.g.
7566    ///   `drive:`.
7567    /// - `remote`: Destination path within `fs` where the fetched object will
7568    ///   be stored.
7569    /// - `url`: Source URL to fetch the object from.
7570    pub async fn operations_copyurl<'a>(
7571        &'a self,
7572        async_: Option<bool>,
7573        group: Option<&'a str>,
7574        auto_filename: Option<bool>,
7575        fs: &'a str,
7576        remote: &'a str,
7577        url: &'a str,
7578    ) -> Result<
7579        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
7580        Error<types::RcError>,
7581    > {
7582        let _url = format!("{}/operations/copyurl", self.baseurl,);
7583        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
7584        header_map.append(
7585            ::reqwest::header::HeaderName::from_static("api-version"),
7586            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
7587        );
7588        #[allow(unused_mut)]
7589        let mut request = self
7590            .client
7591            .post(_url)
7592            .header(
7593                ::reqwest::header::ACCEPT,
7594                ::reqwest::header::HeaderValue::from_static("application/json"),
7595            )
7596            .query(&progenitor_client::QueryParam::new("_async", &async_))
7597            .query(&progenitor_client::QueryParam::new("_group", &group))
7598            .query(&progenitor_client::QueryParam::new(
7599                "autoFilename",
7600                &auto_filename,
7601            ))
7602            .query(&progenitor_client::QueryParam::new("fs", &fs))
7603            .query(&progenitor_client::QueryParam::new("remote", &remote))
7604            .query(&progenitor_client::QueryParam::new("url", &url))
7605            .headers(header_map)
7606            .build()?;
7607        let info = OperationInfo {
7608            operation_id: "operations_copyurl",
7609        };
7610        self.pre(&mut request, &info).await?;
7611        let result = self.exec(request, &info).await;
7612        self.post(&result, &info).await?;
7613        let response = result?;
7614        match response.status().as_u16() {
7615            200u16 => ResponseValue::from_response(response).await,
7616            400u16..=499u16 => Err(Error::ErrorResponse(
7617                ResponseValue::from_response(response).await?,
7618            )),
7619            500u16..=599u16 => Err(Error::ErrorResponse(
7620                ResponseValue::from_response(response).await?,
7621            )),
7622            _ => Err(Error::UnexpectedResponse(response)),
7623        }
7624    }
7625
7626    ///Delete objects in path
7627    ///
7628    ///Deletes matching files and directories for the provided remote,
7629    /// honouring filters and config overrides.
7630    ///
7631    ///Sends a `POST` request to `/operations/delete`
7632    ///
7633    ///Arguments:
7634    /// - `async_`: Run the command asynchronously. Returns a job id
7635    ///   immediately.
7636    /// - `config`: JSON encoded config overrides applied for this call only.
7637    /// - `filter`: JSON encoded filter overrides applied for this call only.
7638    /// - `group`: Assign the request to a custom stats group.
7639    /// - `fs`: Remote name or path whose contents should be removed.
7640    pub async fn operations_delete<'a>(
7641        &'a self,
7642        async_: Option<bool>,
7643        config: Option<&'a str>,
7644        filter: Option<&'a str>,
7645        group: Option<&'a str>,
7646        fs: &'a str,
7647    ) -> Result<
7648        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
7649        Error<types::RcError>,
7650    > {
7651        let url = format!("{}/operations/delete", self.baseurl,);
7652        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
7653        header_map.append(
7654            ::reqwest::header::HeaderName::from_static("api-version"),
7655            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
7656        );
7657        #[allow(unused_mut)]
7658        let mut request = self
7659            .client
7660            .post(url)
7661            .header(
7662                ::reqwest::header::ACCEPT,
7663                ::reqwest::header::HeaderValue::from_static("application/json"),
7664            )
7665            .query(&progenitor_client::QueryParam::new("_async", &async_))
7666            .query(&progenitor_client::QueryParam::new("_config", &config))
7667            .query(&progenitor_client::QueryParam::new("_filter", &filter))
7668            .query(&progenitor_client::QueryParam::new("_group", &group))
7669            .query(&progenitor_client::QueryParam::new("fs", &fs))
7670            .headers(header_map)
7671            .build()?;
7672        let info = OperationInfo {
7673            operation_id: "operations_delete",
7674        };
7675        self.pre(&mut request, &info).await?;
7676        let result = self.exec(request, &info).await;
7677        self.post(&result, &info).await?;
7678        let response = result?;
7679        match response.status().as_u16() {
7680            200u16 => ResponseValue::from_response(response).await,
7681            400u16..=499u16 => Err(Error::ErrorResponse(
7682                ResponseValue::from_response(response).await?,
7683            )),
7684            500u16..=599u16 => Err(Error::ErrorResponse(
7685                ResponseValue::from_response(response).await?,
7686            )),
7687            _ => Err(Error::UnexpectedResponse(response)),
7688        }
7689    }
7690
7691    ///Delete single file
7692    ///
7693    ///Removes a specific object from the remote.
7694    ///
7695    ///Sends a `POST` request to `/operations/deletefile`
7696    ///
7697    ///Arguments:
7698    /// - `async_`: Run the command asynchronously. Returns a job id
7699    ///   immediately.
7700    /// - `group`: Assign the request to a custom stats group.
7701    /// - `fs`: Remote name or path that contains the file to delete.
7702    /// - `remote`: Exact path to the file within `fs` that should be deleted.
7703    pub async fn operations_deletefile<'a>(
7704        &'a self,
7705        async_: Option<bool>,
7706        group: Option<&'a str>,
7707        fs: &'a str,
7708        remote: &'a str,
7709    ) -> Result<
7710        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
7711        Error<types::RcError>,
7712    > {
7713        let url = format!("{}/operations/deletefile", self.baseurl,);
7714        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
7715        header_map.append(
7716            ::reqwest::header::HeaderName::from_static("api-version"),
7717            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
7718        );
7719        #[allow(unused_mut)]
7720        let mut request = self
7721            .client
7722            .post(url)
7723            .header(
7724                ::reqwest::header::ACCEPT,
7725                ::reqwest::header::HeaderValue::from_static("application/json"),
7726            )
7727            .query(&progenitor_client::QueryParam::new("_async", &async_))
7728            .query(&progenitor_client::QueryParam::new("_group", &group))
7729            .query(&progenitor_client::QueryParam::new("fs", &fs))
7730            .query(&progenitor_client::QueryParam::new("remote", &remote))
7731            .headers(header_map)
7732            .build()?;
7733        let info = OperationInfo {
7734            operation_id: "operations_deletefile",
7735        };
7736        self.pre(&mut request, &info).await?;
7737        let result = self.exec(request, &info).await;
7738        self.post(&result, &info).await?;
7739        let response = result?;
7740        match response.status().as_u16() {
7741            200u16 => ResponseValue::from_response(response).await,
7742            400u16..=499u16 => Err(Error::ErrorResponse(
7743                ResponseValue::from_response(response).await?,
7744            )),
7745            500u16..=599u16 => Err(Error::ErrorResponse(
7746                ResponseValue::from_response(response).await?,
7747            )),
7748            _ => Err(Error::UnexpectedResponse(response)),
7749        }
7750    }
7751
7752    ///Describe remote capabilities
7753    ///
7754    ///Returns backend features, hash support, metadata descriptions, and other
7755    /// info for the remote.
7756    ///
7757    ///Sends a `POST` request to `/operations/fsinfo`
7758    ///
7759    ///Arguments:
7760    /// - `async_`: Run the command asynchronously. Returns a job id
7761    ///   immediately.
7762    /// - `group`: Assign the request to a custom stats group.
7763    /// - `fs`: Remote name or path to inspect, e.g. `drive:`.
7764    pub async fn operations_fsinfo<'a>(
7765        &'a self,
7766        async_: Option<bool>,
7767        group: Option<&'a str>,
7768        fs: &'a str,
7769    ) -> Result<ResponseValue<types::OperationsFsinfoResponse>, Error<types::RcError>> {
7770        let url = format!("{}/operations/fsinfo", self.baseurl,);
7771        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
7772        header_map.append(
7773            ::reqwest::header::HeaderName::from_static("api-version"),
7774            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
7775        );
7776        #[allow(unused_mut)]
7777        let mut request = self
7778            .client
7779            .post(url)
7780            .header(
7781                ::reqwest::header::ACCEPT,
7782                ::reqwest::header::HeaderValue::from_static("application/json"),
7783            )
7784            .query(&progenitor_client::QueryParam::new("_async", &async_))
7785            .query(&progenitor_client::QueryParam::new("_group", &group))
7786            .query(&progenitor_client::QueryParam::new("fs", &fs))
7787            .headers(header_map)
7788            .build()?;
7789        let info = OperationInfo {
7790            operation_id: "operations_fsinfo",
7791        };
7792        self.pre(&mut request, &info).await?;
7793        let result = self.exec(request, &info).await;
7794        self.post(&result, &info).await?;
7795        let response = result?;
7796        match response.status().as_u16() {
7797            200u16 => ResponseValue::from_response(response).await,
7798            400u16..=499u16 => Err(Error::ErrorResponse(
7799                ResponseValue::from_response(response).await?,
7800            )),
7801            500u16..=599u16 => Err(Error::ErrorResponse(
7802                ResponseValue::from_response(response).await?,
7803            )),
7804            _ => Err(Error::UnexpectedResponse(response)),
7805        }
7806    }
7807
7808    ///Generate hash sums
7809    ///
7810    ///Produces a hash sum listing for files under the given path using the
7811    /// requested hash algorithm.
7812    ///
7813    ///Sends a `POST` request to `/operations/hashsum`
7814    ///
7815    ///Arguments:
7816    /// - `async_`: Run the command asynchronously. Returns a job id
7817    ///   immediately.
7818    /// - `group`: Assign the request to a custom stats group.
7819    /// - `base64`: Set to true to emit hash values in base64 rather than
7820    ///   hexadecimal.
7821    /// - `download`: Set to true to force reading the data instead of using
7822    ///   remote checksums.
7823    /// - `fs`: Remote name or path to hash, such as `drive:` or `/`.
7824    /// - `hash_type`: Hash algorithm to use, e.g. `md5`, `sha1`, or another
7825    ///   supported name.
7826    pub async fn operations_hashsum<'a>(
7827        &'a self,
7828        async_: Option<bool>,
7829        group: Option<&'a str>,
7830        base64: Option<bool>,
7831        download: Option<bool>,
7832        fs: &'a str,
7833        hash_type: &'a str,
7834    ) -> Result<ResponseValue<types::OperationsHashsumResponse>, Error<types::RcError>> {
7835        let url = format!("{}/operations/hashsum", self.baseurl,);
7836        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
7837        header_map.append(
7838            ::reqwest::header::HeaderName::from_static("api-version"),
7839            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
7840        );
7841        #[allow(unused_mut)]
7842        let mut request = self
7843            .client
7844            .post(url)
7845            .header(
7846                ::reqwest::header::ACCEPT,
7847                ::reqwest::header::HeaderValue::from_static("application/json"),
7848            )
7849            .query(&progenitor_client::QueryParam::new("_async", &async_))
7850            .query(&progenitor_client::QueryParam::new("_group", &group))
7851            .query(&progenitor_client::QueryParam::new("base64", &base64))
7852            .query(&progenitor_client::QueryParam::new("download", &download))
7853            .query(&progenitor_client::QueryParam::new("fs", &fs))
7854            .query(&progenitor_client::QueryParam::new("hashType", &hash_type))
7855            .headers(header_map)
7856            .build()?;
7857        let info = OperationInfo {
7858            operation_id: "operations_hashsum",
7859        };
7860        self.pre(&mut request, &info).await?;
7861        let result = self.exec(request, &info).await;
7862        self.post(&result, &info).await?;
7863        let response = result?;
7864        match response.status().as_u16() {
7865            200u16 => ResponseValue::from_response(response).await,
7866            400u16..=499u16 => Err(Error::ErrorResponse(
7867                ResponseValue::from_response(response).await?,
7868            )),
7869            500u16..=599u16 => Err(Error::ErrorResponse(
7870                ResponseValue::from_response(response).await?,
7871            )),
7872            _ => Err(Error::UnexpectedResponse(response)),
7873        }
7874    }
7875
7876    ///Move a single file
7877    ///
7878    ///Moves one object from a source remote and path to a destination remote
7879    /// and path.
7880    ///
7881    ///Sends a `POST` request to `/operations/movefile`
7882    ///
7883    ///Arguments:
7884    /// - `async_`: Run the command asynchronously. Returns a job id
7885    ///   immediately.
7886    /// - `group`: Assign the request to a custom stats group.
7887    /// - `dst_fs`: Destination remote name or path where the file will be
7888    ///   moved.
7889    /// - `dst_remote`: Destination path within `dstFs` for the moved object.
7890    /// - `src_fs`: Source remote name or path containing the file to move.
7891    /// - `src_remote`: Path to the source object within `srcFs`.
7892    pub async fn operations_movefile<'a>(
7893        &'a self,
7894        async_: Option<bool>,
7895        group: Option<&'a str>,
7896        dst_fs: &'a str,
7897        dst_remote: &'a str,
7898        src_fs: &'a str,
7899        src_remote: &'a str,
7900    ) -> Result<
7901        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
7902        Error<types::RcError>,
7903    > {
7904        let url = format!("{}/operations/movefile", self.baseurl,);
7905        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
7906        header_map.append(
7907            ::reqwest::header::HeaderName::from_static("api-version"),
7908            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
7909        );
7910        #[allow(unused_mut)]
7911        let mut request = self
7912            .client
7913            .post(url)
7914            .header(
7915                ::reqwest::header::ACCEPT,
7916                ::reqwest::header::HeaderValue::from_static("application/json"),
7917            )
7918            .query(&progenitor_client::QueryParam::new("_async", &async_))
7919            .query(&progenitor_client::QueryParam::new("_group", &group))
7920            .query(&progenitor_client::QueryParam::new("dstFs", &dst_fs))
7921            .query(&progenitor_client::QueryParam::new(
7922                "dstRemote",
7923                &dst_remote,
7924            ))
7925            .query(&progenitor_client::QueryParam::new("srcFs", &src_fs))
7926            .query(&progenitor_client::QueryParam::new(
7927                "srcRemote",
7928                &src_remote,
7929            ))
7930            .headers(header_map)
7931            .build()?;
7932        let info = OperationInfo {
7933            operation_id: "operations_movefile",
7934        };
7935        self.pre(&mut request, &info).await?;
7936        let result = self.exec(request, &info).await;
7937        self.post(&result, &info).await?;
7938        let response = result?;
7939        match response.status().as_u16() {
7940            200u16 => ResponseValue::from_response(response).await,
7941            400u16..=499u16 => Err(Error::ErrorResponse(
7942                ResponseValue::from_response(response).await?,
7943            )),
7944            500u16..=599u16 => Err(Error::ErrorResponse(
7945                ResponseValue::from_response(response).await?,
7946            )),
7947            _ => Err(Error::UnexpectedResponse(response)),
7948        }
7949    }
7950
7951    ///Create or remove public link
7952    ///
7953    ///Creates a share URL for an object or removes an existing link when
7954    /// `unlink=true`.
7955    ///
7956    ///Sends a `POST` request to `/operations/publiclink`
7957    ///
7958    ///Arguments:
7959    /// - `async_`: Run the command asynchronously. Returns a job id
7960    ///   immediately.
7961    /// - `group`: Assign the request to a custom stats group.
7962    /// - `expire`: Optional expiration time for the public link, formatted as
7963    ///   supported by the backend.
7964    /// - `fs`: Remote name or path hosting the object for which to manage a
7965    ///   public link.
7966    /// - `remote`: Path within `fs` to the object for which to create or remove
7967    ///   a public link.
7968    /// - `unlink`: Set to true to remove an existing public link instead of
7969    ///   creating one.
7970    pub async fn operations_publiclink<'a>(
7971        &'a self,
7972        async_: Option<bool>,
7973        group: Option<&'a str>,
7974        expire: Option<&'a str>,
7975        fs: &'a str,
7976        remote: &'a str,
7977        unlink: Option<bool>,
7978    ) -> Result<ResponseValue<types::OperationsPubliclinkResponse>, Error<types::RcError>> {
7979        let url = format!("{}/operations/publiclink", self.baseurl,);
7980        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
7981        header_map.append(
7982            ::reqwest::header::HeaderName::from_static("api-version"),
7983            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
7984        );
7985        #[allow(unused_mut)]
7986        let mut request = self
7987            .client
7988            .post(url)
7989            .header(
7990                ::reqwest::header::ACCEPT,
7991                ::reqwest::header::HeaderValue::from_static("application/json"),
7992            )
7993            .query(&progenitor_client::QueryParam::new("_async", &async_))
7994            .query(&progenitor_client::QueryParam::new("_group", &group))
7995            .query(&progenitor_client::QueryParam::new("expire", &expire))
7996            .query(&progenitor_client::QueryParam::new("fs", &fs))
7997            .query(&progenitor_client::QueryParam::new("remote", &remote))
7998            .query(&progenitor_client::QueryParam::new("unlink", &unlink))
7999            .headers(header_map)
8000            .build()?;
8001        let info = OperationInfo {
8002            operation_id: "operations_publiclink",
8003        };
8004        self.pre(&mut request, &info).await?;
8005        let result = self.exec(request, &info).await;
8006        self.post(&result, &info).await?;
8007        let response = result?;
8008        match response.status().as_u16() {
8009            200u16 => ResponseValue::from_response(response).await,
8010            400u16..=499u16 => Err(Error::ErrorResponse(
8011                ResponseValue::from_response(response).await?,
8012            )),
8013            500u16..=599u16 => Err(Error::ErrorResponse(
8014                ResponseValue::from_response(response).await?,
8015            )),
8016            _ => Err(Error::UnexpectedResponse(response)),
8017        }
8018    }
8019
8020    ///Remove empty directories
8021    ///
8022    ///Deletes empty subdirectories beneath the specified path, optionally
8023    /// leaving the root.
8024    ///
8025    ///Sends a `POST` request to `/operations/rmdirs`
8026    ///
8027    ///Arguments:
8028    /// - `async_`: Run the command asynchronously. Returns a job id
8029    ///   immediately.
8030    /// - `group`: Assign the request to a custom stats group.
8031    /// - `fs`: Remote name or path to scan for empty directories.
8032    /// - `leave_root`: Set to true to preserve the top-level directory even if
8033    ///   empty.
8034    /// - `remote`: Path within `fs` whose empty subdirectories should be
8035    ///   removed.
8036    pub async fn operations_rmdirs<'a>(
8037        &'a self,
8038        async_: Option<bool>,
8039        group: Option<&'a str>,
8040        fs: &'a str,
8041        leave_root: Option<bool>,
8042        remote: &'a str,
8043    ) -> Result<
8044        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
8045        Error<types::RcError>,
8046    > {
8047        let url = format!("{}/operations/rmdirs", self.baseurl,);
8048        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8049        header_map.append(
8050            ::reqwest::header::HeaderName::from_static("api-version"),
8051            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8052        );
8053        #[allow(unused_mut)]
8054        let mut request = self
8055            .client
8056            .post(url)
8057            .header(
8058                ::reqwest::header::ACCEPT,
8059                ::reqwest::header::HeaderValue::from_static("application/json"),
8060            )
8061            .query(&progenitor_client::QueryParam::new("_async", &async_))
8062            .query(&progenitor_client::QueryParam::new("_group", &group))
8063            .query(&progenitor_client::QueryParam::new("fs", &fs))
8064            .query(&progenitor_client::QueryParam::new(
8065                "leaveRoot",
8066                &leave_root,
8067            ))
8068            .query(&progenitor_client::QueryParam::new("remote", &remote))
8069            .headers(header_map)
8070            .build()?;
8071        let info = OperationInfo {
8072            operation_id: "operations_rmdirs",
8073        };
8074        self.pre(&mut request, &info).await?;
8075        let result = self.exec(request, &info).await;
8076        self.post(&result, &info).await?;
8077        let response = result?;
8078        match response.status().as_u16() {
8079            200u16 => ResponseValue::from_response(response).await,
8080            400u16..=499u16 => Err(Error::ErrorResponse(
8081                ResponseValue::from_response(response).await?,
8082            )),
8083            500u16..=599u16 => Err(Error::ErrorResponse(
8084                ResponseValue::from_response(response).await?,
8085            )),
8086            _ => Err(Error::UnexpectedResponse(response)),
8087        }
8088    }
8089
8090    ///Change storage tier
8091    ///
8092    ///Updates the storage class or tier for every object in the specified
8093    /// remote path.
8094    ///
8095    ///Sends a `POST` request to `/operations/settier`
8096    ///
8097    ///Arguments:
8098    /// - `async_`: Run the command asynchronously. Returns a job id
8099    ///   immediately.
8100    /// - `group`: Assign the request to a custom stats group.
8101    /// - `fs`: Remote name or path whose storage class tier should be changed.
8102    pub async fn operations_settier<'a>(
8103        &'a self,
8104        async_: Option<bool>,
8105        group: Option<&'a str>,
8106        fs: &'a str,
8107    ) -> Result<
8108        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
8109        Error<types::RcError>,
8110    > {
8111        let url = format!("{}/operations/settier", self.baseurl,);
8112        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8113        header_map.append(
8114            ::reqwest::header::HeaderName::from_static("api-version"),
8115            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8116        );
8117        #[allow(unused_mut)]
8118        let mut request = self
8119            .client
8120            .post(url)
8121            .header(
8122                ::reqwest::header::ACCEPT,
8123                ::reqwest::header::HeaderValue::from_static("application/json"),
8124            )
8125            .query(&progenitor_client::QueryParam::new("_async", &async_))
8126            .query(&progenitor_client::QueryParam::new("_group", &group))
8127            .query(&progenitor_client::QueryParam::new("fs", &fs))
8128            .headers(header_map)
8129            .build()?;
8130        let info = OperationInfo {
8131            operation_id: "operations_settier",
8132        };
8133        self.pre(&mut request, &info).await?;
8134        let result = self.exec(request, &info).await;
8135        self.post(&result, &info).await?;
8136        let response = result?;
8137        match response.status().as_u16() {
8138            200u16 => ResponseValue::from_response(response).await,
8139            400u16..=499u16 => Err(Error::ErrorResponse(
8140                ResponseValue::from_response(response).await?,
8141            )),
8142            500u16..=599u16 => Err(Error::ErrorResponse(
8143                ResponseValue::from_response(response).await?,
8144            )),
8145            _ => Err(Error::UnexpectedResponse(response)),
8146        }
8147    }
8148
8149    ///Change file storage tier
8150    ///
8151    ///Updates the storage class or tier for a single object.
8152    ///
8153    ///Sends a `POST` request to `/operations/settierfile`
8154    ///
8155    ///Arguments:
8156    /// - `async_`: Run the command asynchronously. Returns a job id
8157    ///   immediately.
8158    /// - `group`: Assign the request to a custom stats group.
8159    /// - `fs`: Remote name or path that contains the object whose tier should
8160    ///   change.
8161    /// - `remote`: Path within `fs` to the object whose storage class tier
8162    ///   should be updated.
8163    pub async fn operations_settierfile<'a>(
8164        &'a self,
8165        async_: Option<bool>,
8166        group: Option<&'a str>,
8167        fs: &'a str,
8168        remote: &'a str,
8169    ) -> Result<
8170        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
8171        Error<types::RcError>,
8172    > {
8173        let url = format!("{}/operations/settierfile", self.baseurl,);
8174        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8175        header_map.append(
8176            ::reqwest::header::HeaderName::from_static("api-version"),
8177            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8178        );
8179        #[allow(unused_mut)]
8180        let mut request = self
8181            .client
8182            .post(url)
8183            .header(
8184                ::reqwest::header::ACCEPT,
8185                ::reqwest::header::HeaderValue::from_static("application/json"),
8186            )
8187            .query(&progenitor_client::QueryParam::new("_async", &async_))
8188            .query(&progenitor_client::QueryParam::new("_group", &group))
8189            .query(&progenitor_client::QueryParam::new("fs", &fs))
8190            .query(&progenitor_client::QueryParam::new("remote", &remote))
8191            .headers(header_map)
8192            .build()?;
8193        let info = OperationInfo {
8194            operation_id: "operations_settierfile",
8195        };
8196        self.pre(&mut request, &info).await?;
8197        let result = self.exec(request, &info).await;
8198        self.post(&result, &info).await?;
8199        let response = result?;
8200        match response.status().as_u16() {
8201            200u16 => ResponseValue::from_response(response).await,
8202            400u16..=499u16 => Err(Error::ErrorResponse(
8203                ResponseValue::from_response(response).await?,
8204            )),
8205            500u16..=599u16 => Err(Error::ErrorResponse(
8206                ResponseValue::from_response(response).await?,
8207            )),
8208            _ => Err(Error::UnexpectedResponse(response)),
8209        }
8210    }
8211
8212    ///Count remote size
8213    ///
8214    ///Reports total size, file count, and number of objects without size
8215    /// metadata.
8216    ///
8217    ///Sends a `POST` request to `/operations/size`
8218    ///
8219    ///Arguments:
8220    /// - `async_`: Run the command asynchronously. Returns a job id
8221    ///   immediately.
8222    /// - `group`: Assign the request to a custom stats group.
8223    /// - `fs`: Remote name or path to measure aggregate size information for.
8224    pub async fn operations_size<'a>(
8225        &'a self,
8226        async_: Option<bool>,
8227        group: Option<&'a str>,
8228        fs: &'a str,
8229    ) -> Result<ResponseValue<types::OperationsSizeResponse>, Error<types::RcError>> {
8230        let url = format!("{}/operations/size", self.baseurl,);
8231        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8232        header_map.append(
8233            ::reqwest::header::HeaderName::from_static("api-version"),
8234            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8235        );
8236        #[allow(unused_mut)]
8237        let mut request = self
8238            .client
8239            .post(url)
8240            .header(
8241                ::reqwest::header::ACCEPT,
8242                ::reqwest::header::HeaderValue::from_static("application/json"),
8243            )
8244            .query(&progenitor_client::QueryParam::new("_async", &async_))
8245            .query(&progenitor_client::QueryParam::new("_group", &group))
8246            .query(&progenitor_client::QueryParam::new("fs", &fs))
8247            .headers(header_map)
8248            .build()?;
8249        let info = OperationInfo {
8250            operation_id: "operations_size",
8251        };
8252        self.pre(&mut request, &info).await?;
8253        let result = self.exec(request, &info).await;
8254        self.post(&result, &info).await?;
8255        let response = result?;
8256        match response.status().as_u16() {
8257            200u16 => ResponseValue::from_response(response).await,
8258            400u16..=499u16 => Err(Error::ErrorResponse(
8259                ResponseValue::from_response(response).await?,
8260            )),
8261            500u16..=599u16 => Err(Error::ErrorResponse(
8262                ResponseValue::from_response(response).await?,
8263            )),
8264            _ => Err(Error::UnexpectedResponse(response)),
8265        }
8266    }
8267
8268    ///Get or update bandwidth limits
8269    ///
8270    ///Reads the current bandwidth limit or applies a new schedule string, just
8271    /// like `rclone rc core/bwlimit`.
8272    ///
8273    ///Sends a `POST` request to `/core/bwlimit`
8274    ///
8275    ///Arguments:
8276    /// - `async_`: Run the command asynchronously. Returns a job id
8277    ///   immediately.
8278    /// - `group`: Assign the request to a custom stats group.
8279    /// - `rate`: Bandwidth limit to apply, for example `off`, `5M`, or a
8280    ///   schedule string.
8281    pub async fn core_bwlimit<'a>(
8282        &'a self,
8283        async_: Option<bool>,
8284        group: Option<&'a str>,
8285        rate: Option<&'a str>,
8286    ) -> Result<ResponseValue<types::CoreBwlimitResponse>, Error<types::RcError>> {
8287        let url = format!("{}/core/bwlimit", self.baseurl,);
8288        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8289        header_map.append(
8290            ::reqwest::header::HeaderName::from_static("api-version"),
8291            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8292        );
8293        #[allow(unused_mut)]
8294        let mut request = self
8295            .client
8296            .post(url)
8297            .header(
8298                ::reqwest::header::ACCEPT,
8299                ::reqwest::header::HeaderValue::from_static("application/json"),
8300            )
8301            .query(&progenitor_client::QueryParam::new("_async", &async_))
8302            .query(&progenitor_client::QueryParam::new("_group", &group))
8303            .query(&progenitor_client::QueryParam::new("rate", &rate))
8304            .headers(header_map)
8305            .build()?;
8306        let info = OperationInfo {
8307            operation_id: "core_bwlimit",
8308        };
8309        self.pre(&mut request, &info).await?;
8310        let result = self.exec(request, &info).await;
8311        self.post(&result, &info).await?;
8312        let response = result?;
8313        match response.status().as_u16() {
8314            200u16 => ResponseValue::from_response(response).await,
8315            400u16..=499u16 => Err(Error::ErrorResponse(
8316                ResponseValue::from_response(response).await?,
8317            )),
8318            500u16..=599u16 => Err(Error::ErrorResponse(
8319                ResponseValue::from_response(response).await?,
8320            )),
8321            _ => Err(Error::UnexpectedResponse(response)),
8322        }
8323    }
8324
8325    ///Run an rclone command
8326    ///
8327    ///Executes a standard rclone CLI command remotely and streams or returns
8328    /// its output.
8329    ///
8330    ///Sends a `POST` request to `/core/command`
8331    ///
8332    ///Arguments:
8333    /// - `async_`: Run the command asynchronously. Returns a job id
8334    ///   immediately.
8335    /// - `group`: Assign the request to a custom stats group.
8336    /// - `arg`: Optional positional arguments for the command. Repeat to supply
8337    ///   multiple values.
8338    /// - `command`: Name of the rclone command to execute, for example `ls` or
8339    ///   `lsf`.
8340    /// - `opt`: Optional command options encoded as a JSON string.
8341    /// - `return_type`: Controls how output is returned; accepts
8342    ///   `COMBINED_OUTPUT`, `STREAM`, `STREAM_ONLY_STDOUT`, or
8343    ///   `STREAM_ONLY_STDERR`.
8344    pub async fn core_command<'a>(
8345        &'a self,
8346        async_: Option<bool>,
8347        group: Option<&'a str>,
8348        arg: Option<&'a ::std::vec::Vec<::std::string::String>>,
8349        command: &'a str,
8350        opt: Option<&'a str>,
8351        return_type: Option<&'a str>,
8352    ) -> Result<ResponseValue<types::CoreCommandResponse>, Error<types::RcError>> {
8353        let url = format!("{}/core/command", self.baseurl,);
8354        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8355        header_map.append(
8356            ::reqwest::header::HeaderName::from_static("api-version"),
8357            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8358        );
8359        #[allow(unused_mut)]
8360        let mut request = self
8361            .client
8362            .post(url)
8363            .header(
8364                ::reqwest::header::ACCEPT,
8365                ::reqwest::header::HeaderValue::from_static("application/json"),
8366            )
8367            .query(&progenitor_client::QueryParam::new("_async", &async_))
8368            .query(&progenitor_client::QueryParam::new("_group", &group))
8369            .query(&progenitor_client::QueryParam::new("arg", &arg))
8370            .query(&progenitor_client::QueryParam::new("command", &command))
8371            .query(&progenitor_client::QueryParam::new("opt", &opt))
8372            .query(&progenitor_client::QueryParam::new(
8373                "returnType",
8374                &return_type,
8375            ))
8376            .headers(header_map)
8377            .build()?;
8378        let info = OperationInfo {
8379            operation_id: "core_command",
8380        };
8381        self.pre(&mut request, &info).await?;
8382        let result = self.exec(request, &info).await;
8383        self.post(&result, &info).await?;
8384        let response = result?;
8385        match response.status().as_u16() {
8386            200u16 => ResponseValue::from_response(response).await,
8387            400u16..=499u16 => Err(Error::ErrorResponse(
8388                ResponseValue::from_response(response).await?,
8389            )),
8390            500u16..=599u16 => Err(Error::ErrorResponse(
8391                ResponseValue::from_response(response).await?,
8392            )),
8393            _ => Err(Error::UnexpectedResponse(response)),
8394        }
8395    }
8396
8397    ///Report disk usage
8398    ///
8399    ///Returns disk usage statistics for the supplied local directory (defaults
8400    /// to the cache dir).
8401    ///
8402    ///Sends a `POST` request to `/core/du`
8403    ///
8404    ///Arguments:
8405    /// - `async_`: Run the command asynchronously. Returns a job id
8406    ///   immediately.
8407    /// - `group`: Assign the request to a custom stats group.
8408    /// - `dir`: Local directory path to report disk usage for. Defaults to the
8409    ///   rclone cache directory when omitted.
8410    pub async fn core_du<'a>(
8411        &'a self,
8412        async_: Option<bool>,
8413        group: Option<&'a str>,
8414        dir: Option<&'a str>,
8415    ) -> Result<ResponseValue<types::CoreDuResponse>, Error<types::RcError>> {
8416        let url = format!("{}/core/du", self.baseurl,);
8417        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8418        header_map.append(
8419            ::reqwest::header::HeaderName::from_static("api-version"),
8420            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8421        );
8422        #[allow(unused_mut)]
8423        let mut request = self
8424            .client
8425            .post(url)
8426            .header(
8427                ::reqwest::header::ACCEPT,
8428                ::reqwest::header::HeaderValue::from_static("application/json"),
8429            )
8430            .query(&progenitor_client::QueryParam::new("_async", &async_))
8431            .query(&progenitor_client::QueryParam::new("_group", &group))
8432            .query(&progenitor_client::QueryParam::new("dir", &dir))
8433            .headers(header_map)
8434            .build()?;
8435        let info = OperationInfo {
8436            operation_id: "core_du",
8437        };
8438        self.pre(&mut request, &info).await?;
8439        let result = self.exec(request, &info).await;
8440        self.post(&result, &info).await?;
8441        let response = result?;
8442        match response.status().as_u16() {
8443            200u16 => ResponseValue::from_response(response).await,
8444            400u16..=499u16 => Err(Error::ErrorResponse(
8445                ResponseValue::from_response(response).await?,
8446            )),
8447            500u16..=599u16 => Err(Error::ErrorResponse(
8448                ResponseValue::from_response(response).await?,
8449            )),
8450            _ => Err(Error::UnexpectedResponse(response)),
8451        }
8452    }
8453
8454    ///Force garbage collection
8455    ///
8456    ///Triggers Go's garbage collector to release unused memory.
8457    ///
8458    ///Sends a `POST` request to `/core/gc`
8459    ///
8460    ///Arguments:
8461    /// - `async_`: Run the command asynchronously. Returns a job id
8462    ///   immediately.
8463    /// - `group`: Assign the request to a custom stats group.
8464    pub async fn core_gc<'a>(
8465        &'a self,
8466        async_: Option<bool>,
8467        group: Option<&'a str>,
8468    ) -> Result<
8469        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
8470        Error<types::RcError>,
8471    > {
8472        let url = format!("{}/core/gc", self.baseurl,);
8473        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8474        header_map.append(
8475            ::reqwest::header::HeaderName::from_static("api-version"),
8476            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8477        );
8478        #[allow(unused_mut)]
8479        let mut request = self
8480            .client
8481            .post(url)
8482            .header(
8483                ::reqwest::header::ACCEPT,
8484                ::reqwest::header::HeaderValue::from_static("application/json"),
8485            )
8486            .query(&progenitor_client::QueryParam::new("_async", &async_))
8487            .query(&progenitor_client::QueryParam::new("_group", &group))
8488            .headers(header_map)
8489            .build()?;
8490        let info = OperationInfo {
8491            operation_id: "core_gc",
8492        };
8493        self.pre(&mut request, &info).await?;
8494        let result = self.exec(request, &info).await;
8495        self.post(&result, &info).await?;
8496        let response = result?;
8497        match response.status().as_u16() {
8498            200u16 => ResponseValue::from_response(response).await,
8499            400u16..=499u16 => Err(Error::ErrorResponse(
8500                ResponseValue::from_response(response).await?,
8501            )),
8502            500u16..=599u16 => Err(Error::ErrorResponse(
8503                ResponseValue::from_response(response).await?,
8504            )),
8505            _ => Err(Error::UnexpectedResponse(response)),
8506        }
8507    }
8508
8509    ///List stats groups
8510    ///
8511    ///Lists stats groups currently tracked by rclone.
8512    ///
8513    ///Sends a `POST` request to `/core/group-list`
8514    ///
8515    ///Arguments:
8516    /// - `async_`: Run the command asynchronously. Returns a job id
8517    ///   immediately.
8518    /// - `group`: Assign the request to a custom stats group.
8519    pub async fn core_group_list<'a>(
8520        &'a self,
8521        async_: Option<bool>,
8522        group: Option<&'a str>,
8523    ) -> Result<ResponseValue<types::CoreGroupListResponse>, Error<types::RcError>> {
8524        let url = format!("{}/core/group-list", self.baseurl,);
8525        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8526        header_map.append(
8527            ::reqwest::header::HeaderName::from_static("api-version"),
8528            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8529        );
8530        #[allow(unused_mut)]
8531        let mut request = self
8532            .client
8533            .post(url)
8534            .header(
8535                ::reqwest::header::ACCEPT,
8536                ::reqwest::header::HeaderValue::from_static("application/json"),
8537            )
8538            .query(&progenitor_client::QueryParam::new("_async", &async_))
8539            .query(&progenitor_client::QueryParam::new("_group", &group))
8540            .headers(header_map)
8541            .build()?;
8542        let info = OperationInfo {
8543            operation_id: "core_group_list",
8544        };
8545        self.pre(&mut request, &info).await?;
8546        let result = self.exec(request, &info).await;
8547        self.post(&result, &info).await?;
8548        let response = result?;
8549        match response.status().as_u16() {
8550            200u16 => ResponseValue::from_response(response).await,
8551            400u16..=499u16 => Err(Error::ErrorResponse(
8552                ResponseValue::from_response(response).await?,
8553            )),
8554            500u16..=599u16 => Err(Error::ErrorResponse(
8555                ResponseValue::from_response(response).await?,
8556            )),
8557            _ => Err(Error::UnexpectedResponse(response)),
8558        }
8559    }
8560
8561    ///Fetch runtime memory stats
8562    ///
8563    ///Returns Go runtime memory statistics similar to `runtime.ReadMemStats`.
8564    ///
8565    ///Sends a `POST` request to `/core/memstats`
8566    ///
8567    ///Arguments:
8568    /// - `async_`: Run the command asynchronously. Returns a job id
8569    ///   immediately.
8570    /// - `group`: Assign the request to a custom stats group.
8571    pub async fn core_memstats<'a>(
8572        &'a self,
8573        async_: Option<bool>,
8574        group: Option<&'a str>,
8575    ) -> Result<
8576        ResponseValue<::std::collections::HashMap<::std::string::String, f64>>,
8577        Error<types::RcError>,
8578    > {
8579        let url = format!("{}/core/memstats", self.baseurl,);
8580        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8581        header_map.append(
8582            ::reqwest::header::HeaderName::from_static("api-version"),
8583            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8584        );
8585        #[allow(unused_mut)]
8586        let mut request = self
8587            .client
8588            .post(url)
8589            .header(
8590                ::reqwest::header::ACCEPT,
8591                ::reqwest::header::HeaderValue::from_static("application/json"),
8592            )
8593            .query(&progenitor_client::QueryParam::new("_async", &async_))
8594            .query(&progenitor_client::QueryParam::new("_group", &group))
8595            .headers(header_map)
8596            .build()?;
8597        let info = OperationInfo {
8598            operation_id: "core_memstats",
8599        };
8600        self.pre(&mut request, &info).await?;
8601        let result = self.exec(request, &info).await;
8602        self.post(&result, &info).await?;
8603        let response = result?;
8604        match response.status().as_u16() {
8605            200u16 => ResponseValue::from_response(response).await,
8606            400u16..=499u16 => Err(Error::ErrorResponse(
8607                ResponseValue::from_response(response).await?,
8608            )),
8609            500u16..=599u16 => Err(Error::ErrorResponse(
8610                ResponseValue::from_response(response).await?,
8611            )),
8612            _ => Err(Error::UnexpectedResponse(response)),
8613        }
8614    }
8615
8616    ///Obscure a clear string
8617    ///
8618    ///Obscures a plain-text secret for inclusion in `rclone.conf`.
8619    ///
8620    ///Sends a `POST` request to `/core/obscure`
8621    ///
8622    ///Arguments:
8623    /// - `async_`: Run the command asynchronously. Returns a job id
8624    ///   immediately.
8625    /// - `group`: Assign the request to a custom stats group.
8626    /// - `clear`: Plain-text string to obscure for storage in the config file.
8627    pub async fn core_obscure<'a>(
8628        &'a self,
8629        async_: Option<bool>,
8630        group: Option<&'a str>,
8631        clear: &'a str,
8632    ) -> Result<ResponseValue<types::CoreObscureResponse>, Error<types::RcError>> {
8633        let url = format!("{}/core/obscure", self.baseurl,);
8634        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8635        header_map.append(
8636            ::reqwest::header::HeaderName::from_static("api-version"),
8637            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8638        );
8639        #[allow(unused_mut)]
8640        let mut request = self
8641            .client
8642            .post(url)
8643            .header(
8644                ::reqwest::header::ACCEPT,
8645                ::reqwest::header::HeaderValue::from_static("application/json"),
8646            )
8647            .query(&progenitor_client::QueryParam::new("_async", &async_))
8648            .query(&progenitor_client::QueryParam::new("_group", &group))
8649            .query(&progenitor_client::QueryParam::new("clear", &clear))
8650            .headers(header_map)
8651            .build()?;
8652        let info = OperationInfo {
8653            operation_id: "core_obscure",
8654        };
8655        self.pre(&mut request, &info).await?;
8656        let result = self.exec(request, &info).await;
8657        self.post(&result, &info).await?;
8658        let response = result?;
8659        match response.status().as_u16() {
8660            200u16 => ResponseValue::from_response(response).await,
8661            400u16..=499u16 => Err(Error::ErrorResponse(
8662                ResponseValue::from_response(response).await?,
8663            )),
8664            500u16..=599u16 => Err(Error::ErrorResponse(
8665                ResponseValue::from_response(response).await?,
8666            )),
8667            _ => Err(Error::UnexpectedResponse(response)),
8668        }
8669    }
8670
8671    ///Return rclone PID
8672    ///
8673    ///Returns the process ID of the running rclone instance.
8674    ///
8675    ///Sends a `POST` request to `/core/pid`
8676    ///
8677    ///Arguments:
8678    /// - `async_`: Run the command asynchronously. Returns a job id
8679    ///   immediately.
8680    /// - `group`: Assign the request to a custom stats group.
8681    pub async fn core_pid<'a>(
8682        &'a self,
8683        async_: Option<bool>,
8684        group: Option<&'a str>,
8685    ) -> Result<ResponseValue<types::CorePidResponse>, Error<types::RcError>> {
8686        let url = format!("{}/core/pid", self.baseurl,);
8687        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8688        header_map.append(
8689            ::reqwest::header::HeaderName::from_static("api-version"),
8690            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8691        );
8692        #[allow(unused_mut)]
8693        let mut request = self
8694            .client
8695            .post(url)
8696            .header(
8697                ::reqwest::header::ACCEPT,
8698                ::reqwest::header::HeaderValue::from_static("application/json"),
8699            )
8700            .query(&progenitor_client::QueryParam::new("_async", &async_))
8701            .query(&progenitor_client::QueryParam::new("_group", &group))
8702            .headers(header_map)
8703            .build()?;
8704        let info = OperationInfo {
8705            operation_id: "core_pid",
8706        };
8707        self.pre(&mut request, &info).await?;
8708        let result = self.exec(request, &info).await;
8709        self.post(&result, &info).await?;
8710        let response = result?;
8711        match response.status().as_u16() {
8712            200u16 => ResponseValue::from_response(response).await,
8713            400u16..=499u16 => Err(Error::ErrorResponse(
8714                ResponseValue::from_response(response).await?,
8715            )),
8716            500u16..=599u16 => Err(Error::ErrorResponse(
8717                ResponseValue::from_response(response).await?,
8718            )),
8719            _ => Err(Error::UnexpectedResponse(response)),
8720        }
8721    }
8722
8723    ///Terminate rclone
8724    ///
8725    ///Stops the rclone process, optionally supplying an exit code.
8726    ///
8727    ///Sends a `POST` request to `/core/quit`
8728    ///
8729    ///Arguments:
8730    /// - `async_`: Run the command asynchronously. Returns a job id
8731    ///   immediately.
8732    /// - `group`: Assign the request to a custom stats group.
8733    /// - `exit_code`: Optional exit code to use when terminating the rclone
8734    ///   process.
8735    pub async fn core_quit<'a>(
8736        &'a self,
8737        async_: Option<bool>,
8738        group: Option<&'a str>,
8739        exit_code: Option<i64>,
8740    ) -> Result<
8741        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
8742        Error<types::RcError>,
8743    > {
8744        let url = format!("{}/core/quit", self.baseurl,);
8745        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8746        header_map.append(
8747            ::reqwest::header::HeaderName::from_static("api-version"),
8748            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8749        );
8750        #[allow(unused_mut)]
8751        let mut request = self
8752            .client
8753            .post(url)
8754            .header(
8755                ::reqwest::header::ACCEPT,
8756                ::reqwest::header::HeaderValue::from_static("application/json"),
8757            )
8758            .query(&progenitor_client::QueryParam::new("_async", &async_))
8759            .query(&progenitor_client::QueryParam::new("_group", &group))
8760            .query(&progenitor_client::QueryParam::new("exitCode", &exit_code))
8761            .headers(header_map)
8762            .build()?;
8763        let info = OperationInfo {
8764            operation_id: "core_quit",
8765        };
8766        self.pre(&mut request, &info).await?;
8767        let result = self.exec(request, &info).await;
8768        self.post(&result, &info).await?;
8769        let response = result?;
8770        match response.status().as_u16() {
8771            200u16 => ResponseValue::from_response(response).await,
8772            400u16..=499u16 => Err(Error::ErrorResponse(
8773                ResponseValue::from_response(response).await?,
8774            )),
8775            500u16..=599u16 => Err(Error::ErrorResponse(
8776                ResponseValue::from_response(response).await?,
8777            )),
8778            _ => Err(Error::UnexpectedResponse(response)),
8779        }
8780    }
8781
8782    ///Delete stats group
8783    ///
8784    ///Deletes the counters associated with a specific stats group.
8785    ///
8786    ///Sends a `POST` request to `/core/stats-delete`
8787    ///
8788    ///Arguments:
8789    /// - `async_`: Run the command asynchronously. Returns a job id
8790    ///   immediately.
8791    /// - `group`: Assign the request to a custom stats group.
8792    /// - `group`: Stats group identifier to remove.
8793    pub async fn core_stats_delete<'a>(
8794        &'a self,
8795        async_: Option<bool>,
8796        _group: Option<&'a str>,
8797        group: &'a str
8798    ) -> Result<
8799        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
8800        Error<types::RcError>,
8801    > {
8802        let url = format!("{}/core/stats-delete", self.baseurl,);
8803        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8804        header_map.append(
8805            ::reqwest::header::HeaderName::from_static("api-version"),
8806            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8807        );
8808        #[allow(unused_mut)]
8809        let mut request = self
8810            .client
8811            .post(url)
8812            .header(
8813                ::reqwest::header::ACCEPT,
8814                ::reqwest::header::HeaderValue::from_static("application/json"),
8815            )
8816            .query(&progenitor_client::QueryParam::new("_async", &async_))
8817            .query(&progenitor_client::QueryParam::new("_group", &group))
8818            .query(&progenitor_client::QueryParam::new("group", &group))
8819            .headers(header_map)
8820            .build()?;
8821        let info = OperationInfo {
8822            operation_id: "core_stats_delete",
8823        };
8824        self.pre(&mut request, &info).await?;
8825        let result = self.exec(request, &info).await;
8826        self.post(&result, &info).await?;
8827        let response = result?;
8828        match response.status().as_u16() {
8829            200u16 => ResponseValue::from_response(response).await,
8830            400u16..=499u16 => Err(Error::ErrorResponse(
8831                ResponseValue::from_response(response).await?,
8832            )),
8833            500u16..=599u16 => Err(Error::ErrorResponse(
8834                ResponseValue::from_response(response).await?,
8835            )),
8836            _ => Err(Error::UnexpectedResponse(response)),
8837        }
8838    }
8839
8840    ///Reset stats counters
8841    ///
8842    ///Clears counters, errors, and finished transfers for the provided stats
8843    /// group or all groups.
8844    ///
8845    ///Sends a `POST` request to `/core/stats-reset`
8846    ///
8847    ///Arguments:
8848    /// - `async_`: Run the command asynchronously. Returns a job id
8849    ///   immediately.
8850    /// - `group`: Assign the request to a custom stats group.
8851    /// - `group`: Stats group identifier whose counters should be reset. Leave
8852    ///   unset to reset all groups.
8853    pub async fn core_stats_reset<'a>(
8854        &'a self,
8855        async_: Option<bool>,
8856        _group: Option<&'a str>,
8857        group: Option<&'a str>
8858    ) -> Result<
8859        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
8860        Error<types::RcError>,
8861    > {
8862        let url = format!("{}/core/stats-reset", self.baseurl,);
8863        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8864        header_map.append(
8865            ::reqwest::header::HeaderName::from_static("api-version"),
8866            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8867        );
8868        #[allow(unused_mut)]
8869        let mut request = self
8870            .client
8871            .post(url)
8872            .header(
8873                ::reqwest::header::ACCEPT,
8874                ::reqwest::header::HeaderValue::from_static("application/json"),
8875            )
8876            .query(&progenitor_client::QueryParam::new("_async", &async_))
8877            .query(&progenitor_client::QueryParam::new("_group", &group))
8878            .query(&progenitor_client::QueryParam::new("group", &group))
8879            .headers(header_map)
8880            .build()?;
8881        let info = OperationInfo {
8882            operation_id: "core_stats_reset",
8883        };
8884        self.pre(&mut request, &info).await?;
8885        let result = self.exec(request, &info).await;
8886        self.post(&result, &info).await?;
8887        let response = result?;
8888        match response.status().as_u16() {
8889            200u16 => ResponseValue::from_response(response).await,
8890            400u16..=499u16 => Err(Error::ErrorResponse(
8891                ResponseValue::from_response(response).await?,
8892            )),
8893            500u16..=599u16 => Err(Error::ErrorResponse(
8894                ResponseValue::from_response(response).await?,
8895            )),
8896            _ => Err(Error::UnexpectedResponse(response)),
8897        }
8898    }
8899
8900    ///List completed transfers
8901    ///
8902    ///Returns up to 100 recently completed transfers for the requested stats
8903    /// group.
8904    ///
8905    ///Sends a `POST` request to `/core/transferred`
8906    ///
8907    ///Arguments:
8908    /// - `async_`: Run the command asynchronously. Returns a job id
8909    ///   immediately.
8910    /// - `group`: Assign the request to a custom stats group.
8911    /// - `group`: Stats group identifier to filter the completed transfer list.
8912    ///   Leave unset for all groups.
8913    pub async fn core_transferred<'a>(
8914        &'a self,
8915        async_: Option<bool>,
8916        _group: Option<&'a str>,
8917        group: Option<&'a str>
8918    ) -> Result<ResponseValue<types::CoreTransferredResponse>, Error<types::RcError>> {
8919        let url = format!("{}/core/transferred", self.baseurl,);
8920        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8921        header_map.append(
8922            ::reqwest::header::HeaderName::from_static("api-version"),
8923            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8924        );
8925        #[allow(unused_mut)]
8926        let mut request = self
8927            .client
8928            .post(url)
8929            .header(
8930                ::reqwest::header::ACCEPT,
8931                ::reqwest::header::HeaderValue::from_static("application/json"),
8932            )
8933            .query(&progenitor_client::QueryParam::new("_async", &async_))
8934            .query(&progenitor_client::QueryParam::new("_group", &group))
8935            .query(&progenitor_client::QueryParam::new("group", &group))
8936            .headers(header_map)
8937            .build()?;
8938        let info = OperationInfo {
8939            operation_id: "core_transferred",
8940        };
8941        self.pre(&mut request, &info).await?;
8942        let result = self.exec(request, &info).await;
8943        self.post(&result, &info).await?;
8944        let response = result?;
8945        match response.status().as_u16() {
8946            200u16 => ResponseValue::from_response(response).await,
8947            400u16..=499u16 => Err(Error::ErrorResponse(
8948                ResponseValue::from_response(response).await?,
8949            )),
8950            500u16..=599u16 => Err(Error::ErrorResponse(
8951                ResponseValue::from_response(response).await?,
8952            )),
8953            _ => Err(Error::UnexpectedResponse(response)),
8954        }
8955    }
8956
8957    ///Sends a `POST` request to `/debug/set-block-profile-rate`
8958    ///
8959    ///Arguments:
8960    /// - `async_`: Run the command asynchronously. Returns a job id
8961    ///   immediately.
8962    /// - `group`: Assign the request to a custom stats group.
8963    /// - `rate`: Sampling interval in nanoseconds for blocking profile
8964    ///   collection; use 1 to capture all events.
8965    pub async fn debug_set_block_profile_rate<'a>(
8966        &'a self,
8967        async_: Option<bool>,
8968        group: Option<&'a str>,
8969        rate: i64,
8970    ) -> Result<
8971        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
8972        Error<types::RcError>,
8973    > {
8974        let url = format!("{}/debug/set-block-profile-rate", self.baseurl,);
8975        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8976        header_map.append(
8977            ::reqwest::header::HeaderName::from_static("api-version"),
8978            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8979        );
8980        #[allow(unused_mut)]
8981        let mut request = self
8982            .client
8983            .post(url)
8984            .header(
8985                ::reqwest::header::ACCEPT,
8986                ::reqwest::header::HeaderValue::from_static("application/json"),
8987            )
8988            .query(&progenitor_client::QueryParam::new("_async", &async_))
8989            .query(&progenitor_client::QueryParam::new("_group", &group))
8990            .query(&progenitor_client::QueryParam::new("rate", &rate))
8991            .headers(header_map)
8992            .build()?;
8993        let info = OperationInfo {
8994            operation_id: "debug_set_block_profile_rate",
8995        };
8996        self.pre(&mut request, &info).await?;
8997        let result = self.exec(request, &info).await;
8998        self.post(&result, &info).await?;
8999        let response = result?;
9000        match response.status().as_u16() {
9001            200u16 => ResponseValue::from_response(response).await,
9002            400u16..=499u16 => Err(Error::ErrorResponse(
9003                ResponseValue::from_response(response).await?,
9004            )),
9005            500u16..=599u16 => Err(Error::ErrorResponse(
9006                ResponseValue::from_response(response).await?,
9007            )),
9008            _ => Err(Error::UnexpectedResponse(response)),
9009        }
9010    }
9011
9012    ///Sends a `POST` request to `/debug/set-gc-percent`
9013    ///
9014    ///Arguments:
9015    /// - `async_`: Run the command asynchronously. Returns a job id
9016    ///   immediately.
9017    /// - `group`: Assign the request to a custom stats group.
9018    /// - `gc_percent`: Target percentage of newly allocated data to trigger
9019    ///   garbage collection.
9020    pub async fn debug_set_gc_percent<'a>(
9021        &'a self,
9022        async_: Option<bool>,
9023        group: Option<&'a str>,
9024        gc_percent: i64,
9025    ) -> Result<ResponseValue<types::DebugSetGcPercentResponse>, Error<types::RcError>> {
9026        let url = format!("{}/debug/set-gc-percent", self.baseurl,);
9027        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9028        header_map.append(
9029            ::reqwest::header::HeaderName::from_static("api-version"),
9030            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9031        );
9032        #[allow(unused_mut)]
9033        let mut request = self
9034            .client
9035            .post(url)
9036            .header(
9037                ::reqwest::header::ACCEPT,
9038                ::reqwest::header::HeaderValue::from_static("application/json"),
9039            )
9040            .query(&progenitor_client::QueryParam::new("_async", &async_))
9041            .query(&progenitor_client::QueryParam::new("_group", &group))
9042            .query(&progenitor_client::QueryParam::new(
9043                "gc-percent",
9044                &gc_percent,
9045            ))
9046            .headers(header_map)
9047            .build()?;
9048        let info = OperationInfo {
9049            operation_id: "debug_set_gc_percent",
9050        };
9051        self.pre(&mut request, &info).await?;
9052        let result = self.exec(request, &info).await;
9053        self.post(&result, &info).await?;
9054        let response = result?;
9055        match response.status().as_u16() {
9056            200u16 => ResponseValue::from_response(response).await,
9057            400u16..=499u16 => Err(Error::ErrorResponse(
9058                ResponseValue::from_response(response).await?,
9059            )),
9060            500u16..=599u16 => Err(Error::ErrorResponse(
9061                ResponseValue::from_response(response).await?,
9062            )),
9063            _ => Err(Error::UnexpectedResponse(response)),
9064        }
9065    }
9066
9067    ///Sends a `POST` request to `/debug/set-mutex-profile-fraction`
9068    ///
9069    ///Arguments:
9070    /// - `async_`: Run the command asynchronously. Returns a job id
9071    ///   immediately.
9072    /// - `group`: Assign the request to a custom stats group.
9073    /// - `rate`: Sampling fraction for mutex contention profiling; set to 0 to
9074    ///   disable.
9075    pub async fn debug_set_mutex_profile_fraction<'a>(
9076        &'a self,
9077        async_: Option<bool>,
9078        group: Option<&'a str>,
9079        rate: i64,
9080    ) -> Result<ResponseValue<types::DebugSetMutexProfileFractionResponse>, Error<types::RcError>>
9081    {
9082        let url = format!("{}/debug/set-mutex-profile-fraction", self.baseurl,);
9083        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9084        header_map.append(
9085            ::reqwest::header::HeaderName::from_static("api-version"),
9086            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9087        );
9088        #[allow(unused_mut)]
9089        let mut request = self
9090            .client
9091            .post(url)
9092            .header(
9093                ::reqwest::header::ACCEPT,
9094                ::reqwest::header::HeaderValue::from_static("application/json"),
9095            )
9096            .query(&progenitor_client::QueryParam::new("_async", &async_))
9097            .query(&progenitor_client::QueryParam::new("_group", &group))
9098            .query(&progenitor_client::QueryParam::new("rate", &rate))
9099            .headers(header_map)
9100            .build()?;
9101        let info = OperationInfo {
9102            operation_id: "debug_set_mutex_profile_fraction",
9103        };
9104        self.pre(&mut request, &info).await?;
9105        let result = self.exec(request, &info).await;
9106        self.post(&result, &info).await?;
9107        let response = result?;
9108        match response.status().as_u16() {
9109            200u16 => ResponseValue::from_response(response).await,
9110            400u16..=499u16 => Err(Error::ErrorResponse(
9111                ResponseValue::from_response(response).await?,
9112            )),
9113            500u16..=599u16 => Err(Error::ErrorResponse(
9114                ResponseValue::from_response(response).await?,
9115            )),
9116            _ => Err(Error::UnexpectedResponse(response)),
9117        }
9118    }
9119
9120    ///Sends a `POST` request to `/debug/set-soft-memory-limit`
9121    ///
9122    ///Arguments:
9123    /// - `async_`: Run the command asynchronously. Returns a job id
9124    ///   immediately.
9125    /// - `group`: Assign the request to a custom stats group.
9126    /// - `mem_limit`: Soft memory limit for the Go runtime in bytes.
9127    pub async fn debug_set_soft_memory_limit<'a>(
9128        &'a self,
9129        async_: Option<bool>,
9130        group: Option<&'a str>,
9131        mem_limit: i64,
9132    ) -> Result<ResponseValue<types::DebugSetSoftMemoryLimitResponse>, Error<types::RcError>> {
9133        let url = format!("{}/debug/set-soft-memory-limit", self.baseurl,);
9134        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9135        header_map.append(
9136            ::reqwest::header::HeaderName::from_static("api-version"),
9137            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9138        );
9139        #[allow(unused_mut)]
9140        let mut request = self
9141            .client
9142            .post(url)
9143            .header(
9144                ::reqwest::header::ACCEPT,
9145                ::reqwest::header::HeaderValue::from_static("application/json"),
9146            )
9147            .query(&progenitor_client::QueryParam::new("_async", &async_))
9148            .query(&progenitor_client::QueryParam::new("_group", &group))
9149            .query(&progenitor_client::QueryParam::new("mem-limit", &mem_limit))
9150            .headers(header_map)
9151            .build()?;
9152        let info = OperationInfo {
9153            operation_id: "debug_set_soft_memory_limit",
9154        };
9155        self.pre(&mut request, &info).await?;
9156        let result = self.exec(request, &info).await;
9157        self.post(&result, &info).await?;
9158        let response = result?;
9159        match response.status().as_u16() {
9160            200u16 => ResponseValue::from_response(response).await,
9161            400u16..=499u16 => Err(Error::ErrorResponse(
9162                ResponseValue::from_response(response).await?,
9163            )),
9164            500u16..=599u16 => Err(Error::ErrorResponse(
9165                ResponseValue::from_response(response).await?,
9166            )),
9167            _ => Err(Error::UnexpectedResponse(response)),
9168        }
9169    }
9170
9171    ///Sends a `POST` request to `/fscache/clear`
9172    ///
9173    ///Arguments:
9174    /// - `async_`: Run the command asynchronously. Returns a job id
9175    ///   immediately.
9176    /// - `group`: Assign the request to a custom stats group.
9177    pub async fn fscache_clear<'a>(
9178        &'a self,
9179        async_: Option<bool>,
9180        group: Option<&'a str>,
9181    ) -> Result<
9182        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
9183        Error<types::RcError>,
9184    > {
9185        let url = format!("{}/fscache/clear", self.baseurl,);
9186        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9187        header_map.append(
9188            ::reqwest::header::HeaderName::from_static("api-version"),
9189            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9190        );
9191        #[allow(unused_mut)]
9192        let mut request = self
9193            .client
9194            .post(url)
9195            .header(
9196                ::reqwest::header::ACCEPT,
9197                ::reqwest::header::HeaderValue::from_static("application/json"),
9198            )
9199            .query(&progenitor_client::QueryParam::new("_async", &async_))
9200            .query(&progenitor_client::QueryParam::new("_group", &group))
9201            .headers(header_map)
9202            .build()?;
9203        let info = OperationInfo {
9204            operation_id: "fscache_clear",
9205        };
9206        self.pre(&mut request, &info).await?;
9207        let result = self.exec(request, &info).await;
9208        self.post(&result, &info).await?;
9209        let response = result?;
9210        match response.status().as_u16() {
9211            200u16 => ResponseValue::from_response(response).await,
9212            400u16..=499u16 => Err(Error::ErrorResponse(
9213                ResponseValue::from_response(response).await?,
9214            )),
9215            500u16..=599u16 => Err(Error::ErrorResponse(
9216                ResponseValue::from_response(response).await?,
9217            )),
9218            _ => Err(Error::UnexpectedResponse(response)),
9219        }
9220    }
9221
9222    ///Sends a `POST` request to `/fscache/entries`
9223    ///
9224    ///Arguments:
9225    /// - `async_`: Run the command asynchronously. Returns a job id
9226    ///   immediately.
9227    /// - `group`: Assign the request to a custom stats group.
9228    pub async fn fscache_entries<'a>(
9229        &'a self,
9230        async_: Option<bool>,
9231        group: Option<&'a str>,
9232    ) -> Result<ResponseValue<types::FscacheEntriesResponse>, Error<types::RcError>> {
9233        let url = format!("{}/fscache/entries", self.baseurl,);
9234        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9235        header_map.append(
9236            ::reqwest::header::HeaderName::from_static("api-version"),
9237            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9238        );
9239        #[allow(unused_mut)]
9240        let mut request = self
9241            .client
9242            .post(url)
9243            .header(
9244                ::reqwest::header::ACCEPT,
9245                ::reqwest::header::HeaderValue::from_static("application/json"),
9246            )
9247            .query(&progenitor_client::QueryParam::new("_async", &async_))
9248            .query(&progenitor_client::QueryParam::new("_group", &group))
9249            .headers(header_map)
9250            .build()?;
9251        let info = OperationInfo {
9252            operation_id: "fscache_entries",
9253        };
9254        self.pre(&mut request, &info).await?;
9255        let result = self.exec(request, &info).await;
9256        self.post(&result, &info).await?;
9257        let response = result?;
9258        match response.status().as_u16() {
9259            200u16 => ResponseValue::from_response(response).await,
9260            400u16..=499u16 => Err(Error::ErrorResponse(
9261                ResponseValue::from_response(response).await?,
9262            )),
9263            500u16..=599u16 => Err(Error::ErrorResponse(
9264                ResponseValue::from_response(response).await?,
9265            )),
9266            _ => Err(Error::UnexpectedResponse(response)),
9267        }
9268    }
9269
9270    ///Sends a `POST` request to `/mount/listmounts`
9271    ///
9272    ///Arguments:
9273    /// - `async_`: Run the command asynchronously. Returns a job id
9274    ///   immediately.
9275    /// - `group`: Assign the request to a custom stats group.
9276    pub async fn mount_listmounts<'a>(
9277        &'a self,
9278        async_: Option<bool>,
9279        group: Option<&'a str>,
9280    ) -> Result<ResponseValue<types::MountListmountsResponse>, Error<types::RcError>> {
9281        let url = format!("{}/mount/listmounts", self.baseurl,);
9282        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9283        header_map.append(
9284            ::reqwest::header::HeaderName::from_static("api-version"),
9285            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9286        );
9287        #[allow(unused_mut)]
9288        let mut request = self
9289            .client
9290            .post(url)
9291            .header(
9292                ::reqwest::header::ACCEPT,
9293                ::reqwest::header::HeaderValue::from_static("application/json"),
9294            )
9295            .query(&progenitor_client::QueryParam::new("_async", &async_))
9296            .query(&progenitor_client::QueryParam::new("_group", &group))
9297            .headers(header_map)
9298            .build()?;
9299        let info = OperationInfo {
9300            operation_id: "mount_listmounts",
9301        };
9302        self.pre(&mut request, &info).await?;
9303        let result = self.exec(request, &info).await;
9304        self.post(&result, &info).await?;
9305        let response = result?;
9306        match response.status().as_u16() {
9307            200u16 => ResponseValue::from_response(response).await,
9308            400u16..=499u16 => Err(Error::ErrorResponse(
9309                ResponseValue::from_response(response).await?,
9310            )),
9311            500u16..=599u16 => Err(Error::ErrorResponse(
9312                ResponseValue::from_response(response).await?,
9313            )),
9314            _ => Err(Error::UnexpectedResponse(response)),
9315        }
9316    }
9317
9318    ///Sends a `POST` request to `/mount/mount`
9319    ///
9320    ///Arguments:
9321    /// - `async_`: Run the command asynchronously. Returns a job id
9322    ///   immediately.
9323    /// - `config`: JSON encoded config overrides applied for this call only.
9324    /// - `filter`: JSON encoded filter overrides applied for this call only.
9325    /// - `group`: Assign the request to a custom stats group.
9326    /// - `fs`: Remote path to mount, such as `drive:` or `remote:subdir`.
9327    /// - `mount_opt`: Mount options encoded as JSON, matching flags accepted by
9328    ///   `rclone mount`.
9329    /// - `mount_point`: Absolute local path where the remote should be mounted.
9330    /// - `mount_type`: Optional mount implementation to use (`mount`, `cmount`,
9331    ///   or `mount2`).
9332    /// - `vfs_opt`: VFS options encoded as JSON, matching flags accepted by
9333    ///   `rclone mount`.
9334    pub async fn mount_mount<'a>(
9335        &'a self,
9336        async_: Option<bool>,
9337        config: Option<&'a str>,
9338        filter: Option<&'a str>,
9339        group: Option<&'a str>,
9340        fs: &'a str,
9341        mount_opt: Option<&'a str>,
9342        mount_point: &'a str,
9343        mount_type: Option<&'a str>,
9344        vfs_opt: Option<&'a str>,
9345    ) -> Result<
9346        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
9347        Error<types::RcError>,
9348    > {
9349        let url = format!("{}/mount/mount", self.baseurl,);
9350        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9351        header_map.append(
9352            ::reqwest::header::HeaderName::from_static("api-version"),
9353            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9354        );
9355        #[allow(unused_mut)]
9356        let mut request = self
9357            .client
9358            .post(url)
9359            .header(
9360                ::reqwest::header::ACCEPT,
9361                ::reqwest::header::HeaderValue::from_static("application/json"),
9362            )
9363            .query(&progenitor_client::QueryParam::new("_async", &async_))
9364            .query(&progenitor_client::QueryParam::new("_config", &config))
9365            .query(&progenitor_client::QueryParam::new("_filter", &filter))
9366            .query(&progenitor_client::QueryParam::new("_group", &group))
9367            .query(&progenitor_client::QueryParam::new("fs", &fs))
9368            .query(&progenitor_client::QueryParam::new("mountOpt", &mount_opt))
9369            .query(&progenitor_client::QueryParam::new(
9370                "mountPoint",
9371                &mount_point,
9372            ))
9373            .query(&progenitor_client::QueryParam::new(
9374                "mountType",
9375                &mount_type,
9376            ))
9377            .query(&progenitor_client::QueryParam::new("vfsOpt", &vfs_opt))
9378            .headers(header_map)
9379            .build()?;
9380        let info = OperationInfo {
9381            operation_id: "mount_mount",
9382        };
9383        self.pre(&mut request, &info).await?;
9384        let result = self.exec(request, &info).await;
9385        self.post(&result, &info).await?;
9386        let response = result?;
9387        match response.status().as_u16() {
9388            200u16 => ResponseValue::from_response(response).await,
9389            400u16..=499u16 => Err(Error::ErrorResponse(
9390                ResponseValue::from_response(response).await?,
9391            )),
9392            500u16..=599u16 => Err(Error::ErrorResponse(
9393                ResponseValue::from_response(response).await?,
9394            )),
9395            _ => Err(Error::UnexpectedResponse(response)),
9396        }
9397    }
9398
9399    ///Sends a `POST` request to `/mount/types`
9400    ///
9401    ///Arguments:
9402    /// - `async_`: Run the command asynchronously. Returns a job id
9403    ///   immediately.
9404    /// - `group`: Assign the request to a custom stats group.
9405    pub async fn mount_types<'a>(
9406        &'a self,
9407        async_: Option<bool>,
9408        group: Option<&'a str>,
9409    ) -> Result<ResponseValue<types::MountTypesResponse>, Error<types::RcError>> {
9410        let url = format!("{}/mount/types", self.baseurl,);
9411        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9412        header_map.append(
9413            ::reqwest::header::HeaderName::from_static("api-version"),
9414            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9415        );
9416        #[allow(unused_mut)]
9417        let mut request = self
9418            .client
9419            .post(url)
9420            .header(
9421                ::reqwest::header::ACCEPT,
9422                ::reqwest::header::HeaderValue::from_static("application/json"),
9423            )
9424            .query(&progenitor_client::QueryParam::new("_async", &async_))
9425            .query(&progenitor_client::QueryParam::new("_group", &group))
9426            .headers(header_map)
9427            .build()?;
9428        let info = OperationInfo {
9429            operation_id: "mount_types",
9430        };
9431        self.pre(&mut request, &info).await?;
9432        let result = self.exec(request, &info).await;
9433        self.post(&result, &info).await?;
9434        let response = result?;
9435        match response.status().as_u16() {
9436            200u16 => ResponseValue::from_response(response).await,
9437            400u16..=499u16 => Err(Error::ErrorResponse(
9438                ResponseValue::from_response(response).await?,
9439            )),
9440            500u16..=599u16 => Err(Error::ErrorResponse(
9441                ResponseValue::from_response(response).await?,
9442            )),
9443            _ => Err(Error::UnexpectedResponse(response)),
9444        }
9445    }
9446
9447    ///Sends a `POST` request to `/mount/unmount`
9448    ///
9449    ///Arguments:
9450    /// - `async_`: Run the command asynchronously. Returns a job id
9451    ///   immediately.
9452    /// - `group`: Assign the request to a custom stats group.
9453    /// - `mount_point`: Local mount point path to unmount.
9454    pub async fn mount_unmount<'a>(
9455        &'a self,
9456        async_: Option<bool>,
9457        group: Option<&'a str>,
9458        mount_point: &'a str,
9459    ) -> Result<
9460        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
9461        Error<types::RcError>,
9462    > {
9463        let url = format!("{}/mount/unmount", self.baseurl,);
9464        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9465        header_map.append(
9466            ::reqwest::header::HeaderName::from_static("api-version"),
9467            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9468        );
9469        #[allow(unused_mut)]
9470        let mut request = self
9471            .client
9472            .post(url)
9473            .header(
9474                ::reqwest::header::ACCEPT,
9475                ::reqwest::header::HeaderValue::from_static("application/json"),
9476            )
9477            .query(&progenitor_client::QueryParam::new("_async", &async_))
9478            .query(&progenitor_client::QueryParam::new("_group", &group))
9479            .query(&progenitor_client::QueryParam::new(
9480                "mountPoint",
9481                &mount_point,
9482            ))
9483            .headers(header_map)
9484            .build()?;
9485        let info = OperationInfo {
9486            operation_id: "mount_unmount",
9487        };
9488        self.pre(&mut request, &info).await?;
9489        let result = self.exec(request, &info).await;
9490        self.post(&result, &info).await?;
9491        let response = result?;
9492        match response.status().as_u16() {
9493            200u16 => ResponseValue::from_response(response).await,
9494            400u16..=499u16 => Err(Error::ErrorResponse(
9495                ResponseValue::from_response(response).await?,
9496            )),
9497            500u16..=599u16 => Err(Error::ErrorResponse(
9498                ResponseValue::from_response(response).await?,
9499            )),
9500            _ => Err(Error::UnexpectedResponse(response)),
9501        }
9502    }
9503
9504    ///Sends a `POST` request to `/mount/unmountall`
9505    ///
9506    ///Arguments:
9507    /// - `async_`: Run the command asynchronously. Returns a job id
9508    ///   immediately.
9509    /// - `group`: Assign the request to a custom stats group.
9510    pub async fn mount_unmountall<'a>(
9511        &'a self,
9512        async_: Option<bool>,
9513        group: Option<&'a str>,
9514    ) -> Result<
9515        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
9516        Error<types::RcError>,
9517    > {
9518        let url = format!("{}/mount/unmountall", self.baseurl,);
9519        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9520        header_map.append(
9521            ::reqwest::header::HeaderName::from_static("api-version"),
9522            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9523        );
9524        #[allow(unused_mut)]
9525        let mut request = self
9526            .client
9527            .post(url)
9528            .header(
9529                ::reqwest::header::ACCEPT,
9530                ::reqwest::header::HeaderValue::from_static("application/json"),
9531            )
9532            .query(&progenitor_client::QueryParam::new("_async", &async_))
9533            .query(&progenitor_client::QueryParam::new("_group", &group))
9534            .headers(header_map)
9535            .build()?;
9536        let info = OperationInfo {
9537            operation_id: "mount_unmountall",
9538        };
9539        self.pre(&mut request, &info).await?;
9540        let result = self.exec(request, &info).await;
9541        self.post(&result, &info).await?;
9542        let response = result?;
9543        match response.status().as_u16() {
9544            200u16 => ResponseValue::from_response(response).await,
9545            400u16..=499u16 => Err(Error::ErrorResponse(
9546                ResponseValue::from_response(response).await?,
9547            )),
9548            500u16..=599u16 => Err(Error::ErrorResponse(
9549                ResponseValue::from_response(response).await?,
9550            )),
9551            _ => Err(Error::UnexpectedResponse(response)),
9552        }
9553    }
9554
9555    ///Echo parameters (auth required)
9556    ///
9557    ///Same as `rc/noop`, but requires authentication to validate access
9558    /// control.
9559    ///
9560    ///Sends a `POST` request to `/rc/noopauth`
9561    ///
9562    ///Arguments:
9563    /// - `async_`: Run the command asynchronously. Returns a job id
9564    ///   immediately.
9565    /// - `params`: Additional arbitrary parameters allowed.
9566    pub async fn rc_noop_auth<'a>(
9567        &'a self,
9568        async_: Option<bool>,
9569        params: Option<&'a ::serde_json::Map<::std::string::String, ::serde_json::Value>>,
9570    ) -> Result<
9571        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
9572        Error<types::RcError>,
9573    > {
9574        let url = format!("{}/rc/noopauth", self.baseurl,);
9575        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9576        header_map.append(
9577            ::reqwest::header::HeaderName::from_static("api-version"),
9578            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9579        );
9580        #[allow(unused_mut)]
9581        let mut request = self
9582            .client
9583            .post(url)
9584            .header(
9585                ::reqwest::header::ACCEPT,
9586                ::reqwest::header::HeaderValue::from_static("application/json"),
9587            )
9588            .query(&progenitor_client::QueryParam::new("_async", &async_))
9589            .query(&progenitor_client::QueryParam::new("params", &params))
9590            .headers(header_map)
9591            .build()?;
9592        let info = OperationInfo {
9593            operation_id: "rc_noop_auth",
9594        };
9595        self.pre(&mut request, &info).await?;
9596        let result = self.exec(request, &info).await;
9597        self.post(&result, &info).await?;
9598        let response = result?;
9599        match response.status().as_u16() {
9600            200u16 => ResponseValue::from_response(response).await,
9601            400u16..=499u16 => Err(Error::ErrorResponse(
9602                ResponseValue::from_response(response).await?,
9603            )),
9604            500u16..=599u16 => Err(Error::ErrorResponse(
9605                ResponseValue::from_response(response).await?,
9606            )),
9607            _ => Err(Error::UnexpectedResponse(response)),
9608        }
9609    }
9610
9611    ///Return a test error
9612    ///
9613    ///Always returns an error response incorporating the supplied parameters,
9614    /// useful for testing error handling.
9615    ///
9616    ///Sends a `POST` request to `/rc/error`
9617    ///
9618    ///Arguments:
9619    /// - `async_`: Run the command asynchronously. Returns a job id
9620    ///   immediately.
9621    /// - `params`: Additional arbitrary parameters allowed.
9622    pub async fn rc_error<'a>(
9623        &'a self,
9624        async_: Option<bool>,
9625        params: Option<&'a ::serde_json::Map<::std::string::String, ::serde_json::Value>>,
9626    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
9627        let url = format!("{}/rc/error", self.baseurl,);
9628        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9629        header_map.append(
9630            ::reqwest::header::HeaderName::from_static("api-version"),
9631            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9632        );
9633        #[allow(unused_mut)]
9634        let mut request = self
9635            .client
9636            .post(url)
9637            .header(
9638                ::reqwest::header::ACCEPT,
9639                ::reqwest::header::HeaderValue::from_static("application/json"),
9640            )
9641            .query(&progenitor_client::QueryParam::new("_async", &async_))
9642            .query(&progenitor_client::QueryParam::new("params", &params))
9643            .headers(header_map)
9644            .build()?;
9645        let info = OperationInfo {
9646            operation_id: "rc_error",
9647        };
9648        self.pre(&mut request, &info).await?;
9649        let result = self.exec(request, &info).await;
9650        self.post(&result, &info).await?;
9651        let response = result?;
9652        match response.status().as_u16() {
9653            200u16 => Ok(ResponseValue::empty(response)),
9654            400u16..=499u16 => Err(Error::ErrorResponse(
9655                ResponseValue::from_response(response).await?,
9656            )),
9657            500u16..=599u16 => Err(Error::ErrorResponse(
9658                ResponseValue::from_response(response).await?,
9659            )),
9660            _ => Err(Error::UnexpectedResponse(response)),
9661        }
9662    }
9663
9664    ///List RC commands
9665    ///
9666    ///Returns metadata about every available RC command, including whether
9667    /// authentication is required.
9668    ///
9669    ///Sends a `POST` request to `/rc/list`
9670    ///
9671    ///Arguments:
9672    /// - `async_`: Run the command asynchronously. Returns a job id
9673    ///   immediately.
9674    /// - `group`: Assign the request to a custom stats group.
9675    pub async fn rc_list<'a>(
9676        &'a self,
9677        async_: Option<bool>,
9678        group: Option<&'a str>,
9679    ) -> Result<ResponseValue<types::RcListResponse>, Error<types::RcError>> {
9680        let url = format!("{}/rc/list", self.baseurl,);
9681        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9682        header_map.append(
9683            ::reqwest::header::HeaderName::from_static("api-version"),
9684            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9685        );
9686        #[allow(unused_mut)]
9687        let mut request = self
9688            .client
9689            .post(url)
9690            .header(
9691                ::reqwest::header::ACCEPT,
9692                ::reqwest::header::HeaderValue::from_static("application/json"),
9693            )
9694            .query(&progenitor_client::QueryParam::new("_async", &async_))
9695            .query(&progenitor_client::QueryParam::new("_group", &group))
9696            .headers(header_map)
9697            .build()?;
9698        let info = OperationInfo {
9699            operation_id: "rc_list",
9700        };
9701        self.pre(&mut request, &info).await?;
9702        let result = self.exec(request, &info).await;
9703        self.post(&result, &info).await?;
9704        let response = result?;
9705        match response.status().as_u16() {
9706            200u16 => ResponseValue::from_response(response).await,
9707            400u16..=499u16 => Err(Error::ErrorResponse(
9708                ResponseValue::from_response(response).await?,
9709            )),
9710            500u16..=599u16 => Err(Error::ErrorResponse(
9711                ResponseValue::from_response(response).await?,
9712            )),
9713            _ => Err(Error::UnexpectedResponse(response)),
9714        }
9715    }
9716
9717    ///Run backend command
9718    ///
9719    ///Invokes a backend-specific management command against an optional
9720    /// remote.
9721    ///
9722    ///Sends a `POST` request to `/backend/command`
9723    ///
9724    ///Arguments:
9725    /// - `async_`: Run the command asynchronously. Returns a job id
9726    ///   immediately.
9727    /// - `group`: Assign the request to a custom stats group.
9728    /// - `arg`: Optional positional arguments for the backend command.
9729    /// - `command`: Backend-specific command to invoke.
9730    /// - `fs`: Remote name or path the backend command should target.
9731    /// - `opt`: Backend command options encoded as a JSON string.
9732    pub async fn backend_command<'a>(
9733        &'a self,
9734        async_: Option<bool>,
9735        group: Option<&'a str>,
9736        arg: Option<&'a ::std::vec::Vec<::std::string::String>>,
9737        command: &'a str,
9738        fs: Option<&'a str>,
9739        opt: Option<&'a str>,
9740    ) -> Result<ResponseValue<types::BackendCommandResponse>, Error<types::RcError>> {
9741        let url = format!("{}/backend/command", self.baseurl,);
9742        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9743        header_map.append(
9744            ::reqwest::header::HeaderName::from_static("api-version"),
9745            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9746        );
9747        #[allow(unused_mut)]
9748        let mut request = self
9749            .client
9750            .post(url)
9751            .header(
9752                ::reqwest::header::ACCEPT,
9753                ::reqwest::header::HeaderValue::from_static("application/json"),
9754            )
9755            .query(&progenitor_client::QueryParam::new("_async", &async_))
9756            .query(&progenitor_client::QueryParam::new("_group", &group))
9757            .query(&progenitor_client::QueryParam::new("arg", &arg))
9758            .query(&progenitor_client::QueryParam::new("command", &command))
9759            .query(&progenitor_client::QueryParam::new("fs", &fs))
9760            .query(&progenitor_client::QueryParam::new("opt", &opt))
9761            .headers(header_map)
9762            .build()?;
9763        let info = OperationInfo {
9764            operation_id: "backend_command",
9765        };
9766        self.pre(&mut request, &info).await?;
9767        let result = self.exec(request, &info).await;
9768        self.post(&result, &info).await?;
9769        let response = result?;
9770        match response.status().as_u16() {
9771            200u16 => ResponseValue::from_response(response).await,
9772            400u16..=499u16 => Err(Error::ErrorResponse(
9773                ResponseValue::from_response(response).await?,
9774            )),
9775            500u16..=599u16 => Err(Error::ErrorResponse(
9776                ResponseValue::from_response(response).await?,
9777            )),
9778            _ => Err(Error::UnexpectedResponse(response)),
9779        }
9780    }
9781
9782    ///Expire cache entries
9783    ///
9784    ///Drops cached directory entries, and optionally cached file data, for the
9785    /// cache backend.
9786    ///
9787    ///Sends a `POST` request to `/cache/expire`
9788    ///
9789    ///Arguments:
9790    /// - `async_`: Run the command asynchronously. Returns a job id
9791    ///   immediately.
9792    /// - `group`: Assign the request to a custom stats group.
9793    /// - `remote`: Remote path to expire from the cache, e.g.
9794    ///   `remote:path/to/dir`.
9795    /// - `with_data`: Set to true to drop cached chunk data along with
9796    ///   directory entries.
9797    pub async fn cache_expire<'a>(
9798        &'a self,
9799        async_: Option<bool>,
9800        group: Option<&'a str>,
9801        remote: &'a str,
9802        with_data: Option<bool>,
9803    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
9804        let url = format!("{}/cache/expire", self.baseurl,);
9805        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9806        header_map.append(
9807            ::reqwest::header::HeaderName::from_static("api-version"),
9808            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9809        );
9810        #[allow(unused_mut)]
9811        let mut request = self
9812            .client
9813            .post(url)
9814            .header(
9815                ::reqwest::header::ACCEPT,
9816                ::reqwest::header::HeaderValue::from_static("application/json"),
9817            )
9818            .query(&progenitor_client::QueryParam::new("_async", &async_))
9819            .query(&progenitor_client::QueryParam::new("_group", &group))
9820            .query(&progenitor_client::QueryParam::new("remote", &remote))
9821            .query(&progenitor_client::QueryParam::new("withData", &with_data))
9822            .headers(header_map)
9823            .build()?;
9824        let info = OperationInfo {
9825            operation_id: "cache_expire",
9826        };
9827        self.pre(&mut request, &info).await?;
9828        let result = self.exec(request, &info).await;
9829        self.post(&result, &info).await?;
9830        let response = result?;
9831        match response.status().as_u16() {
9832            200u16 => Ok(ResponseValue::empty(response)),
9833            400u16..=499u16 => Err(Error::ErrorResponse(
9834                ResponseValue::from_response(response).await?,
9835            )),
9836            500u16..=599u16 => Err(Error::ErrorResponse(
9837                ResponseValue::from_response(response).await?,
9838            )),
9839            _ => Err(Error::UnexpectedResponse(response)),
9840        }
9841    }
9842
9843    ///Prefetch cache chunks
9844    ///
9845    ///Ensures specified file chunks are cached locally for a cache remote.
9846    ///
9847    ///Sends a `POST` request to `/cache/fetch`
9848    ///
9849    ///Arguments:
9850    /// - `async_`: Run the command asynchronously. Returns a job id
9851    ///   immediately.
9852    /// - `group`: Assign the request to a custom stats group.
9853    /// - `chunks`: Comma-separated chunk specifier list (e.g. `0:10,25:30`)
9854    ///   describing file pieces to prefetch.
9855    /// - `params`: Additional arbitrary parameters allowed.
9856    pub async fn cache_fetch<'a>(
9857        &'a self,
9858        async_: Option<bool>,
9859        group: Option<&'a str>,
9860        chunks: Option<&'a str>,
9861        params: Option<&'a ::serde_json::Map<::std::string::String, ::serde_json::Value>>,
9862    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
9863        let url = format!("{}/cache/fetch", self.baseurl,);
9864        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9865        header_map.append(
9866            ::reqwest::header::HeaderName::from_static("api-version"),
9867            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9868        );
9869        #[allow(unused_mut)]
9870        let mut request = self
9871            .client
9872            .post(url)
9873            .header(
9874                ::reqwest::header::ACCEPT,
9875                ::reqwest::header::HeaderValue::from_static("application/json"),
9876            )
9877            .query(&progenitor_client::QueryParam::new("_async", &async_))
9878            .query(&progenitor_client::QueryParam::new("_group", &group))
9879            .query(&progenitor_client::QueryParam::new("chunks", &chunks))
9880            .query(&progenitor_client::QueryParam::new("params", &params))
9881            .headers(header_map)
9882            .build()?;
9883        let info = OperationInfo {
9884            operation_id: "cache_fetch",
9885        };
9886        self.pre(&mut request, &info).await?;
9887        let result = self.exec(request, &info).await;
9888        self.post(&result, &info).await?;
9889        let response = result?;
9890        match response.status().as_u16() {
9891            200u16 => Ok(ResponseValue::empty(response)),
9892            400u16..=499u16 => Err(Error::ErrorResponse(
9893                ResponseValue::from_response(response).await?,
9894            )),
9895            500u16..=599u16 => Err(Error::ErrorResponse(
9896                ResponseValue::from_response(response).await?,
9897            )),
9898            _ => Err(Error::UnexpectedResponse(response)),
9899        }
9900    }
9901
9902    ///Show cache stats
9903    ///
9904    ///Returns runtime statistics for the cache backend.
9905    ///
9906    ///Sends a `POST` request to `/cache/stats`
9907    ///
9908    ///Arguments:
9909    /// - `async_`: Run the command asynchronously. Returns a job id
9910    ///   immediately.
9911    /// - `group`: Assign the request to a custom stats group.
9912    pub async fn cache_stats<'a>(
9913        &'a self,
9914        async_: Option<bool>,
9915        group: Option<&'a str>,
9916    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
9917        let url = format!("{}/cache/stats", self.baseurl,);
9918        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9919        header_map.append(
9920            ::reqwest::header::HeaderName::from_static("api-version"),
9921            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9922        );
9923        #[allow(unused_mut)]
9924        let mut request = self
9925            .client
9926            .post(url)
9927            .header(
9928                ::reqwest::header::ACCEPT,
9929                ::reqwest::header::HeaderValue::from_static("application/json"),
9930            )
9931            .query(&progenitor_client::QueryParam::new("_async", &async_))
9932            .query(&progenitor_client::QueryParam::new("_group", &group))
9933            .headers(header_map)
9934            .build()?;
9935        let info = OperationInfo {
9936            operation_id: "cache_stats",
9937        };
9938        self.pre(&mut request, &info).await?;
9939        let result = self.exec(request, &info).await;
9940        self.post(&result, &info).await?;
9941        let response = result?;
9942        match response.status().as_u16() {
9943            200u16 => Ok(ResponseValue::empty(response)),
9944            400u16..=499u16 => Err(Error::ErrorResponse(
9945                ResponseValue::from_response(response).await?,
9946            )),
9947            500u16..=599u16 => Err(Error::ErrorResponse(
9948                ResponseValue::from_response(response).await?,
9949            )),
9950            _ => Err(Error::UnexpectedResponse(response)),
9951        }
9952    }
9953
9954    ///Create remote configuration
9955    ///
9956    ///Creates a new remote in `rclone.conf`, mirroring `rclone config create`.
9957    ///
9958    ///Sends a `POST` request to `/config/create`
9959    ///
9960    ///Arguments:
9961    /// - `async_`: Run the command asynchronously. Returns a job id
9962    ///   immediately.
9963    /// - `group`: Assign the request to a custom stats group.
9964    /// - `name`: Name of the new remote configuration.
9965    /// - `opt`: Optional JSON object controlling interactive behaviour (e.g.
9966    ///   `obscure`, `continue`).
9967    /// - `parameters`: JSON object of configuration key/value pairs required
9968    ///   for the remote.
9969    /// - `type_`: Backend type identifier, such as `drive`, `s3`, or `dropbox`.
9970    pub async fn config_create<'a>(
9971        &'a self,
9972        async_: Option<bool>,
9973        group: Option<&'a str>,
9974        name: &'a str,
9975        opt: Option<&'a str>,
9976        parameters: &'a str,
9977        type_: &'a str,
9978    ) -> Result<
9979        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
9980        Error<types::RcError>,
9981    > {
9982        let url = format!("{}/config/create", self.baseurl,);
9983        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9984        header_map.append(
9985            ::reqwest::header::HeaderName::from_static("api-version"),
9986            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9987        );
9988        #[allow(unused_mut)]
9989        let mut request = self
9990            .client
9991            .post(url)
9992            .header(
9993                ::reqwest::header::ACCEPT,
9994                ::reqwest::header::HeaderValue::from_static("application/json"),
9995            )
9996            .query(&progenitor_client::QueryParam::new("_async", &async_))
9997            .query(&progenitor_client::QueryParam::new("_group", &group))
9998            .query(&progenitor_client::QueryParam::new("name", &name))
9999            .query(&progenitor_client::QueryParam::new("opt", &opt))
10000            .query(&progenitor_client::QueryParam::new(
10001                "parameters",
10002                &parameters,
10003            ))
10004            .query(&progenitor_client::QueryParam::new("type", &type_))
10005            .headers(header_map)
10006            .build()?;
10007        let info = OperationInfo {
10008            operation_id: "config_create",
10009        };
10010        self.pre(&mut request, &info).await?;
10011        let result = self.exec(request, &info).await;
10012        self.post(&result, &info).await?;
10013        let response = result?;
10014        match response.status().as_u16() {
10015            200u16 => ResponseValue::from_response(response).await,
10016            400u16..=499u16 => Err(Error::ErrorResponse(
10017                ResponseValue::from_response(response).await?,
10018            )),
10019            500u16..=599u16 => Err(Error::ErrorResponse(
10020                ResponseValue::from_response(response).await?,
10021            )),
10022            _ => Err(Error::UnexpectedResponse(response)),
10023        }
10024    }
10025
10026    ///Delete remote configuration
10027    ///
10028    ///Removes an existing remote from `rclone.conf`.
10029    ///
10030    ///Sends a `POST` request to `/config/delete`
10031    ///
10032    ///Arguments:
10033    /// - `async_`: Run the command asynchronously. Returns a job id
10034    ///   immediately.
10035    /// - `group`: Assign the request to a custom stats group.
10036    /// - `name`: Name of the remote configuration to delete.
10037    pub async fn config_delete<'a>(
10038        &'a self,
10039        async_: Option<bool>,
10040        group: Option<&'a str>,
10041        name: &'a str,
10042    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
10043        let url = format!("{}/config/delete", self.baseurl,);
10044        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10045        header_map.append(
10046            ::reqwest::header::HeaderName::from_static("api-version"),
10047            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10048        );
10049        #[allow(unused_mut)]
10050        let mut request = self
10051            .client
10052            .post(url)
10053            .header(
10054                ::reqwest::header::ACCEPT,
10055                ::reqwest::header::HeaderValue::from_static("application/json"),
10056            )
10057            .query(&progenitor_client::QueryParam::new("_async", &async_))
10058            .query(&progenitor_client::QueryParam::new("_group", &group))
10059            .query(&progenitor_client::QueryParam::new("name", &name))
10060            .headers(header_map)
10061            .build()?;
10062        let info = OperationInfo {
10063            operation_id: "config_delete",
10064        };
10065        self.pre(&mut request, &info).await?;
10066        let result = self.exec(request, &info).await;
10067        self.post(&result, &info).await?;
10068        let response = result?;
10069        match response.status().as_u16() {
10070            200u16 => Ok(ResponseValue::empty(response)),
10071            400u16..=499u16 => Err(Error::ErrorResponse(
10072                ResponseValue::from_response(response).await?,
10073            )),
10074            500u16..=599u16 => Err(Error::ErrorResponse(
10075                ResponseValue::from_response(response).await?,
10076            )),
10077            _ => Err(Error::UnexpectedResponse(response)),
10078        }
10079    }
10080
10081    ///Dump configuration
10082    ///
10083    ///Returns the contents of the config file as a JSON object keyed by remote
10084    /// name.
10085    ///
10086    ///Sends a `POST` request to `/config/dump`
10087    ///
10088    ///Arguments:
10089    /// - `async_`: Run the command asynchronously. Returns a job id
10090    ///   immediately.
10091    /// - `group`: Assign the request to a custom stats group.
10092    pub async fn config_dump<'a>(
10093        &'a self,
10094        async_: Option<bool>,
10095        group: Option<&'a str>,
10096    ) -> Result<
10097        ResponseValue<
10098            ::std::collections::HashMap<
10099                ::std::string::String,
10100                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
10101            >,
10102        >,
10103        Error<types::RcError>,
10104    > {
10105        let url = format!("{}/config/dump", self.baseurl,);
10106        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10107        header_map.append(
10108            ::reqwest::header::HeaderName::from_static("api-version"),
10109            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10110        );
10111        #[allow(unused_mut)]
10112        let mut request = self
10113            .client
10114            .post(url)
10115            .header(
10116                ::reqwest::header::ACCEPT,
10117                ::reqwest::header::HeaderValue::from_static("application/json"),
10118            )
10119            .query(&progenitor_client::QueryParam::new("_async", &async_))
10120            .query(&progenitor_client::QueryParam::new("_group", &group))
10121            .headers(header_map)
10122            .build()?;
10123        let info = OperationInfo {
10124            operation_id: "config_dump",
10125        };
10126        self.pre(&mut request, &info).await?;
10127        let result = self.exec(request, &info).await;
10128        self.post(&result, &info).await?;
10129        let response = result?;
10130        match response.status().as_u16() {
10131            200u16 => ResponseValue::from_response(response).await,
10132            400u16..=499u16 => Err(Error::ErrorResponse(
10133                ResponseValue::from_response(response).await?,
10134            )),
10135            500u16..=599u16 => Err(Error::ErrorResponse(
10136                ResponseValue::from_response(response).await?,
10137            )),
10138            _ => Err(Error::UnexpectedResponse(response)),
10139        }
10140    }
10141
10142    ///Get remote configuration
10143    ///
10144    ///Returns the key/value settings for a single remote.
10145    ///
10146    ///Sends a `POST` request to `/config/get`
10147    ///
10148    ///Arguments:
10149    /// - `async_`: Run the command asynchronously. Returns a job id
10150    ///   immediately.
10151    /// - `group`: Assign the request to a custom stats group.
10152    /// - `name`: Name of the remote configuration to fetch.
10153    pub async fn config_get<'a>(
10154        &'a self,
10155        async_: Option<bool>,
10156        group: Option<&'a str>,
10157        name: &'a str,
10158    ) -> Result<ResponseValue<types::ConfigGetResponse>, Error<types::RcError>> {
10159        let url = format!("{}/config/get", self.baseurl,);
10160        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10161        header_map.append(
10162            ::reqwest::header::HeaderName::from_static("api-version"),
10163            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10164        );
10165        #[allow(unused_mut)]
10166        let mut request = self
10167            .client
10168            .post(url)
10169            .header(
10170                ::reqwest::header::ACCEPT,
10171                ::reqwest::header::HeaderValue::from_static("application/json"),
10172            )
10173            .query(&progenitor_client::QueryParam::new("_async", &async_))
10174            .query(&progenitor_client::QueryParam::new("_group", &group))
10175            .query(&progenitor_client::QueryParam::new("name", &name))
10176            .headers(header_map)
10177            .build()?;
10178        let info = OperationInfo {
10179            operation_id: "config_get",
10180        };
10181        self.pre(&mut request, &info).await?;
10182        let result = self.exec(request, &info).await;
10183        self.post(&result, &info).await?;
10184        let response = result?;
10185        match response.status().as_u16() {
10186            200u16 => ResponseValue::from_response(response).await,
10187            400u16..=499u16 => Err(Error::ErrorResponse(
10188                ResponseValue::from_response(response).await?,
10189            )),
10190            500u16..=599u16 => Err(Error::ErrorResponse(
10191                ResponseValue::from_response(response).await?,
10192            )),
10193            _ => Err(Error::UnexpectedResponse(response)),
10194        }
10195    }
10196
10197    ///List configured remotes
10198    ///
10199    ///Returns the names of all remotes defined in the config file.
10200    ///
10201    ///Sends a `POST` request to `/config/listremotes`
10202    ///
10203    ///Arguments:
10204    /// - `async_`: Run the command asynchronously. Returns a job id
10205    ///   immediately.
10206    /// - `group`: Assign the request to a custom stats group.
10207    pub async fn config_listremotes<'a>(
10208        &'a self,
10209        async_: Option<bool>,
10210        group: Option<&'a str>,
10211    ) -> Result<ResponseValue<types::ConfigListremotesResponse>, Error<types::RcError>> {
10212        let url = format!("{}/config/listremotes", self.baseurl,);
10213        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10214        header_map.append(
10215            ::reqwest::header::HeaderName::from_static("api-version"),
10216            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10217        );
10218        #[allow(unused_mut)]
10219        let mut request = self
10220            .client
10221            .post(url)
10222            .header(
10223                ::reqwest::header::ACCEPT,
10224                ::reqwest::header::HeaderValue::from_static("application/json"),
10225            )
10226            .query(&progenitor_client::QueryParam::new("_async", &async_))
10227            .query(&progenitor_client::QueryParam::new("_group", &group))
10228            .headers(header_map)
10229            .build()?;
10230        let info = OperationInfo {
10231            operation_id: "config_listremotes",
10232        };
10233        self.pre(&mut request, &info).await?;
10234        let result = self.exec(request, &info).await;
10235        self.post(&result, &info).await?;
10236        let response = result?;
10237        match response.status().as_u16() {
10238            200u16 => ResponseValue::from_response(response).await,
10239            400u16..=499u16 => Err(Error::ErrorResponse(
10240                ResponseValue::from_response(response).await?,
10241            )),
10242            500u16..=599u16 => Err(Error::ErrorResponse(
10243                ResponseValue::from_response(response).await?,
10244            )),
10245            _ => Err(Error::UnexpectedResponse(response)),
10246        }
10247    }
10248
10249    ///Update remote secrets
10250    ///
10251    ///Sets obscured password fields for a remote configuration.
10252    ///
10253    ///Sends a `POST` request to `/config/password`
10254    ///
10255    ///Arguments:
10256    /// - `async_`: Run the command asynchronously. Returns a job id
10257    ///   immediately.
10258    /// - `group`: Assign the request to a custom stats group.
10259    /// - `name`: Name of the remote whose secrets should be updated.
10260    /// - `parameters`: JSON object of password answers, typically including
10261    ///   `pass`.
10262    pub async fn config_password<'a>(
10263        &'a self,
10264        async_: Option<bool>,
10265        group: Option<&'a str>,
10266        name: &'a str,
10267        parameters: &'a str,
10268    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
10269        let url = format!("{}/config/password", self.baseurl,);
10270        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10271        header_map.append(
10272            ::reqwest::header::HeaderName::from_static("api-version"),
10273            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10274        );
10275        #[allow(unused_mut)]
10276        let mut request = self
10277            .client
10278            .post(url)
10279            .header(
10280                ::reqwest::header::ACCEPT,
10281                ::reqwest::header::HeaderValue::from_static("application/json"),
10282            )
10283            .query(&progenitor_client::QueryParam::new("_async", &async_))
10284            .query(&progenitor_client::QueryParam::new("_group", &group))
10285            .query(&progenitor_client::QueryParam::new("name", &name))
10286            .query(&progenitor_client::QueryParam::new(
10287                "parameters",
10288                &parameters,
10289            ))
10290            .headers(header_map)
10291            .build()?;
10292        let info = OperationInfo {
10293            operation_id: "config_password",
10294        };
10295        self.pre(&mut request, &info).await?;
10296        let result = self.exec(request, &info).await;
10297        self.post(&result, &info).await?;
10298        let response = result?;
10299        match response.status().as_u16() {
10300            200u16 => Ok(ResponseValue::empty(response)),
10301            400u16..=499u16 => Err(Error::ErrorResponse(
10302                ResponseValue::from_response(response).await?,
10303            )),
10304            500u16..=599u16 => Err(Error::ErrorResponse(
10305                ResponseValue::from_response(response).await?,
10306            )),
10307            _ => Err(Error::UnexpectedResponse(response)),
10308        }
10309    }
10310
10311    ///Show config paths
10312    ///
10313    ///Returns the paths to the config file, cache directory, and temporary
10314    /// directory.
10315    ///
10316    ///Sends a `POST` request to `/config/paths`
10317    ///
10318    ///Arguments:
10319    /// - `async_`: Run the command asynchronously. Returns a job id
10320    ///   immediately.
10321    /// - `group`: Assign the request to a custom stats group.
10322    pub async fn config_paths<'a>(
10323        &'a self,
10324        async_: Option<bool>,
10325        group: Option<&'a str>,
10326    ) -> Result<ResponseValue<types::ConfigPathsResponse>, Error<types::RcError>> {
10327        let url = format!("{}/config/paths", self.baseurl,);
10328        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10329        header_map.append(
10330            ::reqwest::header::HeaderName::from_static("api-version"),
10331            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10332        );
10333        #[allow(unused_mut)]
10334        let mut request = self
10335            .client
10336            .post(url)
10337            .header(
10338                ::reqwest::header::ACCEPT,
10339                ::reqwest::header::HeaderValue::from_static("application/json"),
10340            )
10341            .query(&progenitor_client::QueryParam::new("_async", &async_))
10342            .query(&progenitor_client::QueryParam::new("_group", &group))
10343            .headers(header_map)
10344            .build()?;
10345        let info = OperationInfo {
10346            operation_id: "config_paths",
10347        };
10348        self.pre(&mut request, &info).await?;
10349        let result = self.exec(request, &info).await;
10350        self.post(&result, &info).await?;
10351        let response = result?;
10352        match response.status().as_u16() {
10353            200u16 => ResponseValue::from_response(response).await,
10354            400u16..=499u16 => Err(Error::ErrorResponse(
10355                ResponseValue::from_response(response).await?,
10356            )),
10357            500u16..=599u16 => Err(Error::ErrorResponse(
10358                ResponseValue::from_response(response).await?,
10359            )),
10360            _ => Err(Error::UnexpectedResponse(response)),
10361        }
10362    }
10363
10364    ///List backend providers
10365    ///
10366    ///Returns metadata describing each supported storage provider.
10367    ///
10368    ///Sends a `POST` request to `/config/providers`
10369    ///
10370    ///Arguments:
10371    /// - `async_`: Run the command asynchronously. Returns a job id
10372    ///   immediately.
10373    /// - `group`: Assign the request to a custom stats group.
10374    pub async fn config_providers<'a>(
10375        &'a self,
10376        async_: Option<bool>,
10377        group: Option<&'a str>,
10378    ) -> Result<ResponseValue<types::ConfigProvidersResponse>, Error<types::RcError>> {
10379        let url = format!("{}/config/providers", self.baseurl,);
10380        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10381        header_map.append(
10382            ::reqwest::header::HeaderName::from_static("api-version"),
10383            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10384        );
10385        #[allow(unused_mut)]
10386        let mut request = self
10387            .client
10388            .post(url)
10389            .header(
10390                ::reqwest::header::ACCEPT,
10391                ::reqwest::header::HeaderValue::from_static("application/json"),
10392            )
10393            .query(&progenitor_client::QueryParam::new("_async", &async_))
10394            .query(&progenitor_client::QueryParam::new("_group", &group))
10395            .headers(header_map)
10396            .build()?;
10397        let info = OperationInfo {
10398            operation_id: "config_providers",
10399        };
10400        self.pre(&mut request, &info).await?;
10401        let result = self.exec(request, &info).await;
10402        self.post(&result, &info).await?;
10403        let response = result?;
10404        match response.status().as_u16() {
10405            200u16 => ResponseValue::from_response(response).await,
10406            400u16..=499u16 => Err(Error::ErrorResponse(
10407                ResponseValue::from_response(response).await?,
10408            )),
10409            500u16..=599u16 => Err(Error::ErrorResponse(
10410                ResponseValue::from_response(response).await?,
10411            )),
10412            _ => Err(Error::UnexpectedResponse(response)),
10413        }
10414    }
10415
10416    ///Set config path
10417    ///
10418    ///Points rclone at a specific `rclone.conf` file.
10419    ///
10420    ///Sends a `POST` request to `/config/setpath`
10421    ///
10422    ///Arguments:
10423    /// - `async_`: Run the command asynchronously. Returns a job id
10424    ///   immediately.
10425    /// - `group`: Assign the request to a custom stats group.
10426    /// - `path`: Absolute path to the `rclone.conf` file that rclone should
10427    ///   use.
10428    pub async fn config_setpath<'a>(
10429        &'a self,
10430        async_: Option<bool>,
10431        group: Option<&'a str>,
10432        path: &'a str,
10433    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
10434        let url = format!("{}/config/setpath", self.baseurl,);
10435        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10436        header_map.append(
10437            ::reqwest::header::HeaderName::from_static("api-version"),
10438            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10439        );
10440        #[allow(unused_mut)]
10441        let mut request = self
10442            .client
10443            .post(url)
10444            .header(
10445                ::reqwest::header::ACCEPT,
10446                ::reqwest::header::HeaderValue::from_static("application/json"),
10447            )
10448            .query(&progenitor_client::QueryParam::new("_async", &async_))
10449            .query(&progenitor_client::QueryParam::new("_group", &group))
10450            .query(&progenitor_client::QueryParam::new("path", &path))
10451            .headers(header_map)
10452            .build()?;
10453        let info = OperationInfo {
10454            operation_id: "config_setpath",
10455        };
10456        self.pre(&mut request, &info).await?;
10457        let result = self.exec(request, &info).await;
10458        self.post(&result, &info).await?;
10459        let response = result?;
10460        match response.status().as_u16() {
10461            200u16 => Ok(ResponseValue::empty(response)),
10462            400u16..=499u16 => Err(Error::ErrorResponse(
10463                ResponseValue::from_response(response).await?,
10464            )),
10465            500u16..=599u16 => Err(Error::ErrorResponse(
10466                ResponseValue::from_response(response).await?,
10467            )),
10468            _ => Err(Error::UnexpectedResponse(response)),
10469        }
10470    }
10471
10472    ///Unlock encrypted config
10473    ///
10474    ///Unlocks the configuration file using the provided password.
10475    ///
10476    ///Sends a `POST` request to `/config/unlock`
10477    ///
10478    ///Arguments:
10479    /// - `async_`: Run the command asynchronously. Returns a job id
10480    ///   immediately.
10481    /// - `group`: Assign the request to a custom stats group.
10482    /// - `config_password`: Password used to unlock an encrypted config file.
10483    pub async fn config_unlock<'a>(
10484        &'a self,
10485        async_: Option<bool>,
10486        group: Option<&'a str>,
10487        config_password: &'a str,
10488    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
10489        let url = format!("{}/config/unlock", self.baseurl,);
10490        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10491        header_map.append(
10492            ::reqwest::header::HeaderName::from_static("api-version"),
10493            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10494        );
10495        #[allow(unused_mut)]
10496        let mut request = self
10497            .client
10498            .post(url)
10499            .header(
10500                ::reqwest::header::ACCEPT,
10501                ::reqwest::header::HeaderValue::from_static("application/json"),
10502            )
10503            .query(&progenitor_client::QueryParam::new("_async", &async_))
10504            .query(&progenitor_client::QueryParam::new("_group", &group))
10505            .query(&progenitor_client::QueryParam::new(
10506                "config_password",
10507                &config_password,
10508            ))
10509            .headers(header_map)
10510            .build()?;
10511        let info = OperationInfo {
10512            operation_id: "config_unlock",
10513        };
10514        self.pre(&mut request, &info).await?;
10515        let result = self.exec(request, &info).await;
10516        self.post(&result, &info).await?;
10517        let response = result?;
10518        match response.status().as_u16() {
10519            200u16 => Ok(ResponseValue::empty(response)),
10520            400u16..=499u16 => Err(Error::ErrorResponse(
10521                ResponseValue::from_response(response).await?,
10522            )),
10523            500u16..=599u16 => Err(Error::ErrorResponse(
10524                ResponseValue::from_response(response).await?,
10525            )),
10526            _ => Err(Error::UnexpectedResponse(response)),
10527        }
10528    }
10529
10530    ///Update remote configuration
10531    ///
10532    ///Updates an existing remote with new parameter values.
10533    ///
10534    ///Sends a `POST` request to `/config/update`
10535    ///
10536    ///Arguments:
10537    /// - `async_`: Run the command asynchronously. Returns a job id
10538    ///   immediately.
10539    /// - `group`: Assign the request to a custom stats group.
10540    /// - `name`: Name of the remote configuration to update.
10541    /// - `opt`: Optional JSON object controlling update behaviour (e.g.
10542    ///   `obscure`, `continue`).
10543    /// - `parameters`: JSON object of configuration key/value pairs to apply to
10544    ///   the remote.
10545    pub async fn config_update<'a>(
10546        &'a self,
10547        async_: Option<bool>,
10548        group: Option<&'a str>,
10549        name: &'a str,
10550        opt: Option<&'a str>,
10551        parameters: &'a str,
10552    ) -> Result<
10553        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
10554        Error<types::RcError>,
10555    > {
10556        let url = format!("{}/config/update", self.baseurl,);
10557        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10558        header_map.append(
10559            ::reqwest::header::HeaderName::from_static("api-version"),
10560            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10561        );
10562        #[allow(unused_mut)]
10563        let mut request = self
10564            .client
10565            .post(url)
10566            .header(
10567                ::reqwest::header::ACCEPT,
10568                ::reqwest::header::HeaderValue::from_static("application/json"),
10569            )
10570            .query(&progenitor_client::QueryParam::new("_async", &async_))
10571            .query(&progenitor_client::QueryParam::new("_group", &group))
10572            .query(&progenitor_client::QueryParam::new("name", &name))
10573            .query(&progenitor_client::QueryParam::new("opt", &opt))
10574            .query(&progenitor_client::QueryParam::new(
10575                "parameters",
10576                &parameters,
10577            ))
10578            .headers(header_map)
10579            .build()?;
10580        let info = OperationInfo {
10581            operation_id: "config_update",
10582        };
10583        self.pre(&mut request, &info).await?;
10584        let result = self.exec(request, &info).await;
10585        self.post(&result, &info).await?;
10586        let response = result?;
10587        match response.status().as_u16() {
10588            200u16 => ResponseValue::from_response(response).await,
10589            400u16..=499u16 => Err(Error::ErrorResponse(
10590                ResponseValue::from_response(response).await?,
10591            )),
10592            500u16..=599u16 => Err(Error::ErrorResponse(
10593                ResponseValue::from_response(response).await?,
10594            )),
10595            _ => Err(Error::UnexpectedResponse(response)),
10596        }
10597    }
10598
10599    ///Report rclone version
10600    ///
10601    ///Returns the running rclone version, build metadata, and Go runtime
10602    /// details.
10603    ///
10604    ///Sends a `POST` request to `/core/version`
10605    ///
10606    ///Arguments:
10607    /// - `async_`: Run the command asynchronously. Returns a job id
10608    ///   immediately.
10609    /// - `group`: Assign the request to a custom stats group.
10610    pub async fn core_version<'a>(
10611        &'a self,
10612        async_: Option<bool>,
10613        group: Option<&'a str>,
10614    ) -> Result<ResponseValue<types::CoreVersionResponse>, Error<types::RcError>> {
10615        let url = format!("{}/core/version", self.baseurl,);
10616        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10617        header_map.append(
10618            ::reqwest::header::HeaderName::from_static("api-version"),
10619            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10620        );
10621        #[allow(unused_mut)]
10622        let mut request = self
10623            .client
10624            .post(url)
10625            .header(
10626                ::reqwest::header::ACCEPT,
10627                ::reqwest::header::HeaderValue::from_static("application/json"),
10628            )
10629            .query(&progenitor_client::QueryParam::new("_async", &async_))
10630            .query(&progenitor_client::QueryParam::new("_group", &group))
10631            .headers(header_map)
10632            .build()?;
10633        let info = OperationInfo {
10634            operation_id: "core_version",
10635        };
10636        self.pre(&mut request, &info).await?;
10637        let result = self.exec(request, &info).await;
10638        self.post(&result, &info).await?;
10639        let response = result?;
10640        match response.status().as_u16() {
10641            200u16 => ResponseValue::from_response(response).await,
10642            400u16..=499u16 => Err(Error::ErrorResponse(
10643                ResponseValue::from_response(response).await?,
10644            )),
10645            500u16..=599u16 => Err(Error::ErrorResponse(
10646                ResponseValue::from_response(response).await?,
10647            )),
10648            _ => Err(Error::UnexpectedResponse(response)),
10649        }
10650    }
10651
10652    ///Current stats snapshot
10653    ///
10654    ///Returns active transfer statistics including bytes transferred, speed,
10655    /// and error counts.
10656    ///
10657    ///Sends a `POST` request to `/core/stats`
10658    ///
10659    ///Arguments:
10660    /// - `async_`: Run the command asynchronously. Returns a job id
10661    ///   immediately.
10662    /// - `group`: Assign the request to a custom stats group.
10663    /// - `group`: Stats group identifier to return a snapshot for. Leave unset
10664    ///   to include all groups.
10665    /// - `short`: When true, omit the `transferring` and `checking` arrays from
10666    ///   the response.
10667    pub async fn core_stats<'a>(
10668        &'a self,
10669        async_: Option<bool>,
10670        _group: Option<&'a str>,
10671        group: Option<&'a str>,
10672        short: Option<bool>
10673    ) -> Result<ResponseValue<types::CoreStatsResponse>, Error<types::RcError>> {
10674        let url = format!("{}/core/stats", self.baseurl,);
10675        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10676        header_map.append(
10677            ::reqwest::header::HeaderName::from_static("api-version"),
10678            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10679        );
10680        #[allow(unused_mut)]
10681        let mut request = self
10682            .client
10683            .post(url)
10684            .header(
10685                ::reqwest::header::ACCEPT,
10686                ::reqwest::header::HeaderValue::from_static("application/json"),
10687            )
10688            .query(&progenitor_client::QueryParam::new("_async", &async_))
10689            .query(&progenitor_client::QueryParam::new("_group", &group))
10690            .query(&progenitor_client::QueryParam::new("group", &group))
10691            .query(&progenitor_client::QueryParam::new("short", &short))
10692            .headers(header_map)
10693            .build()?;
10694        let info = OperationInfo {
10695            operation_id: "core_stats",
10696        };
10697        self.pre(&mut request, &info).await?;
10698        let result = self.exec(request, &info).await;
10699        self.post(&result, &info).await?;
10700        let response = result?;
10701        match response.status().as_u16() {
10702            200u16 => ResponseValue::from_response(response).await,
10703            400u16..=499u16 => Err(Error::ErrorResponse(
10704                ResponseValue::from_response(response).await?,
10705            )),
10706            500u16..=599u16 => Err(Error::ErrorResponse(
10707                ResponseValue::from_response(response).await?,
10708            )),
10709            _ => Err(Error::UnexpectedResponse(response)),
10710        }
10711    }
10712
10713    ///List jobs
10714    ///
10715    ///Returns identifiers of active and recently completed asynchronous jobs.
10716    ///
10717    ///Sends a `POST` request to `/job/list`
10718    ///
10719    ///Arguments:
10720    /// - `async_`: Run the command asynchronously. Returns a job id
10721    ///   immediately.
10722    pub async fn job_list<'a>(
10723        &'a self,
10724        async_: Option<bool>,
10725    ) -> Result<ResponseValue<types::JobListResponse>, Error<types::RcError>> {
10726        let url = format!("{}/job/list", self.baseurl,);
10727        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10728        header_map.append(
10729            ::reqwest::header::HeaderName::from_static("api-version"),
10730            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10731        );
10732        #[allow(unused_mut)]
10733        let mut request = self
10734            .client
10735            .post(url)
10736            .header(
10737                ::reqwest::header::ACCEPT,
10738                ::reqwest::header::HeaderValue::from_static("application/json"),
10739            )
10740            .query(&progenitor_client::QueryParam::new("_async", &async_))
10741            .headers(header_map)
10742            .build()?;
10743        let info = OperationInfo {
10744            operation_id: "job_list",
10745        };
10746        self.pre(&mut request, &info).await?;
10747        let result = self.exec(request, &info).await;
10748        self.post(&result, &info).await?;
10749        let response = result?;
10750        match response.status().as_u16() {
10751            200u16 => ResponseValue::from_response(response).await,
10752            400u16..=499u16 => Err(Error::ErrorResponse(
10753                ResponseValue::from_response(response).await?,
10754            )),
10755            500u16..=599u16 => Err(Error::ErrorResponse(
10756                ResponseValue::from_response(response).await?,
10757            )),
10758            _ => Err(Error::UnexpectedResponse(response)),
10759        }
10760    }
10761
10762    ///Get job status
10763    ///
10764    ///Returns timing, success state, output, and progress for a specific job.
10765    ///
10766    ///Sends a `POST` request to `/job/status`
10767    ///
10768    ///Arguments:
10769    /// - `async_`: Run the command asynchronously. Returns a job id
10770    ///   immediately.
10771    /// - `jobid`: Numeric identifier of the job to query, as returned from an
10772    ///   async call.
10773    pub async fn job_status<'a>(
10774        &'a self,
10775        async_: Option<bool>,
10776        jobid: f64,
10777    ) -> Result<ResponseValue<types::JobStatusResponse>, Error<types::RcError>> {
10778        let url = format!("{}/job/status", self.baseurl,);
10779        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10780        header_map.append(
10781            ::reqwest::header::HeaderName::from_static("api-version"),
10782            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10783        );
10784        #[allow(unused_mut)]
10785        let mut request = self
10786            .client
10787            .post(url)
10788            .header(
10789                ::reqwest::header::ACCEPT,
10790                ::reqwest::header::HeaderValue::from_static("application/json"),
10791            )
10792            .query(&progenitor_client::QueryParam::new("_async", &async_))
10793            .query(&progenitor_client::QueryParam::new("jobid", &jobid))
10794            .headers(header_map)
10795            .build()?;
10796        let info = OperationInfo {
10797            operation_id: "job_status",
10798        };
10799        self.pre(&mut request, &info).await?;
10800        let result = self.exec(request, &info).await;
10801        self.post(&result, &info).await?;
10802        let response = result?;
10803        match response.status().as_u16() {
10804            200u16 => ResponseValue::from_response(response).await,
10805            400u16..=499u16 => Err(Error::ErrorResponse(
10806                ResponseValue::from_response(response).await?,
10807            )),
10808            500u16..=599u16 => Err(Error::ErrorResponse(
10809                ResponseValue::from_response(response).await?,
10810            )),
10811            _ => Err(Error::UnexpectedResponse(response)),
10812        }
10813    }
10814
10815    ///Stop job
10816    ///
10817    ///Attempts to cancel a running job by ID.
10818    ///
10819    ///Sends a `POST` request to `/job/stop`
10820    ///
10821    ///Arguments:
10822    /// - `async_`: Run the command asynchronously. Returns a job id
10823    ///   immediately.
10824    /// - `jobid`: Numeric identifier of the job to cancel.
10825    pub async fn job_stop<'a>(
10826        &'a self,
10827        async_: Option<bool>,
10828        jobid: f64,
10829    ) -> Result<
10830        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
10831        Error<types::RcError>,
10832    > {
10833        let url = format!("{}/job/stop", self.baseurl,);
10834        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10835        header_map.append(
10836            ::reqwest::header::HeaderName::from_static("api-version"),
10837            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10838        );
10839        #[allow(unused_mut)]
10840        let mut request = self
10841            .client
10842            .post(url)
10843            .header(
10844                ::reqwest::header::ACCEPT,
10845                ::reqwest::header::HeaderValue::from_static("application/json"),
10846            )
10847            .query(&progenitor_client::QueryParam::new("_async", &async_))
10848            .query(&progenitor_client::QueryParam::new("jobid", &jobid))
10849            .headers(header_map)
10850            .build()?;
10851        let info = OperationInfo {
10852            operation_id: "job_stop",
10853        };
10854        self.pre(&mut request, &info).await?;
10855        let result = self.exec(request, &info).await;
10856        self.post(&result, &info).await?;
10857        let response = result?;
10858        match response.status().as_u16() {
10859            200u16 => ResponseValue::from_response(response).await,
10860            400u16..=499u16 => Err(Error::ErrorResponse(
10861                ResponseValue::from_response(response).await?,
10862            )),
10863            500u16..=599u16 => Err(Error::ErrorResponse(
10864                ResponseValue::from_response(response).await?,
10865            )),
10866            _ => Err(Error::UnexpectedResponse(response)),
10867        }
10868    }
10869
10870    ///Stop jobs in group
10871    ///
10872    ///Cancels all active jobs associated with the provided stats group.
10873    ///
10874    ///Sends a `POST` request to `/job/stopgroup`
10875    ///
10876    ///Arguments:
10877    /// - `async_`: Run the command asynchronously. Returns a job id
10878    ///   immediately.
10879    /// - `group`: Stats group name whose active jobs should be stopped.
10880    pub async fn job_stopgroup<'a>(
10881        &'a self,
10882        async_: Option<bool>,
10883        group: &'a str,
10884    ) -> Result<
10885        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
10886        Error<types::RcError>,
10887    > {
10888        let url = format!("{}/job/stopgroup", self.baseurl,);
10889        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10890        header_map.append(
10891            ::reqwest::header::HeaderName::from_static("api-version"),
10892            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10893        );
10894        #[allow(unused_mut)]
10895        let mut request = self
10896            .client
10897            .post(url)
10898            .header(
10899                ::reqwest::header::ACCEPT,
10900                ::reqwest::header::HeaderValue::from_static("application/json"),
10901            )
10902            .query(&progenitor_client::QueryParam::new("_async", &async_))
10903            .query(&progenitor_client::QueryParam::new("group", &group))
10904            .headers(header_map)
10905            .build()?;
10906        let info = OperationInfo {
10907            operation_id: "job_stopgroup",
10908        };
10909        self.pre(&mut request, &info).await?;
10910        let result = self.exec(request, &info).await;
10911        self.post(&result, &info).await?;
10912        let response = result?;
10913        match response.status().as_u16() {
10914            200u16 => ResponseValue::from_response(response).await,
10915            400u16..=499u16 => Err(Error::ErrorResponse(
10916                ResponseValue::from_response(response).await?,
10917            )),
10918            500u16..=599u16 => Err(Error::ErrorResponse(
10919                ResponseValue::from_response(response).await?,
10920            )),
10921            _ => Err(Error::UnexpectedResponse(response)),
10922        }
10923    }
10924
10925    ///List objects
10926    ///
10927    ///Lists objects and directories for a remote path, returning the same
10928    /// fields as `rclone lsjson`.
10929    ///
10930    ///Sends a `POST` request to `/operations/list`
10931    ///
10932    ///Arguments:
10933    /// - `async_`: Run the command asynchronously. Returns a job id
10934    ///   immediately.
10935    /// - `group`: Assign the request to a custom stats group.
10936    /// - `dirs_only`: Set to true to return only directory entries.
10937    /// - `files_only`: Set to true to return only file entries.
10938    /// - `fs`: Remote name or path to list, for example `drive:`.
10939    /// - `hash_types`: Specify one or more hash algorithms to include when
10940    ///   `showHash` is true (e.g. `md5`).
10941    /// - `metadata`: Set to true to include backend-provided metadata maps.
10942    /// - `no_mime_type`: Set to true to omit MIME type detection.
10943    /// - `no_mod_time`: Set to true to omit modification times for faster
10944    ///   listings on some backends.
10945    /// - `opt`: Optional JSON-encoded object of listing flags (e.g. `{
10946    ///   "recurse": true, "showHash": true }`).
10947    /// - `recurse`: Set to true to list directories recursively.
10948    /// - `remote`: Directory path within `fs` to list; leave empty to target
10949    ///   the root.
10950    /// - `show_encrypted`: Set to true to include encrypted names when using
10951    ///   crypt remotes.
10952    /// - `show_hash`: Set to true to include hash digests for each entry.
10953    /// - `show_orig_i_ds`: Set to true to include original backend identifiers
10954    ///   where available.
10955    pub async fn operations_list<'a>(
10956        &'a self,
10957        async_: Option<bool>,
10958        group: Option<&'a str>,
10959        dirs_only: Option<bool>,
10960        files_only: Option<bool>,
10961        fs: &'a str,
10962        hash_types: Option<&'a ::std::vec::Vec<::std::string::String>>,
10963        metadata: Option<bool>,
10964        no_mime_type: Option<bool>,
10965        no_mod_time: Option<bool>,
10966        opt: Option<&'a str>,
10967        recurse: Option<bool>,
10968        remote: &'a str,
10969        show_encrypted: Option<bool>,
10970        show_hash: Option<bool>,
10971        show_orig_i_ds: Option<bool>,
10972    ) -> Result<ResponseValue<types::OperationsListResponse>, Error<types::RcError>> {
10973        let url = format!("{}/operations/list", self.baseurl,);
10974        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10975        header_map.append(
10976            ::reqwest::header::HeaderName::from_static("api-version"),
10977            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10978        );
10979        #[allow(unused_mut)]
10980        let mut request = self
10981            .client
10982            .post(url)
10983            .header(
10984                ::reqwest::header::ACCEPT,
10985                ::reqwest::header::HeaderValue::from_static("application/json"),
10986            )
10987            .query(&progenitor_client::QueryParam::new("_async", &async_))
10988            .query(&progenitor_client::QueryParam::new("_group", &group))
10989            .query(&progenitor_client::QueryParam::new("dirsOnly", &dirs_only))
10990            .query(&progenitor_client::QueryParam::new(
10991                "filesOnly",
10992                &files_only,
10993            ))
10994            .query(&progenitor_client::QueryParam::new("fs", &fs))
10995            .query(&progenitor_client::QueryParam::new(
10996                "hashTypes",
10997                &hash_types,
10998            ))
10999            .query(&progenitor_client::QueryParam::new("metadata", &metadata))
11000            .query(&progenitor_client::QueryParam::new(
11001                "noMimeType",
11002                &no_mime_type,
11003            ))
11004            .query(&progenitor_client::QueryParam::new(
11005                "noModTime",
11006                &no_mod_time,
11007            ))
11008            .query(&progenitor_client::QueryParam::new("opt", &opt))
11009            .query(&progenitor_client::QueryParam::new("recurse", &recurse))
11010            .query(&progenitor_client::QueryParam::new("remote", &remote))
11011            .query(&progenitor_client::QueryParam::new(
11012                "showEncrypted",
11013                &show_encrypted,
11014            ))
11015            .query(&progenitor_client::QueryParam::new("showHash", &show_hash))
11016            .query(&progenitor_client::QueryParam::new(
11017                "showOrigIDs",
11018                &show_orig_i_ds,
11019            ))
11020            .headers(header_map)
11021            .build()?;
11022        let info = OperationInfo {
11023            operation_id: "operations_list",
11024        };
11025        self.pre(&mut request, &info).await?;
11026        let result = self.exec(request, &info).await;
11027        self.post(&result, &info).await?;
11028        let response = result?;
11029        match response.status().as_u16() {
11030            200u16 => ResponseValue::from_response(response).await,
11031            400u16..=499u16 => Err(Error::ErrorResponse(
11032                ResponseValue::from_response(response).await?,
11033            )),
11034            500u16..=599u16 => Err(Error::ErrorResponse(
11035                ResponseValue::from_response(response).await?,
11036            )),
11037            _ => Err(Error::UnexpectedResponse(response)),
11038        }
11039    }
11040
11041    ///Stat an object
11042    ///
11043    ///Returns metadata for a single file or directory, mirroring `rclone
11044    /// lsjson` on one entry.
11045    ///
11046    ///Sends a `POST` request to `/operations/stat`
11047    ///
11048    ///Arguments:
11049    /// - `async_`: Run the command asynchronously. Returns a job id
11050    ///   immediately.
11051    /// - `group`: Assign the request to a custom stats group.
11052    /// - `fs`: Remote name or path that contains the item to inspect.
11053    /// - `opt`: Optional JSON object of listing flags, matching those accepted
11054    ///   by `operations/list`.
11055    /// - `remote`: Path to the file or directory within `fs` to describe.
11056    pub async fn operations_stat<'a>(
11057        &'a self,
11058        async_: Option<bool>,
11059        group: Option<&'a str>,
11060        fs: &'a str,
11061        opt: Option<&'a str>,
11062        remote: &'a str,
11063    ) -> Result<ResponseValue<types::OperationsStatResponse>, Error<types::RcError>> {
11064        let url = format!("{}/operations/stat", self.baseurl,);
11065        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11066        header_map.append(
11067            ::reqwest::header::HeaderName::from_static("api-version"),
11068            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11069        );
11070        #[allow(unused_mut)]
11071        let mut request = self
11072            .client
11073            .post(url)
11074            .header(
11075                ::reqwest::header::ACCEPT,
11076                ::reqwest::header::HeaderValue::from_static("application/json"),
11077            )
11078            .query(&progenitor_client::QueryParam::new("_async", &async_))
11079            .query(&progenitor_client::QueryParam::new("_group", &group))
11080            .query(&progenitor_client::QueryParam::new("fs", &fs))
11081            .query(&progenitor_client::QueryParam::new("opt", &opt))
11082            .query(&progenitor_client::QueryParam::new("remote", &remote))
11083            .headers(header_map)
11084            .build()?;
11085        let info = OperationInfo {
11086            operation_id: "operations_stat",
11087        };
11088        self.pre(&mut request, &info).await?;
11089        let result = self.exec(request, &info).await;
11090        self.post(&result, &info).await?;
11091        let response = result?;
11092        match response.status().as_u16() {
11093            200u16 => ResponseValue::from_response(response).await,
11094            400u16..=499u16 => Err(Error::ErrorResponse(
11095                ResponseValue::from_response(response).await?,
11096            )),
11097            500u16..=599u16 => Err(Error::ErrorResponse(
11098                ResponseValue::from_response(response).await?,
11099            )),
11100            _ => Err(Error::UnexpectedResponse(response)),
11101        }
11102    }
11103
11104    ///Get remote quota
11105    ///
11106    ///Returns storage quota and usage details for the remote, equivalent to
11107    /// `rclone about`.
11108    ///
11109    ///Sends a `POST` request to `/operations/about`
11110    ///
11111    ///Arguments:
11112    /// - `async_`: Run the command asynchronously. Returns a job id
11113    ///   immediately.
11114    /// - `group`: Assign the request to a custom stats group.
11115    /// - `fs`: Remote name or path to query for capacity information.
11116    pub async fn operations_about<'a>(
11117        &'a self,
11118        async_: Option<bool>,
11119        group: Option<&'a str>,
11120        fs: &'a str,
11121    ) -> Result<ResponseValue<types::OperationsAboutResponse>, Error<types::RcError>> {
11122        let url = format!("{}/operations/about", self.baseurl,);
11123        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11124        header_map.append(
11125            ::reqwest::header::HeaderName::from_static("api-version"),
11126            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11127        );
11128        #[allow(unused_mut)]
11129        let mut request = self
11130            .client
11131            .post(url)
11132            .header(
11133                ::reqwest::header::ACCEPT,
11134                ::reqwest::header::HeaderValue::from_static("application/json"),
11135            )
11136            .query(&progenitor_client::QueryParam::new("_async", &async_))
11137            .query(&progenitor_client::QueryParam::new("_group", &group))
11138            .query(&progenitor_client::QueryParam::new("fs", &fs))
11139            .headers(header_map)
11140            .build()?;
11141        let info = OperationInfo {
11142            operation_id: "operations_about",
11143        };
11144        self.pre(&mut request, &info).await?;
11145        let result = self.exec(request, &info).await;
11146        self.post(&result, &info).await?;
11147        let response = result?;
11148        match response.status().as_u16() {
11149            200u16 => ResponseValue::from_response(response).await,
11150            400u16..=499u16 => Err(Error::ErrorResponse(
11151                ResponseValue::from_response(response).await?,
11152            )),
11153            500u16..=599u16 => Err(Error::ErrorResponse(
11154                ResponseValue::from_response(response).await?,
11155            )),
11156            _ => Err(Error::UnexpectedResponse(response)),
11157        }
11158    }
11159
11160    ///Upload files via multipart
11161    ///
11162    ///Accepts multipart/form-data payloads and writes the uploaded files to
11163    /// the specified remote path.
11164    ///
11165    ///Sends a `POST` request to `/operations/uploadfile`
11166    ///
11167    ///Arguments:
11168    /// - `async_`: Run the command asynchronously. Returns a job id
11169    ///   immediately.
11170    /// - `group`: Assign the request to a custom stats group.
11171    /// - `fs`: Remote name or path where the uploaded file should be stored.
11172    /// - `remote`: Destination path within `fs` for the uploaded file.
11173    /// - `body`: Multipart form payload containing one or more files to upload.
11174    pub async fn operations_uploadfile<'a, B: Into<reqwest::Body>>(
11175        &'a self,
11176        async_: Option<bool>,
11177        group: Option<&'a str>,
11178        fs: &'a str,
11179        remote: &'a str,
11180        body: B,
11181    ) -> Result<
11182        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
11183        Error<types::RcError>,
11184    > {
11185        let url = format!("{}/operations/uploadfile", self.baseurl,);
11186        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11187        header_map.append(
11188            ::reqwest::header::HeaderName::from_static("api-version"),
11189            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11190        );
11191        #[allow(unused_mut)]
11192        let mut request = self
11193            .client
11194            .post(url)
11195            .header(
11196                ::reqwest::header::ACCEPT,
11197                ::reqwest::header::HeaderValue::from_static("application/json"),
11198            )
11199            .header(
11200                ::reqwest::header::CONTENT_TYPE,
11201                ::reqwest::header::HeaderValue::from_static("application/octet-stream"),
11202            )
11203            .body(body)
11204            .query(&progenitor_client::QueryParam::new("_async", &async_))
11205            .query(&progenitor_client::QueryParam::new("_group", &group))
11206            .query(&progenitor_client::QueryParam::new("fs", &fs))
11207            .query(&progenitor_client::QueryParam::new("remote", &remote))
11208            .headers(header_map)
11209            .build()?;
11210        let info = OperationInfo {
11211            operation_id: "operations_uploadfile",
11212        };
11213        self.pre(&mut request, &info).await?;
11214        let result = self.exec(request, &info).await;
11215        self.post(&result, &info).await?;
11216        let response = result?;
11217        match response.status().as_u16() {
11218            200u16 => ResponseValue::from_response(response).await,
11219            400u16..=499u16 => Err(Error::ErrorResponse(
11220                ResponseValue::from_response(response).await?,
11221            )),
11222            500u16..=599u16 => Err(Error::ErrorResponse(
11223                ResponseValue::from_response(response).await?,
11224            )),
11225            _ => Err(Error::UnexpectedResponse(response)),
11226        }
11227    }
11228
11229    ///Purge directory
11230    ///
11231    ///Deletes a directory or container and all of its contents.
11232    ///
11233    ///Sends a `POST` request to `/operations/purge`
11234    ///
11235    ///Arguments:
11236    /// - `async_`: Run the command asynchronously. Returns a job id
11237    ///   immediately.
11238    /// - `config`: JSON encoded config overrides applied for this call only.
11239    /// - `filter`: JSON encoded filter overrides applied for this call only.
11240    /// - `group`: Assign the request to a custom stats group.
11241    /// - `fs`: Remote name or path from which to remove all contents.
11242    /// - `remote`: Path within `fs` whose contents should be purged.
11243    pub async fn operations_purge<'a>(
11244        &'a self,
11245        async_: Option<bool>,
11246        config: Option<&'a str>,
11247        filter: Option<&'a str>,
11248        group: Option<&'a str>,
11249        fs: &'a str,
11250        remote: &'a str,
11251    ) -> Result<
11252        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
11253        Error<types::RcError>,
11254    > {
11255        let url = format!("{}/operations/purge", self.baseurl,);
11256        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11257        header_map.append(
11258            ::reqwest::header::HeaderName::from_static("api-version"),
11259            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11260        );
11261        #[allow(unused_mut)]
11262        let mut request = self
11263            .client
11264            .post(url)
11265            .header(
11266                ::reqwest::header::ACCEPT,
11267                ::reqwest::header::HeaderValue::from_static("application/json"),
11268            )
11269            .query(&progenitor_client::QueryParam::new("_async", &async_))
11270            .query(&progenitor_client::QueryParam::new("_config", &config))
11271            .query(&progenitor_client::QueryParam::new("_filter", &filter))
11272            .query(&progenitor_client::QueryParam::new("_group", &group))
11273            .query(&progenitor_client::QueryParam::new("fs", &fs))
11274            .query(&progenitor_client::QueryParam::new("remote", &remote))
11275            .headers(header_map)
11276            .build()?;
11277        let info = OperationInfo {
11278            operation_id: "operations_purge",
11279        };
11280        self.pre(&mut request, &info).await?;
11281        let result = self.exec(request, &info).await;
11282        self.post(&result, &info).await?;
11283        let response = result?;
11284        match response.status().as_u16() {
11285            200u16 => ResponseValue::from_response(response).await,
11286            400u16..=499u16 => Err(Error::ErrorResponse(
11287                ResponseValue::from_response(response).await?,
11288            )),
11289            500u16..=599u16 => Err(Error::ErrorResponse(
11290                ResponseValue::from_response(response).await?,
11291            )),
11292            _ => Err(Error::UnexpectedResponse(response)),
11293        }
11294    }
11295
11296    ///Create directory
11297    ///
11298    ///Creates the target directory or container if it does not exist.
11299    ///
11300    ///Sends a `POST` request to `/operations/mkdir`
11301    ///
11302    ///Arguments:
11303    /// - `async_`: Run the command asynchronously. Returns a job id
11304    ///   immediately.
11305    /// - `group`: Assign the request to a custom stats group.
11306    /// - `fs`: Remote name or path in which to create a directory.
11307    /// - `remote`: Directory path within `fs` to create.
11308    pub async fn operations_mkdir<'a>(
11309        &'a self,
11310        async_: Option<bool>,
11311        group: Option<&'a str>,
11312        fs: &'a str,
11313        remote: &'a str,
11314    ) -> Result<
11315        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
11316        Error<types::RcError>,
11317    > {
11318        let url = format!("{}/operations/mkdir", self.baseurl,);
11319        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11320        header_map.append(
11321            ::reqwest::header::HeaderName::from_static("api-version"),
11322            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11323        );
11324        #[allow(unused_mut)]
11325        let mut request = self
11326            .client
11327            .post(url)
11328            .header(
11329                ::reqwest::header::ACCEPT,
11330                ::reqwest::header::HeaderValue::from_static("application/json"),
11331            )
11332            .query(&progenitor_client::QueryParam::new("_async", &async_))
11333            .query(&progenitor_client::QueryParam::new("_group", &group))
11334            .query(&progenitor_client::QueryParam::new("fs", &fs))
11335            .query(&progenitor_client::QueryParam::new("remote", &remote))
11336            .headers(header_map)
11337            .build()?;
11338        let info = OperationInfo {
11339            operation_id: "operations_mkdir",
11340        };
11341        self.pre(&mut request, &info).await?;
11342        let result = self.exec(request, &info).await;
11343        self.post(&result, &info).await?;
11344        let response = result?;
11345        match response.status().as_u16() {
11346            200u16 => ResponseValue::from_response(response).await,
11347            400u16..=499u16 => Err(Error::ErrorResponse(
11348                ResponseValue::from_response(response).await?,
11349            )),
11350            500u16..=599u16 => Err(Error::ErrorResponse(
11351                ResponseValue::from_response(response).await?,
11352            )),
11353            _ => Err(Error::UnexpectedResponse(response)),
11354        }
11355    }
11356
11357    ///Remove empty directory
11358    ///
11359    ///Deletes an empty directory or container.
11360    ///
11361    ///Sends a `POST` request to `/operations/rmdir`
11362    ///
11363    ///Arguments:
11364    /// - `async_`: Run the command asynchronously. Returns a job id
11365    ///   immediately.
11366    /// - `group`: Assign the request to a custom stats group.
11367    /// - `fs`: Remote name or path containing the directory to remove.
11368    /// - `remote`: Directory path within `fs` to delete.
11369    pub async fn operations_rmdir<'a>(
11370        &'a self,
11371        async_: Option<bool>,
11372        group: Option<&'a str>,
11373        fs: &'a str,
11374        remote: &'a str,
11375    ) -> Result<
11376        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
11377        Error<types::RcError>,
11378    > {
11379        let url = format!("{}/operations/rmdir", self.baseurl,);
11380        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11381        header_map.append(
11382            ::reqwest::header::HeaderName::from_static("api-version"),
11383            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11384        );
11385        #[allow(unused_mut)]
11386        let mut request = self
11387            .client
11388            .post(url)
11389            .header(
11390                ::reqwest::header::ACCEPT,
11391                ::reqwest::header::HeaderValue::from_static("application/json"),
11392            )
11393            .query(&progenitor_client::QueryParam::new("_async", &async_))
11394            .query(&progenitor_client::QueryParam::new("_group", &group))
11395            .query(&progenitor_client::QueryParam::new("fs", &fs))
11396            .query(&progenitor_client::QueryParam::new("remote", &remote))
11397            .headers(header_map)
11398            .build()?;
11399        let info = OperationInfo {
11400            operation_id: "operations_rmdir",
11401        };
11402        self.pre(&mut request, &info).await?;
11403        let result = self.exec(request, &info).await;
11404        self.post(&result, &info).await?;
11405        let response = result?;
11406        match response.status().as_u16() {
11407            200u16 => ResponseValue::from_response(response).await,
11408            400u16..=499u16 => Err(Error::ErrorResponse(
11409                ResponseValue::from_response(response).await?,
11410            )),
11411            500u16..=599u16 => Err(Error::ErrorResponse(
11412                ResponseValue::from_response(response).await?,
11413            )),
11414            _ => Err(Error::UnexpectedResponse(response)),
11415        }
11416    }
11417
11418    ///Compare source and destination
11419    ///
11420    ///Compares source and destination trees, reporting matches, differences,
11421    /// and missing files.
11422    ///
11423    ///Sends a `POST` request to `/operations/check`
11424    ///
11425    ///Arguments:
11426    /// - `async_`: Run the command asynchronously. Returns a job id
11427    ///   immediately.
11428    /// - `group`: Assign the request to a custom stats group.
11429    /// - `check_file_fs`: Remote containing the checksum SUM file when using
11430    ///   `checkFileHash`.
11431    /// - `check_file_hash`: Hash name to expect in the supplied SUM file, such
11432    ///   as `md5`.
11433    /// - `check_file_remote`: Path within `checkFileFs` to the checksum SUM
11434    ///   file.
11435    /// - `combined`: Set to true to include a combined summary report in the
11436    ///   response.
11437    /// - `differ`: Set to true to include differing files in the report.
11438    /// - `download`: Set to true to read file contents during comparison
11439    ///   instead of relying on hashes.
11440    /// - `dst_fs`: Destination remote name or path that should match the
11441    ///   source.
11442    /// - `error`: Set to true to include entries that encountered errors.
11443    /// - `match_`: Set to true to include matching files in the report.
11444    /// - `missing_on_dst`: Set to true to report files missing from the
11445    ///   destination.
11446    /// - `missing_on_src`: Set to true to report files missing from the source.
11447    /// - `one_way`: Set to true to only ensure that source files exist on the
11448    ///   destination.
11449    /// - `src_fs`: Source remote name or path to verify, e.g. `drive:`.
11450    pub async fn operations_check<'a>(
11451        &'a self,
11452        async_: Option<bool>,
11453        group: Option<&'a str>,
11454        check_file_fs: Option<&'a str>,
11455        check_file_hash: Option<&'a str>,
11456        check_file_remote: Option<&'a str>,
11457        combined: Option<bool>,
11458        differ: Option<bool>,
11459        download: Option<bool>,
11460        dst_fs: &'a str,
11461        error: Option<bool>,
11462        match_: Option<bool>,
11463        missing_on_dst: Option<bool>,
11464        missing_on_src: Option<bool>,
11465        one_way: Option<bool>,
11466        src_fs: &'a str,
11467    ) -> Result<ResponseValue<types::OperationsCheckResponse>, Error<types::RcError>> {
11468        let url = format!("{}/operations/check", self.baseurl,);
11469        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11470        header_map.append(
11471            ::reqwest::header::HeaderName::from_static("api-version"),
11472            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11473        );
11474        #[allow(unused_mut)]
11475        let mut request = self
11476            .client
11477            .post(url)
11478            .header(
11479                ::reqwest::header::ACCEPT,
11480                ::reqwest::header::HeaderValue::from_static("application/json"),
11481            )
11482            .query(&progenitor_client::QueryParam::new("_async", &async_))
11483            .query(&progenitor_client::QueryParam::new("_group", &group))
11484            .query(&progenitor_client::QueryParam::new(
11485                "checkFileFs",
11486                &check_file_fs,
11487            ))
11488            .query(&progenitor_client::QueryParam::new(
11489                "checkFileHash",
11490                &check_file_hash,
11491            ))
11492            .query(&progenitor_client::QueryParam::new(
11493                "checkFileRemote",
11494                &check_file_remote,
11495            ))
11496            .query(&progenitor_client::QueryParam::new("combined", &combined))
11497            .query(&progenitor_client::QueryParam::new("differ", &differ))
11498            .query(&progenitor_client::QueryParam::new("download", &download))
11499            .query(&progenitor_client::QueryParam::new("dstFs", &dst_fs))
11500            .query(&progenitor_client::QueryParam::new("error", &error))
11501            .query(&progenitor_client::QueryParam::new("match", &match_))
11502            .query(&progenitor_client::QueryParam::new(
11503                "missingOnDst",
11504                &missing_on_dst,
11505            ))
11506            .query(&progenitor_client::QueryParam::new(
11507                "missingOnSrc",
11508                &missing_on_src,
11509            ))
11510            .query(&progenitor_client::QueryParam::new("oneWay", &one_way))
11511            .query(&progenitor_client::QueryParam::new("srcFs", &src_fs))
11512            .headers(header_map)
11513            .build()?;
11514        let info = OperationInfo {
11515            operation_id: "operations_check",
11516        };
11517        self.pre(&mut request, &info).await?;
11518        let result = self.exec(request, &info).await;
11519        self.post(&result, &info).await?;
11520        let response = result?;
11521        match response.status().as_u16() {
11522            200u16 => ResponseValue::from_response(response).await,
11523            400u16..=499u16 => Err(Error::ErrorResponse(
11524                ResponseValue::from_response(response).await?,
11525            )),
11526            500u16..=599u16 => Err(Error::ErrorResponse(
11527                ResponseValue::from_response(response).await?,
11528            )),
11529            _ => Err(Error::UnexpectedResponse(response)),
11530        }
11531    }
11532
11533    ///Sync source to destination
11534    ///
11535    ///Synchronises a source remote to a destination remote, making the
11536    /// destination match the source.
11537    ///
11538    ///Sends a `POST` request to `/sync/sync`
11539    ///
11540    ///Arguments:
11541    /// - `async_`: Run the command asynchronously. Returns a job id
11542    ///   immediately.
11543    /// - `config`: JSON encoded config overrides applied for this call only.
11544    /// - `filter`: JSON encoded filter overrides applied for this call only.
11545    /// - `group`: Assign the request to a custom stats group.
11546    /// - `create_empty_src_dirs`: Set to true to create empty source
11547    ///   directories on the destination.
11548    /// - `dst_fs`: Destination remote path to sync to, e.g. `drive:dst`.
11549    /// - `src_fs`: Source remote path to sync from, e.g. `drive:src`.
11550    pub async fn sync_sync<'a>(
11551        &'a self,
11552        async_: Option<bool>,
11553        config: Option<&'a str>,
11554        filter: Option<&'a str>,
11555        group: Option<&'a str>,
11556        create_empty_src_dirs: Option<bool>,
11557        dst_fs: &'a str,
11558        src_fs: &'a str,
11559    ) -> Result<
11560        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
11561        Error<types::RcError>,
11562    > {
11563        let url = format!("{}/sync/sync", self.baseurl,);
11564        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11565        header_map.append(
11566            ::reqwest::header::HeaderName::from_static("api-version"),
11567            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11568        );
11569        #[allow(unused_mut)]
11570        let mut request = self
11571            .client
11572            .post(url)
11573            .header(
11574                ::reqwest::header::ACCEPT,
11575                ::reqwest::header::HeaderValue::from_static("application/json"),
11576            )
11577            .query(&progenitor_client::QueryParam::new("_async", &async_))
11578            .query(&progenitor_client::QueryParam::new("_config", &config))
11579            .query(&progenitor_client::QueryParam::new("_filter", &filter))
11580            .query(&progenitor_client::QueryParam::new("_group", &group))
11581            .query(&progenitor_client::QueryParam::new(
11582                "createEmptySrcDirs",
11583                &create_empty_src_dirs,
11584            ))
11585            .query(&progenitor_client::QueryParam::new("dstFs", &dst_fs))
11586            .query(&progenitor_client::QueryParam::new("srcFs", &src_fs))
11587            .headers(header_map)
11588            .build()?;
11589        let info = OperationInfo {
11590            operation_id: "sync_sync",
11591        };
11592        self.pre(&mut request, &info).await?;
11593        let result = self.exec(request, &info).await;
11594        self.post(&result, &info).await?;
11595        let response = result?;
11596        match response.status().as_u16() {
11597            200u16 => ResponseValue::from_response(response).await,
11598            400u16..=499u16 => Err(Error::ErrorResponse(
11599                ResponseValue::from_response(response).await?,
11600            )),
11601            500u16..=599u16 => Err(Error::ErrorResponse(
11602                ResponseValue::from_response(response).await?,
11603            )),
11604            _ => Err(Error::UnexpectedResponse(response)),
11605        }
11606    }
11607
11608    ///Copy source to destination
11609    ///
11610    ///Copies objects from a source remote to a destination remote without
11611    /// deleting destination files.
11612    ///
11613    ///Sends a `POST` request to `/sync/copy`
11614    ///
11615    ///Arguments:
11616    /// - `async_`: Run the command asynchronously. Returns a job id
11617    ///   immediately.
11618    /// - `config`: JSON encoded config overrides applied for this call only.
11619    /// - `filter`: JSON encoded filter overrides applied for this call only.
11620    /// - `group`: Assign the request to a custom stats group.
11621    /// - `create_empty_src_dirs`: Set to true to replicate empty source
11622    ///   directories on the destination.
11623    /// - `dst_fs`: Destination remote path to copy to.
11624    /// - `src_fs`: Source remote path to copy from.
11625    pub async fn sync_copy<'a>(
11626        &'a self,
11627        async_: Option<bool>,
11628        config: Option<&'a str>,
11629        filter: Option<&'a str>,
11630        group: Option<&'a str>,
11631        create_empty_src_dirs: Option<bool>,
11632        dst_fs: &'a str,
11633        src_fs: &'a str,
11634    ) -> Result<
11635        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
11636        Error<types::RcError>,
11637    > {
11638        let url = format!("{}/sync/copy", self.baseurl,);
11639        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11640        header_map.append(
11641            ::reqwest::header::HeaderName::from_static("api-version"),
11642            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11643        );
11644        #[allow(unused_mut)]
11645        let mut request = self
11646            .client
11647            .post(url)
11648            .header(
11649                ::reqwest::header::ACCEPT,
11650                ::reqwest::header::HeaderValue::from_static("application/json"),
11651            )
11652            .query(&progenitor_client::QueryParam::new("_async", &async_))
11653            .query(&progenitor_client::QueryParam::new("_config", &config))
11654            .query(&progenitor_client::QueryParam::new("_filter", &filter))
11655            .query(&progenitor_client::QueryParam::new("_group", &group))
11656            .query(&progenitor_client::QueryParam::new(
11657                "createEmptySrcDirs",
11658                &create_empty_src_dirs,
11659            ))
11660            .query(&progenitor_client::QueryParam::new("dstFs", &dst_fs))
11661            .query(&progenitor_client::QueryParam::new("srcFs", &src_fs))
11662            .headers(header_map)
11663            .build()?;
11664        let info = OperationInfo {
11665            operation_id: "sync_copy",
11666        };
11667        self.pre(&mut request, &info).await?;
11668        let result = self.exec(request, &info).await;
11669        self.post(&result, &info).await?;
11670        let response = result?;
11671        match response.status().as_u16() {
11672            200u16 => ResponseValue::from_response(response).await,
11673            400u16..=499u16 => Err(Error::ErrorResponse(
11674                ResponseValue::from_response(response).await?,
11675            )),
11676            500u16..=599u16 => Err(Error::ErrorResponse(
11677                ResponseValue::from_response(response).await?,
11678            )),
11679            _ => Err(Error::UnexpectedResponse(response)),
11680        }
11681    }
11682
11683    ///Move source to destination
11684    ///
11685    ///Moves objects from a source remote to a destination remote, optionally
11686    /// cleaning up empty directories.
11687    ///
11688    ///Sends a `POST` request to `/sync/move`
11689    ///
11690    ///Arguments:
11691    /// - `async_`: Run the command asynchronously. Returns a job id
11692    ///   immediately.
11693    /// - `config`: JSON encoded config overrides applied for this call only.
11694    /// - `filter`: JSON encoded filter overrides applied for this call only.
11695    /// - `group`: Assign the request to a custom stats group.
11696    /// - `create_empty_src_dirs`: Set to true to create empty source
11697    ///   directories on the destination.
11698    /// - `delete_empty_src_dirs`: Set to true to delete empty directories from
11699    ///   the source after the move completes.
11700    /// - `dst_fs`: Destination remote path that will receive moved files.
11701    /// - `src_fs`: Source remote path whose contents will be moved.
11702    pub async fn sync_move<'a>(
11703        &'a self,
11704        async_: Option<bool>,
11705        config: Option<&'a str>,
11706        filter: Option<&'a str>,
11707        group: Option<&'a str>,
11708        create_empty_src_dirs: Option<bool>,
11709        delete_empty_src_dirs: Option<bool>,
11710        dst_fs: &'a str,
11711        src_fs: &'a str,
11712    ) -> Result<
11713        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
11714        Error<types::RcError>,
11715    > {
11716        let url = format!("{}/sync/move", self.baseurl,);
11717        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11718        header_map.append(
11719            ::reqwest::header::HeaderName::from_static("api-version"),
11720            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11721        );
11722        #[allow(unused_mut)]
11723        let mut request = self
11724            .client
11725            .post(url)
11726            .header(
11727                ::reqwest::header::ACCEPT,
11728                ::reqwest::header::HeaderValue::from_static("application/json"),
11729            )
11730            .query(&progenitor_client::QueryParam::new("_async", &async_))
11731            .query(&progenitor_client::QueryParam::new("_config", &config))
11732            .query(&progenitor_client::QueryParam::new("_filter", &filter))
11733            .query(&progenitor_client::QueryParam::new("_group", &group))
11734            .query(&progenitor_client::QueryParam::new(
11735                "createEmptySrcDirs",
11736                &create_empty_src_dirs,
11737            ))
11738            .query(&progenitor_client::QueryParam::new(
11739                "deleteEmptySrcDirs",
11740                &delete_empty_src_dirs,
11741            ))
11742            .query(&progenitor_client::QueryParam::new("dstFs", &dst_fs))
11743            .query(&progenitor_client::QueryParam::new("srcFs", &src_fs))
11744            .headers(header_map)
11745            .build()?;
11746        let info = OperationInfo {
11747            operation_id: "sync_move",
11748        };
11749        self.pre(&mut request, &info).await?;
11750        let result = self.exec(request, &info).await;
11751        self.post(&result, &info).await?;
11752        let response = result?;
11753        match response.status().as_u16() {
11754            200u16 => ResponseValue::from_response(response).await,
11755            400u16..=499u16 => Err(Error::ErrorResponse(
11756                ResponseValue::from_response(response).await?,
11757            )),
11758            500u16..=599u16 => Err(Error::ErrorResponse(
11759                ResponseValue::from_response(response).await?,
11760            )),
11761            _ => Err(Error::UnexpectedResponse(response)),
11762        }
11763    }
11764
11765    ///Bidirectional sync
11766    ///
11767    ///Performs a bidirectional synchronisation between two paths, supporting
11768    /// safety checks and recovery options.
11769    ///
11770    ///Sends a `POST` request to `/sync/bisync`
11771    ///
11772    ///Arguments:
11773    /// - `async_`: Run the command asynchronously. Returns a job id
11774    ///   immediately.
11775    /// - `config`: JSON encoded config overrides applied for this call only.
11776    /// - `filter`: JSON encoded filter overrides applied for this call only.
11777    /// - `group`: Assign the request to a custom stats group.
11778    /// - `backupdir1`: Backup directory on the first remote for changed files.
11779    /// - `backupdir2`: Backup directory on the second remote for changed files.
11780    /// - `check_access`: Set to true to abort if `RCLONE_TEST` files are
11781    ///   missing on either side.
11782    /// - `check_filename`: Override the access-check sentinel filename;
11783    ///   defaults to `RCLONE_TEST`.
11784    /// - `check_sync`: Controls final listing comparison; leave true for normal
11785    ///   verification or set false to skip.
11786    /// - `create_empty_src_dirs`: Set to true to mirror empty directories
11787    ///   between the two paths.
11788    /// - `dry_run`: Set to true to simulate the bisync run without making
11789    ///   changes.
11790    /// - `filters_file`: Path to an rclone filters file applied to both paths.
11791    /// - `force`: Set to true to bypass the `maxDelete` safety check.
11792    /// - `ignore_listing_checksum`: Set to true to ignore checksum differences
11793    ///   when comparing listings.
11794    /// - `max_delete`: Abort the run if deletions exceed this percentage
11795    ///   (default 50).
11796    /// - `no_cleanup`: Set to true to keep bisync working files after
11797    ///   completion.
11798    /// - `path1`: First remote directory, e.g. `drive:path1`.
11799    /// - `path2`: Second remote directory, e.g. `drive:path2`.
11800    /// - `remove_empty_dirs`: Set to true to remove empty directories during
11801    ///   cleanup.
11802    /// - `resilient`: Set to true to allow retrying after certain recoverable
11803    ///   errors.
11804    /// - `resync`: Set to true to perform a one-time resync, rebuilding bisync
11805    ///   history.
11806    /// - `workdir`: Directory path used to store bisync working files.
11807    pub async fn sync_bisync<'a>(
11808        &'a self,
11809        async_: Option<bool>,
11810        config: Option<&'a str>,
11811        filter: Option<&'a str>,
11812        group: Option<&'a str>,
11813        backupdir1: Option<&'a str>,
11814        backupdir2: Option<&'a str>,
11815        check_access: Option<bool>,
11816        check_filename: Option<&'a str>,
11817        check_sync: Option<bool>,
11818        create_empty_src_dirs: Option<bool>,
11819        dry_run: Option<bool>,
11820        filters_file: Option<&'a str>,
11821        force: Option<bool>,
11822        ignore_listing_checksum: Option<bool>,
11823        max_delete: Option<f64>,
11824        no_cleanup: Option<bool>,
11825        path1: &'a str,
11826        path2: &'a str,
11827        remove_empty_dirs: Option<bool>,
11828        resilient: Option<bool>,
11829        resync: Option<bool>,
11830        workdir: Option<&'a str>,
11831    ) -> Result<
11832        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
11833        Error<types::RcError>,
11834    > {
11835        let url = format!("{}/sync/bisync", self.baseurl,);
11836        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11837        header_map.append(
11838            ::reqwest::header::HeaderName::from_static("api-version"),
11839            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11840        );
11841        #[allow(unused_mut)]
11842        let mut request = self
11843            .client
11844            .post(url)
11845            .header(
11846                ::reqwest::header::ACCEPT,
11847                ::reqwest::header::HeaderValue::from_static("application/json"),
11848            )
11849            .query(&progenitor_client::QueryParam::new("_async", &async_))
11850            .query(&progenitor_client::QueryParam::new("_config", &config))
11851            .query(&progenitor_client::QueryParam::new("_filter", &filter))
11852            .query(&progenitor_client::QueryParam::new("_group", &group))
11853            .query(&progenitor_client::QueryParam::new(
11854                "backupdir1",
11855                &backupdir1,
11856            ))
11857            .query(&progenitor_client::QueryParam::new(
11858                "backupdir2",
11859                &backupdir2,
11860            ))
11861            .query(&progenitor_client::QueryParam::new(
11862                "checkAccess",
11863                &check_access,
11864            ))
11865            .query(&progenitor_client::QueryParam::new(
11866                "checkFilename",
11867                &check_filename,
11868            ))
11869            .query(&progenitor_client::QueryParam::new(
11870                "checkSync",
11871                &check_sync,
11872            ))
11873            .query(&progenitor_client::QueryParam::new(
11874                "createEmptySrcDirs",
11875                &create_empty_src_dirs,
11876            ))
11877            .query(&progenitor_client::QueryParam::new("dryRun", &dry_run))
11878            .query(&progenitor_client::QueryParam::new(
11879                "filtersFile",
11880                &filters_file,
11881            ))
11882            .query(&progenitor_client::QueryParam::new("force", &force))
11883            .query(&progenitor_client::QueryParam::new(
11884                "ignoreListingChecksum",
11885                &ignore_listing_checksum,
11886            ))
11887            .query(&progenitor_client::QueryParam::new(
11888                "maxDelete",
11889                &max_delete,
11890            ))
11891            .query(&progenitor_client::QueryParam::new(
11892                "noCleanup",
11893                &no_cleanup,
11894            ))
11895            .query(&progenitor_client::QueryParam::new("path1", &path1))
11896            .query(&progenitor_client::QueryParam::new("path2", &path2))
11897            .query(&progenitor_client::QueryParam::new(
11898                "removeEmptyDirs",
11899                &remove_empty_dirs,
11900            ))
11901            .query(&progenitor_client::QueryParam::new("resilient", &resilient))
11902            .query(&progenitor_client::QueryParam::new("resync", &resync))
11903            .query(&progenitor_client::QueryParam::new("workdir", &workdir))
11904            .headers(header_map)
11905            .build()?;
11906        let info = OperationInfo {
11907            operation_id: "sync_bisync",
11908        };
11909        self.pre(&mut request, &info).await?;
11910        let result = self.exec(request, &info).await;
11911        self.post(&result, &info).await?;
11912        let response = result?;
11913        match response.status().as_u16() {
11914            200u16 => ResponseValue::from_response(response).await,
11915            400u16..=499u16 => Err(Error::ErrorResponse(
11916                ResponseValue::from_response(response).await?,
11917            )),
11918            500u16..=599u16 => Err(Error::ErrorResponse(
11919                ResponseValue::from_response(response).await?,
11920            )),
11921            _ => Err(Error::UnexpectedResponse(response)),
11922        }
11923    }
11924
11925    ///List option blocks
11926    ///
11927    ///Returns the names of option blocks that can be queried or updated.
11928    ///
11929    ///Sends a `POST` request to `/options/blocks`
11930    ///
11931    ///Arguments:
11932    /// - `async_`: Run the command asynchronously. Returns a job id
11933    ///   immediately.
11934    /// - `group`: Assign the request to a custom stats group.
11935    pub async fn options_blocks<'a>(
11936        &'a self,
11937        async_: Option<bool>,
11938        group: Option<&'a str>,
11939    ) -> Result<ResponseValue<types::OptionsBlocksResponse>, Error<types::RcError>> {
11940        let url = format!("{}/options/blocks", self.baseurl,);
11941        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11942        header_map.append(
11943            ::reqwest::header::HeaderName::from_static("api-version"),
11944            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11945        );
11946        #[allow(unused_mut)]
11947        let mut request = self
11948            .client
11949            .post(url)
11950            .header(
11951                ::reqwest::header::ACCEPT,
11952                ::reqwest::header::HeaderValue::from_static("application/json"),
11953            )
11954            .query(&progenitor_client::QueryParam::new("_async", &async_))
11955            .query(&progenitor_client::QueryParam::new("_group", &group))
11956            .headers(header_map)
11957            .build()?;
11958        let info = OperationInfo {
11959            operation_id: "options_blocks",
11960        };
11961        self.pre(&mut request, &info).await?;
11962        let result = self.exec(request, &info).await;
11963        self.post(&result, &info).await?;
11964        let response = result?;
11965        match response.status().as_u16() {
11966            200u16 => ResponseValue::from_response(response).await,
11967            400u16..=499u16 => Err(Error::ErrorResponse(
11968                ResponseValue::from_response(response).await?,
11969            )),
11970            500u16..=599u16 => Err(Error::ErrorResponse(
11971                ResponseValue::from_response(response).await?,
11972            )),
11973            _ => Err(Error::UnexpectedResponse(response)),
11974        }
11975    }
11976
11977    ///Get option values
11978    ///
11979    ///Returns the current global option values, optionally filtered by block.
11980    ///
11981    ///Sends a `POST` request to `/options/get`
11982    ///
11983    ///Arguments:
11984    /// - `async_`: Run the command asynchronously. Returns a job id
11985    ///   immediately.
11986    /// - `group`: Assign the request to a custom stats group.
11987    /// - `blocks`: Optional comma-separated list of option block names to
11988    ///   return.
11989    pub async fn options_get<'a>(
11990        &'a self,
11991        async_: Option<bool>,
11992        group: Option<&'a str>,
11993        blocks: Option<&'a str>,
11994    ) -> Result<ResponseValue<types::OptionsGetResponse>, Error<types::RcError>> {
11995        let url = format!("{}/options/get", self.baseurl,);
11996        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11997        header_map.append(
11998            ::reqwest::header::HeaderName::from_static("api-version"),
11999            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12000        );
12001        #[allow(unused_mut)]
12002        let mut request = self
12003            .client
12004            .post(url)
12005            .header(
12006                ::reqwest::header::ACCEPT,
12007                ::reqwest::header::HeaderValue::from_static("application/json"),
12008            )
12009            .query(&progenitor_client::QueryParam::new("_async", &async_))
12010            .query(&progenitor_client::QueryParam::new("_group", &group))
12011            .query(&progenitor_client::QueryParam::new("blocks", &blocks))
12012            .headers(header_map)
12013            .build()?;
12014        let info = OperationInfo {
12015            operation_id: "options_get",
12016        };
12017        self.pre(&mut request, &info).await?;
12018        let result = self.exec(request, &info).await;
12019        self.post(&result, &info).await?;
12020        let response = result?;
12021        match response.status().as_u16() {
12022            200u16 => ResponseValue::from_response(response).await,
12023            400u16..=499u16 => Err(Error::ErrorResponse(
12024                ResponseValue::from_response(response).await?,
12025            )),
12026            500u16..=599u16 => Err(Error::ErrorResponse(
12027                ResponseValue::from_response(response).await?,
12028            )),
12029            _ => Err(Error::UnexpectedResponse(response)),
12030        }
12031    }
12032
12033    ///Describe options
12034    ///
12035    ///Returns metadata for options, including help text and defaults, grouped
12036    /// by block.
12037    ///
12038    ///Sends a `POST` request to `/options/info`
12039    ///
12040    ///Arguments:
12041    /// - `async_`: Run the command asynchronously. Returns a job id
12042    ///   immediately.
12043    /// - `group`: Assign the request to a custom stats group.
12044    /// - `blocks`: Optional comma-separated list of option block names to
12045    ///   describe.
12046    pub async fn options_info<'a>(
12047        &'a self,
12048        async_: Option<bool>,
12049        group: Option<&'a str>,
12050        blocks: Option<&'a str>,
12051    ) -> Result<ResponseValue<types::OptionsInfoResponse>, Error<types::RcError>> {
12052        let url = format!("{}/options/info", self.baseurl,);
12053        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12054        header_map.append(
12055            ::reqwest::header::HeaderName::from_static("api-version"),
12056            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12057        );
12058        #[allow(unused_mut)]
12059        let mut request = self
12060            .client
12061            .post(url)
12062            .header(
12063                ::reqwest::header::ACCEPT,
12064                ::reqwest::header::HeaderValue::from_static("application/json"),
12065            )
12066            .query(&progenitor_client::QueryParam::new("_async", &async_))
12067            .query(&progenitor_client::QueryParam::new("_group", &group))
12068            .query(&progenitor_client::QueryParam::new("blocks", &blocks))
12069            .headers(header_map)
12070            .build()?;
12071        let info = OperationInfo {
12072            operation_id: "options_info",
12073        };
12074        self.pre(&mut request, &info).await?;
12075        let result = self.exec(request, &info).await;
12076        self.post(&result, &info).await?;
12077        let response = result?;
12078        match response.status().as_u16() {
12079            200u16 => ResponseValue::from_response(response).await,
12080            400u16..=499u16 => Err(Error::ErrorResponse(
12081                ResponseValue::from_response(response).await?,
12082            )),
12083            500u16..=599u16 => Err(Error::ErrorResponse(
12084                ResponseValue::from_response(response).await?,
12085            )),
12086            _ => Err(Error::UnexpectedResponse(response)),
12087        }
12088    }
12089
12090    ///Set option values
12091    ///
12092    ///Sets temporary option overrides for the running process by supplying
12093    /// key/value pairs grouped under option block names. Provide one or more
12094    /// query parameters whose names match the blocks you want to modify (for
12095    /// example `main`, `rc`, `http`). Each block parameter carries an object of
12096    /// option overrides.
12097    ///
12098    ///
12099    ///Sends a `POST` request to `/options/set`
12100    ///
12101    ///Arguments:
12102    /// - `async_`: Run the command asynchronously. Returns a job id
12103    ///   immediately.
12104    /// - `group`: Assign the request to a custom stats group.
12105    /// - `dlna`: Overrides for the `dlna` option block.
12106    /// - `filter`: Overrides for the `filter` option block.
12107    /// - `ftp`: Overrides for the `ftp` option block.
12108    /// - `http`: Overrides for the `http` option block.
12109    /// - `log`: Overrides for the `log` option block.
12110    /// - `main`: Overrides for the `main` option block.
12111    /// - `mount`: Overrides for the `mount` option block.
12112    /// - `nfs`: Overrides for the `nfs` option block.
12113    /// - `proxy`: Overrides for the `proxy` option block.
12114    /// - `rc`: Overrides for the `rc` option block.
12115    /// - `restic`: Overrides for the `restic` option block.
12116    /// - `s3`: Overrides for the `s3` option block.
12117    /// - `sftp`: Overrides for the `sftp` option block.
12118    /// - `vfs`: Overrides for the `vfs` option block.
12119    /// - `webdav`: Overrides for the `webdav` option block.
12120    pub async fn options_set<'a>(
12121        &'a self,
12122        async_: Option<bool>,
12123        group: Option<&'a str>,
12124        dlna: Option<
12125            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetDlnaValue>,
12126        >,
12127        filter: Option<
12128            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetFilterValue>,
12129        >,
12130        ftp: Option<
12131            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetFtpValue>,
12132        >,
12133        http: Option<
12134            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetHttpValue>,
12135        >,
12136        log: Option<
12137            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetLogValue>,
12138        >,
12139        main: Option<
12140            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetMainValue>,
12141        >,
12142        mount: Option<
12143            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetMountValue>,
12144        >,
12145        nfs: Option<
12146            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetNfsValue>,
12147        >,
12148        proxy: Option<
12149            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetProxyValue>,
12150        >,
12151        rc: Option<
12152            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetRcValue>,
12153        >,
12154        restic: Option<
12155            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetResticValue>,
12156        >,
12157        s3: Option<
12158            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetS3Value>,
12159        >,
12160        sftp: Option<
12161            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetSftpValue>,
12162        >,
12163        vfs: Option<
12164            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetVfsValue>,
12165        >,
12166        webdav: Option<
12167            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetWebdavValue>,
12168        >,
12169    ) -> Result<
12170        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
12171        Error<types::RcError>,
12172    > {
12173        let url = format!("{}/options/set", self.baseurl,);
12174        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12175        header_map.append(
12176            ::reqwest::header::HeaderName::from_static("api-version"),
12177            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12178        );
12179        #[allow(unused_mut)]
12180        let mut request = self
12181            .client
12182            .post(url)
12183            .header(
12184                ::reqwest::header::ACCEPT,
12185                ::reqwest::header::HeaderValue::from_static("application/json"),
12186            )
12187            .query(&progenitor_client::QueryParam::new("_async", &async_))
12188            .query(&progenitor_client::QueryParam::new("_group", &group))
12189            .query(&progenitor_client::QueryParam::new("dlna", &dlna))
12190            .query(&progenitor_client::QueryParam::new("filter", &filter))
12191            .query(&progenitor_client::QueryParam::new("ftp", &ftp))
12192            .query(&progenitor_client::QueryParam::new("http", &http))
12193            .query(&progenitor_client::QueryParam::new("log", &log))
12194            .query(&progenitor_client::QueryParam::new("main", &main))
12195            .query(&progenitor_client::QueryParam::new("mount", &mount))
12196            .query(&progenitor_client::QueryParam::new("nfs", &nfs))
12197            .query(&progenitor_client::QueryParam::new("proxy", &proxy))
12198            .query(&progenitor_client::QueryParam::new("rc", &rc))
12199            .query(&progenitor_client::QueryParam::new("restic", &restic))
12200            .query(&progenitor_client::QueryParam::new("s3", &s3))
12201            .query(&progenitor_client::QueryParam::new("sftp", &sftp))
12202            .query(&progenitor_client::QueryParam::new("vfs", &vfs))
12203            .query(&progenitor_client::QueryParam::new("webdav", &webdav))
12204            .headers(header_map)
12205            .build()?;
12206        let info = OperationInfo {
12207            operation_id: "options_set",
12208        };
12209        self.pre(&mut request, &info).await?;
12210        let result = self.exec(request, &info).await;
12211        self.post(&result, &info).await?;
12212        let response = result?;
12213        match response.status().as_u16() {
12214            200u16 => ResponseValue::from_response(response).await,
12215            400u16..=499u16 => Err(Error::ErrorResponse(
12216                ResponseValue::from_response(response).await?,
12217            )),
12218            500u16..=599u16 => Err(Error::ErrorResponse(
12219                ResponseValue::from_response(response).await?,
12220            )),
12221            _ => Err(Error::UnexpectedResponse(response)),
12222        }
12223    }
12224
12225    ///Show effective options
12226    ///
12227    ///Returns the current effective options for this request, including
12228    /// `_config` and `_filter` overrides.
12229    ///
12230    ///Sends a `POST` request to `/options/local`
12231    ///
12232    ///Arguments:
12233    /// - `async_`: Run the command asynchronously. Returns a job id
12234    ///   immediately.
12235    /// - `group`: Assign the request to a custom stats group.
12236    pub async fn options_local<'a>(
12237        &'a self,
12238        async_: Option<bool>,
12239        group: Option<&'a str>,
12240    ) -> Result<ResponseValue<types::OptionsLocalResponse>, Error<types::RcError>> {
12241        let url = format!("{}/options/local", self.baseurl,);
12242        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12243        header_map.append(
12244            ::reqwest::header::HeaderName::from_static("api-version"),
12245            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12246        );
12247        #[allow(unused_mut)]
12248        let mut request = self
12249            .client
12250            .post(url)
12251            .header(
12252                ::reqwest::header::ACCEPT,
12253                ::reqwest::header::HeaderValue::from_static("application/json"),
12254            )
12255            .query(&progenitor_client::QueryParam::new("_async", &async_))
12256            .query(&progenitor_client::QueryParam::new("_group", &group))
12257            .headers(header_map)
12258            .build()?;
12259        let info = OperationInfo {
12260            operation_id: "options_local",
12261        };
12262        self.pre(&mut request, &info).await?;
12263        let result = self.exec(request, &info).await;
12264        self.post(&result, &info).await?;
12265        let response = result?;
12266        match response.status().as_u16() {
12267            200u16 => ResponseValue::from_response(response).await,
12268            400u16..=499u16 => Err(Error::ErrorResponse(
12269                ResponseValue::from_response(response).await?,
12270            )),
12271            500u16..=599u16 => Err(Error::ErrorResponse(
12272                ResponseValue::from_response(response).await?,
12273            )),
12274            _ => Err(Error::UnexpectedResponse(response)),
12275        }
12276    }
12277
12278    ///List serve instances
12279    ///
12280    ///Returns all running `rclone serve` instances with their IDs and options.
12281    ///
12282    ///Sends a `POST` request to `/serve/list`
12283    ///
12284    ///Arguments:
12285    /// - `async_`: Run the command asynchronously. Returns a job id
12286    ///   immediately.
12287    /// - `group`: Assign the request to a custom stats group.
12288    pub async fn serve_list<'a>(
12289        &'a self,
12290        async_: Option<bool>,
12291        group: Option<&'a str>,
12292    ) -> Result<ResponseValue<types::ServeListResponse>, Error<types::RcError>> {
12293        let url = format!("{}/serve/list", self.baseurl,);
12294        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12295        header_map.append(
12296            ::reqwest::header::HeaderName::from_static("api-version"),
12297            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12298        );
12299        #[allow(unused_mut)]
12300        let mut request = self
12301            .client
12302            .post(url)
12303            .header(
12304                ::reqwest::header::ACCEPT,
12305                ::reqwest::header::HeaderValue::from_static("application/json"),
12306            )
12307            .query(&progenitor_client::QueryParam::new("_async", &async_))
12308            .query(&progenitor_client::QueryParam::new("_group", &group))
12309            .headers(header_map)
12310            .build()?;
12311        let info = OperationInfo {
12312            operation_id: "serve_list",
12313        };
12314        self.pre(&mut request, &info).await?;
12315        let result = self.exec(request, &info).await;
12316        self.post(&result, &info).await?;
12317        let response = result?;
12318        match response.status().as_u16() {
12319            200u16 => ResponseValue::from_response(response).await,
12320            400u16..=499u16 => Err(Error::ErrorResponse(
12321                ResponseValue::from_response(response).await?,
12322            )),
12323            500u16..=599u16 => Err(Error::ErrorResponse(
12324                ResponseValue::from_response(response).await?,
12325            )),
12326            _ => Err(Error::UnexpectedResponse(response)),
12327        }
12328    }
12329
12330    ///Start serve instance
12331    ///
12332    ///Launches a new `rclone serve` endpoint (http, webdav, ftp, etc.) with
12333    /// the provided parameters.
12334    ///
12335    ///Sends a `POST` request to `/serve/start`
12336    ///
12337    ///Arguments:
12338    /// - `async_`: Run the command asynchronously. Returns a job id
12339    ///   immediately.
12340    /// - `config`: JSON encoded config overrides applied for this call only.
12341    /// - `filter`: JSON encoded filter overrides applied for this call only.
12342    /// - `group`: Assign the request to a custom stats group.
12343    /// - `addr`: Address and port to bind the server to, such as `:5572` or
12344    ///   `localhost:8080`.
12345    /// - `fs`: Remote path that will be served.
12346    /// - `params`: Additional arbitrary parameters allowed.
12347    /// - `type_`: Type of server to start (e.g. `http`, `webdav`, `ftp`,
12348    ///   `sftp`).
12349    pub async fn serve_start<'a>(
12350        &'a self,
12351        async_: Option<bool>,
12352        config: Option<&'a str>,
12353        filter: Option<&'a str>,
12354        group: Option<&'a str>,
12355        addr: &'a str,
12356        fs: &'a str,
12357        params: Option<&'a ::serde_json::Map<::std::string::String, ::serde_json::Value>>,
12358        type_: &'a str,
12359    ) -> Result<ResponseValue<types::ServeStartResponse>, Error<types::RcError>> {
12360        let url = format!("{}/serve/start", self.baseurl,);
12361        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12362        header_map.append(
12363            ::reqwest::header::HeaderName::from_static("api-version"),
12364            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12365        );
12366        #[allow(unused_mut)]
12367        let mut request = self
12368            .client
12369            .post(url)
12370            .header(
12371                ::reqwest::header::ACCEPT,
12372                ::reqwest::header::HeaderValue::from_static("application/json"),
12373            )
12374            .query(&progenitor_client::QueryParam::new("_async", &async_))
12375            .query(&progenitor_client::QueryParam::new("_config", &config))
12376            .query(&progenitor_client::QueryParam::new("_filter", &filter))
12377            .query(&progenitor_client::QueryParam::new("_group", &group))
12378            .query(&progenitor_client::QueryParam::new("addr", &addr))
12379            .query(&progenitor_client::QueryParam::new("fs", &fs))
12380            .query(&progenitor_client::QueryParam::new("params", &params))
12381            .query(&progenitor_client::QueryParam::new("type", &type_))
12382            .headers(header_map)
12383            .build()?;
12384        let info = OperationInfo {
12385            operation_id: "serve_start",
12386        };
12387        self.pre(&mut request, &info).await?;
12388        let result = self.exec(request, &info).await;
12389        self.post(&result, &info).await?;
12390        let response = result?;
12391        match response.status().as_u16() {
12392            200u16 => ResponseValue::from_response(response).await,
12393            400u16..=499u16 => Err(Error::ErrorResponse(
12394                ResponseValue::from_response(response).await?,
12395            )),
12396            500u16..=599u16 => Err(Error::ErrorResponse(
12397                ResponseValue::from_response(response).await?,
12398            )),
12399            _ => Err(Error::UnexpectedResponse(response)),
12400        }
12401    }
12402
12403    ///Stop serve instance
12404    ///
12405    ///Stops a running `serve` instance identified by its ID.
12406    ///
12407    ///Sends a `POST` request to `/serve/stop`
12408    ///
12409    ///Arguments:
12410    /// - `async_`: Run the command asynchronously. Returns a job id
12411    ///   immediately.
12412    /// - `group`: Assign the request to a custom stats group.
12413    /// - `id`: Identifier of the running serve instance returned by
12414    ///   `serve/start`.
12415    pub async fn serve_stop<'a>(
12416        &'a self,
12417        async_: Option<bool>,
12418        group: Option<&'a str>,
12419        id: &'a str,
12420    ) -> Result<
12421        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
12422        Error<types::RcError>,
12423    > {
12424        let url = format!("{}/serve/stop", self.baseurl,);
12425        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12426        header_map.append(
12427            ::reqwest::header::HeaderName::from_static("api-version"),
12428            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12429        );
12430        #[allow(unused_mut)]
12431        let mut request = self
12432            .client
12433            .post(url)
12434            .header(
12435                ::reqwest::header::ACCEPT,
12436                ::reqwest::header::HeaderValue::from_static("application/json"),
12437            )
12438            .query(&progenitor_client::QueryParam::new("_async", &async_))
12439            .query(&progenitor_client::QueryParam::new("_group", &group))
12440            .query(&progenitor_client::QueryParam::new("id", &id))
12441            .headers(header_map)
12442            .build()?;
12443        let info = OperationInfo {
12444            operation_id: "serve_stop",
12445        };
12446        self.pre(&mut request, &info).await?;
12447        let result = self.exec(request, &info).await;
12448        self.post(&result, &info).await?;
12449        let response = result?;
12450        match response.status().as_u16() {
12451            200u16 => ResponseValue::from_response(response).await,
12452            400u16..=499u16 => Err(Error::ErrorResponse(
12453                ResponseValue::from_response(response).await?,
12454            )),
12455            500u16..=599u16 => Err(Error::ErrorResponse(
12456                ResponseValue::from_response(response).await?,
12457            )),
12458            _ => Err(Error::UnexpectedResponse(response)),
12459        }
12460    }
12461
12462    ///Stop all serve instances
12463    ///
12464    ///Stops every active `serve` instance.
12465    ///
12466    ///Sends a `POST` request to `/serve/stopall`
12467    ///
12468    ///Arguments:
12469    /// - `async_`: Run the command asynchronously. Returns a job id
12470    ///   immediately.
12471    /// - `group`: Assign the request to a custom stats group.
12472    pub async fn serve_stopall<'a>(
12473        &'a self,
12474        async_: Option<bool>,
12475        group: Option<&'a str>,
12476    ) -> Result<
12477        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
12478        Error<types::RcError>,
12479    > {
12480        let url = format!("{}/serve/stopall", self.baseurl,);
12481        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12482        header_map.append(
12483            ::reqwest::header::HeaderName::from_static("api-version"),
12484            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12485        );
12486        #[allow(unused_mut)]
12487        let mut request = self
12488            .client
12489            .post(url)
12490            .header(
12491                ::reqwest::header::ACCEPT,
12492                ::reqwest::header::HeaderValue::from_static("application/json"),
12493            )
12494            .query(&progenitor_client::QueryParam::new("_async", &async_))
12495            .query(&progenitor_client::QueryParam::new("_group", &group))
12496            .headers(header_map)
12497            .build()?;
12498        let info = OperationInfo {
12499            operation_id: "serve_stopall",
12500        };
12501        self.pre(&mut request, &info).await?;
12502        let result = self.exec(request, &info).await;
12503        self.post(&result, &info).await?;
12504        let response = result?;
12505        match response.status().as_u16() {
12506            200u16 => ResponseValue::from_response(response).await,
12507            400u16..=499u16 => Err(Error::ErrorResponse(
12508                ResponseValue::from_response(response).await?,
12509            )),
12510            500u16..=599u16 => Err(Error::ErrorResponse(
12511                ResponseValue::from_response(response).await?,
12512            )),
12513            _ => Err(Error::UnexpectedResponse(response)),
12514        }
12515    }
12516
12517    ///List serve types
12518    ///
12519    ///Returns the list of supported `rclone serve` protocols.
12520    ///
12521    ///Sends a `POST` request to `/serve/types`
12522    ///
12523    ///Arguments:
12524    /// - `async_`: Run the command asynchronously. Returns a job id
12525    ///   immediately.
12526    /// - `group`: Assign the request to a custom stats group.
12527    pub async fn serve_types<'a>(
12528        &'a self,
12529        async_: Option<bool>,
12530        group: Option<&'a str>,
12531    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
12532        let url = format!("{}/serve/types", self.baseurl,);
12533        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12534        header_map.append(
12535            ::reqwest::header::HeaderName::from_static("api-version"),
12536            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12537        );
12538        #[allow(unused_mut)]
12539        let mut request = self
12540            .client
12541            .post(url)
12542            .header(
12543                ::reqwest::header::ACCEPT,
12544                ::reqwest::header::HeaderValue::from_static("application/json"),
12545            )
12546            .query(&progenitor_client::QueryParam::new("_async", &async_))
12547            .query(&progenitor_client::QueryParam::new("_group", &group))
12548            .headers(header_map)
12549            .build()?;
12550        let info = OperationInfo {
12551            operation_id: "serve_types",
12552        };
12553        self.pre(&mut request, &info).await?;
12554        let result = self.exec(request, &info).await;
12555        self.post(&result, &info).await?;
12556        let response = result?;
12557        match response.status().as_u16() {
12558            200u16 => Ok(ResponseValue::empty(response)),
12559            400u16..=499u16 => Err(Error::ErrorResponse(
12560                ResponseValue::from_response(response).await?,
12561            )),
12562            500u16..=599u16 => Err(Error::ErrorResponse(
12563                ResponseValue::from_response(response).await?,
12564            )),
12565            _ => Err(Error::UnexpectedResponse(response)),
12566        }
12567    }
12568
12569    ///Forget cached paths
12570    ///
12571    ///Evicts specific files or directories from the VFS directory cache.
12572    ///
12573    ///Sends a `POST` request to `/vfs/forget`
12574    ///
12575    ///Arguments:
12576    /// - `async_`: Run the command asynchronously. Returns a job id
12577    ///   immediately.
12578    /// - `group`: Assign the request to a custom stats group.
12579    /// - `fs`: Optional VFS identifier to target; required when more than one
12580    ///   VFS is active.
12581    /// - `params`: Additional arbitrary parameters allowed.
12582    pub async fn vfs_forget<'a>(
12583        &'a self,
12584        async_: Option<bool>,
12585        group: Option<&'a str>,
12586        fs: Option<&'a str>,
12587        params: Option<&'a ::serde_json::Map<::std::string::String, ::serde_json::Value>>,
12588    ) -> Result<ResponseValue<types::VfsForgetResponse>, Error<types::RcError>> {
12589        let url = format!("{}/vfs/forget", self.baseurl,);
12590        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12591        header_map.append(
12592            ::reqwest::header::HeaderName::from_static("api-version"),
12593            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12594        );
12595        #[allow(unused_mut)]
12596        let mut request = self
12597            .client
12598            .post(url)
12599            .header(
12600                ::reqwest::header::ACCEPT,
12601                ::reqwest::header::HeaderValue::from_static("application/json"),
12602            )
12603            .query(&progenitor_client::QueryParam::new("_async", &async_))
12604            .query(&progenitor_client::QueryParam::new("_group", &group))
12605            .query(&progenitor_client::QueryParam::new("fs", &fs))
12606            .query(&progenitor_client::QueryParam::new("params", &params))
12607            .headers(header_map)
12608            .build()?;
12609        let info = OperationInfo {
12610            operation_id: "vfs_forget",
12611        };
12612        self.pre(&mut request, &info).await?;
12613        let result = self.exec(request, &info).await;
12614        self.post(&result, &info).await?;
12615        let response = result?;
12616        match response.status().as_u16() {
12617            200u16 => ResponseValue::from_response(response).await,
12618            400u16..=499u16 => Err(Error::ErrorResponse(
12619                ResponseValue::from_response(response).await?,
12620            )),
12621            500u16..=599u16 => Err(Error::ErrorResponse(
12622                ResponseValue::from_response(response).await?,
12623            )),
12624            _ => Err(Error::UnexpectedResponse(response)),
12625        }
12626    }
12627
12628    ///List VFS instances
12629    ///
12630    ///Lists the active VFS instances and their identifiers.
12631    ///
12632    ///Sends a `POST` request to `/vfs/list`
12633    ///
12634    ///Arguments:
12635    /// - `async_`: Run the command asynchronously. Returns a job id
12636    ///   immediately.
12637    /// - `group`: Assign the request to a custom stats group.
12638    /// - `fs`: Optional VFS identifier; omit to list all active VFS instances.
12639    pub async fn vfs_list<'a>(
12640        &'a self,
12641        async_: Option<bool>,
12642        group: Option<&'a str>,
12643        fs: Option<&'a str>,
12644    ) -> Result<ResponseValue<types::VfsListResponse>, Error<types::RcError>> {
12645        let url = format!("{}/vfs/list", self.baseurl,);
12646        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12647        header_map.append(
12648            ::reqwest::header::HeaderName::from_static("api-version"),
12649            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12650        );
12651        #[allow(unused_mut)]
12652        let mut request = self
12653            .client
12654            .post(url)
12655            .header(
12656                ::reqwest::header::ACCEPT,
12657                ::reqwest::header::HeaderValue::from_static("application/json"),
12658            )
12659            .query(&progenitor_client::QueryParam::new("_async", &async_))
12660            .query(&progenitor_client::QueryParam::new("_group", &group))
12661            .query(&progenitor_client::QueryParam::new("fs", &fs))
12662            .headers(header_map)
12663            .build()?;
12664        let info = OperationInfo {
12665            operation_id: "vfs_list",
12666        };
12667        self.pre(&mut request, &info).await?;
12668        let result = self.exec(request, &info).await;
12669        self.post(&result, &info).await?;
12670        let response = result?;
12671        match response.status().as_u16() {
12672            200u16 => ResponseValue::from_response(response).await,
12673            400u16..=499u16 => Err(Error::ErrorResponse(
12674                ResponseValue::from_response(response).await?,
12675            )),
12676            500u16..=599u16 => Err(Error::ErrorResponse(
12677                ResponseValue::from_response(response).await?,
12678            )),
12679            _ => Err(Error::UnexpectedResponse(response)),
12680        }
12681    }
12682
12683    ///Get or set poll interval
12684    ///
12685    ///Reads or updates the VFS poll interval duration, optionally waiting for
12686    /// the change to apply.
12687    ///
12688    ///Sends a `POST` request to `/vfs/poll-interval`
12689    ///
12690    ///Arguments:
12691    /// - `async_`: Run the command asynchronously. Returns a job id
12692    ///   immediately.
12693    /// - `group`: Assign the request to a custom stats group.
12694    /// - `fs`: Optional VFS identifier whose poll interval should be queried or
12695    ///   modified.
12696    /// - `interval`: Duration string (e.g. `5m`) to set as the new poll
12697    ///   interval.
12698    /// - `timeout`: Duration to wait for the poll interval change to take
12699    ///   effect; `0` waits indefinitely.
12700    pub async fn vfs_poll_interval<'a>(
12701        &'a self,
12702        async_: Option<bool>,
12703        group: Option<&'a str>,
12704        fs: Option<&'a str>,
12705        interval: Option<&'a str>,
12706        timeout: Option<&'a str>,
12707    ) -> Result<
12708        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
12709        Error<types::RcError>,
12710    > {
12711        let url = format!("{}/vfs/poll-interval", self.baseurl,);
12712        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12713        header_map.append(
12714            ::reqwest::header::HeaderName::from_static("api-version"),
12715            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12716        );
12717        #[allow(unused_mut)]
12718        let mut request = self
12719            .client
12720            .post(url)
12721            .header(
12722                ::reqwest::header::ACCEPT,
12723                ::reqwest::header::HeaderValue::from_static("application/json"),
12724            )
12725            .query(&progenitor_client::QueryParam::new("_async", &async_))
12726            .query(&progenitor_client::QueryParam::new("_group", &group))
12727            .query(&progenitor_client::QueryParam::new("fs", &fs))
12728            .query(&progenitor_client::QueryParam::new("interval", &interval))
12729            .query(&progenitor_client::QueryParam::new("timeout", &timeout))
12730            .headers(header_map)
12731            .build()?;
12732        let info = OperationInfo {
12733            operation_id: "vfs_poll_interval",
12734        };
12735        self.pre(&mut request, &info).await?;
12736        let result = self.exec(request, &info).await;
12737        self.post(&result, &info).await?;
12738        let response = result?;
12739        match response.status().as_u16() {
12740            200u16 => ResponseValue::from_response(response).await,
12741            400u16..=499u16 => Err(Error::ErrorResponse(
12742                ResponseValue::from_response(response).await?,
12743            )),
12744            500u16..=599u16 => Err(Error::ErrorResponse(
12745                ResponseValue::from_response(response).await?,
12746            )),
12747            _ => Err(Error::UnexpectedResponse(response)),
12748        }
12749    }
12750
12751    ///Inspect upload queue
12752    ///
12753    ///Returns the contents of the VFS upload queue.
12754    ///
12755    ///Sends a `POST` request to `/vfs/queue`
12756    ///
12757    ///Arguments:
12758    /// - `async_`: Run the command asynchronously. Returns a job id
12759    ///   immediately.
12760    /// - `group`: Assign the request to a custom stats group.
12761    /// - `fs`: Optional VFS identifier whose upload queue should be inspected.
12762    pub async fn vfs_queue<'a>(
12763        &'a self,
12764        async_: Option<bool>,
12765        group: Option<&'a str>,
12766        fs: Option<&'a str>,
12767    ) -> Result<ResponseValue<types::VfsQueueResponse>, Error<types::RcError>> {
12768        let url = format!("{}/vfs/queue", self.baseurl,);
12769        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12770        header_map.append(
12771            ::reqwest::header::HeaderName::from_static("api-version"),
12772            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12773        );
12774        #[allow(unused_mut)]
12775        let mut request = self
12776            .client
12777            .post(url)
12778            .header(
12779                ::reqwest::header::ACCEPT,
12780                ::reqwest::header::HeaderValue::from_static("application/json"),
12781            )
12782            .query(&progenitor_client::QueryParam::new("_async", &async_))
12783            .query(&progenitor_client::QueryParam::new("_group", &group))
12784            .query(&progenitor_client::QueryParam::new("fs", &fs))
12785            .headers(header_map)
12786            .build()?;
12787        let info = OperationInfo {
12788            operation_id: "vfs_queue",
12789        };
12790        self.pre(&mut request, &info).await?;
12791        let result = self.exec(request, &info).await;
12792        self.post(&result, &info).await?;
12793        let response = result?;
12794        match response.status().as_u16() {
12795            200u16 => ResponseValue::from_response(response).await,
12796            400u16..=499u16 => Err(Error::ErrorResponse(
12797                ResponseValue::from_response(response).await?,
12798            )),
12799            500u16..=599u16 => Err(Error::ErrorResponse(
12800                ResponseValue::from_response(response).await?,
12801            )),
12802            _ => Err(Error::UnexpectedResponse(response)),
12803        }
12804    }
12805
12806    ///Adjust queue expiry
12807    ///
12808    ///Sets the expiry time of a queued VFS upload item, optionally relative to
12809    /// its current value.
12810    ///
12811    ///Sends a `POST` request to `/vfs/queue-set-expiry`
12812    ///
12813    ///Arguments:
12814    /// - `async_`: Run the command asynchronously. Returns a job id
12815    ///   immediately.
12816    /// - `group`: Assign the request to a custom stats group.
12817    /// - `expiry`: New eligibility time in seconds (may be negative for
12818    ///   immediate upload).
12819    /// - `fs`: Optional VFS identifier for the queued item.
12820    /// - `id`: Queue item ID as returned by `vfs/queue`.
12821    /// - `relative`: Set to true to treat `expiry` as relative to the current
12822    ///   value.
12823    pub async fn vfs_queue_set_expiry<'a>(
12824        &'a self,
12825        async_: Option<bool>,
12826        group: Option<&'a str>,
12827        expiry: f64,
12828        fs: Option<&'a str>,
12829        id: i64,
12830        relative: Option<bool>,
12831    ) -> Result<
12832        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
12833        Error<types::RcError>,
12834    > {
12835        let url = format!("{}/vfs/queue-set-expiry", self.baseurl,);
12836        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12837        header_map.append(
12838            ::reqwest::header::HeaderName::from_static("api-version"),
12839            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12840        );
12841        #[allow(unused_mut)]
12842        let mut request = self
12843            .client
12844            .post(url)
12845            .header(
12846                ::reqwest::header::ACCEPT,
12847                ::reqwest::header::HeaderValue::from_static("application/json"),
12848            )
12849            .query(&progenitor_client::QueryParam::new("_async", &async_))
12850            .query(&progenitor_client::QueryParam::new("_group", &group))
12851            .query(&progenitor_client::QueryParam::new("expiry", &expiry))
12852            .query(&progenitor_client::QueryParam::new("fs", &fs))
12853            .query(&progenitor_client::QueryParam::new("id", &id))
12854            .query(&progenitor_client::QueryParam::new("relative", &relative))
12855            .headers(header_map)
12856            .build()?;
12857        let info = OperationInfo {
12858            operation_id: "vfs_queue_set_expiry",
12859        };
12860        self.pre(&mut request, &info).await?;
12861        let result = self.exec(request, &info).await;
12862        self.post(&result, &info).await?;
12863        let response = result?;
12864        match response.status().as_u16() {
12865            200u16 => ResponseValue::from_response(response).await,
12866            400u16..=499u16 => Err(Error::ErrorResponse(
12867                ResponseValue::from_response(response).await?,
12868            )),
12869            500u16..=599u16 => Err(Error::ErrorResponse(
12870                ResponseValue::from_response(response).await?,
12871            )),
12872            _ => Err(Error::UnexpectedResponse(response)),
12873        }
12874    }
12875
12876    ///Refresh directory cache
12877    ///
12878    ///Refreshes one or more directories in the VFS cache, optionally
12879    /// recursively.
12880    ///
12881    ///Sends a `POST` request to `/vfs/refresh`
12882    ///
12883    ///Arguments:
12884    /// - `async_`: Run the command asynchronously. Returns a job id
12885    ///   immediately.
12886    /// - `group`: Assign the request to a custom stats group.
12887    /// - `fs`: Optional VFS identifier whose directory cache should be
12888    ///   refreshed.
12889    /// - `params`: Additional arbitrary parameters allowed.
12890    /// - `recursive`: Set to true to refresh entire directory trees.
12891    pub async fn vfs_refresh<'a>(
12892        &'a self,
12893        async_: Option<bool>,
12894        group: Option<&'a str>,
12895        fs: Option<&'a str>,
12896        params: Option<&'a ::serde_json::Map<::std::string::String, ::serde_json::Value>>,
12897        recursive: Option<bool>,
12898    ) -> Result<ResponseValue<types::VfsRefreshResponse>, Error<types::RcError>> {
12899        let url = format!("{}/vfs/refresh", self.baseurl,);
12900        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12901        header_map.append(
12902            ::reqwest::header::HeaderName::from_static("api-version"),
12903            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12904        );
12905        #[allow(unused_mut)]
12906        let mut request = self
12907            .client
12908            .post(url)
12909            .header(
12910                ::reqwest::header::ACCEPT,
12911                ::reqwest::header::HeaderValue::from_static("application/json"),
12912            )
12913            .query(&progenitor_client::QueryParam::new("_async", &async_))
12914            .query(&progenitor_client::QueryParam::new("_group", &group))
12915            .query(&progenitor_client::QueryParam::new("fs", &fs))
12916            .query(&progenitor_client::QueryParam::new("params", &params))
12917            .query(&progenitor_client::QueryParam::new("recursive", &recursive))
12918            .headers(header_map)
12919            .build()?;
12920        let info = OperationInfo {
12921            operation_id: "vfs_refresh",
12922        };
12923        self.pre(&mut request, &info).await?;
12924        let result = self.exec(request, &info).await;
12925        self.post(&result, &info).await?;
12926        let response = result?;
12927        match response.status().as_u16() {
12928            200u16 => ResponseValue::from_response(response).await,
12929            400u16..=499u16 => Err(Error::ErrorResponse(
12930                ResponseValue::from_response(response).await?,
12931            )),
12932            500u16..=599u16 => Err(Error::ErrorResponse(
12933                ResponseValue::from_response(response).await?,
12934            )),
12935            _ => Err(Error::UnexpectedResponse(response)),
12936        }
12937    }
12938
12939    ///Show VFS stats
12940    ///
12941    ///Returns VFS statistics including disk cache usage and metadata cache
12942    /// counters.
12943    ///
12944    ///Sends a `POST` request to `/vfs/stats`
12945    ///
12946    ///Arguments:
12947    /// - `async_`: Run the command asynchronously. Returns a job id
12948    ///   immediately.
12949    /// - `group`: Assign the request to a custom stats group.
12950    /// - `fs`: Optional VFS identifier whose statistics should be returned.
12951    pub async fn vfs_stats<'a>(
12952        &'a self,
12953        async_: Option<bool>,
12954        group: Option<&'a str>,
12955        fs: Option<&'a str>,
12956    ) -> Result<ResponseValue<types::VfsStatsResponse>, Error<types::RcError>> {
12957        let url = format!("{}/vfs/stats", self.baseurl,);
12958        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12959        header_map.append(
12960            ::reqwest::header::HeaderName::from_static("api-version"),
12961            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12962        );
12963        #[allow(unused_mut)]
12964        let mut request = self
12965            .client
12966            .post(url)
12967            .header(
12968                ::reqwest::header::ACCEPT,
12969                ::reqwest::header::HeaderValue::from_static("application/json"),
12970            )
12971            .query(&progenitor_client::QueryParam::new("_async", &async_))
12972            .query(&progenitor_client::QueryParam::new("_group", &group))
12973            .query(&progenitor_client::QueryParam::new("fs", &fs))
12974            .headers(header_map)
12975            .build()?;
12976        let info = OperationInfo {
12977            operation_id: "vfs_stats",
12978        };
12979        self.pre(&mut request, &info).await?;
12980        let result = self.exec(request, &info).await;
12981        self.post(&result, &info).await?;
12982        let response = result?;
12983        match response.status().as_u16() {
12984            200u16 => ResponseValue::from_response(response).await,
12985            400u16..=499u16 => Err(Error::ErrorResponse(
12986                ResponseValue::from_response(response).await?,
12987            )),
12988            500u16..=599u16 => Err(Error::ErrorResponse(
12989                ResponseValue::from_response(response).await?,
12990            )),
12991            _ => Err(Error::UnexpectedResponse(response)),
12992        }
12993    }
12994
12995    ///Install plugin
12996    ///
12997    ///Downloads and installs a plugin into the WebUI from the provided
12998    /// repository URL.
12999    ///
13000    ///Sends a `POST` request to `/pluginsctl/addPlugin`
13001    ///
13002    ///Arguments:
13003    /// - `async_`: Run the command asynchronously. Returns a job id
13004    ///   immediately.
13005    /// - `group`: Assign the request to a custom stats group.
13006    /// - `url`: Repository URL of the plugin to install.
13007    pub async fn pluginsctl_add_plugin<'a>(
13008        &'a self,
13009        async_: Option<bool>,
13010        group: Option<&'a str>,
13011        url: &'a str,
13012    ) -> Result<
13013        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
13014        Error<types::RcError>,
13015    > {
13016        let _url = format!("{}/pluginsctl/addPlugin", self.baseurl,);
13017        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13018        header_map.append(
13019            ::reqwest::header::HeaderName::from_static("api-version"),
13020            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13021        );
13022        #[allow(unused_mut)]
13023        let mut request = self
13024            .client
13025            .post(_url)
13026            .header(
13027                ::reqwest::header::ACCEPT,
13028                ::reqwest::header::HeaderValue::from_static("application/json"),
13029            )
13030            .query(&progenitor_client::QueryParam::new("_async", &async_))
13031            .query(&progenitor_client::QueryParam::new("_group", &group))
13032            .query(&progenitor_client::QueryParam::new("url", &url))
13033            .headers(header_map)
13034            .build()?;
13035        let info = OperationInfo {
13036            operation_id: "pluginsctl_add_plugin",
13037        };
13038        self.pre(&mut request, &info).await?;
13039        let result = self.exec(request, &info).await;
13040        self.post(&result, &info).await?;
13041        let response = result?;
13042        match response.status().as_u16() {
13043            200u16 => ResponseValue::from_response(response).await,
13044            400u16..=499u16 => Err(Error::ErrorResponse(
13045                ResponseValue::from_response(response).await?,
13046            )),
13047            500u16..=599u16 => Err(Error::ErrorResponse(
13048                ResponseValue::from_response(response).await?,
13049            )),
13050            _ => Err(Error::UnexpectedResponse(response)),
13051        }
13052    }
13053
13054    ///Filter plugins by MIME type
13055    ///
13056    ///Returns plugins matching the requested MIME type and optional plugin
13057    /// type.
13058    ///
13059    ///Sends a `POST` request to `/pluginsctl/getPluginsForType`
13060    ///
13061    ///Arguments:
13062    /// - `async_`: Run the command asynchronously. Returns a job id
13063    ///   immediately.
13064    /// - `group`: Assign the request to a custom stats group.
13065    /// - `plugin_type`: Filter results by plugin type (e.g. `test`).
13066    /// - `type_`: MIME type to match when listing plugins.
13067    pub async fn pluginsctl_get_plugins_for_type<'a>(
13068        &'a self,
13069        async_: Option<bool>,
13070        group: Option<&'a str>,
13071        plugin_type: Option<&'a str>,
13072        type_: Option<&'a str>,
13073    ) -> Result<ResponseValue<types::PluginsctlGetPluginsForTypeResponse>, Error<types::RcError>>
13074    {
13075        let url = format!("{}/pluginsctl/getPluginsForType", self.baseurl,);
13076        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13077        header_map.append(
13078            ::reqwest::header::HeaderName::from_static("api-version"),
13079            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13080        );
13081        #[allow(unused_mut)]
13082        let mut request = self
13083            .client
13084            .post(url)
13085            .header(
13086                ::reqwest::header::ACCEPT,
13087                ::reqwest::header::HeaderValue::from_static("application/json"),
13088            )
13089            .query(&progenitor_client::QueryParam::new("_async", &async_))
13090            .query(&progenitor_client::QueryParam::new("_group", &group))
13091            .query(&progenitor_client::QueryParam::new(
13092                "pluginType",
13093                &plugin_type,
13094            ))
13095            .query(&progenitor_client::QueryParam::new("type", &type_))
13096            .headers(header_map)
13097            .build()?;
13098        let info = OperationInfo {
13099            operation_id: "pluginsctl_get_plugins_for_type",
13100        };
13101        self.pre(&mut request, &info).await?;
13102        let result = self.exec(request, &info).await;
13103        self.post(&result, &info).await?;
13104        let response = result?;
13105        match response.status().as_u16() {
13106            200u16 => ResponseValue::from_response(response).await,
13107            400u16..=499u16 => Err(Error::ErrorResponse(
13108                ResponseValue::from_response(response).await?,
13109            )),
13110            500u16..=599u16 => Err(Error::ErrorResponse(
13111                ResponseValue::from_response(response).await?,
13112            )),
13113            _ => Err(Error::UnexpectedResponse(response)),
13114        }
13115    }
13116
13117    ///List installed plugins
13118    ///
13119    ///Returns metadata for installed production and test plugins.
13120    ///
13121    ///Sends a `POST` request to `/pluginsctl/listPlugins`
13122    ///
13123    ///Arguments:
13124    /// - `async_`: Run the command asynchronously. Returns a job id
13125    ///   immediately.
13126    /// - `group`: Assign the request to a custom stats group.
13127    pub async fn pluginsctl_list_plugins<'a>(
13128        &'a self,
13129        async_: Option<bool>,
13130        group: Option<&'a str>,
13131    ) -> Result<ResponseValue<types::PluginsctlListPluginsResponse>, Error<types::RcError>> {
13132        let url = format!("{}/pluginsctl/listPlugins", self.baseurl,);
13133        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13134        header_map.append(
13135            ::reqwest::header::HeaderName::from_static("api-version"),
13136            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13137        );
13138        #[allow(unused_mut)]
13139        let mut request = self
13140            .client
13141            .post(url)
13142            .header(
13143                ::reqwest::header::ACCEPT,
13144                ::reqwest::header::HeaderValue::from_static("application/json"),
13145            )
13146            .query(&progenitor_client::QueryParam::new("_async", &async_))
13147            .query(&progenitor_client::QueryParam::new("_group", &group))
13148            .headers(header_map)
13149            .build()?;
13150        let info = OperationInfo {
13151            operation_id: "pluginsctl_list_plugins",
13152        };
13153        self.pre(&mut request, &info).await?;
13154        let result = self.exec(request, &info).await;
13155        self.post(&result, &info).await?;
13156        let response = result?;
13157        match response.status().as_u16() {
13158            200u16 => ResponseValue::from_response(response).await,
13159            400u16..=499u16 => Err(Error::ErrorResponse(
13160                ResponseValue::from_response(response).await?,
13161            )),
13162            500u16..=599u16 => Err(Error::ErrorResponse(
13163                ResponseValue::from_response(response).await?,
13164            )),
13165            _ => Err(Error::UnexpectedResponse(response)),
13166        }
13167    }
13168
13169    ///List installed test plugins
13170    ///
13171    ///Returns metadata for installed test plugins.
13172    ///
13173    ///Sends a `POST` request to `/pluginsctl/listTestPlugins`
13174    ///
13175    ///Arguments:
13176    /// - `async_`: Run the command asynchronously. Returns a job id
13177    ///   immediately.
13178    /// - `group`: Assign the request to a custom stats group.
13179    pub async fn pluginsctl_list_test_plugins<'a>(
13180        &'a self,
13181        async_: Option<bool>,
13182        group: Option<&'a str>,
13183    ) -> Result<ResponseValue<types::PluginsctlListTestPluginsResponse>, Error<types::RcError>>
13184    {
13185        let url = format!("{}/pluginsctl/listTestPlugins", self.baseurl,);
13186        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13187        header_map.append(
13188            ::reqwest::header::HeaderName::from_static("api-version"),
13189            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13190        );
13191        #[allow(unused_mut)]
13192        let mut request = self
13193            .client
13194            .post(url)
13195            .header(
13196                ::reqwest::header::ACCEPT,
13197                ::reqwest::header::HeaderValue::from_static("application/json"),
13198            )
13199            .query(&progenitor_client::QueryParam::new("_async", &async_))
13200            .query(&progenitor_client::QueryParam::new("_group", &group))
13201            .headers(header_map)
13202            .build()?;
13203        let info = OperationInfo {
13204            operation_id: "pluginsctl_list_test_plugins",
13205        };
13206        self.pre(&mut request, &info).await?;
13207        let result = self.exec(request, &info).await;
13208        self.post(&result, &info).await?;
13209        let response = result?;
13210        match response.status().as_u16() {
13211            200u16 => ResponseValue::from_response(response).await,
13212            400u16..=499u16 => Err(Error::ErrorResponse(
13213                ResponseValue::from_response(response).await?,
13214            )),
13215            500u16..=599u16 => Err(Error::ErrorResponse(
13216                ResponseValue::from_response(response).await?,
13217            )),
13218            _ => Err(Error::UnexpectedResponse(response)),
13219        }
13220    }
13221
13222    ///Remove plugin
13223    ///
13224    ///Uninstalls a plugin from the WebUI.
13225    ///
13226    ///Sends a `POST` request to `/pluginsctl/removePlugin`
13227    ///
13228    ///Arguments:
13229    /// - `async_`: Run the command asynchronously. Returns a job id
13230    ///   immediately.
13231    /// - `group`: Assign the request to a custom stats group.
13232    /// - `name`: Name of the plugin to uninstall.
13233    pub async fn pluginsctl_remove_plugin<'a>(
13234        &'a self,
13235        async_: Option<bool>,
13236        group: Option<&'a str>,
13237        name: &'a str,
13238    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
13239        let url = format!("{}/pluginsctl/removePlugin", self.baseurl,);
13240        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13241        header_map.append(
13242            ::reqwest::header::HeaderName::from_static("api-version"),
13243            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13244        );
13245        #[allow(unused_mut)]
13246        let mut request = self
13247            .client
13248            .post(url)
13249            .header(
13250                ::reqwest::header::ACCEPT,
13251                ::reqwest::header::HeaderValue::from_static("application/json"),
13252            )
13253            .query(&progenitor_client::QueryParam::new("_async", &async_))
13254            .query(&progenitor_client::QueryParam::new("_group", &group))
13255            .query(&progenitor_client::QueryParam::new("name", &name))
13256            .headers(header_map)
13257            .build()?;
13258        let info = OperationInfo {
13259            operation_id: "pluginsctl_remove_plugin",
13260        };
13261        self.pre(&mut request, &info).await?;
13262        let result = self.exec(request, &info).await;
13263        self.post(&result, &info).await?;
13264        let response = result?;
13265        match response.status().as_u16() {
13266            200u16 => Ok(ResponseValue::empty(response)),
13267            400u16..=499u16 => Err(Error::ErrorResponse(
13268                ResponseValue::from_response(response).await?,
13269            )),
13270            500u16..=599u16 => Err(Error::ErrorResponse(
13271                ResponseValue::from_response(response).await?,
13272            )),
13273            _ => Err(Error::UnexpectedResponse(response)),
13274        }
13275    }
13276
13277    ///Remove test plugin
13278    ///
13279    ///Uninstalls a test plugin from the WebUI.
13280    ///
13281    ///Sends a `POST` request to `/pluginsctl/removeTestPlugin`
13282    ///
13283    ///Arguments:
13284    /// - `async_`: Run the command asynchronously. Returns a job id
13285    ///   immediately.
13286    /// - `group`: Assign the request to a custom stats group.
13287    /// - `name`: Name of the test plugin to uninstall.
13288    pub async fn pluginsctl_remove_test_plugin<'a>(
13289        &'a self,
13290        async_: Option<bool>,
13291        group: Option<&'a str>,
13292        name: &'a str,
13293    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
13294        let url = format!("{}/pluginsctl/removeTestPlugin", self.baseurl,);
13295        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13296        header_map.append(
13297            ::reqwest::header::HeaderName::from_static("api-version"),
13298            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13299        );
13300        #[allow(unused_mut)]
13301        let mut request = self
13302            .client
13303            .post(url)
13304            .header(
13305                ::reqwest::header::ACCEPT,
13306                ::reqwest::header::HeaderValue::from_static("application/json"),
13307            )
13308            .query(&progenitor_client::QueryParam::new("_async", &async_))
13309            .query(&progenitor_client::QueryParam::new("_group", &group))
13310            .query(&progenitor_client::QueryParam::new("name", &name))
13311            .headers(header_map)
13312            .build()?;
13313        let info = OperationInfo {
13314            operation_id: "pluginsctl_remove_test_plugin",
13315        };
13316        self.pre(&mut request, &info).await?;
13317        let result = self.exec(request, &info).await;
13318        self.post(&result, &info).await?;
13319        let response = result?;
13320        match response.status().as_u16() {
13321            200u16 => Ok(ResponseValue::empty(response)),
13322            400u16..=499u16 => Err(Error::ErrorResponse(
13323                ResponseValue::from_response(response).await?,
13324            )),
13325            500u16..=599u16 => Err(Error::ErrorResponse(
13326                ResponseValue::from_response(response).await?,
13327            )),
13328            _ => Err(Error::UnexpectedResponse(response)),
13329        }
13330    }
13331}
13332
13333/// Items consumers will typically use such as the Client.
13334pub mod prelude {
13335    #[allow(unused_imports)]
13336    pub use super::Client;
13337}