rclone_sdk/
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    ///    "fatalError",
1250    ///    "renames",
1251    ///    "retryError",
1252    ///    "serverSideCopies",
1253    ///    "serverSideCopyBytes",
1254    ///    "serverSideMoveBytes",
1255    ///    "serverSideMoves",
1256    ///    "speed",
1257    ///    "totalBytes",
1258    ///    "totalChecks",
1259    ///    "totalTransfers",
1260    ///    "transferTime",
1261    ///    "transfers"
1262    ///  ],
1263    ///  "properties": {
1264    ///    "bytes": {
1265    ///      "type": "number"
1266    ///    },
1267    ///    "checking": {
1268    ///      "description": "Objects currently undergoing verification
1269    /// operations.",
1270    ///      "type": "array",
1271    ///      "items": {
1272    ///        "$ref": "#/components/schemas/CoreStatsChecking"
1273    ///      }
1274    ///    },
1275    ///    "checks": {
1276    ///      "type": "number"
1277    ///    },
1278    ///    "deletedDirs": {
1279    ///      "type": "number"
1280    ///    },
1281    ///    "deletes": {
1282    ///      "type": "number"
1283    ///    },
1284    ///    "elapsedTime": {
1285    ///      "type": "number"
1286    ///    },
1287    ///    "errors": {
1288    ///      "type": "number"
1289    ///    },
1290    ///    "eta": {
1291    ///      "type": [
1292    ///        "number",
1293    ///        "null"
1294    ///      ]
1295    ///    },
1296    ///    "fatalError": {
1297    ///      "type": "boolean"
1298    ///    },
1299    ///    "lastError": {
1300    ///      "type": "string"
1301    ///    },
1302    ///    "listed": {
1303    ///      "type": "number"
1304    ///    },
1305    ///    "renames": {
1306    ///      "type": "number"
1307    ///    },
1308    ///    "retryError": {
1309    ///      "type": "boolean"
1310    ///    },
1311    ///    "serverSideCopies": {
1312    ///      "type": "number"
1313    ///    },
1314    ///    "serverSideCopyBytes": {
1315    ///      "type": "number"
1316    ///    },
1317    ///    "serverSideMoveBytes": {
1318    ///      "type": "number"
1319    ///    },
1320    ///    "serverSideMoves": {
1321    ///      "type": "number"
1322    ///    },
1323    ///    "speed": {
1324    ///      "type": "number"
1325    ///    },
1326    ///    "totalBytes": {
1327    ///      "type": "number"
1328    ///    },
1329    ///    "totalChecks": {
1330    ///      "type": "number"
1331    ///    },
1332    ///    "totalTransfers": {
1333    ///      "type": "number"
1334    ///    },
1335    ///    "transferTime": {
1336    ///      "type": "number"
1337    ///    },
1338    ///    "transferring": {
1339    ///      "description": "Active transfers currently in progress grouped by
1340    /// stats group.",
1341    ///      "type": "array",
1342    ///      "items": {
1343    ///        "$ref": "#/components/schemas/CoreStatsTransfer"
1344    ///      }
1345    ///    },
1346    ///    "transfers": {
1347    ///      "type": "number"
1348    ///    }
1349    ///  }
1350    ///}
1351    /// ```
1352    /// </details>
1353    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1354    pub struct CoreStatsResponse {
1355        pub bytes: f64,
1356        ///Objects currently undergoing verification operations.
1357        #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
1358        pub checking: ::std::vec::Vec<CoreStatsChecking>,
1359        pub checks: f64,
1360        #[serde(rename = "deletedDirs")]
1361        pub deleted_dirs: f64,
1362        pub deletes: f64,
1363        #[serde(rename = "elapsedTime")]
1364        pub elapsed_time: f64,
1365        pub errors: f64,
1366        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1367        pub eta: ::std::option::Option<f64>,
1368        #[serde(rename = "fatalError")]
1369        pub fatal_error: bool,
1370        #[serde(
1371            rename = "lastError",
1372            default,
1373            skip_serializing_if = "::std::option::Option::is_none"
1374        )]
1375        pub last_error: ::std::option::Option<::std::string::String>,
1376        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1377        pub listed: ::std::option::Option<f64>,
1378        pub renames: f64,
1379        #[serde(rename = "retryError")]
1380        pub retry_error: bool,
1381        #[serde(rename = "serverSideCopies")]
1382        pub server_side_copies: f64,
1383        #[serde(rename = "serverSideCopyBytes")]
1384        pub server_side_copy_bytes: f64,
1385        #[serde(rename = "serverSideMoveBytes")]
1386        pub server_side_move_bytes: f64,
1387        #[serde(rename = "serverSideMoves")]
1388        pub server_side_moves: f64,
1389        pub speed: f64,
1390        #[serde(rename = "totalBytes")]
1391        pub total_bytes: f64,
1392        #[serde(rename = "totalChecks")]
1393        pub total_checks: f64,
1394        #[serde(rename = "totalTransfers")]
1395        pub total_transfers: f64,
1396        #[serde(rename = "transferTime")]
1397        pub transfer_time: f64,
1398        ///Active transfers currently in progress grouped by stats group.
1399        #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
1400        pub transferring: ::std::vec::Vec<CoreStatsTransfer>,
1401        pub transfers: f64,
1402    }
1403
1404    impl ::std::convert::From<&CoreStatsResponse> for CoreStatsResponse {
1405        fn from(value: &CoreStatsResponse) -> Self {
1406            value.clone()
1407        }
1408    }
1409
1410    ///Progress metrics for an in-flight transfer.
1411    ///
1412    /// <details><summary>JSON schema</summary>
1413    ///
1414    /// ```json
1415    ///{
1416    ///  "description": "Progress metrics for an in-flight transfer.",
1417    ///  "type": "object",
1418    ///  "properties": {
1419    ///    "bytes": {
1420    ///      "description": "Bytes transferred so far for this object.",
1421    ///      "type": "number"
1422    ///    },
1423    ///    "eta": {
1424    ///      "description": "Estimated seconds remaining, when available.",
1425    ///      "type": [
1426    ///        "number",
1427    ///        "null"
1428    ///      ]
1429    ///    },
1430    ///    "group": {
1431    ///      "description": "Stats group name associated with this transfer.",
1432    ///      "type": "string"
1433    ///    },
1434    ///    "name": {
1435    ///      "description": "Remote path of the object being transferred.",
1436    ///      "type": "string"
1437    ///    },
1438    ///    "percentage": {
1439    ///      "description": "Completion percentage from 0-100.",
1440    ///      "type": "number"
1441    ///    },
1442    ///    "size": {
1443    ///      "description": "Total size in bytes of the object.",
1444    ///      "type": "number"
1445    ///    },
1446    ///    "speed": {
1447    ///      "description": "Current transfer speed in bytes per second.",
1448    ///      "type": "number"
1449    ///    },
1450    ///    "speedAvg": {
1451    ///      "description": "Current speed in bytes per second as an
1452    /// exponentially weighted moving average.",
1453    ///      "type": "number"
1454    ///    }
1455    ///  },
1456    ///  "additionalProperties": true
1457    ///}
1458    /// ```
1459    /// </details>
1460    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1461    pub struct CoreStatsTransfer {
1462        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1463        pub bytes: ::std::option::Option<f64>,
1464        ///Estimated seconds remaining, when available.
1465        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1466        pub eta: ::std::option::Option<f64>,
1467        ///Stats group name associated with this transfer.
1468        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1469        pub group: ::std::option::Option<::std::string::String>,
1470        ///Remote path of the object being transferred.
1471        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1472        pub name: ::std::option::Option<::std::string::String>,
1473        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1474        pub percentage: ::std::option::Option<f64>,
1475        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1476        pub size: ::std::option::Option<f64>,
1477        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1478        pub speed: ::std::option::Option<f64>,
1479        #[serde(
1480            rename = "speedAvg",
1481            default,
1482            skip_serializing_if = "::std::option::Option::is_none"
1483        )]
1484        pub speed_avg: ::std::option::Option<f64>,
1485    }
1486
1487    impl ::std::convert::From<&CoreStatsTransfer> for CoreStatsTransfer {
1488        fn from(value: &CoreStatsTransfer) -> Self {
1489            value.clone()
1490        }
1491    }
1492
1493    impl ::std::default::Default for CoreStatsTransfer {
1494        fn default() -> Self {
1495            Self {
1496                bytes: Default::default(),
1497                eta: Default::default(),
1498                group: Default::default(),
1499                name: Default::default(),
1500                percentage: Default::default(),
1501                size: Default::default(),
1502                speed: Default::default(),
1503                speed_avg: Default::default(),
1504            }
1505        }
1506    }
1507
1508    ///`CoreTransferredResponse`
1509    ///
1510    /// <details><summary>JSON schema</summary>
1511    ///
1512    /// ```json
1513    ///{
1514    ///  "type": "object",
1515    ///  "required": [
1516    ///    "transferred"
1517    ///  ],
1518    ///  "properties": {
1519    ///    "transferred": {
1520    ///      "type": "array",
1521    ///      "items": {
1522    ///        "type": "object",
1523    ///        "required": [
1524    ///          "group"
1525    ///        ],
1526    ///        "properties": {
1527    ///          "bytes": {
1528    ///            "type": "integer"
1529    ///          },
1530    ///          "checked": {
1531    ///            "type": "boolean"
1532    ///          },
1533    ///          "completed_at": {
1534    ///            "description": "ISO8601 timestamp when the transfer
1535    /// completed.",
1536    ///            "type": "string"
1537    ///          },
1538    ///          "dstFs": {
1539    ///            "description": "Destination remote or filesystem used for the
1540    /// transfer.",
1541    ///            "type": "string"
1542    ///          },
1543    ///          "dstRemote": {
1544    ///            "description": "Destination path within `dstFs`, when
1545    /// provided.",
1546    ///            "type": "string"
1547    ///          },
1548    ///          "error": {
1549    ///            "type": "string"
1550    ///          },
1551    ///          "group": {
1552    ///            "description": "Stats group identifier this transfer belonged
1553    /// to.",
1554    ///            "type": "string"
1555    ///          },
1556    ///          "jobid": {
1557    ///            "type": "integer"
1558    ///          },
1559    ///          "name": {
1560    ///            "type": "string"
1561    ///          },
1562    ///          "size": {
1563    ///            "type": "integer"
1564    ///          },
1565    ///          "srcFs": {
1566    ///            "description": "Source remote or filesystem used for the
1567    /// transfer.",
1568    ///            "type": "string"
1569    ///          },
1570    ///          "srcRemote": {
1571    ///            "description": "Source path within `srcFs`, when provided.",
1572    ///            "type": "string"
1573    ///          },
1574    ///          "started_at": {
1575    ///            "description": "ISO8601 timestamp when the transfer
1576    /// started.",
1577    ///            "type": "string"
1578    ///          },
1579    ///          "timestamp": {
1580    ///            "type": "integer"
1581    ///          },
1582    ///          "what": {
1583    ///            "type": "string",
1584    ///            "enum": [
1585    ///              "transferring",
1586    ///              "deleting",
1587    ///              "checking",
1588    ///              "importing",
1589    ///              "hashing",
1590    ///              "merging",
1591    ///              "listing",
1592    ///              "moving",
1593    ///              "renaming"
1594    ///            ]
1595    ///          }
1596    ///        },
1597    ///        "additionalProperties": true
1598    ///      }
1599    ///    }
1600    ///  }
1601    ///}
1602    /// ```
1603    /// </details>
1604    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1605    pub struct CoreTransferredResponse {
1606        pub transferred: ::std::vec::Vec<CoreTransferredResponseTransferredItem>,
1607    }
1608
1609    impl ::std::convert::From<&CoreTransferredResponse> for CoreTransferredResponse {
1610        fn from(value: &CoreTransferredResponse) -> Self {
1611            value.clone()
1612        }
1613    }
1614
1615    ///`CoreTransferredResponseTransferredItem`
1616    ///
1617    /// <details><summary>JSON schema</summary>
1618    ///
1619    /// ```json
1620    ///{
1621    ///  "type": "object",
1622    ///  "required": [
1623    ///    "group"
1624    ///  ],
1625    ///  "properties": {
1626    ///    "bytes": {
1627    ///      "type": "integer"
1628    ///    },
1629    ///    "checked": {
1630    ///      "type": "boolean"
1631    ///    },
1632    ///    "completed_at": {
1633    ///      "description": "ISO8601 timestamp when the transfer completed.",
1634    ///      "type": "string"
1635    ///    },
1636    ///    "dstFs": {
1637    ///      "description": "Destination remote or filesystem used for the
1638    /// transfer.",
1639    ///      "type": "string"
1640    ///    },
1641    ///    "dstRemote": {
1642    ///      "description": "Destination path within `dstFs`, when provided.",
1643    ///      "type": "string"
1644    ///    },
1645    ///    "error": {
1646    ///      "type": "string"
1647    ///    },
1648    ///    "group": {
1649    ///      "description": "Stats group identifier this transfer belonged to.",
1650    ///      "type": "string"
1651    ///    },
1652    ///    "jobid": {
1653    ///      "type": "integer"
1654    ///    },
1655    ///    "name": {
1656    ///      "type": "string"
1657    ///    },
1658    ///    "size": {
1659    ///      "type": "integer"
1660    ///    },
1661    ///    "srcFs": {
1662    ///      "description": "Source remote or filesystem used for the
1663    /// transfer.",
1664    ///      "type": "string"
1665    ///    },
1666    ///    "srcRemote": {
1667    ///      "description": "Source path within `srcFs`, when provided.",
1668    ///      "type": "string"
1669    ///    },
1670    ///    "started_at": {
1671    ///      "description": "ISO8601 timestamp when the transfer started.",
1672    ///      "type": "string"
1673    ///    },
1674    ///    "timestamp": {
1675    ///      "type": "integer"
1676    ///    },
1677    ///    "what": {
1678    ///      "type": "string",
1679    ///      "enum": [
1680    ///        "transferring",
1681    ///        "deleting",
1682    ///        "checking",
1683    ///        "importing",
1684    ///        "hashing",
1685    ///        "merging",
1686    ///        "listing",
1687    ///        "moving",
1688    ///        "renaming"
1689    ///      ]
1690    ///    }
1691    ///  },
1692    ///  "additionalProperties": true
1693    ///}
1694    /// ```
1695    /// </details>
1696    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1697    pub struct CoreTransferredResponseTransferredItem {
1698        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1699        pub bytes: ::std::option::Option<i64>,
1700        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1701        pub checked: ::std::option::Option<bool>,
1702        ///ISO8601 timestamp when the transfer completed.
1703        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1704        pub completed_at: ::std::option::Option<::std::string::String>,
1705        ///Destination remote or filesystem used for the transfer.
1706        #[serde(
1707            rename = "dstFs",
1708            default,
1709            skip_serializing_if = "::std::option::Option::is_none"
1710        )]
1711        pub dst_fs: ::std::option::Option<::std::string::String>,
1712        ///Destination path within `dstFs`, when provided.
1713        #[serde(
1714            rename = "dstRemote",
1715            default,
1716            skip_serializing_if = "::std::option::Option::is_none"
1717        )]
1718        pub dst_remote: ::std::option::Option<::std::string::String>,
1719        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1720        pub error: ::std::option::Option<::std::string::String>,
1721        ///Stats group identifier this transfer belonged to.
1722        pub group: ::std::string::String,
1723        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1724        pub jobid: ::std::option::Option<i64>,
1725        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1726        pub name: ::std::option::Option<::std::string::String>,
1727        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1728        pub size: ::std::option::Option<i64>,
1729        ///Source remote or filesystem used for the transfer.
1730        #[serde(
1731            rename = "srcFs",
1732            default,
1733            skip_serializing_if = "::std::option::Option::is_none"
1734        )]
1735        pub src_fs: ::std::option::Option<::std::string::String>,
1736        ///Source path within `srcFs`, when provided.
1737        #[serde(
1738            rename = "srcRemote",
1739            default,
1740            skip_serializing_if = "::std::option::Option::is_none"
1741        )]
1742        pub src_remote: ::std::option::Option<::std::string::String>,
1743        ///ISO8601 timestamp when the transfer started.
1744        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1745        pub started_at: ::std::option::Option<::std::string::String>,
1746        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1747        pub timestamp: ::std::option::Option<i64>,
1748        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1749        pub what: ::std::option::Option<CoreTransferredResponseTransferredItemWhat>,
1750    }
1751
1752    impl ::std::convert::From<&CoreTransferredResponseTransferredItem>
1753        for CoreTransferredResponseTransferredItem
1754    {
1755        fn from(value: &CoreTransferredResponseTransferredItem) -> Self {
1756            value.clone()
1757        }
1758    }
1759
1760    ///`CoreTransferredResponseTransferredItemWhat`
1761    ///
1762    /// <details><summary>JSON schema</summary>
1763    ///
1764    /// ```json
1765    ///{
1766    ///  "type": "string",
1767    ///  "enum": [
1768    ///    "transferring",
1769    ///    "deleting",
1770    ///    "checking",
1771    ///    "importing",
1772    ///    "hashing",
1773    ///    "merging",
1774    ///    "listing",
1775    ///    "moving",
1776    ///    "renaming"
1777    ///  ]
1778    ///}
1779    /// ```
1780    /// </details>
1781    #[derive(
1782        :: serde :: Deserialize,
1783        :: serde :: Serialize,
1784        Clone,
1785        Copy,
1786        Debug,
1787        Eq,
1788        Hash,
1789        Ord,
1790        PartialEq,
1791        PartialOrd,
1792    )]
1793    pub enum CoreTransferredResponseTransferredItemWhat {
1794        #[serde(rename = "transferring")]
1795        Transferring,
1796        #[serde(rename = "deleting")]
1797        Deleting,
1798        #[serde(rename = "checking")]
1799        Checking,
1800        #[serde(rename = "importing")]
1801        Importing,
1802        #[serde(rename = "hashing")]
1803        Hashing,
1804        #[serde(rename = "merging")]
1805        Merging,
1806        #[serde(rename = "listing")]
1807        Listing,
1808        #[serde(rename = "moving")]
1809        Moving,
1810        #[serde(rename = "renaming")]
1811        Renaming,
1812    }
1813
1814    impl ::std::convert::From<&Self> for CoreTransferredResponseTransferredItemWhat {
1815        fn from(value: &CoreTransferredResponseTransferredItemWhat) -> Self {
1816            value.clone()
1817        }
1818    }
1819
1820    impl ::std::fmt::Display for CoreTransferredResponseTransferredItemWhat {
1821        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1822            match *self {
1823                Self::Transferring => f.write_str("transferring"),
1824                Self::Deleting => f.write_str("deleting"),
1825                Self::Checking => f.write_str("checking"),
1826                Self::Importing => f.write_str("importing"),
1827                Self::Hashing => f.write_str("hashing"),
1828                Self::Merging => f.write_str("merging"),
1829                Self::Listing => f.write_str("listing"),
1830                Self::Moving => f.write_str("moving"),
1831                Self::Renaming => f.write_str("renaming"),
1832            }
1833        }
1834    }
1835
1836    impl ::std::str::FromStr for CoreTransferredResponseTransferredItemWhat {
1837        type Err = self::error::ConversionError;
1838        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
1839            match value {
1840                "transferring" => Ok(Self::Transferring),
1841                "deleting" => Ok(Self::Deleting),
1842                "checking" => Ok(Self::Checking),
1843                "importing" => Ok(Self::Importing),
1844                "hashing" => Ok(Self::Hashing),
1845                "merging" => Ok(Self::Merging),
1846                "listing" => Ok(Self::Listing),
1847                "moving" => Ok(Self::Moving),
1848                "renaming" => Ok(Self::Renaming),
1849                _ => Err("invalid value".into()),
1850            }
1851        }
1852    }
1853
1854    impl ::std::convert::TryFrom<&str> for CoreTransferredResponseTransferredItemWhat {
1855        type Error = self::error::ConversionError;
1856        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
1857            value.parse()
1858        }
1859    }
1860
1861    impl ::std::convert::TryFrom<&::std::string::String>
1862        for CoreTransferredResponseTransferredItemWhat
1863    {
1864        type Error = self::error::ConversionError;
1865        fn try_from(
1866            value: &::std::string::String,
1867        ) -> ::std::result::Result<Self, self::error::ConversionError> {
1868            value.parse()
1869        }
1870    }
1871
1872    impl ::std::convert::TryFrom<::std::string::String> for CoreTransferredResponseTransferredItemWhat {
1873        type Error = self::error::ConversionError;
1874        fn try_from(
1875            value: ::std::string::String,
1876        ) -> ::std::result::Result<Self, self::error::ConversionError> {
1877            value.parse()
1878        }
1879    }
1880
1881    ///`CoreVersionResponse`
1882    ///
1883    /// <details><summary>JSON schema</summary>
1884    ///
1885    /// ```json
1886    ///{
1887    ///  "type": "object",
1888    ///  "required": [
1889    ///    "arch",
1890    ///    "decomposed",
1891    ///    "goTags",
1892    ///    "goVersion",
1893    ///    "isBeta",
1894    ///    "isGit",
1895    ///    "linking",
1896    ///    "os",
1897    ///    "version"
1898    ///  ],
1899    ///  "properties": {
1900    ///    "arch": {
1901    ///      "description": "CPU architecture (e.g. amd64, arm64).",
1902    ///      "type": "string"
1903    ///    },
1904    ///    "decomposed": {
1905    ///      "description": "Version number broken into components.",
1906    ///      "type": "array",
1907    ///      "items": {
1908    ///        "type": "number"
1909    ///      }
1910    ///    },
1911    ///    "goTags": {
1912    ///      "description": "Space separated Go build tags, if any.",
1913    ///      "type": "string"
1914    ///    },
1915    ///    "goVersion": {
1916    ///      "description": "Go toolchain version used to build rclone.",
1917    ///      "type": "string"
1918    ///    },
1919    ///    "isBeta": {
1920    ///      "description": "Indicates whether this build is a beta version.",
1921    ///      "type": "boolean"
1922    ///    },
1923    ///    "isGit": {
1924    ///      "description": "True when built directly from a git checkout.",
1925    ///      "type": "boolean"
1926    ///    },
1927    ///    "linking": {
1928    ///      "description": "Linking mode for the binary (static or dynamic).",
1929    ///      "type": "string"
1930    ///    },
1931    ///    "os": {
1932    ///      "description": "Operating system rclone is running on (e.g. linux,
1933    /// darwin).",
1934    ///      "type": "string"
1935    ///    },
1936    ///    "osArch": {
1937    ///      "description": "CPU architecture in use (e.g. arm64 (ARMv8
1938    /// compatible)).",
1939    ///      "type": "string"
1940    ///    },
1941    ///    "osKernel": {
1942    ///      "description": "OS Kernel version (e.g. 6.8.0-86-generic
1943    /// (x86_64)).",
1944    ///      "type": "string"
1945    ///    },
1946    ///    "osVersion": {
1947    ///      "description": "OS Version (e.g. ubuntu 24.04 (64 bit)).",
1948    ///      "type": "string"
1949    ///    },
1950    ///    "version": {
1951    ///      "description": "Full semantic version string (e.g. 1.67.0).",
1952    ///      "type": "string"
1953    ///    }
1954    ///  }
1955    ///}
1956    /// ```
1957    /// </details>
1958    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
1959    pub struct CoreVersionResponse {
1960        ///CPU architecture (e.g. amd64, arm64).
1961        pub arch: ::std::string::String,
1962        ///Version number broken into components.
1963        pub decomposed: ::std::vec::Vec<f64>,
1964        ///Space separated Go build tags, if any.
1965        #[serde(rename = "goTags")]
1966        pub go_tags: ::std::string::String,
1967        ///Go toolchain version used to build rclone.
1968        #[serde(rename = "goVersion")]
1969        pub go_version: ::std::string::String,
1970        ///Indicates whether this build is a beta version.
1971        #[serde(rename = "isBeta")]
1972        pub is_beta: bool,
1973        ///True when built directly from a git checkout.
1974        #[serde(rename = "isGit")]
1975        pub is_git: bool,
1976        ///Linking mode for the binary (static or dynamic).
1977        pub linking: ::std::string::String,
1978        ///Operating system rclone is running on (e.g. linux, darwin).
1979        pub os: ::std::string::String,
1980        ///CPU architecture in use (e.g. arm64 (ARMv8 compatible)).
1981        #[serde(
1982            rename = "osArch",
1983            default,
1984            skip_serializing_if = "::std::option::Option::is_none"
1985        )]
1986        pub os_arch: ::std::option::Option<::std::string::String>,
1987        ///OS Kernel version (e.g. 6.8.0-86-generic (x86_64)).
1988        #[serde(
1989            rename = "osKernel",
1990            default,
1991            skip_serializing_if = "::std::option::Option::is_none"
1992        )]
1993        pub os_kernel: ::std::option::Option<::std::string::String>,
1994        ///OS Version (e.g. ubuntu 24.04 (64 bit)).
1995        #[serde(
1996            rename = "osVersion",
1997            default,
1998            skip_serializing_if = "::std::option::Option::is_none"
1999        )]
2000        pub os_version: ::std::option::Option<::std::string::String>,
2001        ///Full semantic version string (e.g. 1.67.0).
2002        pub version: ::std::string::String,
2003    }
2004
2005    impl ::std::convert::From<&CoreVersionResponse> for CoreVersionResponse {
2006        fn from(value: &CoreVersionResponse) -> Self {
2007            value.clone()
2008        }
2009    }
2010
2011    ///`DebugSetGcPercentResponse`
2012    ///
2013    /// <details><summary>JSON schema</summary>
2014    ///
2015    /// ```json
2016    ///{
2017    ///  "type": "object",
2018    ///  "required": [
2019    ///    "existing-gc-percent"
2020    ///  ],
2021    ///  "properties": {
2022    ///    "existing-gc-percent": {
2023    ///      "type": "integer"
2024    ///    }
2025    ///  }
2026    ///}
2027    /// ```
2028    /// </details>
2029    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2030    pub struct DebugSetGcPercentResponse {
2031        #[serde(rename = "existing-gc-percent")]
2032        pub existing_gc_percent: i64,
2033    }
2034
2035    impl ::std::convert::From<&DebugSetGcPercentResponse> for DebugSetGcPercentResponse {
2036        fn from(value: &DebugSetGcPercentResponse) -> Self {
2037            value.clone()
2038        }
2039    }
2040
2041    ///`DebugSetMutexProfileFractionResponse`
2042    ///
2043    /// <details><summary>JSON schema</summary>
2044    ///
2045    /// ```json
2046    ///{
2047    ///  "type": "object",
2048    ///  "required": [
2049    ///    "previousRate"
2050    ///  ],
2051    ///  "properties": {
2052    ///    "previousRate": {
2053    ///      "type": "integer"
2054    ///    }
2055    ///  }
2056    ///}
2057    /// ```
2058    /// </details>
2059    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2060    pub struct DebugSetMutexProfileFractionResponse {
2061        #[serde(rename = "previousRate")]
2062        pub previous_rate: i64,
2063    }
2064
2065    impl ::std::convert::From<&DebugSetMutexProfileFractionResponse>
2066        for DebugSetMutexProfileFractionResponse
2067    {
2068        fn from(value: &DebugSetMutexProfileFractionResponse) -> Self {
2069            value.clone()
2070        }
2071    }
2072
2073    ///`DebugSetSoftMemoryLimitResponse`
2074    ///
2075    /// <details><summary>JSON schema</summary>
2076    ///
2077    /// ```json
2078    ///{
2079    ///  "type": "object",
2080    ///  "required": [
2081    ///    "existing-mem-limit"
2082    ///  ],
2083    ///  "properties": {
2084    ///    "existing-mem-limit": {
2085    ///      "type": "integer"
2086    ///    }
2087    ///  }
2088    ///}
2089    /// ```
2090    /// </details>
2091    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2092    pub struct DebugSetSoftMemoryLimitResponse {
2093        #[serde(rename = "existing-mem-limit")]
2094        pub existing_mem_limit: i64,
2095    }
2096
2097    impl ::std::convert::From<&DebugSetSoftMemoryLimitResponse> for DebugSetSoftMemoryLimitResponse {
2098        fn from(value: &DebugSetSoftMemoryLimitResponse) -> Self {
2099            value.clone()
2100        }
2101    }
2102
2103    ///`FscacheEntriesResponse`
2104    ///
2105    /// <details><summary>JSON schema</summary>
2106    ///
2107    /// ```json
2108    ///{
2109    ///  "type": "object",
2110    ///  "required": [
2111    ///    "entries"
2112    ///  ],
2113    ///  "properties": {
2114    ///    "entries": {
2115    ///      "type": "integer"
2116    ///    }
2117    ///  }
2118    ///}
2119    /// ```
2120    /// </details>
2121    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2122    pub struct FscacheEntriesResponse {
2123        pub entries: i64,
2124    }
2125
2126    impl ::std::convert::From<&FscacheEntriesResponse> for FscacheEntriesResponse {
2127        fn from(value: &FscacheEntriesResponse) -> Self {
2128            value.clone()
2129        }
2130    }
2131
2132    ///`JobBatchInputsItem`
2133    ///
2134    /// <details><summary>JSON schema</summary>
2135    ///
2136    /// ```json
2137    ///{
2138    ///  "type": "object",
2139    ///  "required": [
2140    ///    "_path"
2141    ///  ],
2142    ///  "properties": {
2143    ///    "_path": {
2144    ///      "description": "rc/path",
2145    ///      "type": "string"
2146    ///    }
2147    ///  },
2148    ///  "additionalProperties": true
2149    ///}
2150    /// ```
2151    /// </details>
2152    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2153    pub struct JobBatchInputsItem {
2154        ///rc/path
2155        #[serde(rename = "_path")]
2156        pub path: ::std::string::String,
2157    }
2158
2159    impl ::std::convert::From<&JobBatchInputsItem> for JobBatchInputsItem {
2160        fn from(value: &JobBatchInputsItem) -> Self {
2161            value.clone()
2162        }
2163    }
2164
2165    ///`JobBatchRequest`
2166    ///
2167    /// <details><summary>JSON schema</summary>
2168    ///
2169    /// ```json
2170    ///{
2171    ///  "type": "object",
2172    ///  "properties": {
2173    ///    "_async": {
2174    ///      "description": "Run the command asynchronously. Returns a job id
2175    /// immediately.",
2176    ///      "type": "boolean"
2177    ///    },
2178    ///    "concurrency": {
2179    ///      "description": "Do this many commands concurrently. Defaults to
2180    /// --transfers if not set.",
2181    ///      "type": "integer"
2182    ///    },
2183    ///    "inputs": {
2184    ///      "description": "List of inputs to the commands with an extra _path
2185    /// parameter.",
2186    ///      "type": "array",
2187    ///      "items": {
2188    ///        "type": "object",
2189    ///        "required": [
2190    ///          "_path"
2191    ///        ],
2192    ///        "properties": {
2193    ///          "_path": {
2194    ///            "description": "rc/path",
2195    ///            "type": "string"
2196    ///          }
2197    ///        },
2198    ///        "additionalProperties": true
2199    ///      }
2200    ///    }
2201    ///  }
2202    ///}
2203    /// ```
2204    /// </details>
2205    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2206    pub struct JobBatchRequest {
2207        ///Run the command asynchronously. Returns a job id immediately.
2208        #[serde(
2209            rename = "_async",
2210            default,
2211            skip_serializing_if = "::std::option::Option::is_none"
2212        )]
2213        pub async_: ::std::option::Option<bool>,
2214        ///Do this many commands concurrently. Defaults to --transfers if not
2215        /// set.
2216        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
2217        pub concurrency: ::std::option::Option<i64>,
2218        ///List of inputs to the commands with an extra _path parameter.
2219        #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
2220        pub inputs: ::std::vec::Vec<JobBatchRequestInputsItem>,
2221    }
2222
2223    impl ::std::convert::From<&JobBatchRequest> for JobBatchRequest {
2224        fn from(value: &JobBatchRequest) -> Self {
2225            value.clone()
2226        }
2227    }
2228
2229    impl ::std::default::Default for JobBatchRequest {
2230        fn default() -> Self {
2231            Self {
2232                async_: Default::default(),
2233                concurrency: Default::default(),
2234                inputs: Default::default(),
2235            }
2236        }
2237    }
2238
2239    ///`JobBatchRequestInputsItem`
2240    ///
2241    /// <details><summary>JSON schema</summary>
2242    ///
2243    /// ```json
2244    ///{
2245    ///  "type": "object",
2246    ///  "required": [
2247    ///    "_path"
2248    ///  ],
2249    ///  "properties": {
2250    ///    "_path": {
2251    ///      "description": "rc/path",
2252    ///      "type": "string"
2253    ///    }
2254    ///  },
2255    ///  "additionalProperties": true
2256    ///}
2257    /// ```
2258    /// </details>
2259    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2260    pub struct JobBatchRequestInputsItem {
2261        ///rc/path
2262        #[serde(rename = "_path")]
2263        pub path: ::std::string::String,
2264    }
2265
2266    impl ::std::convert::From<&JobBatchRequestInputsItem> for JobBatchRequestInputsItem {
2267        fn from(value: &JobBatchRequestInputsItem) -> Self {
2268            value.clone()
2269        }
2270    }
2271
2272    ///`JobBatchResponse`
2273    ///
2274    /// <details><summary>JSON schema</summary>
2275    ///
2276    /// ```json
2277    ///{
2278    ///  "type": "object",
2279    ///  "required": [
2280    ///    "executeId",
2281    ///    "jobid"
2282    ///  ],
2283    ///  "properties": {
2284    ///    "executeId": {
2285    ///      "description": "Identifier for this rclone process.",
2286    ///      "type": "string"
2287    ///    },
2288    ///    "jobid": {
2289    ///      "description": "ID of the async job.",
2290    ///      "type": "integer"
2291    ///    }
2292    ///  }
2293    ///}
2294    /// ```
2295    /// </details>
2296    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2297    pub struct JobBatchResponse {
2298        ///Identifier for this rclone process.
2299        #[serde(rename = "executeId")]
2300        pub execute_id: ::std::string::String,
2301        ///ID of the async job.
2302        pub jobid: i64,
2303    }
2304
2305    impl ::std::convert::From<&JobBatchResponse> for JobBatchResponse {
2306        fn from(value: &JobBatchResponse) -> Self {
2307            value.clone()
2308        }
2309    }
2310
2311    ///`JobListResponse`
2312    ///
2313    /// <details><summary>JSON schema</summary>
2314    ///
2315    /// ```json
2316    ///{
2317    ///  "type": "object",
2318    ///  "required": [
2319    ///    "executeId",
2320    ///    "finishedIds",
2321    ///    "jobids",
2322    ///    "runningIds"
2323    ///  ],
2324    ///  "properties": {
2325    ///    "executeId": {
2326    ///      "description": "Identifier for this rclone process.",
2327    ///      "type": "string"
2328    ///    },
2329    ///    "finishedIds": {
2330    ///      "description": "Array of integer job ids that are finished.",
2331    ///      "type": "array",
2332    ///      "items": {
2333    ///        "type": "integer"
2334    ///      }
2335    ///    },
2336    ///    "jobids": {
2337    ///      "description": "Job IDs suitable for use with `job/status` and
2338    /// `job/stop`.",
2339    ///      "type": "array",
2340    ///      "items": {
2341    ///        "type": "number"
2342    ///      }
2343    ///    },
2344    ///    "runningIds": {
2345    ///      "description": "Array of integer job ids that are running.",
2346    ///      "type": "array",
2347    ///      "items": {
2348    ///        "type": "integer"
2349    ///      }
2350    ///    }
2351    ///  }
2352    ///}
2353    /// ```
2354    /// </details>
2355    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2356    pub struct JobListResponse {
2357        ///Identifier for this rclone process.
2358        #[serde(rename = "executeId")]
2359        pub execute_id: ::std::string::String,
2360        ///Array of integer job ids that are finished.
2361        #[serde(rename = "finishedIds")]
2362        pub finished_ids: ::std::vec::Vec<i64>,
2363        ///Job IDs suitable for use with `job/status` and `job/stop`.
2364        pub jobids: ::std::vec::Vec<f64>,
2365        ///Array of integer job ids that are running.
2366        #[serde(rename = "runningIds")]
2367        pub running_ids: ::std::vec::Vec<i64>,
2368    }
2369
2370    impl ::std::convert::From<&JobListResponse> for JobListResponse {
2371        fn from(value: &JobListResponse) -> Self {
2372            value.clone()
2373        }
2374    }
2375
2376    ///`JobStatusResponse`
2377    ///
2378    /// <details><summary>JSON schema</summary>
2379    ///
2380    /// ```json
2381    ///{
2382    ///  "type": "object",
2383    ///  "required": [
2384    ///    "duration",
2385    ///    "endTime",
2386    ///    "error",
2387    ///    "finished",
2388    ///    "id",
2389    ///    "startTime",
2390    ///    "success"
2391    ///  ],
2392    ///  "properties": {
2393    ///    "duration": {
2394    ///      "description": "Execution time in seconds.",
2395    ///      "type": "number"
2396    ///    },
2397    ///    "endTime": {
2398    ///      "description": "Timestamp when the job finished. (e.g.
2399    /// '2025-12-26T18:50:20.528746884+01:00')",
2400    ///      "type": "string"
2401    ///    },
2402    ///    "error": {
2403    ///      "description": "Error message, or empty string on success.",
2404    ///      "type": "string"
2405    ///    },
2406    ///    "finished": {
2407    ///      "description": "True once the job has completed.",
2408    ///      "type": "boolean"
2409    ///    },
2410    ///    "id": {
2411    ///      "description": "Job identifier.",
2412    ///      "type": "number"
2413    ///    },
2414    ///    "output": {
2415    ///      "description": "Synchronous-style output payload when available."
2416    ///    },
2417    ///    "progress": {
2418    ///      "description": "Progress measurements supplied by the underlying
2419    /// command."
2420    ///    },
2421    ///    "startTime": {
2422    ///      "description": "Timestamp when the job started. (e.g.
2423    /// '2025-12-24T18:50:20.5281314+01:00')",
2424    ///      "type": "string"
2425    ///    },
2426    ///    "success": {
2427    ///      "description": "True if the job completed successfully.",
2428    ///      "type": "boolean"
2429    ///    }
2430    ///  }
2431    ///}
2432    /// ```
2433    /// </details>
2434    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2435    pub struct JobStatusResponse {
2436        pub duration: f64,
2437        ///Timestamp when the job finished. (e.g.
2438        /// '2025-12-26T18:50:20.528746884+01:00')
2439        #[serde(rename = "endTime")]
2440        pub end_time: ::std::string::String,
2441        ///Error message, or empty string on success.
2442        pub error: ::std::string::String,
2443        ///True once the job has completed.
2444        pub finished: bool,
2445        pub id: f64,
2446        ///Synchronous-style output payload when available.
2447        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
2448        pub output: ::std::option::Option<::serde_json::Value>,
2449        ///Progress measurements supplied by the underlying command.
2450        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
2451        pub progress: ::std::option::Option<::serde_json::Value>,
2452        ///Timestamp when the job started. (e.g.
2453        /// '2025-12-24T18:50:20.5281314+01:00')
2454        #[serde(rename = "startTime")]
2455        pub start_time: ::std::string::String,
2456        ///True if the job completed successfully.
2457        pub success: bool,
2458    }
2459
2460    impl ::std::convert::From<&JobStatusResponse> for JobStatusResponse {
2461        fn from(value: &JobStatusResponse) -> Self {
2462            value.clone()
2463        }
2464    }
2465
2466    ///`MountListmountsResponse`
2467    ///
2468    /// <details><summary>JSON schema</summary>
2469    ///
2470    /// ```json
2471    ///{
2472    ///  "type": "object",
2473    ///  "required": [
2474    ///    "mountPoints"
2475    ///  ],
2476    ///  "properties": {
2477    ///    "mountPoints": {
2478    ///      "type": "array",
2479    ///      "items": {
2480    ///        "type": "object",
2481    ///        "required": [
2482    ///          "Fs",
2483    ///          "MountPoint",
2484    ///          "MountedOn"
2485    ///        ],
2486    ///        "properties": {
2487    ///          "Fs": {
2488    ///            "type": "string"
2489    ///          },
2490    ///          "MountPoint": {
2491    ///            "type": "string"
2492    ///          },
2493    ///          "MountedOn": {
2494    ///            "type": "string",
2495    ///            "format": "date-time"
2496    ///          }
2497    ///        },
2498    ///        "additionalProperties": false
2499    ///      }
2500    ///    }
2501    ///  }
2502    ///}
2503    /// ```
2504    /// </details>
2505    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2506    pub struct MountListmountsResponse {
2507        #[serde(rename = "mountPoints")]
2508        pub mount_points: ::std::vec::Vec<MountListmountsResponseMountPointsItem>,
2509    }
2510
2511    impl ::std::convert::From<&MountListmountsResponse> for MountListmountsResponse {
2512        fn from(value: &MountListmountsResponse) -> Self {
2513            value.clone()
2514        }
2515    }
2516
2517    ///`MountListmountsResponseMountPointsItem`
2518    ///
2519    /// <details><summary>JSON schema</summary>
2520    ///
2521    /// ```json
2522    ///{
2523    ///  "type": "object",
2524    ///  "required": [
2525    ///    "Fs",
2526    ///    "MountPoint",
2527    ///    "MountedOn"
2528    ///  ],
2529    ///  "properties": {
2530    ///    "Fs": {
2531    ///      "type": "string"
2532    ///    },
2533    ///    "MountPoint": {
2534    ///      "type": "string"
2535    ///    },
2536    ///    "MountedOn": {
2537    ///      "type": "string",
2538    ///      "format": "date-time"
2539    ///    }
2540    ///  },
2541    ///  "additionalProperties": false
2542    ///}
2543    /// ```
2544    /// </details>
2545    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2546    #[serde(deny_unknown_fields)]
2547    pub struct MountListmountsResponseMountPointsItem {
2548        #[serde(rename = "Fs")]
2549        pub fs: ::std::string::String,
2550        #[serde(rename = "MountPoint")]
2551        pub mount_point: ::std::string::String,
2552        #[serde(rename = "MountedOn")]
2553        pub mounted_on: ::chrono::DateTime<::chrono::offset::Utc>,
2554    }
2555
2556    impl ::std::convert::From<&MountListmountsResponseMountPointsItem>
2557        for MountListmountsResponseMountPointsItem
2558    {
2559        fn from(value: &MountListmountsResponseMountPointsItem) -> Self {
2560            value.clone()
2561        }
2562    }
2563
2564    ///`MountTypesResponse`
2565    ///
2566    /// <details><summary>JSON schema</summary>
2567    ///
2568    /// ```json
2569    ///{
2570    ///  "type": "object",
2571    ///  "required": [
2572    ///    "mountTypes"
2573    ///  ],
2574    ///  "properties": {
2575    ///    "mountTypes": {
2576    ///      "type": "array",
2577    ///      "items": {
2578    ///        "type": "string"
2579    ///      }
2580    ///    }
2581    ///  }
2582    ///}
2583    /// ```
2584    /// </details>
2585    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2586    pub struct MountTypesResponse {
2587        #[serde(rename = "mountTypes")]
2588        pub mount_types: ::std::vec::Vec<::std::string::String>,
2589    }
2590
2591    impl ::std::convert::From<&MountTypesResponse> for MountTypesResponse {
2592        fn from(value: &MountTypesResponse) -> Self {
2593            value.clone()
2594        }
2595    }
2596
2597    ///`OperationsAboutResponse`
2598    ///
2599    /// <details><summary>JSON schema</summary>
2600    ///
2601    /// ```json
2602    ///{
2603    ///  "type": "object",
2604    ///  "required": [
2605    ///    "free",
2606    ///    "total",
2607    ///    "used"
2608    ///  ],
2609    ///  "properties": {
2610    ///    "free": {
2611    ///      "type": "number"
2612    ///    },
2613    ///    "objects": {
2614    ///      "type": "number"
2615    ///    },
2616    ///    "other": {
2617    ///      "type": "number"
2618    ///    },
2619    ///    "total": {
2620    ///      "type": "number"
2621    ///    },
2622    ///    "trashed": {
2623    ///      "type": "number"
2624    ///    },
2625    ///    "used": {
2626    ///      "type": "number"
2627    ///    }
2628    ///  }
2629    ///}
2630    /// ```
2631    /// </details>
2632    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2633    pub struct OperationsAboutResponse {
2634        pub free: f64,
2635        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
2636        pub objects: ::std::option::Option<f64>,
2637        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
2638        pub other: ::std::option::Option<f64>,
2639        pub total: f64,
2640        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
2641        pub trashed: ::std::option::Option<f64>,
2642        pub used: f64,
2643    }
2644
2645    impl ::std::convert::From<&OperationsAboutResponse> for OperationsAboutResponse {
2646        fn from(value: &OperationsAboutResponse) -> Self {
2647            value.clone()
2648        }
2649    }
2650
2651    ///`OperationsCheckResponse`
2652    ///
2653    /// <details><summary>JSON schema</summary>
2654    ///
2655    /// ```json
2656    ///{
2657    ///  "type": "object",
2658    ///  "required": [
2659    ///    "status",
2660    ///    "success"
2661    ///  ],
2662    ///  "properties": {
2663    ///    "combined": {
2664    ///      "description": "Combined summary lines when `combined=true` is
2665    /// requested.",
2666    ///      "type": "array",
2667    ///      "items": {
2668    ///        "type": "string"
2669    ///      }
2670    ///    },
2671    ///    "differ": {
2672    ///      "description": "Files that differed between source and
2673    /// destination.",
2674    ///      "type": "array",
2675    ///      "items": {
2676    ///        "type": "string"
2677    ///      }
2678    ///    },
2679    ///    "error": {
2680    ///      "description": "Entries that produced errors during the check.",
2681    ///      "type": "array",
2682    ///      "items": {
2683    ///        "type": "string"
2684    ///      }
2685    ///    },
2686    ///    "hashType": {
2687    ///      "description": "Hash algorithm used for comparisons when
2688    /// applicable.",
2689    ///      "type": "string"
2690    ///    },
2691    ///    "match": {
2692    ///      "description": "Files that matched on both sides.",
2693    ///      "type": "array",
2694    ///      "items": {
2695    ///        "type": "string"
2696    ///      }
2697    ///    },
2698    ///    "missingOnDst": {
2699    ///      "description": "Files present on the source but missing from the
2700    /// destination.",
2701    ///      "type": "array",
2702    ///      "items": {
2703    ///        "type": "string"
2704    ///      }
2705    ///    },
2706    ///    "missingOnSrc": {
2707    ///      "description": "Files present on the destination but missing from
2708    /// the source.",
2709    ///      "type": "array",
2710    ///      "items": {
2711    ///        "type": "string"
2712    ///      }
2713    ///    },
2714    ///    "status": {
2715    ///      "description": "Human readable status string.",
2716    ///      "type": "string"
2717    ///    },
2718    ///    "success": {
2719    ///      "description": "True when the check completes without differences
2720    /// or errors.",
2721    ///      "type": "boolean"
2722    ///    }
2723    ///  }
2724    ///}
2725    /// ```
2726    /// </details>
2727    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2728    pub struct OperationsCheckResponse {
2729        ///Combined summary lines when `combined=true` is requested.
2730        #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
2731        pub combined: ::std::vec::Vec<::std::string::String>,
2732        ///Files that differed between source and destination.
2733        #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
2734        pub differ: ::std::vec::Vec<::std::string::String>,
2735        ///Entries that produced errors during the check.
2736        #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
2737        pub error: ::std::vec::Vec<::std::string::String>,
2738        ///Hash algorithm used for comparisons when applicable.
2739        #[serde(
2740            rename = "hashType",
2741            default,
2742            skip_serializing_if = "::std::option::Option::is_none"
2743        )]
2744        pub hash_type: ::std::option::Option<::std::string::String>,
2745        ///Files that matched on both sides.
2746        #[serde(
2747            rename = "match",
2748            default,
2749            skip_serializing_if = "::std::vec::Vec::is_empty"
2750        )]
2751        pub match_: ::std::vec::Vec<::std::string::String>,
2752        ///Files present on the source but missing from the destination.
2753        #[serde(
2754            rename = "missingOnDst",
2755            default,
2756            skip_serializing_if = "::std::vec::Vec::is_empty"
2757        )]
2758        pub missing_on_dst: ::std::vec::Vec<::std::string::String>,
2759        ///Files present on the destination but missing from the source.
2760        #[serde(
2761            rename = "missingOnSrc",
2762            default,
2763            skip_serializing_if = "::std::vec::Vec::is_empty"
2764        )]
2765        pub missing_on_src: ::std::vec::Vec<::std::string::String>,
2766        ///Human readable status string.
2767        pub status: ::std::string::String,
2768        ///True when the check completes without differences or errors.
2769        pub success: bool,
2770    }
2771
2772    impl ::std::convert::From<&OperationsCheckResponse> for OperationsCheckResponse {
2773        fn from(value: &OperationsCheckResponse) -> Self {
2774            value.clone()
2775        }
2776    }
2777
2778    ///`OperationsFsinfoResponse`
2779    ///
2780    /// <details><summary>JSON schema</summary>
2781    ///
2782    /// ```json
2783    ///{
2784    ///  "type": "object",
2785    ///  "required": [
2786    ///    "Features",
2787    ///    "Hashes",
2788    ///    "Name",
2789    ///    "Precision",
2790    ///    "Root",
2791    ///    "String"
2792    ///  ],
2793    ///  "properties": {
2794    ///    "Features": {
2795    ///      "type": "object",
2796    ///      "additionalProperties": {
2797    ///        "type": "boolean"
2798    ///      }
2799    ///    },
2800    ///    "Hashes": {
2801    ///      "type": "array",
2802    ///      "items": {
2803    ///        "type": "string"
2804    ///      }
2805    ///    },
2806    ///    "MetadataInfo": {
2807    ///      "type": [
2808    ///        "object",
2809    ///        "null"
2810    ///      ],
2811    ///      "additionalProperties": true
2812    ///    },
2813    ///    "Name": {
2814    ///      "type": "string"
2815    ///    },
2816    ///    "Precision": {
2817    ///      "type": "number"
2818    ///    },
2819    ///    "Root": {
2820    ///      "type": "string"
2821    ///    },
2822    ///    "String": {
2823    ///      "type": "string"
2824    ///    }
2825    ///  }
2826    ///}
2827    /// ```
2828    /// </details>
2829    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2830    pub struct OperationsFsinfoResponse {
2831        #[serde(rename = "Features")]
2832        pub features: ::std::collections::HashMap<::std::string::String, bool>,
2833        #[serde(rename = "Hashes")]
2834        pub hashes: ::std::vec::Vec<::std::string::String>,
2835        #[serde(
2836            rename = "MetadataInfo",
2837            default,
2838            skip_serializing_if = "::std::option::Option::is_none"
2839        )]
2840        pub metadata_info:
2841            ::std::option::Option<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
2842        #[serde(rename = "Name")]
2843        pub name: ::std::string::String,
2844        #[serde(rename = "Precision")]
2845        pub precision: f64,
2846        #[serde(rename = "Root")]
2847        pub root: ::std::string::String,
2848        #[serde(rename = "String")]
2849        pub string: ::std::string::String,
2850    }
2851
2852    impl ::std::convert::From<&OperationsFsinfoResponse> for OperationsFsinfoResponse {
2853        fn from(value: &OperationsFsinfoResponse) -> Self {
2854            value.clone()
2855        }
2856    }
2857
2858    ///`OperationsHashsumResponse`
2859    ///
2860    /// <details><summary>JSON schema</summary>
2861    ///
2862    /// ```json
2863    ///{
2864    ///  "type": "object",
2865    ///  "required": [
2866    ///    "hashType",
2867    ///    "hashsum"
2868    ///  ],
2869    ///  "properties": {
2870    ///    "hashType": {
2871    ///      "type": "string"
2872    ///    },
2873    ///    "hashsum": {
2874    ///      "type": "array",
2875    ///      "items": {
2876    ///        "type": "string"
2877    ///      }
2878    ///    }
2879    ///  }
2880    ///}
2881    /// ```
2882    /// </details>
2883    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2884    pub struct OperationsHashsumResponse {
2885        #[serde(rename = "hashType")]
2886        pub hash_type: ::std::string::String,
2887        pub hashsum: ::std::vec::Vec<::std::string::String>,
2888    }
2889
2890    impl ::std::convert::From<&OperationsHashsumResponse> for OperationsHashsumResponse {
2891        fn from(value: &OperationsHashsumResponse) -> Self {
2892            value.clone()
2893        }
2894    }
2895
2896    ///`OperationsListResponse`
2897    ///
2898    /// <details><summary>JSON schema</summary>
2899    ///
2900    /// ```json
2901    ///{
2902    ///  "type": "object",
2903    ///  "required": [
2904    ///    "list"
2905    ///  ],
2906    ///  "properties": {
2907    ///    "list": {
2908    ///      "description": "Array of entries equivalent to the items returned
2909    /// by `rclone lsjson`.",
2910    ///      "type": "array",
2911    ///      "items": {
2912    ///        "type": "object",
2913    ///        "required": [
2914    ///          "IsDir",
2915    ///          "Name",
2916    ///          "Path"
2917    ///        ],
2918    ///        "properties": {
2919    ///          "Encrypted": {
2920    ///            "description": "Encrypted entry name when using crypt
2921    /// remotes.",
2922    ///            "type": "string"
2923    ///          },
2924    ///          "EncryptedPath": {
2925    ///            "description": "Encrypted path when using crypt remotes.",
2926    ///            "type": "string"
2927    ///          },
2928    ///          "Hashes": {
2929    ///            "description": "Hash digests keyed by algorithm when
2930    /// requested.",
2931    ///            "type": "object",
2932    ///            "additionalProperties": {
2933    ///              "type": "string"
2934    ///            }
2935    ///          },
2936    ///          "ID": {
2937    ///            "description": "Backend-specific identifier when provided.",
2938    ///            "type": "string"
2939    ///          },
2940    ///          "IsBucket": {
2941    ///            "description": "True for bucket/root entries on bucket-based
2942    /// remotes.",
2943    ///            "type": "boolean"
2944    ///          },
2945    ///          "IsDir": {
2946    ///            "description": "True if the entry represents a directory.",
2947    ///            "type": "boolean"
2948    ///          },
2949    ///          "Metadata": {
2950    ///            "description": "Backend-provided metadata map.",
2951    ///            "type": "object",
2952    ///            "additionalProperties": {}
2953    ///          },
2954    ///          "MimeType": {
2955    ///            "description": "MIME type where available.",
2956    ///            "type": "string"
2957    ///          },
2958    ///          "ModTime": {
2959    ///            "description": "Modification timestamp in RFC3339 format.",
2960    ///            "type": "string"
2961    ///          },
2962    ///          "Name": {
2963    ///            "description": "Base name of the entry.",
2964    ///            "type": "string"
2965    ///          },
2966    ///          "OrigID": {
2967    ///            "description": "Original backend identifier when recorded.",
2968    ///            "type": "string"
2969    ///          },
2970    ///          "Path": {
2971    ///            "description": "Path relative to the requested remote root.",
2972    ///            "type": "string"
2973    ///          },
2974    ///          "Size": {
2975    ///            "description": "Object size in bytes.",
2976    ///            "type": "number"
2977    ///          },
2978    ///          "Tier": {
2979    ///            "description": "Storage class or tier, if supplied by the
2980    /// backend.",
2981    ///            "type": "string"
2982    ///          }
2983    ///        }
2984    ///      }
2985    ///    }
2986    ///  }
2987    ///}
2988    /// ```
2989    /// </details>
2990    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
2991    pub struct OperationsListResponse {
2992        ///Array of entries equivalent to the items returned by `rclone
2993        /// lsjson`.
2994        pub list: ::std::vec::Vec<OperationsListResponseListItem>,
2995    }
2996
2997    impl ::std::convert::From<&OperationsListResponse> for OperationsListResponse {
2998        fn from(value: &OperationsListResponse) -> Self {
2999            value.clone()
3000        }
3001    }
3002
3003    ///`OperationsListResponseListItem`
3004    ///
3005    /// <details><summary>JSON schema</summary>
3006    ///
3007    /// ```json
3008    ///{
3009    ///  "type": "object",
3010    ///  "required": [
3011    ///    "IsDir",
3012    ///    "Name",
3013    ///    "Path"
3014    ///  ],
3015    ///  "properties": {
3016    ///    "Encrypted": {
3017    ///      "description": "Encrypted entry name when using crypt remotes.",
3018    ///      "type": "string"
3019    ///    },
3020    ///    "EncryptedPath": {
3021    ///      "description": "Encrypted path when using crypt remotes.",
3022    ///      "type": "string"
3023    ///    },
3024    ///    "Hashes": {
3025    ///      "description": "Hash digests keyed by algorithm when requested.",
3026    ///      "type": "object",
3027    ///      "additionalProperties": {
3028    ///        "type": "string"
3029    ///      }
3030    ///    },
3031    ///    "ID": {
3032    ///      "description": "Backend-specific identifier when provided.",
3033    ///      "type": "string"
3034    ///    },
3035    ///    "IsBucket": {
3036    ///      "description": "True for bucket/root entries on bucket-based
3037    /// remotes.",
3038    ///      "type": "boolean"
3039    ///    },
3040    ///    "IsDir": {
3041    ///      "description": "True if the entry represents a directory.",
3042    ///      "type": "boolean"
3043    ///    },
3044    ///    "Metadata": {
3045    ///      "description": "Backend-provided metadata map.",
3046    ///      "type": "object",
3047    ///      "additionalProperties": {}
3048    ///    },
3049    ///    "MimeType": {
3050    ///      "description": "MIME type where available.",
3051    ///      "type": "string"
3052    ///    },
3053    ///    "ModTime": {
3054    ///      "description": "Modification timestamp in RFC3339 format.",
3055    ///      "type": "string"
3056    ///    },
3057    ///    "Name": {
3058    ///      "description": "Base name of the entry.",
3059    ///      "type": "string"
3060    ///    },
3061    ///    "OrigID": {
3062    ///      "description": "Original backend identifier when recorded.",
3063    ///      "type": "string"
3064    ///    },
3065    ///    "Path": {
3066    ///      "description": "Path relative to the requested remote root.",
3067    ///      "type": "string"
3068    ///    },
3069    ///    "Size": {
3070    ///      "description": "Object size in bytes.",
3071    ///      "type": "number"
3072    ///    },
3073    ///    "Tier": {
3074    ///      "description": "Storage class or tier, if supplied by the
3075    /// backend.",
3076    ///      "type": "string"
3077    ///    }
3078    ///  }
3079    ///}
3080    /// ```
3081    /// </details>
3082    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3083    pub struct OperationsListResponseListItem {
3084        ///Encrypted entry name when using crypt remotes.
3085        #[serde(
3086            rename = "Encrypted",
3087            default,
3088            skip_serializing_if = "::std::option::Option::is_none"
3089        )]
3090        pub encrypted: ::std::option::Option<::std::string::String>,
3091        ///Encrypted path when using crypt remotes.
3092        #[serde(
3093            rename = "EncryptedPath",
3094            default,
3095            skip_serializing_if = "::std::option::Option::is_none"
3096        )]
3097        pub encrypted_path: ::std::option::Option<::std::string::String>,
3098        ///Hash digests keyed by algorithm when requested.
3099        #[serde(
3100            rename = "Hashes",
3101            default,
3102            skip_serializing_if = ":: std :: collections :: HashMap::is_empty"
3103        )]
3104        pub hashes: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
3105        ///Backend-specific identifier when provided.
3106        #[serde(
3107            rename = "ID",
3108            default,
3109            skip_serializing_if = "::std::option::Option::is_none"
3110        )]
3111        pub id: ::std::option::Option<::std::string::String>,
3112        ///True for bucket/root entries on bucket-based remotes.
3113        #[serde(
3114            rename = "IsBucket",
3115            default,
3116            skip_serializing_if = "::std::option::Option::is_none"
3117        )]
3118        pub is_bucket: ::std::option::Option<bool>,
3119        ///True if the entry represents a directory.
3120        #[serde(rename = "IsDir")]
3121        pub is_dir: bool,
3122        ///Backend-provided metadata map.
3123        #[serde(
3124            rename = "Metadata",
3125            default,
3126            skip_serializing_if = "::serde_json::Map::is_empty"
3127        )]
3128        pub metadata: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3129        ///MIME type where available.
3130        #[serde(
3131            rename = "MimeType",
3132            default,
3133            skip_serializing_if = "::std::option::Option::is_none"
3134        )]
3135        pub mime_type: ::std::option::Option<::std::string::String>,
3136        ///Modification timestamp in RFC3339 format.
3137        #[serde(
3138            rename = "ModTime",
3139            default,
3140            skip_serializing_if = "::std::option::Option::is_none"
3141        )]
3142        pub mod_time: ::std::option::Option<::std::string::String>,
3143        ///Base name of the entry.
3144        #[serde(rename = "Name")]
3145        pub name: ::std::string::String,
3146        ///Original backend identifier when recorded.
3147        #[serde(
3148            rename = "OrigID",
3149            default,
3150            skip_serializing_if = "::std::option::Option::is_none"
3151        )]
3152        pub orig_id: ::std::option::Option<::std::string::String>,
3153        ///Path relative to the requested remote root.
3154        #[serde(rename = "Path")]
3155        pub path: ::std::string::String,
3156        #[serde(
3157            rename = "Size",
3158            default,
3159            skip_serializing_if = "::std::option::Option::is_none"
3160        )]
3161        pub size: ::std::option::Option<f64>,
3162        ///Storage class or tier, if supplied by the backend.
3163        #[serde(
3164            rename = "Tier",
3165            default,
3166            skip_serializing_if = "::std::option::Option::is_none"
3167        )]
3168        pub tier: ::std::option::Option<::std::string::String>,
3169    }
3170
3171    impl ::std::convert::From<&OperationsListResponseListItem> for OperationsListResponseListItem {
3172        fn from(value: &OperationsListResponseListItem) -> Self {
3173            value.clone()
3174        }
3175    }
3176
3177    ///`OperationsPubliclinkResponse`
3178    ///
3179    /// <details><summary>JSON schema</summary>
3180    ///
3181    /// ```json
3182    ///{
3183    ///  "type": "object",
3184    ///  "required": [
3185    ///    "url"
3186    ///  ],
3187    ///  "properties": {
3188    ///    "url": {
3189    ///      "type": "string",
3190    ///      "format": "uri"
3191    ///    }
3192    ///  }
3193    ///}
3194    /// ```
3195    /// </details>
3196    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3197    pub struct OperationsPubliclinkResponse {
3198        pub url: ::std::string::String,
3199    }
3200
3201    impl ::std::convert::From<&OperationsPubliclinkResponse> for OperationsPubliclinkResponse {
3202        fn from(value: &OperationsPubliclinkResponse) -> Self {
3203            value.clone()
3204        }
3205    }
3206
3207    ///`OperationsSizeResponse`
3208    ///
3209    /// <details><summary>JSON schema</summary>
3210    ///
3211    /// ```json
3212    ///{
3213    ///  "type": "object",
3214    ///  "required": [
3215    ///    "bytes",
3216    ///    "count",
3217    ///    "sizeless"
3218    ///  ],
3219    ///  "properties": {
3220    ///    "bytes": {
3221    ///      "type": "number"
3222    ///    },
3223    ///    "count": {
3224    ///      "type": "integer"
3225    ///    },
3226    ///    "sizeless": {
3227    ///      "type": "integer"
3228    ///    }
3229    ///  }
3230    ///}
3231    /// ```
3232    /// </details>
3233    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3234    pub struct OperationsSizeResponse {
3235        pub bytes: f64,
3236        pub count: i64,
3237        pub sizeless: i64,
3238    }
3239
3240    impl ::std::convert::From<&OperationsSizeResponse> for OperationsSizeResponse {
3241        fn from(value: &OperationsSizeResponse) -> Self {
3242            value.clone()
3243        }
3244    }
3245
3246    ///`OperationsStatResponse`
3247    ///
3248    /// <details><summary>JSON schema</summary>
3249    ///
3250    /// ```json
3251    ///{
3252    ///  "type": "object",
3253    ///  "required": [
3254    ///    "item"
3255    ///  ],
3256    ///  "properties": {
3257    ///    "item": {
3258    ///      "type": [
3259    ///        "object",
3260    ///        "null"
3261    ///      ],
3262    ///      "required": [
3263    ///        "IsDir",
3264    ///        "MimeType",
3265    ///        "ModTime",
3266    ///        "Name",
3267    ///        "Path",
3268    ///        "Size"
3269    ///      ],
3270    ///      "properties": {
3271    ///        "Encrypted": {
3272    ///          "description": "Encrypted entry name when using crypt
3273    /// remotes.",
3274    ///          "type": "string"
3275    ///        },
3276    ///        "EncryptedPath": {
3277    ///          "description": "Encrypted path when using crypt remotes.",
3278    ///          "type": "string"
3279    ///        },
3280    ///        "Hashes": {
3281    ///          "description": "Hash digests keyed by algorithm when
3282    /// requested.",
3283    ///          "type": "object",
3284    ///          "additionalProperties": {
3285    ///            "type": "string"
3286    ///          }
3287    ///        },
3288    ///        "ID": {
3289    ///          "description": "Backend-specific identifier when provided.",
3290    ///          "type": "string"
3291    ///        },
3292    ///        "IsBucket": {
3293    ///          "description": "True for bucket/root entries on bucket-based
3294    /// remotes.",
3295    ///          "type": "boolean"
3296    ///        },
3297    ///        "IsDir": {
3298    ///          "description": "True if the entry is a directory.",
3299    ///          "type": "boolean"
3300    ///        },
3301    ///        "Metadata": {
3302    ///          "description": "Backend-provided metadata map.",
3303    ///          "type": "object",
3304    ///          "additionalProperties": {}
3305    ///        },
3306    ///        "MimeType": {
3307    ///          "description": "MIME type where available.",
3308    ///          "type": "string"
3309    ///        },
3310    ///        "ModTime": {
3311    ///          "description": "Modification timestamp in RFC3339 format.",
3312    ///          "type": "string"
3313    ///        },
3314    ///        "Name": {
3315    ///          "description": "Base name of the entry.",
3316    ///          "type": "string"
3317    ///        },
3318    ///        "OrigID": {
3319    ///          "description": "Original backend identifier when recorded.",
3320    ///          "type": "string"
3321    ///        },
3322    ///        "Path": {
3323    ///          "description": "Path relative to the remote root.",
3324    ///          "type": "string"
3325    ///        },
3326    ///        "Size": {
3327    ///          "description": "Object size in bytes.",
3328    ///          "type": "number"
3329    ///        },
3330    ///        "Tier": {
3331    ///          "description": "Storage class or tier, if supplied by the
3332    /// backend.",
3333    ///          "type": "string"
3334    ///        }
3335    ///      }
3336    ///    }
3337    ///  }
3338    ///}
3339    /// ```
3340    /// </details>
3341    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3342    pub struct OperationsStatResponse {
3343        pub item: ::std::option::Option<OperationsStatResponseItem>,
3344    }
3345
3346    impl ::std::convert::From<&OperationsStatResponse> for OperationsStatResponse {
3347        fn from(value: &OperationsStatResponse) -> Self {
3348            value.clone()
3349        }
3350    }
3351
3352    ///`OperationsStatResponseItem`
3353    ///
3354    /// <details><summary>JSON schema</summary>
3355    ///
3356    /// ```json
3357    ///{
3358    ///  "type": "object",
3359    ///  "required": [
3360    ///    "IsDir",
3361    ///    "MimeType",
3362    ///    "ModTime",
3363    ///    "Name",
3364    ///    "Path",
3365    ///    "Size"
3366    ///  ],
3367    ///  "properties": {
3368    ///    "Encrypted": {
3369    ///      "description": "Encrypted entry name when using crypt remotes.",
3370    ///      "type": "string"
3371    ///    },
3372    ///    "EncryptedPath": {
3373    ///      "description": "Encrypted path when using crypt remotes.",
3374    ///      "type": "string"
3375    ///    },
3376    ///    "Hashes": {
3377    ///      "description": "Hash digests keyed by algorithm when requested.",
3378    ///      "type": "object",
3379    ///      "additionalProperties": {
3380    ///        "type": "string"
3381    ///      }
3382    ///    },
3383    ///    "ID": {
3384    ///      "description": "Backend-specific identifier when provided.",
3385    ///      "type": "string"
3386    ///    },
3387    ///    "IsBucket": {
3388    ///      "description": "True for bucket/root entries on bucket-based
3389    /// remotes.",
3390    ///      "type": "boolean"
3391    ///    },
3392    ///    "IsDir": {
3393    ///      "description": "True if the entry is a directory.",
3394    ///      "type": "boolean"
3395    ///    },
3396    ///    "Metadata": {
3397    ///      "description": "Backend-provided metadata map.",
3398    ///      "type": "object",
3399    ///      "additionalProperties": {}
3400    ///    },
3401    ///    "MimeType": {
3402    ///      "description": "MIME type where available.",
3403    ///      "type": "string"
3404    ///    },
3405    ///    "ModTime": {
3406    ///      "description": "Modification timestamp in RFC3339 format.",
3407    ///      "type": "string"
3408    ///    },
3409    ///    "Name": {
3410    ///      "description": "Base name of the entry.",
3411    ///      "type": "string"
3412    ///    },
3413    ///    "OrigID": {
3414    ///      "description": "Original backend identifier when recorded.",
3415    ///      "type": "string"
3416    ///    },
3417    ///    "Path": {
3418    ///      "description": "Path relative to the remote root.",
3419    ///      "type": "string"
3420    ///    },
3421    ///    "Size": {
3422    ///      "description": "Object size in bytes.",
3423    ///      "type": "number"
3424    ///    },
3425    ///    "Tier": {
3426    ///      "description": "Storage class or tier, if supplied by the
3427    /// backend.",
3428    ///      "type": "string"
3429    ///    }
3430    ///  }
3431    ///}
3432    /// ```
3433    /// </details>
3434    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3435    pub struct OperationsStatResponseItem {
3436        ///Encrypted entry name when using crypt remotes.
3437        #[serde(
3438            rename = "Encrypted",
3439            default,
3440            skip_serializing_if = "::std::option::Option::is_none"
3441        )]
3442        pub encrypted: ::std::option::Option<::std::string::String>,
3443        ///Encrypted path when using crypt remotes.
3444        #[serde(
3445            rename = "EncryptedPath",
3446            default,
3447            skip_serializing_if = "::std::option::Option::is_none"
3448        )]
3449        pub encrypted_path: ::std::option::Option<::std::string::String>,
3450        ///Hash digests keyed by algorithm when requested.
3451        #[serde(
3452            rename = "Hashes",
3453            default,
3454            skip_serializing_if = ":: std :: collections :: HashMap::is_empty"
3455        )]
3456        pub hashes: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
3457        ///Backend-specific identifier when provided.
3458        #[serde(
3459            rename = "ID",
3460            default,
3461            skip_serializing_if = "::std::option::Option::is_none"
3462        )]
3463        pub id: ::std::option::Option<::std::string::String>,
3464        ///True for bucket/root entries on bucket-based remotes.
3465        #[serde(
3466            rename = "IsBucket",
3467            default,
3468            skip_serializing_if = "::std::option::Option::is_none"
3469        )]
3470        pub is_bucket: ::std::option::Option<bool>,
3471        ///True if the entry is a directory.
3472        #[serde(rename = "IsDir")]
3473        pub is_dir: bool,
3474        ///Backend-provided metadata map.
3475        #[serde(
3476            rename = "Metadata",
3477            default,
3478            skip_serializing_if = "::serde_json::Map::is_empty"
3479        )]
3480        pub metadata: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3481        ///MIME type where available.
3482        #[serde(rename = "MimeType")]
3483        pub mime_type: ::std::string::String,
3484        ///Modification timestamp in RFC3339 format.
3485        #[serde(rename = "ModTime")]
3486        pub mod_time: ::std::string::String,
3487        ///Base name of the entry.
3488        #[serde(rename = "Name")]
3489        pub name: ::std::string::String,
3490        ///Original backend identifier when recorded.
3491        #[serde(
3492            rename = "OrigID",
3493            default,
3494            skip_serializing_if = "::std::option::Option::is_none"
3495        )]
3496        pub orig_id: ::std::option::Option<::std::string::String>,
3497        ///Path relative to the remote root.
3498        #[serde(rename = "Path")]
3499        pub path: ::std::string::String,
3500        #[serde(rename = "Size")]
3501        pub size: f64,
3502        ///Storage class or tier, if supplied by the backend.
3503        #[serde(
3504            rename = "Tier",
3505            default,
3506            skip_serializing_if = "::std::option::Option::is_none"
3507        )]
3508        pub tier: ::std::option::Option<::std::string::String>,
3509    }
3510
3511    impl ::std::convert::From<&OperationsStatResponseItem> for OperationsStatResponseItem {
3512        fn from(value: &OperationsStatResponseItem) -> Self {
3513            value.clone()
3514        }
3515    }
3516
3517    ///`OptionsBlocksResponse`
3518    ///
3519    /// <details><summary>JSON schema</summary>
3520    ///
3521    /// ```json
3522    ///{
3523    ///  "type": "object",
3524    ///  "required": [
3525    ///    "options"
3526    ///  ],
3527    ///  "properties": {
3528    ///    "options": {
3529    ///      "type": "array",
3530    ///      "items": {
3531    ///        "type": "string"
3532    ///      }
3533    ///    }
3534    ///  }
3535    ///}
3536    /// ```
3537    /// </details>
3538    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3539    pub struct OptionsBlocksResponse {
3540        pub options: ::std::vec::Vec<::std::string::String>,
3541    }
3542
3543    impl ::std::convert::From<&OptionsBlocksResponse> for OptionsBlocksResponse {
3544        fn from(value: &OptionsBlocksResponse) -> Self {
3545            value.clone()
3546        }
3547    }
3548
3549    ///`OptionsGetResponse`
3550    ///
3551    /// <details><summary>JSON schema</summary>
3552    ///
3553    /// ```json
3554    ///{
3555    ///  "type": "object",
3556    ///  "required": [
3557    ///    "dlna",
3558    ///    "filter",
3559    ///    "ftp",
3560    ///    "http",
3561    ///    "log",
3562    ///    "main",
3563    ///    "mount",
3564    ///    "nfs",
3565    ///    "proxy",
3566    ///    "rc",
3567    ///    "restic",
3568    ///    "s3",
3569    ///    "sftp",
3570    ///    "vfs",
3571    ///    "webdav"
3572    ///  ],
3573    ///  "properties": {
3574    ///    "dlna": {
3575    ///      "type": "object",
3576    ///      "additionalProperties": true
3577    ///    },
3578    ///    "filter": {
3579    ///      "type": "object",
3580    ///      "additionalProperties": true
3581    ///    },
3582    ///    "ftp": {
3583    ///      "type": "object",
3584    ///      "additionalProperties": true
3585    ///    },
3586    ///    "http": {
3587    ///      "type": "object",
3588    ///      "additionalProperties": true
3589    ///    },
3590    ///    "log": {
3591    ///      "type": "object",
3592    ///      "additionalProperties": true
3593    ///    },
3594    ///    "main": {
3595    ///      "type": "object",
3596    ///      "additionalProperties": true
3597    ///    },
3598    ///    "mount": {
3599    ///      "type": "object",
3600    ///      "additionalProperties": true
3601    ///    },
3602    ///    "nfs": {
3603    ///      "type": "object",
3604    ///      "additionalProperties": true
3605    ///    },
3606    ///    "proxy": {
3607    ///      "type": "object",
3608    ///      "additionalProperties": true
3609    ///    },
3610    ///    "rc": {
3611    ///      "type": "object",
3612    ///      "additionalProperties": true
3613    ///    },
3614    ///    "restic": {
3615    ///      "type": "object",
3616    ///      "additionalProperties": true
3617    ///    },
3618    ///    "s3": {
3619    ///      "type": "object",
3620    ///      "additionalProperties": true
3621    ///    },
3622    ///    "sftp": {
3623    ///      "type": "object",
3624    ///      "additionalProperties": true
3625    ///    },
3626    ///    "vfs": {
3627    ///      "type": "object",
3628    ///      "additionalProperties": true
3629    ///    },
3630    ///    "webdav": {
3631    ///      "type": "object",
3632    ///      "additionalProperties": true
3633    ///    }
3634    ///  },
3635    ///  "additionalProperties": true
3636    ///}
3637    /// ```
3638    /// </details>
3639    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3640    pub struct OptionsGetResponse {
3641        pub dlna: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3642        pub filter: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3643        pub ftp: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3644        pub http: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3645        pub log: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3646        pub main: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3647        pub mount: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3648        pub nfs: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3649        pub proxy: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3650        pub rc: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3651        pub restic: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3652        pub s3: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3653        pub sftp: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3654        pub vfs: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3655        pub webdav: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
3656    }
3657
3658    impl ::std::convert::From<&OptionsGetResponse> for OptionsGetResponse {
3659        fn from(value: &OptionsGetResponse) -> Self {
3660            value.clone()
3661        }
3662    }
3663
3664    ///`OptionsInfoOption`
3665    ///
3666    /// <details><summary>JSON schema</summary>
3667    ///
3668    /// ```json
3669    ///{
3670    ///  "type": "object",
3671    ///  "required": [
3672    ///    "Advanced",
3673    ///    "Default",
3674    ///    "DefaultStr",
3675    ///    "Exclusive",
3676    ///    "FieldName",
3677    ///    "Help",
3678    ///    "Hide",
3679    ///    "IsPassword",
3680    ///    "Name",
3681    ///    "NoPrefix",
3682    ///    "Required",
3683    ///    "Sensitive",
3684    ///    "Type",
3685    ///    "Value",
3686    ///    "ValueStr"
3687    ///  ],
3688    ///  "properties": {
3689    ///    "Advanced": {
3690    ///      "type": "boolean"
3691    ///    },
3692    ///    "Default": {
3693    ///      "description": "Default value for this option.",
3694    ///      "anyOf": [
3695    ///        {
3696    ///          "type": "array",
3697    ///          "items": {
3698    ///            "type": "string"
3699    ///          }
3700    ///        },
3701    ///        {
3702    ///          "type": "boolean"
3703    ///        },
3704    ///        {
3705    ///          "type": "number"
3706    ///        },
3707    ///        {
3708    ///          "type": "string"
3709    ///        },
3710    ///        {
3711    ///          "type": "object",
3712    ///          "required": [
3713    ///            "Valid",
3714    ///            "Value"
3715    ///          ],
3716    ///          "properties": {
3717    ///            "Valid": {
3718    ///              "type": "boolean"
3719    ///            },
3720    ///            "Value": {
3721    ///              "type": "boolean"
3722    ///            }
3723    ///          },
3724    ///          "additionalProperties": false
3725    ///        }
3726    ///      ]
3727    ///    },
3728    ///    "DefaultStr": {
3729    ///      "type": "string"
3730    ///    },
3731    ///    "Examples": {
3732    ///      "type": "array",
3733    ///      "items": {
3734    ///        "$ref": "#/components/schemas/OptionsInfoOptionExample"
3735    ///      }
3736    ///    },
3737    ///    "Exclusive": {
3738    ///      "type": "boolean"
3739    ///    },
3740    ///    "FieldName": {
3741    ///      "type": "string"
3742    ///    },
3743    ///    "Groups": {
3744    ///      "type": "string"
3745    ///    },
3746    ///    "Help": {
3747    ///      "type": "string"
3748    ///    },
3749    ///    "Hide": {
3750    ///      "type": "integer"
3751    ///    },
3752    ///    "IsPassword": {
3753    ///      "type": "boolean"
3754    ///    },
3755    ///    "Name": {
3756    ///      "type": "string"
3757    ///    },
3758    ///    "NoPrefix": {
3759    ///      "type": "boolean"
3760    ///    },
3761    ///    "Required": {
3762    ///      "type": "boolean"
3763    ///    },
3764    ///    "Sensitive": {
3765    ///      "type": "boolean"
3766    ///    },
3767    ///    "ShortOpt": {
3768    ///      "type": "string"
3769    ///    },
3770    ///    "Type": {
3771    ///      "type": "string"
3772    ///    },
3773    ///    "Value": {
3774    ///      "oneOf": [
3775    ///        {
3776    ///          "type": "null"
3777    ///        },
3778    ///        {
3779    ///          "anyOf": [
3780    ///            {
3781    ///              "type": "boolean"
3782    ///            },
3783    ///            {
3784    ///              "type": "number"
3785    ///            }
3786    ///          ]
3787    ///        }
3788    ///      ]
3789    ///    },
3790    ///    "ValueStr": {
3791    ///      "type": "string"
3792    ///    }
3793    ///  },
3794    ///  "additionalProperties": true
3795    ///}
3796    /// ```
3797    /// </details>
3798    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3799    pub struct OptionsInfoOption {
3800        #[serde(rename = "Advanced")]
3801        pub advanced: bool,
3802        ///Default value for this option.
3803        #[serde(rename = "Default")]
3804        pub default: OptionsInfoOptionDefault,
3805        #[serde(rename = "DefaultStr")]
3806        pub default_str: ::std::string::String,
3807        #[serde(
3808            rename = "Examples",
3809            default,
3810            skip_serializing_if = "::std::vec::Vec::is_empty"
3811        )]
3812        pub examples: ::std::vec::Vec<OptionsInfoOptionExample>,
3813        #[serde(rename = "Exclusive")]
3814        pub exclusive: bool,
3815        #[serde(rename = "FieldName")]
3816        pub field_name: ::std::string::String,
3817        #[serde(
3818            rename = "Groups",
3819            default,
3820            skip_serializing_if = "::std::option::Option::is_none"
3821        )]
3822        pub groups: ::std::option::Option<::std::string::String>,
3823        #[serde(rename = "Help")]
3824        pub help: ::std::string::String,
3825        #[serde(rename = "Hide")]
3826        pub hide: i64,
3827        #[serde(rename = "IsPassword")]
3828        pub is_password: bool,
3829        #[serde(rename = "Name")]
3830        pub name: ::std::string::String,
3831        #[serde(rename = "NoPrefix")]
3832        pub no_prefix: bool,
3833        #[serde(rename = "Required")]
3834        pub required: bool,
3835        #[serde(rename = "Sensitive")]
3836        pub sensitive: bool,
3837        #[serde(
3838            rename = "ShortOpt",
3839            default,
3840            skip_serializing_if = "::std::option::Option::is_none"
3841        )]
3842        pub short_opt: ::std::option::Option<::std::string::String>,
3843        #[serde(rename = "Type")]
3844        pub type_: ::std::string::String,
3845        #[serde(rename = "Value")]
3846        pub value: ::std::option::Option<OptionsInfoOptionValue>,
3847        #[serde(rename = "ValueStr")]
3848        pub value_str: ::std::string::String,
3849    }
3850
3851    impl ::std::convert::From<&OptionsInfoOption> for OptionsInfoOption {
3852        fn from(value: &OptionsInfoOption) -> Self {
3853            value.clone()
3854        }
3855    }
3856
3857    ///Default value for this option.
3858    ///
3859    /// <details><summary>JSON schema</summary>
3860    ///
3861    /// ```json
3862    ///{
3863    ///  "description": "Default value for this option.",
3864    ///  "anyOf": [
3865    ///    {
3866    ///      "type": "array",
3867    ///      "items": {
3868    ///        "type": "string"
3869    ///      }
3870    ///    },
3871    ///    {
3872    ///      "type": "boolean"
3873    ///    },
3874    ///    {
3875    ///      "type": "number"
3876    ///    },
3877    ///    {
3878    ///      "type": "string"
3879    ///    },
3880    ///    {
3881    ///      "type": "object",
3882    ///      "required": [
3883    ///        "Valid",
3884    ///        "Value"
3885    ///      ],
3886    ///      "properties": {
3887    ///        "Valid": {
3888    ///          "type": "boolean"
3889    ///        },
3890    ///        "Value": {
3891    ///          "type": "boolean"
3892    ///        }
3893    ///      },
3894    ///      "additionalProperties": false
3895    ///    }
3896    ///  ]
3897    ///}
3898    /// ```
3899    /// </details>
3900    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3901    #[serde(untagged, deny_unknown_fields)]
3902    pub enum OptionsInfoOptionDefault {
3903        Variant0(::std::vec::Vec<::std::string::String>),
3904        Variant1(bool),
3905        Variant2(f64),
3906        Variant3(::std::string::String),
3907        Variant4 {
3908            #[serde(rename = "Valid")]
3909            valid: bool,
3910            #[serde(rename = "Value")]
3911            value: bool,
3912        },
3913    }
3914
3915    impl ::std::convert::From<&Self> for OptionsInfoOptionDefault {
3916        fn from(value: &OptionsInfoOptionDefault) -> Self {
3917            value.clone()
3918        }
3919    }
3920
3921    impl ::std::convert::From<::std::vec::Vec<::std::string::String>> for OptionsInfoOptionDefault {
3922        fn from(value: ::std::vec::Vec<::std::string::String>) -> Self {
3923            Self::Variant0(value)
3924        }
3925    }
3926
3927    impl ::std::convert::From<bool> for OptionsInfoOptionDefault {
3928        fn from(value: bool) -> Self {
3929            Self::Variant1(value)
3930        }
3931    }
3932
3933    impl ::std::convert::From<f64> for OptionsInfoOptionDefault {
3934        fn from(value: f64) -> Self {
3935            Self::Variant2(value)
3936        }
3937    }
3938
3939    ///`OptionsInfoOptionExample`
3940    ///
3941    /// <details><summary>JSON schema</summary>
3942    ///
3943    /// ```json
3944    ///{
3945    ///  "type": "object",
3946    ///  "required": [
3947    ///    "Help",
3948    ///    "Value"
3949    ///  ],
3950    ///  "properties": {
3951    ///    "Help": {
3952    ///      "type": "string"
3953    ///    },
3954    ///    "Value": {
3955    ///      "type": "string"
3956    ///    }
3957    ///  },
3958    ///  "additionalProperties": true
3959    ///}
3960    /// ```
3961    /// </details>
3962    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3963    pub struct OptionsInfoOptionExample {
3964        #[serde(rename = "Help")]
3965        pub help: ::std::string::String,
3966        #[serde(rename = "Value")]
3967        pub value: ::std::string::String,
3968    }
3969
3970    impl ::std::convert::From<&OptionsInfoOptionExample> for OptionsInfoOptionExample {
3971        fn from(value: &OptionsInfoOptionExample) -> Self {
3972            value.clone()
3973        }
3974    }
3975
3976    ///`OptionsInfoOptionValue`
3977    ///
3978    /// <details><summary>JSON schema</summary>
3979    ///
3980    /// ```json
3981    ///{
3982    ///  "anyOf": [
3983    ///    {
3984    ///      "type": "boolean"
3985    ///    },
3986    ///    {
3987    ///      "type": "number"
3988    ///    }
3989    ///  ]
3990    ///}
3991    /// ```
3992    /// </details>
3993    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
3994    #[serde(untagged)]
3995    pub enum OptionsInfoOptionValue {
3996        Variant0(bool),
3997        Variant1(f64),
3998    }
3999
4000    impl ::std::convert::From<&Self> for OptionsInfoOptionValue {
4001        fn from(value: &OptionsInfoOptionValue) -> Self {
4002            value.clone()
4003        }
4004    }
4005
4006    impl ::std::str::FromStr for OptionsInfoOptionValue {
4007        type Err = self::error::ConversionError;
4008        fn from_str(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
4009            if let Ok(v) = value.parse() {
4010                Ok(Self::Variant0(v))
4011            } else if let Ok(v) = value.parse() {
4012                Ok(Self::Variant1(v))
4013            } else {
4014                Err("string conversion failed for all variants".into())
4015            }
4016        }
4017    }
4018
4019    impl ::std::convert::TryFrom<&str> for OptionsInfoOptionValue {
4020        type Error = self::error::ConversionError;
4021        fn try_from(value: &str) -> ::std::result::Result<Self, self::error::ConversionError> {
4022            value.parse()
4023        }
4024    }
4025
4026    impl ::std::convert::TryFrom<&::std::string::String> for OptionsInfoOptionValue {
4027        type Error = self::error::ConversionError;
4028        fn try_from(
4029            value: &::std::string::String,
4030        ) -> ::std::result::Result<Self, self::error::ConversionError> {
4031            value.parse()
4032        }
4033    }
4034
4035    impl ::std::convert::TryFrom<::std::string::String> for OptionsInfoOptionValue {
4036        type Error = self::error::ConversionError;
4037        fn try_from(
4038            value: ::std::string::String,
4039        ) -> ::std::result::Result<Self, self::error::ConversionError> {
4040            value.parse()
4041        }
4042    }
4043
4044    impl ::std::fmt::Display for OptionsInfoOptionValue {
4045        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4046            match self {
4047                Self::Variant0(x) => x.fmt(f),
4048                Self::Variant1(x) => x.fmt(f),
4049            }
4050        }
4051    }
4052
4053    impl ::std::convert::From<bool> for OptionsInfoOptionValue {
4054        fn from(value: bool) -> Self {
4055            Self::Variant0(value)
4056        }
4057    }
4058
4059    impl ::std::convert::From<f64> for OptionsInfoOptionValue {
4060        fn from(value: f64) -> Self {
4061            Self::Variant1(value)
4062        }
4063    }
4064
4065    ///`OptionsInfoResponse`
4066    ///
4067    /// <details><summary>JSON schema</summary>
4068    ///
4069    /// ```json
4070    ///{
4071    ///  "type": "object",
4072    ///  "required": [
4073    ///    "dlna",
4074    ///    "filter",
4075    ///    "ftp",
4076    ///    "http",
4077    ///    "log",
4078    ///    "main",
4079    ///    "mount",
4080    ///    "nfs",
4081    ///    "proxy",
4082    ///    "rc",
4083    ///    "restic",
4084    ///    "s3",
4085    ///    "sftp",
4086    ///    "vfs",
4087    ///    "webdav"
4088    ///  ],
4089    ///  "properties": {
4090    ///    "dlna": {
4091    ///      "type": "array",
4092    ///      "items": {
4093    ///        "$ref": "#/components/schemas/OptionsInfoOption"
4094    ///      }
4095    ///    },
4096    ///    "filter": {
4097    ///      "type": "array",
4098    ///      "items": {
4099    ///        "$ref": "#/components/schemas/OptionsInfoOption"
4100    ///      }
4101    ///    },
4102    ///    "ftp": {
4103    ///      "type": "array",
4104    ///      "items": {
4105    ///        "$ref": "#/components/schemas/OptionsInfoOption"
4106    ///      }
4107    ///    },
4108    ///    "http": {
4109    ///      "type": "array",
4110    ///      "items": {
4111    ///        "$ref": "#/components/schemas/OptionsInfoOption"
4112    ///      }
4113    ///    },
4114    ///    "log": {
4115    ///      "type": "array",
4116    ///      "items": {
4117    ///        "$ref": "#/components/schemas/OptionsInfoOption"
4118    ///      }
4119    ///    },
4120    ///    "main": {
4121    ///      "type": "array",
4122    ///      "items": {
4123    ///        "$ref": "#/components/schemas/OptionsInfoOption"
4124    ///      }
4125    ///    },
4126    ///    "mount": {
4127    ///      "type": "array",
4128    ///      "items": {
4129    ///        "$ref": "#/components/schemas/OptionsInfoOption"
4130    ///      }
4131    ///    },
4132    ///    "nfs": {
4133    ///      "type": "array",
4134    ///      "items": {
4135    ///        "$ref": "#/components/schemas/OptionsInfoOption"
4136    ///      }
4137    ///    },
4138    ///    "proxy": {
4139    ///      "type": "array",
4140    ///      "items": {
4141    ///        "$ref": "#/components/schemas/OptionsInfoOption"
4142    ///      }
4143    ///    },
4144    ///    "rc": {
4145    ///      "type": "array",
4146    ///      "items": {
4147    ///        "$ref": "#/components/schemas/OptionsInfoOption"
4148    ///      }
4149    ///    },
4150    ///    "restic": {
4151    ///      "type": "array",
4152    ///      "items": {
4153    ///        "$ref": "#/components/schemas/OptionsInfoOption"
4154    ///      }
4155    ///    },
4156    ///    "s3": {
4157    ///      "type": "array",
4158    ///      "items": {
4159    ///        "$ref": "#/components/schemas/OptionsInfoOption"
4160    ///      }
4161    ///    },
4162    ///    "sftp": {
4163    ///      "type": "array",
4164    ///      "items": {
4165    ///        "$ref": "#/components/schemas/OptionsInfoOption"
4166    ///      }
4167    ///    },
4168    ///    "vfs": {
4169    ///      "type": "array",
4170    ///      "items": {
4171    ///        "$ref": "#/components/schemas/OptionsInfoOption"
4172    ///      }
4173    ///    },
4174    ///    "webdav": {
4175    ///      "type": "array",
4176    ///      "items": {
4177    ///        "$ref": "#/components/schemas/OptionsInfoOption"
4178    ///      }
4179    ///    }
4180    ///  },
4181    ///  "additionalProperties": {
4182    ///    "type": "array",
4183    ///    "items": {
4184    ///      "$ref": "#/components/schemas/OptionsInfoOption"
4185    ///    }
4186    ///  }
4187    ///}
4188    /// ```
4189    /// </details>
4190    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
4191    pub struct OptionsInfoResponse {
4192        pub dlna: ::std::vec::Vec<OptionsInfoOption>,
4193        pub filter: ::std::vec::Vec<OptionsInfoOption>,
4194        pub ftp: ::std::vec::Vec<OptionsInfoOption>,
4195        pub http: ::std::vec::Vec<OptionsInfoOption>,
4196        pub log: ::std::vec::Vec<OptionsInfoOption>,
4197        pub main: ::std::vec::Vec<OptionsInfoOption>,
4198        pub mount: ::std::vec::Vec<OptionsInfoOption>,
4199        pub nfs: ::std::vec::Vec<OptionsInfoOption>,
4200        pub proxy: ::std::vec::Vec<OptionsInfoOption>,
4201        pub rc: ::std::vec::Vec<OptionsInfoOption>,
4202        pub restic: ::std::vec::Vec<OptionsInfoOption>,
4203        pub s3: ::std::vec::Vec<OptionsInfoOption>,
4204        pub sftp: ::std::vec::Vec<OptionsInfoOption>,
4205        pub vfs: ::std::vec::Vec<OptionsInfoOption>,
4206        pub webdav: ::std::vec::Vec<OptionsInfoOption>,
4207        #[serde(flatten)]
4208        pub extra:
4209            ::std::collections::HashMap<::std::string::String, ::std::vec::Vec<OptionsInfoOption>>,
4210    }
4211
4212    impl ::std::convert::From<&OptionsInfoResponse> for OptionsInfoResponse {
4213        fn from(value: &OptionsInfoResponse) -> Self {
4214            value.clone()
4215        }
4216    }
4217
4218    ///`OptionsLocalResponse`
4219    ///
4220    /// <details><summary>JSON schema</summary>
4221    ///
4222    /// ```json
4223    ///{
4224    ///  "type": "object",
4225    ///  "required": [
4226    ///    "config",
4227    ///    "filter"
4228    ///  ],
4229    ///  "properties": {
4230    ///    "config": {
4231    ///      "type": "object",
4232    ///      "required": [
4233    ///        "AskPassword",
4234    ///        "AutoConfirm",
4235    ///        "BackupDir",
4236    ///        "BindAddr",
4237    ///        "BufferSize",
4238    ///        "BwLimit",
4239    ///        "BwLimitFile",
4240    ///        "CaCert",
4241    ///        "CheckFirst",
4242    ///        "CheckSum",
4243    ///        "Checkers",
4244    ///        "ClientCert",
4245    ///        "ClientKey",
4246    ///        "CompareDest",
4247    ///        "ConnectTimeout",
4248    ///        "Cookie",
4249    ///        "CopyDest",
4250    ///        "CutoffMode",
4251    ///        "DataRateUnit",
4252    ///        "DefaultTime",
4253    ///        "DeleteMode",
4254    ///        "DisableFeatures",
4255    ///        "DisableHTTP2",
4256    ///        "DisableHTTPKeepAlives",
4257    ///        "DownloadHeaders",
4258    ///        "DryRun",
4259    ///        "Dump",
4260    ///        "ErrorOnNoTransfer",
4261    ///        "ExpectContinueTimeout",
4262    ///        "FixCase",
4263    ///        "FsCacheExpireDuration",
4264    ///        "FsCacheExpireInterval",
4265    ///        "Headers",
4266    ///        "HumanReadable",
4267    ///        "IgnoreCaseSync",
4268    ///        "IgnoreChecksum",
4269    ///        "IgnoreErrors",
4270    ///        "IgnoreExisting",
4271    ///        "IgnoreSize",
4272    ///        "IgnoreTimes",
4273    ///        "Immutable",
4274    ///        "Inplace",
4275    ///        "InsecureSkipVerify",
4276    ///        "Interactive",
4277    ///        "KvLockTime",
4278    ///        "Links",
4279    ///        "LogLevel",
4280    ///        "LowLevelRetries",
4281    ///        "MaxBacklog",
4282    ///        "MaxBufferMemory",
4283    ///        "MaxDelete",
4284    ///        "MaxDeleteSize",
4285    ///        "MaxDepth",
4286    ///        "MaxDuration",
4287    ///        "MaxStatsGroups",
4288    ///        "MaxTransfer",
4289    ///        "Metadata",
4290    ///        "MetadataMapper",
4291    ///        "MetadataSet",
4292    ///        "ModifyWindow",
4293    ///        "MultiThreadChunkSize",
4294    ///        "MultiThreadCutoff",
4295    ///        "MultiThreadSet",
4296    ///        "MultiThreadStreams",
4297    ///        "MultiThreadWriteBufferSize",
4298    ///        "NoCheckDest",
4299    ///        "NoConsole",
4300    ///        "NoGzip",
4301    ///        "NoTraverse",
4302    ///        "NoUnicodeNormalization",
4303    ///        "NoUpdateDirModTime",
4304    ///        "NoUpdateModTime",
4305    ///        "OrderBy",
4306    ///        "PartialSuffix",
4307    ///        "PasswordCommand",
4308    ///        "Progress",
4309    ///        "ProgressTerminalTitle",
4310    ///        "RefreshTimes",
4311    ///        "Retries",
4312    ///        "RetriesInterval",
4313    ///        "ServerSideAcrossConfigs",
4314    ///        "SizeOnly",
4315    ///        "StatsFileNameLength",
4316    ///        "StatsLogLevel",
4317    ///        "StatsOneLine",
4318    ///        "StatsOneLineDate",
4319    ///        "StatsOneLineDateFormat",
4320    ///        "StreamingUploadCutoff",
4321    ///        "Suffix",
4322    ///        "SuffixKeepExtension",
4323    ///        "TPSLimit",
4324    ///        "TPSLimitBurst",
4325    ///        "TerminalColorMode",
4326    ///        "Timeout",
4327    ///        "TrackRenames",
4328    ///        "TrackRenamesStrategy",
4329    ///        "TrafficClass",
4330    ///        "Transfers",
4331    ///        "UpdateOlder",
4332    ///        "UploadHeaders",
4333    ///        "UseJSONLog",
4334    ///        "UseListR",
4335    ///        "UseMmap",
4336    ///        "UseServerModTime",
4337    ///        "UserAgent"
4338    ///      ],
4339    ///      "properties": {
4340    ///        "AskPassword": {
4341    ///          "type": "boolean"
4342    ///        },
4343    ///        "AutoConfirm": {
4344    ///          "type": "boolean"
4345    ///        },
4346    ///        "BackupDir": {
4347    ///          "type": "string"
4348    ///        },
4349    ///        "BindAddr": {
4350    ///          "type": "string"
4351    ///        },
4352    ///        "BufferSize": {
4353    ///          "type": "number"
4354    ///        },
4355    ///        "BwLimit": {
4356    ///          "type": "string"
4357    ///        },
4358    ///        "BwLimitFile": {
4359    ///          "type": "string"
4360    ///        },
4361    ///        "CaCert": {
4362    ///          "type": "array",
4363    ///          "items": {
4364    ///            "type": "string"
4365    ///          }
4366    ///        },
4367    ///        "CheckFirst": {
4368    ///          "type": "boolean"
4369    ///        },
4370    ///        "CheckSum": {
4371    ///          "type": "boolean"
4372    ///        },
4373    ///        "Checkers": {
4374    ///          "type": "number"
4375    ///        },
4376    ///        "ClientCert": {
4377    ///          "type": "string"
4378    ///        },
4379    ///        "ClientKey": {
4380    ///          "type": "string"
4381    ///        },
4382    ///        "CompareDest": {
4383    ///          "type": "array",
4384    ///          "items": {
4385    ///            "type": "string"
4386    ///          }
4387    ///        },
4388    ///        "ConnectTimeout": {
4389    ///          "type": "number"
4390    ///        },
4391    ///        "Cookie": {
4392    ///          "type": "boolean"
4393    ///        },
4394    ///        "CopyDest": {
4395    ///          "type": "array",
4396    ///          "items": {
4397    ///            "type": "string"
4398    ///          }
4399    ///        },
4400    ///        "CutoffMode": {
4401    ///          "type": "string"
4402    ///        },
4403    ///        "DataRateUnit": {
4404    ///          "type": "string"
4405    ///        },
4406    ///        "DefaultTime": {
4407    ///          "type": "string"
4408    ///        },
4409    ///        "DeleteMode": {
4410    ///          "type": "number"
4411    ///        },
4412    ///        "DisableFeatures": {
4413    ///          "type": [
4414    ///            "string",
4415    ///            "null"
4416    ///          ],
4417    ///          "format": "null"
4418    ///        },
4419    ///        "DisableHTTP2": {
4420    ///          "type": "boolean"
4421    ///        },
4422    ///        "DisableHTTPKeepAlives": {
4423    ///          "type": "boolean"
4424    ///        },
4425    ///        "DownloadHeaders": {
4426    ///          "type": [
4427    ///            "string",
4428    ///            "null"
4429    ///          ],
4430    ///          "format": "null"
4431    ///        },
4432    ///        "DryRun": {
4433    ///          "type": "boolean"
4434    ///        },
4435    ///        "Dump": {
4436    ///          "type": "string"
4437    ///        },
4438    ///        "ErrorOnNoTransfer": {
4439    ///          "type": "boolean"
4440    ///        },
4441    ///        "ExpectContinueTimeout": {
4442    ///          "type": "number"
4443    ///        },
4444    ///        "FixCase": {
4445    ///          "type": "boolean"
4446    ///        },
4447    ///        "FsCacheExpireDuration": {
4448    ///          "type": "number"
4449    ///        },
4450    ///        "FsCacheExpireInterval": {
4451    ///          "type": "number"
4452    ///        },
4453    ///        "Headers": {
4454    ///          "type": [
4455    ///            "string",
4456    ///            "null"
4457    ///          ],
4458    ///          "format": "null"
4459    ///        },
4460    ///        "HumanReadable": {
4461    ///          "type": "boolean"
4462    ///        },
4463    ///        "IgnoreCaseSync": {
4464    ///          "type": "boolean"
4465    ///        },
4466    ///        "IgnoreChecksum": {
4467    ///          "type": "boolean"
4468    ///        },
4469    ///        "IgnoreErrors": {
4470    ///          "type": "boolean"
4471    ///        },
4472    ///        "IgnoreExisting": {
4473    ///          "type": "boolean"
4474    ///        },
4475    ///        "IgnoreSize": {
4476    ///          "type": "boolean"
4477    ///        },
4478    ///        "IgnoreTimes": {
4479    ///          "type": "boolean"
4480    ///        },
4481    ///        "Immutable": {
4482    ///          "type": "boolean"
4483    ///        },
4484    ///        "Inplace": {
4485    ///          "type": "boolean"
4486    ///        },
4487    ///        "InsecureSkipVerify": {
4488    ///          "type": "boolean"
4489    ///        },
4490    ///        "Interactive": {
4491    ///          "type": "boolean"
4492    ///        },
4493    ///        "KvLockTime": {
4494    ///          "type": "number"
4495    ///        },
4496    ///        "Links": {
4497    ///          "type": "boolean"
4498    ///        },
4499    ///        "LogLevel": {
4500    ///          "type": "string"
4501    ///        },
4502    ///        "LowLevelRetries": {
4503    ///          "type": "number"
4504    ///        },
4505    ///        "MaxBacklog": {
4506    ///          "type": "number"
4507    ///        },
4508    ///        "MaxBufferMemory": {
4509    ///          "type": "number"
4510    ///        },
4511    ///        "MaxDelete": {
4512    ///          "type": "number"
4513    ///        },
4514    ///        "MaxDeleteSize": {
4515    ///          "type": "number"
4516    ///        },
4517    ///        "MaxDepth": {
4518    ///          "type": "number"
4519    ///        },
4520    ///        "MaxDuration": {
4521    ///          "type": "number"
4522    ///        },
4523    ///        "MaxStatsGroups": {
4524    ///          "type": "number"
4525    ///        },
4526    ///        "MaxTransfer": {
4527    ///          "type": "number"
4528    ///        },
4529    ///        "Metadata": {
4530    ///          "type": "boolean"
4531    ///        },
4532    ///        "MetadataMapper": {
4533    ///          "type": [
4534    ///            "string",
4535    ///            "null"
4536    ///          ],
4537    ///          "format": "null"
4538    ///        },
4539    ///        "MetadataSet": {
4540    ///          "type": [
4541    ///            "string",
4542    ///            "null"
4543    ///          ],
4544    ///          "format": "null"
4545    ///        },
4546    ///        "ModifyWindow": {
4547    ///          "type": "number"
4548    ///        },
4549    ///        "MultiThreadChunkSize": {
4550    ///          "type": "number"
4551    ///        },
4552    ///        "MultiThreadCutoff": {
4553    ///          "type": "number"
4554    ///        },
4555    ///        "MultiThreadSet": {
4556    ///          "type": "boolean"
4557    ///        },
4558    ///        "MultiThreadStreams": {
4559    ///          "type": "number"
4560    ///        },
4561    ///        "MultiThreadWriteBufferSize": {
4562    ///          "type": "number"
4563    ///        },
4564    ///        "NoCheckDest": {
4565    ///          "type": "boolean"
4566    ///        },
4567    ///        "NoConsole": {
4568    ///          "type": "boolean"
4569    ///        },
4570    ///        "NoGzip": {
4571    ///          "type": "boolean"
4572    ///        },
4573    ///        "NoTraverse": {
4574    ///          "type": "boolean"
4575    ///        },
4576    ///        "NoUnicodeNormalization": {
4577    ///          "type": "boolean"
4578    ///        },
4579    ///        "NoUpdateDirModTime": {
4580    ///          "type": "boolean"
4581    ///        },
4582    ///        "NoUpdateModTime": {
4583    ///          "type": "boolean"
4584    ///        },
4585    ///        "OrderBy": {
4586    ///          "type": "string"
4587    ///        },
4588    ///        "PartialSuffix": {
4589    ///          "type": "string"
4590    ///        },
4591    ///        "PasswordCommand": {
4592    ///          "type": [
4593    ///            "string",
4594    ///            "null"
4595    ///          ],
4596    ///          "format": "null"
4597    ///        },
4598    ///        "Progress": {
4599    ///          "type": "boolean"
4600    ///        },
4601    ///        "ProgressTerminalTitle": {
4602    ///          "type": "boolean"
4603    ///        },
4604    ///        "RefreshTimes": {
4605    ///          "type": "boolean"
4606    ///        },
4607    ///        "Retries": {
4608    ///          "type": "number"
4609    ///        },
4610    ///        "RetriesInterval": {
4611    ///          "type": "number"
4612    ///        },
4613    ///        "ServerSideAcrossConfigs": {
4614    ///          "type": "boolean"
4615    ///        },
4616    ///        "SizeOnly": {
4617    ///          "type": "boolean"
4618    ///        },
4619    ///        "StatsFileNameLength": {
4620    ///          "type": "number"
4621    ///        },
4622    ///        "StatsLogLevel": {
4623    ///          "type": "string"
4624    ///        },
4625    ///        "StatsOneLine": {
4626    ///          "type": "boolean"
4627    ///        },
4628    ///        "StatsOneLineDate": {
4629    ///          "type": "boolean"
4630    ///        },
4631    ///        "StatsOneLineDateFormat": {
4632    ///          "type": "string"
4633    ///        },
4634    ///        "StreamingUploadCutoff": {
4635    ///          "type": "number"
4636    ///        },
4637    ///        "Suffix": {
4638    ///          "type": "string"
4639    ///        },
4640    ///        "SuffixKeepExtension": {
4641    ///          "type": "boolean"
4642    ///        },
4643    ///        "TPSLimit": {
4644    ///          "type": "number"
4645    ///        },
4646    ///        "TPSLimitBurst": {
4647    ///          "type": "number"
4648    ///        },
4649    ///        "TerminalColorMode": {
4650    ///          "type": "string"
4651    ///        },
4652    ///        "Timeout": {
4653    ///          "type": "number"
4654    ///        },
4655    ///        "TrackRenames": {
4656    ///          "type": "boolean"
4657    ///        },
4658    ///        "TrackRenamesStrategy": {
4659    ///          "type": "string"
4660    ///        },
4661    ///        "TrafficClass": {
4662    ///          "type": "number"
4663    ///        },
4664    ///        "Transfers": {
4665    ///          "type": "number"
4666    ///        },
4667    ///        "UpdateOlder": {
4668    ///          "type": "boolean"
4669    ///        },
4670    ///        "UploadHeaders": {
4671    ///          "type": [
4672    ///            "string",
4673    ///            "null"
4674    ///          ],
4675    ///          "format": "null"
4676    ///        },
4677    ///        "UseJSONLog": {
4678    ///          "type": "boolean"
4679    ///        },
4680    ///        "UseListR": {
4681    ///          "type": "boolean"
4682    ///        },
4683    ///        "UseMmap": {
4684    ///          "type": "boolean"
4685    ///        },
4686    ///        "UseServerModTime": {
4687    ///          "type": "boolean"
4688    ///        },
4689    ///        "UserAgent": {
4690    ///          "type": "string"
4691    ///        }
4692    ///      }
4693    ///    },
4694    ///    "filter": {
4695    ///      "type": "object",
4696    ///      "required": [
4697    ///        "DeleteExcluded",
4698    ///        "ExcludeFile",
4699    ///        "ExcludeFrom",
4700    ///        "ExcludeRule",
4701    ///        "FilesFrom",
4702    ///        "FilesFromRaw",
4703    ///        "FilterFrom",
4704    ///        "FilterRule",
4705    ///        "HashFilter",
4706    ///        "IgnoreCase",
4707    ///        "IncludeFrom",
4708    ///        "IncludeRule",
4709    ///        "MaxAge",
4710    ///        "MaxSize",
4711    ///        "MetaRules",
4712    ///        "MinAge",
4713    ///        "MinSize"
4714    ///      ],
4715    ///      "properties": {
4716    ///        "DeleteExcluded": {
4717    ///          "type": "boolean"
4718    ///        },
4719    ///        "ExcludeFile": {
4720    ///          "type": "array",
4721    ///          "items": {
4722    ///            "type": "string"
4723    ///          }
4724    ///        },
4725    ///        "ExcludeFrom": {
4726    ///          "type": "array",
4727    ///          "items": {
4728    ///            "type": "string"
4729    ///          }
4730    ///        },
4731    ///        "ExcludeRule": {
4732    ///          "type": "array",
4733    ///          "items": {
4734    ///            "type": "string"
4735    ///          }
4736    ///        },
4737    ///        "FilesFrom": {
4738    ///          "type": "array",
4739    ///          "items": {
4740    ///            "type": "string"
4741    ///          }
4742    ///        },
4743    ///        "FilesFromRaw": {
4744    ///          "type": "array",
4745    ///          "items": {
4746    ///            "type": "string"
4747    ///          }
4748    ///        },
4749    ///        "FilterFrom": {
4750    ///          "type": "array",
4751    ///          "items": {
4752    ///            "type": "string"
4753    ///          }
4754    ///        },
4755    ///        "FilterRule": {
4756    ///          "type": "array",
4757    ///          "items": {
4758    ///            "type": "string"
4759    ///          }
4760    ///        },
4761    ///        "HashFilter": {
4762    ///          "type": "string"
4763    ///        },
4764    ///        "IgnoreCase": {
4765    ///          "type": "boolean"
4766    ///        },
4767    ///        "IncludeFrom": {
4768    ///          "type": "array",
4769    ///          "items": {
4770    ///            "type": "string"
4771    ///          }
4772    ///        },
4773    ///        "IncludeRule": {
4774    ///          "type": "array",
4775    ///          "items": {
4776    ///            "type": "string"
4777    ///          }
4778    ///        },
4779    ///        "MaxAge": {
4780    ///          "type": "number"
4781    ///        },
4782    ///        "MaxSize": {
4783    ///          "type": "number"
4784    ///        },
4785    ///        "MetaRules": {
4786    ///          "type": "object",
4787    ///          "required": [
4788    ///            "ExcludeFrom",
4789    ///            "ExcludeRule",
4790    ///            "FilterFrom",
4791    ///            "FilterRule",
4792    ///            "IncludeFrom",
4793    ///            "IncludeRule"
4794    ///          ],
4795    ///          "properties": {
4796    ///            "ExcludeFrom": {
4797    ///              "type": "array",
4798    ///              "items": {
4799    ///                "type": "string"
4800    ///              }
4801    ///            },
4802    ///            "ExcludeRule": {
4803    ///              "type": "array",
4804    ///              "items": {
4805    ///                "type": "string"
4806    ///              }
4807    ///            },
4808    ///            "FilterFrom": {
4809    ///              "type": "array",
4810    ///              "items": {
4811    ///                "type": "string"
4812    ///              }
4813    ///            },
4814    ///            "FilterRule": {
4815    ///              "type": "array",
4816    ///              "items": {
4817    ///                "type": "string"
4818    ///              }
4819    ///            },
4820    ///            "IncludeFrom": {
4821    ///              "type": "array",
4822    ///              "items": {
4823    ///                "type": "string"
4824    ///              }
4825    ///            },
4826    ///            "IncludeRule": {
4827    ///              "type": "array",
4828    ///              "items": {
4829    ///                "type": "string"
4830    ///              }
4831    ///            }
4832    ///          }
4833    ///        },
4834    ///        "MinAge": {
4835    ///          "type": "number"
4836    ///        },
4837    ///        "MinSize": {
4838    ///          "type": "number"
4839    ///        }
4840    ///      }
4841    ///    }
4842    ///  }
4843    ///}
4844    /// ```
4845    /// </details>
4846    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
4847    pub struct OptionsLocalResponse {
4848        pub config: OptionsLocalResponseConfig,
4849        pub filter: OptionsLocalResponseFilter,
4850    }
4851
4852    impl ::std::convert::From<&OptionsLocalResponse> for OptionsLocalResponse {
4853        fn from(value: &OptionsLocalResponse) -> Self {
4854            value.clone()
4855        }
4856    }
4857
4858    ///`OptionsLocalResponseConfig`
4859    ///
4860    /// <details><summary>JSON schema</summary>
4861    ///
4862    /// ```json
4863    ///{
4864    ///  "type": "object",
4865    ///  "required": [
4866    ///    "AskPassword",
4867    ///    "AutoConfirm",
4868    ///    "BackupDir",
4869    ///    "BindAddr",
4870    ///    "BufferSize",
4871    ///    "BwLimit",
4872    ///    "BwLimitFile",
4873    ///    "CaCert",
4874    ///    "CheckFirst",
4875    ///    "CheckSum",
4876    ///    "Checkers",
4877    ///    "ClientCert",
4878    ///    "ClientKey",
4879    ///    "CompareDest",
4880    ///    "ConnectTimeout",
4881    ///    "Cookie",
4882    ///    "CopyDest",
4883    ///    "CutoffMode",
4884    ///    "DataRateUnit",
4885    ///    "DefaultTime",
4886    ///    "DeleteMode",
4887    ///    "DisableFeatures",
4888    ///    "DisableHTTP2",
4889    ///    "DisableHTTPKeepAlives",
4890    ///    "DownloadHeaders",
4891    ///    "DryRun",
4892    ///    "Dump",
4893    ///    "ErrorOnNoTransfer",
4894    ///    "ExpectContinueTimeout",
4895    ///    "FixCase",
4896    ///    "FsCacheExpireDuration",
4897    ///    "FsCacheExpireInterval",
4898    ///    "Headers",
4899    ///    "HumanReadable",
4900    ///    "IgnoreCaseSync",
4901    ///    "IgnoreChecksum",
4902    ///    "IgnoreErrors",
4903    ///    "IgnoreExisting",
4904    ///    "IgnoreSize",
4905    ///    "IgnoreTimes",
4906    ///    "Immutable",
4907    ///    "Inplace",
4908    ///    "InsecureSkipVerify",
4909    ///    "Interactive",
4910    ///    "KvLockTime",
4911    ///    "Links",
4912    ///    "LogLevel",
4913    ///    "LowLevelRetries",
4914    ///    "MaxBacklog",
4915    ///    "MaxBufferMemory",
4916    ///    "MaxDelete",
4917    ///    "MaxDeleteSize",
4918    ///    "MaxDepth",
4919    ///    "MaxDuration",
4920    ///    "MaxStatsGroups",
4921    ///    "MaxTransfer",
4922    ///    "Metadata",
4923    ///    "MetadataMapper",
4924    ///    "MetadataSet",
4925    ///    "ModifyWindow",
4926    ///    "MultiThreadChunkSize",
4927    ///    "MultiThreadCutoff",
4928    ///    "MultiThreadSet",
4929    ///    "MultiThreadStreams",
4930    ///    "MultiThreadWriteBufferSize",
4931    ///    "NoCheckDest",
4932    ///    "NoConsole",
4933    ///    "NoGzip",
4934    ///    "NoTraverse",
4935    ///    "NoUnicodeNormalization",
4936    ///    "NoUpdateDirModTime",
4937    ///    "NoUpdateModTime",
4938    ///    "OrderBy",
4939    ///    "PartialSuffix",
4940    ///    "PasswordCommand",
4941    ///    "Progress",
4942    ///    "ProgressTerminalTitle",
4943    ///    "RefreshTimes",
4944    ///    "Retries",
4945    ///    "RetriesInterval",
4946    ///    "ServerSideAcrossConfigs",
4947    ///    "SizeOnly",
4948    ///    "StatsFileNameLength",
4949    ///    "StatsLogLevel",
4950    ///    "StatsOneLine",
4951    ///    "StatsOneLineDate",
4952    ///    "StatsOneLineDateFormat",
4953    ///    "StreamingUploadCutoff",
4954    ///    "Suffix",
4955    ///    "SuffixKeepExtension",
4956    ///    "TPSLimit",
4957    ///    "TPSLimitBurst",
4958    ///    "TerminalColorMode",
4959    ///    "Timeout",
4960    ///    "TrackRenames",
4961    ///    "TrackRenamesStrategy",
4962    ///    "TrafficClass",
4963    ///    "Transfers",
4964    ///    "UpdateOlder",
4965    ///    "UploadHeaders",
4966    ///    "UseJSONLog",
4967    ///    "UseListR",
4968    ///    "UseMmap",
4969    ///    "UseServerModTime",
4970    ///    "UserAgent"
4971    ///  ],
4972    ///  "properties": {
4973    ///    "AskPassword": {
4974    ///      "type": "boolean"
4975    ///    },
4976    ///    "AutoConfirm": {
4977    ///      "type": "boolean"
4978    ///    },
4979    ///    "BackupDir": {
4980    ///      "type": "string"
4981    ///    },
4982    ///    "BindAddr": {
4983    ///      "type": "string"
4984    ///    },
4985    ///    "BufferSize": {
4986    ///      "type": "number"
4987    ///    },
4988    ///    "BwLimit": {
4989    ///      "type": "string"
4990    ///    },
4991    ///    "BwLimitFile": {
4992    ///      "type": "string"
4993    ///    },
4994    ///    "CaCert": {
4995    ///      "type": "array",
4996    ///      "items": {
4997    ///        "type": "string"
4998    ///      }
4999    ///    },
5000    ///    "CheckFirst": {
5001    ///      "type": "boolean"
5002    ///    },
5003    ///    "CheckSum": {
5004    ///      "type": "boolean"
5005    ///    },
5006    ///    "Checkers": {
5007    ///      "type": "number"
5008    ///    },
5009    ///    "ClientCert": {
5010    ///      "type": "string"
5011    ///    },
5012    ///    "ClientKey": {
5013    ///      "type": "string"
5014    ///    },
5015    ///    "CompareDest": {
5016    ///      "type": "array",
5017    ///      "items": {
5018    ///        "type": "string"
5019    ///      }
5020    ///    },
5021    ///    "ConnectTimeout": {
5022    ///      "type": "number"
5023    ///    },
5024    ///    "Cookie": {
5025    ///      "type": "boolean"
5026    ///    },
5027    ///    "CopyDest": {
5028    ///      "type": "array",
5029    ///      "items": {
5030    ///        "type": "string"
5031    ///      }
5032    ///    },
5033    ///    "CutoffMode": {
5034    ///      "type": "string"
5035    ///    },
5036    ///    "DataRateUnit": {
5037    ///      "type": "string"
5038    ///    },
5039    ///    "DefaultTime": {
5040    ///      "type": "string"
5041    ///    },
5042    ///    "DeleteMode": {
5043    ///      "type": "number"
5044    ///    },
5045    ///    "DisableFeatures": {
5046    ///      "type": [
5047    ///        "string",
5048    ///        "null"
5049    ///      ],
5050    ///      "format": "null"
5051    ///    },
5052    ///    "DisableHTTP2": {
5053    ///      "type": "boolean"
5054    ///    },
5055    ///    "DisableHTTPKeepAlives": {
5056    ///      "type": "boolean"
5057    ///    },
5058    ///    "DownloadHeaders": {
5059    ///      "type": [
5060    ///        "string",
5061    ///        "null"
5062    ///      ],
5063    ///      "format": "null"
5064    ///    },
5065    ///    "DryRun": {
5066    ///      "type": "boolean"
5067    ///    },
5068    ///    "Dump": {
5069    ///      "type": "string"
5070    ///    },
5071    ///    "ErrorOnNoTransfer": {
5072    ///      "type": "boolean"
5073    ///    },
5074    ///    "ExpectContinueTimeout": {
5075    ///      "type": "number"
5076    ///    },
5077    ///    "FixCase": {
5078    ///      "type": "boolean"
5079    ///    },
5080    ///    "FsCacheExpireDuration": {
5081    ///      "type": "number"
5082    ///    },
5083    ///    "FsCacheExpireInterval": {
5084    ///      "type": "number"
5085    ///    },
5086    ///    "Headers": {
5087    ///      "type": [
5088    ///        "string",
5089    ///        "null"
5090    ///      ],
5091    ///      "format": "null"
5092    ///    },
5093    ///    "HumanReadable": {
5094    ///      "type": "boolean"
5095    ///    },
5096    ///    "IgnoreCaseSync": {
5097    ///      "type": "boolean"
5098    ///    },
5099    ///    "IgnoreChecksum": {
5100    ///      "type": "boolean"
5101    ///    },
5102    ///    "IgnoreErrors": {
5103    ///      "type": "boolean"
5104    ///    },
5105    ///    "IgnoreExisting": {
5106    ///      "type": "boolean"
5107    ///    },
5108    ///    "IgnoreSize": {
5109    ///      "type": "boolean"
5110    ///    },
5111    ///    "IgnoreTimes": {
5112    ///      "type": "boolean"
5113    ///    },
5114    ///    "Immutable": {
5115    ///      "type": "boolean"
5116    ///    },
5117    ///    "Inplace": {
5118    ///      "type": "boolean"
5119    ///    },
5120    ///    "InsecureSkipVerify": {
5121    ///      "type": "boolean"
5122    ///    },
5123    ///    "Interactive": {
5124    ///      "type": "boolean"
5125    ///    },
5126    ///    "KvLockTime": {
5127    ///      "type": "number"
5128    ///    },
5129    ///    "Links": {
5130    ///      "type": "boolean"
5131    ///    },
5132    ///    "LogLevel": {
5133    ///      "type": "string"
5134    ///    },
5135    ///    "LowLevelRetries": {
5136    ///      "type": "number"
5137    ///    },
5138    ///    "MaxBacklog": {
5139    ///      "type": "number"
5140    ///    },
5141    ///    "MaxBufferMemory": {
5142    ///      "type": "number"
5143    ///    },
5144    ///    "MaxDelete": {
5145    ///      "type": "number"
5146    ///    },
5147    ///    "MaxDeleteSize": {
5148    ///      "type": "number"
5149    ///    },
5150    ///    "MaxDepth": {
5151    ///      "type": "number"
5152    ///    },
5153    ///    "MaxDuration": {
5154    ///      "type": "number"
5155    ///    },
5156    ///    "MaxStatsGroups": {
5157    ///      "type": "number"
5158    ///    },
5159    ///    "MaxTransfer": {
5160    ///      "type": "number"
5161    ///    },
5162    ///    "Metadata": {
5163    ///      "type": "boolean"
5164    ///    },
5165    ///    "MetadataMapper": {
5166    ///      "type": [
5167    ///        "string",
5168    ///        "null"
5169    ///      ],
5170    ///      "format": "null"
5171    ///    },
5172    ///    "MetadataSet": {
5173    ///      "type": [
5174    ///        "string",
5175    ///        "null"
5176    ///      ],
5177    ///      "format": "null"
5178    ///    },
5179    ///    "ModifyWindow": {
5180    ///      "type": "number"
5181    ///    },
5182    ///    "MultiThreadChunkSize": {
5183    ///      "type": "number"
5184    ///    },
5185    ///    "MultiThreadCutoff": {
5186    ///      "type": "number"
5187    ///    },
5188    ///    "MultiThreadSet": {
5189    ///      "type": "boolean"
5190    ///    },
5191    ///    "MultiThreadStreams": {
5192    ///      "type": "number"
5193    ///    },
5194    ///    "MultiThreadWriteBufferSize": {
5195    ///      "type": "number"
5196    ///    },
5197    ///    "NoCheckDest": {
5198    ///      "type": "boolean"
5199    ///    },
5200    ///    "NoConsole": {
5201    ///      "type": "boolean"
5202    ///    },
5203    ///    "NoGzip": {
5204    ///      "type": "boolean"
5205    ///    },
5206    ///    "NoTraverse": {
5207    ///      "type": "boolean"
5208    ///    },
5209    ///    "NoUnicodeNormalization": {
5210    ///      "type": "boolean"
5211    ///    },
5212    ///    "NoUpdateDirModTime": {
5213    ///      "type": "boolean"
5214    ///    },
5215    ///    "NoUpdateModTime": {
5216    ///      "type": "boolean"
5217    ///    },
5218    ///    "OrderBy": {
5219    ///      "type": "string"
5220    ///    },
5221    ///    "PartialSuffix": {
5222    ///      "type": "string"
5223    ///    },
5224    ///    "PasswordCommand": {
5225    ///      "type": [
5226    ///        "string",
5227    ///        "null"
5228    ///      ],
5229    ///      "format": "null"
5230    ///    },
5231    ///    "Progress": {
5232    ///      "type": "boolean"
5233    ///    },
5234    ///    "ProgressTerminalTitle": {
5235    ///      "type": "boolean"
5236    ///    },
5237    ///    "RefreshTimes": {
5238    ///      "type": "boolean"
5239    ///    },
5240    ///    "Retries": {
5241    ///      "type": "number"
5242    ///    },
5243    ///    "RetriesInterval": {
5244    ///      "type": "number"
5245    ///    },
5246    ///    "ServerSideAcrossConfigs": {
5247    ///      "type": "boolean"
5248    ///    },
5249    ///    "SizeOnly": {
5250    ///      "type": "boolean"
5251    ///    },
5252    ///    "StatsFileNameLength": {
5253    ///      "type": "number"
5254    ///    },
5255    ///    "StatsLogLevel": {
5256    ///      "type": "string"
5257    ///    },
5258    ///    "StatsOneLine": {
5259    ///      "type": "boolean"
5260    ///    },
5261    ///    "StatsOneLineDate": {
5262    ///      "type": "boolean"
5263    ///    },
5264    ///    "StatsOneLineDateFormat": {
5265    ///      "type": "string"
5266    ///    },
5267    ///    "StreamingUploadCutoff": {
5268    ///      "type": "number"
5269    ///    },
5270    ///    "Suffix": {
5271    ///      "type": "string"
5272    ///    },
5273    ///    "SuffixKeepExtension": {
5274    ///      "type": "boolean"
5275    ///    },
5276    ///    "TPSLimit": {
5277    ///      "type": "number"
5278    ///    },
5279    ///    "TPSLimitBurst": {
5280    ///      "type": "number"
5281    ///    },
5282    ///    "TerminalColorMode": {
5283    ///      "type": "string"
5284    ///    },
5285    ///    "Timeout": {
5286    ///      "type": "number"
5287    ///    },
5288    ///    "TrackRenames": {
5289    ///      "type": "boolean"
5290    ///    },
5291    ///    "TrackRenamesStrategy": {
5292    ///      "type": "string"
5293    ///    },
5294    ///    "TrafficClass": {
5295    ///      "type": "number"
5296    ///    },
5297    ///    "Transfers": {
5298    ///      "type": "number"
5299    ///    },
5300    ///    "UpdateOlder": {
5301    ///      "type": "boolean"
5302    ///    },
5303    ///    "UploadHeaders": {
5304    ///      "type": [
5305    ///        "string",
5306    ///        "null"
5307    ///      ],
5308    ///      "format": "null"
5309    ///    },
5310    ///    "UseJSONLog": {
5311    ///      "type": "boolean"
5312    ///    },
5313    ///    "UseListR": {
5314    ///      "type": "boolean"
5315    ///    },
5316    ///    "UseMmap": {
5317    ///      "type": "boolean"
5318    ///    },
5319    ///    "UseServerModTime": {
5320    ///      "type": "boolean"
5321    ///    },
5322    ///    "UserAgent": {
5323    ///      "type": "string"
5324    ///    }
5325    ///  }
5326    ///}
5327    /// ```
5328    /// </details>
5329    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5330    pub struct OptionsLocalResponseConfig {
5331        #[serde(rename = "AskPassword")]
5332        pub ask_password: bool,
5333        #[serde(rename = "AutoConfirm")]
5334        pub auto_confirm: bool,
5335        #[serde(rename = "BackupDir")]
5336        pub backup_dir: ::std::string::String,
5337        #[serde(rename = "BindAddr")]
5338        pub bind_addr: ::std::string::String,
5339        #[serde(rename = "BufferSize")]
5340        pub buffer_size: f64,
5341        #[serde(rename = "BwLimit")]
5342        pub bw_limit: ::std::string::String,
5343        #[serde(rename = "BwLimitFile")]
5344        pub bw_limit_file: ::std::string::String,
5345        #[serde(rename = "CaCert")]
5346        pub ca_cert: ::std::vec::Vec<::std::string::String>,
5347        #[serde(rename = "CheckFirst")]
5348        pub check_first: bool,
5349        #[serde(rename = "CheckSum")]
5350        pub check_sum: bool,
5351        #[serde(rename = "Checkers")]
5352        pub checkers: f64,
5353        #[serde(rename = "ClientCert")]
5354        pub client_cert: ::std::string::String,
5355        #[serde(rename = "ClientKey")]
5356        pub client_key: ::std::string::String,
5357        #[serde(rename = "CompareDest")]
5358        pub compare_dest: ::std::vec::Vec<::std::string::String>,
5359        #[serde(rename = "ConnectTimeout")]
5360        pub connect_timeout: f64,
5361        #[serde(rename = "Cookie")]
5362        pub cookie: bool,
5363        #[serde(rename = "CopyDest")]
5364        pub copy_dest: ::std::vec::Vec<::std::string::String>,
5365        #[serde(rename = "CutoffMode")]
5366        pub cutoff_mode: ::std::string::String,
5367        #[serde(rename = "DataRateUnit")]
5368        pub data_rate_unit: ::std::string::String,
5369        #[serde(rename = "DefaultTime")]
5370        pub default_time: ::std::string::String,
5371        #[serde(rename = "DeleteMode")]
5372        pub delete_mode: f64,
5373        #[serde(rename = "DisableFeatures")]
5374        pub disable_features: ::std::option::Option<::std::string::String>,
5375        #[serde(rename = "DisableHTTP2")]
5376        pub disable_http2: bool,
5377        #[serde(rename = "DisableHTTPKeepAlives")]
5378        pub disable_http_keep_alives: bool,
5379        #[serde(rename = "DownloadHeaders")]
5380        pub download_headers: ::std::option::Option<::std::string::String>,
5381        #[serde(rename = "DryRun")]
5382        pub dry_run: bool,
5383        #[serde(rename = "Dump")]
5384        pub dump: ::std::string::String,
5385        #[serde(rename = "ErrorOnNoTransfer")]
5386        pub error_on_no_transfer: bool,
5387        #[serde(rename = "ExpectContinueTimeout")]
5388        pub expect_continue_timeout: f64,
5389        #[serde(rename = "FixCase")]
5390        pub fix_case: bool,
5391        #[serde(rename = "FsCacheExpireDuration")]
5392        pub fs_cache_expire_duration: f64,
5393        #[serde(rename = "FsCacheExpireInterval")]
5394        pub fs_cache_expire_interval: f64,
5395        #[serde(rename = "Headers")]
5396        pub headers: ::std::option::Option<::std::string::String>,
5397        #[serde(rename = "HumanReadable")]
5398        pub human_readable: bool,
5399        #[serde(rename = "IgnoreCaseSync")]
5400        pub ignore_case_sync: bool,
5401        #[serde(rename = "IgnoreChecksum")]
5402        pub ignore_checksum: bool,
5403        #[serde(rename = "IgnoreErrors")]
5404        pub ignore_errors: bool,
5405        #[serde(rename = "IgnoreExisting")]
5406        pub ignore_existing: bool,
5407        #[serde(rename = "IgnoreSize")]
5408        pub ignore_size: bool,
5409        #[serde(rename = "IgnoreTimes")]
5410        pub ignore_times: bool,
5411        #[serde(rename = "Immutable")]
5412        pub immutable: bool,
5413        #[serde(rename = "Inplace")]
5414        pub inplace: bool,
5415        #[serde(rename = "InsecureSkipVerify")]
5416        pub insecure_skip_verify: bool,
5417        #[serde(rename = "Interactive")]
5418        pub interactive: bool,
5419        #[serde(rename = "KvLockTime")]
5420        pub kv_lock_time: f64,
5421        #[serde(rename = "Links")]
5422        pub links: bool,
5423        #[serde(rename = "LogLevel")]
5424        pub log_level: ::std::string::String,
5425        #[serde(rename = "LowLevelRetries")]
5426        pub low_level_retries: f64,
5427        #[serde(rename = "MaxBacklog")]
5428        pub max_backlog: f64,
5429        #[serde(rename = "MaxBufferMemory")]
5430        pub max_buffer_memory: f64,
5431        #[serde(rename = "MaxDelete")]
5432        pub max_delete: f64,
5433        #[serde(rename = "MaxDeleteSize")]
5434        pub max_delete_size: f64,
5435        #[serde(rename = "MaxDepth")]
5436        pub max_depth: f64,
5437        #[serde(rename = "MaxDuration")]
5438        pub max_duration: f64,
5439        #[serde(rename = "MaxStatsGroups")]
5440        pub max_stats_groups: f64,
5441        #[serde(rename = "MaxTransfer")]
5442        pub max_transfer: f64,
5443        #[serde(rename = "Metadata")]
5444        pub metadata: bool,
5445        #[serde(rename = "MetadataMapper")]
5446        pub metadata_mapper: ::std::option::Option<::std::string::String>,
5447        #[serde(rename = "MetadataSet")]
5448        pub metadata_set: ::std::option::Option<::std::string::String>,
5449        #[serde(rename = "ModifyWindow")]
5450        pub modify_window: f64,
5451        #[serde(rename = "MultiThreadChunkSize")]
5452        pub multi_thread_chunk_size: f64,
5453        #[serde(rename = "MultiThreadCutoff")]
5454        pub multi_thread_cutoff: f64,
5455        #[serde(rename = "MultiThreadSet")]
5456        pub multi_thread_set: bool,
5457        #[serde(rename = "MultiThreadStreams")]
5458        pub multi_thread_streams: f64,
5459        #[serde(rename = "MultiThreadWriteBufferSize")]
5460        pub multi_thread_write_buffer_size: f64,
5461        #[serde(rename = "NoCheckDest")]
5462        pub no_check_dest: bool,
5463        #[serde(rename = "NoConsole")]
5464        pub no_console: bool,
5465        #[serde(rename = "NoGzip")]
5466        pub no_gzip: bool,
5467        #[serde(rename = "NoTraverse")]
5468        pub no_traverse: bool,
5469        #[serde(rename = "NoUnicodeNormalization")]
5470        pub no_unicode_normalization: bool,
5471        #[serde(rename = "NoUpdateDirModTime")]
5472        pub no_update_dir_mod_time: bool,
5473        #[serde(rename = "NoUpdateModTime")]
5474        pub no_update_mod_time: bool,
5475        #[serde(rename = "OrderBy")]
5476        pub order_by: ::std::string::String,
5477        #[serde(rename = "PartialSuffix")]
5478        pub partial_suffix: ::std::string::String,
5479        #[serde(rename = "PasswordCommand")]
5480        pub password_command: ::std::option::Option<::std::string::String>,
5481        #[serde(rename = "Progress")]
5482        pub progress: bool,
5483        #[serde(rename = "ProgressTerminalTitle")]
5484        pub progress_terminal_title: bool,
5485        #[serde(rename = "RefreshTimes")]
5486        pub refresh_times: bool,
5487        #[serde(rename = "Retries")]
5488        pub retries: f64,
5489        #[serde(rename = "RetriesInterval")]
5490        pub retries_interval: f64,
5491        #[serde(rename = "ServerSideAcrossConfigs")]
5492        pub server_side_across_configs: bool,
5493        #[serde(rename = "SizeOnly")]
5494        pub size_only: bool,
5495        #[serde(rename = "StatsFileNameLength")]
5496        pub stats_file_name_length: f64,
5497        #[serde(rename = "StatsLogLevel")]
5498        pub stats_log_level: ::std::string::String,
5499        #[serde(rename = "StatsOneLine")]
5500        pub stats_one_line: bool,
5501        #[serde(rename = "StatsOneLineDate")]
5502        pub stats_one_line_date: bool,
5503        #[serde(rename = "StatsOneLineDateFormat")]
5504        pub stats_one_line_date_format: ::std::string::String,
5505        #[serde(rename = "StreamingUploadCutoff")]
5506        pub streaming_upload_cutoff: f64,
5507        #[serde(rename = "Suffix")]
5508        pub suffix: ::std::string::String,
5509        #[serde(rename = "SuffixKeepExtension")]
5510        pub suffix_keep_extension: bool,
5511        #[serde(rename = "TerminalColorMode")]
5512        pub terminal_color_mode: ::std::string::String,
5513        #[serde(rename = "Timeout")]
5514        pub timeout: f64,
5515        #[serde(rename = "TPSLimit")]
5516        pub tps_limit: f64,
5517        #[serde(rename = "TPSLimitBurst")]
5518        pub tps_limit_burst: f64,
5519        #[serde(rename = "TrackRenames")]
5520        pub track_renames: bool,
5521        #[serde(rename = "TrackRenamesStrategy")]
5522        pub track_renames_strategy: ::std::string::String,
5523        #[serde(rename = "TrafficClass")]
5524        pub traffic_class: f64,
5525        #[serde(rename = "Transfers")]
5526        pub transfers: f64,
5527        #[serde(rename = "UpdateOlder")]
5528        pub update_older: bool,
5529        #[serde(rename = "UploadHeaders")]
5530        pub upload_headers: ::std::option::Option<::std::string::String>,
5531        #[serde(rename = "UseJSONLog")]
5532        pub use_json_log: bool,
5533        #[serde(rename = "UseListR")]
5534        pub use_list_r: bool,
5535        #[serde(rename = "UseMmap")]
5536        pub use_mmap: bool,
5537        #[serde(rename = "UseServerModTime")]
5538        pub use_server_mod_time: bool,
5539        #[serde(rename = "UserAgent")]
5540        pub user_agent: ::std::string::String,
5541    }
5542
5543    impl ::std::convert::From<&OptionsLocalResponseConfig> for OptionsLocalResponseConfig {
5544        fn from(value: &OptionsLocalResponseConfig) -> Self {
5545            value.clone()
5546        }
5547    }
5548
5549    ///`OptionsLocalResponseFilter`
5550    ///
5551    /// <details><summary>JSON schema</summary>
5552    ///
5553    /// ```json
5554    ///{
5555    ///  "type": "object",
5556    ///  "required": [
5557    ///    "DeleteExcluded",
5558    ///    "ExcludeFile",
5559    ///    "ExcludeFrom",
5560    ///    "ExcludeRule",
5561    ///    "FilesFrom",
5562    ///    "FilesFromRaw",
5563    ///    "FilterFrom",
5564    ///    "FilterRule",
5565    ///    "HashFilter",
5566    ///    "IgnoreCase",
5567    ///    "IncludeFrom",
5568    ///    "IncludeRule",
5569    ///    "MaxAge",
5570    ///    "MaxSize",
5571    ///    "MetaRules",
5572    ///    "MinAge",
5573    ///    "MinSize"
5574    ///  ],
5575    ///  "properties": {
5576    ///    "DeleteExcluded": {
5577    ///      "type": "boolean"
5578    ///    },
5579    ///    "ExcludeFile": {
5580    ///      "type": "array",
5581    ///      "items": {
5582    ///        "type": "string"
5583    ///      }
5584    ///    },
5585    ///    "ExcludeFrom": {
5586    ///      "type": "array",
5587    ///      "items": {
5588    ///        "type": "string"
5589    ///      }
5590    ///    },
5591    ///    "ExcludeRule": {
5592    ///      "type": "array",
5593    ///      "items": {
5594    ///        "type": "string"
5595    ///      }
5596    ///    },
5597    ///    "FilesFrom": {
5598    ///      "type": "array",
5599    ///      "items": {
5600    ///        "type": "string"
5601    ///      }
5602    ///    },
5603    ///    "FilesFromRaw": {
5604    ///      "type": "array",
5605    ///      "items": {
5606    ///        "type": "string"
5607    ///      }
5608    ///    },
5609    ///    "FilterFrom": {
5610    ///      "type": "array",
5611    ///      "items": {
5612    ///        "type": "string"
5613    ///      }
5614    ///    },
5615    ///    "FilterRule": {
5616    ///      "type": "array",
5617    ///      "items": {
5618    ///        "type": "string"
5619    ///      }
5620    ///    },
5621    ///    "HashFilter": {
5622    ///      "type": "string"
5623    ///    },
5624    ///    "IgnoreCase": {
5625    ///      "type": "boolean"
5626    ///    },
5627    ///    "IncludeFrom": {
5628    ///      "type": "array",
5629    ///      "items": {
5630    ///        "type": "string"
5631    ///      }
5632    ///    },
5633    ///    "IncludeRule": {
5634    ///      "type": "array",
5635    ///      "items": {
5636    ///        "type": "string"
5637    ///      }
5638    ///    },
5639    ///    "MaxAge": {
5640    ///      "type": "number"
5641    ///    },
5642    ///    "MaxSize": {
5643    ///      "type": "number"
5644    ///    },
5645    ///    "MetaRules": {
5646    ///      "type": "object",
5647    ///      "required": [
5648    ///        "ExcludeFrom",
5649    ///        "ExcludeRule",
5650    ///        "FilterFrom",
5651    ///        "FilterRule",
5652    ///        "IncludeFrom",
5653    ///        "IncludeRule"
5654    ///      ],
5655    ///      "properties": {
5656    ///        "ExcludeFrom": {
5657    ///          "type": "array",
5658    ///          "items": {
5659    ///            "type": "string"
5660    ///          }
5661    ///        },
5662    ///        "ExcludeRule": {
5663    ///          "type": "array",
5664    ///          "items": {
5665    ///            "type": "string"
5666    ///          }
5667    ///        },
5668    ///        "FilterFrom": {
5669    ///          "type": "array",
5670    ///          "items": {
5671    ///            "type": "string"
5672    ///          }
5673    ///        },
5674    ///        "FilterRule": {
5675    ///          "type": "array",
5676    ///          "items": {
5677    ///            "type": "string"
5678    ///          }
5679    ///        },
5680    ///        "IncludeFrom": {
5681    ///          "type": "array",
5682    ///          "items": {
5683    ///            "type": "string"
5684    ///          }
5685    ///        },
5686    ///        "IncludeRule": {
5687    ///          "type": "array",
5688    ///          "items": {
5689    ///            "type": "string"
5690    ///          }
5691    ///        }
5692    ///      }
5693    ///    },
5694    ///    "MinAge": {
5695    ///      "type": "number"
5696    ///    },
5697    ///    "MinSize": {
5698    ///      "type": "number"
5699    ///    }
5700    ///  }
5701    ///}
5702    /// ```
5703    /// </details>
5704    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5705    pub struct OptionsLocalResponseFilter {
5706        #[serde(rename = "DeleteExcluded")]
5707        pub delete_excluded: bool,
5708        #[serde(rename = "ExcludeFile")]
5709        pub exclude_file: ::std::vec::Vec<::std::string::String>,
5710        #[serde(rename = "ExcludeFrom")]
5711        pub exclude_from: ::std::vec::Vec<::std::string::String>,
5712        #[serde(rename = "ExcludeRule")]
5713        pub exclude_rule: ::std::vec::Vec<::std::string::String>,
5714        #[serde(rename = "FilesFrom")]
5715        pub files_from: ::std::vec::Vec<::std::string::String>,
5716        #[serde(rename = "FilesFromRaw")]
5717        pub files_from_raw: ::std::vec::Vec<::std::string::String>,
5718        #[serde(rename = "FilterFrom")]
5719        pub filter_from: ::std::vec::Vec<::std::string::String>,
5720        #[serde(rename = "FilterRule")]
5721        pub filter_rule: ::std::vec::Vec<::std::string::String>,
5722        #[serde(rename = "HashFilter")]
5723        pub hash_filter: ::std::string::String,
5724        #[serde(rename = "IgnoreCase")]
5725        pub ignore_case: bool,
5726        #[serde(rename = "IncludeFrom")]
5727        pub include_from: ::std::vec::Vec<::std::string::String>,
5728        #[serde(rename = "IncludeRule")]
5729        pub include_rule: ::std::vec::Vec<::std::string::String>,
5730        #[serde(rename = "MaxAge")]
5731        pub max_age: f64,
5732        #[serde(rename = "MaxSize")]
5733        pub max_size: f64,
5734        #[serde(rename = "MetaRules")]
5735        pub meta_rules: OptionsLocalResponseFilterMetaRules,
5736        #[serde(rename = "MinAge")]
5737        pub min_age: f64,
5738        #[serde(rename = "MinSize")]
5739        pub min_size: f64,
5740    }
5741
5742    impl ::std::convert::From<&OptionsLocalResponseFilter> for OptionsLocalResponseFilter {
5743        fn from(value: &OptionsLocalResponseFilter) -> Self {
5744            value.clone()
5745        }
5746    }
5747
5748    ///`OptionsLocalResponseFilterMetaRules`
5749    ///
5750    /// <details><summary>JSON schema</summary>
5751    ///
5752    /// ```json
5753    ///{
5754    ///  "type": "object",
5755    ///  "required": [
5756    ///    "ExcludeFrom",
5757    ///    "ExcludeRule",
5758    ///    "FilterFrom",
5759    ///    "FilterRule",
5760    ///    "IncludeFrom",
5761    ///    "IncludeRule"
5762    ///  ],
5763    ///  "properties": {
5764    ///    "ExcludeFrom": {
5765    ///      "type": "array",
5766    ///      "items": {
5767    ///        "type": "string"
5768    ///      }
5769    ///    },
5770    ///    "ExcludeRule": {
5771    ///      "type": "array",
5772    ///      "items": {
5773    ///        "type": "string"
5774    ///      }
5775    ///    },
5776    ///    "FilterFrom": {
5777    ///      "type": "array",
5778    ///      "items": {
5779    ///        "type": "string"
5780    ///      }
5781    ///    },
5782    ///    "FilterRule": {
5783    ///      "type": "array",
5784    ///      "items": {
5785    ///        "type": "string"
5786    ///      }
5787    ///    },
5788    ///    "IncludeFrom": {
5789    ///      "type": "array",
5790    ///      "items": {
5791    ///        "type": "string"
5792    ///      }
5793    ///    },
5794    ///    "IncludeRule": {
5795    ///      "type": "array",
5796    ///      "items": {
5797    ///        "type": "string"
5798    ///      }
5799    ///    }
5800    ///  }
5801    ///}
5802    /// ```
5803    /// </details>
5804    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5805    pub struct OptionsLocalResponseFilterMetaRules {
5806        #[serde(rename = "ExcludeFrom")]
5807        pub exclude_from: ::std::vec::Vec<::std::string::String>,
5808        #[serde(rename = "ExcludeRule")]
5809        pub exclude_rule: ::std::vec::Vec<::std::string::String>,
5810        #[serde(rename = "FilterFrom")]
5811        pub filter_from: ::std::vec::Vec<::std::string::String>,
5812        #[serde(rename = "FilterRule")]
5813        pub filter_rule: ::std::vec::Vec<::std::string::String>,
5814        #[serde(rename = "IncludeFrom")]
5815        pub include_from: ::std::vec::Vec<::std::string::String>,
5816        #[serde(rename = "IncludeRule")]
5817        pub include_rule: ::std::vec::Vec<::std::string::String>,
5818    }
5819
5820    impl ::std::convert::From<&OptionsLocalResponseFilterMetaRules>
5821        for OptionsLocalResponseFilterMetaRules
5822    {
5823        fn from(value: &OptionsLocalResponseFilterMetaRules) -> Self {
5824            value.clone()
5825        }
5826    }
5827
5828    ///`OptionsSetDlnaValue`
5829    ///
5830    /// <details><summary>JSON schema</summary>
5831    ///
5832    /// ```json
5833    ///{
5834    ///  "oneOf": [
5835    ///    {
5836    ///      "type": "string"
5837    ///    },
5838    ///    {
5839    ///      "type": "number"
5840    ///    },
5841    ///    {
5842    ///      "type": "integer"
5843    ///    },
5844    ///    {
5845    ///      "type": "boolean"
5846    ///    },
5847    ///    {
5848    ///      "type": "array",
5849    ///      "items": {}
5850    ///    },
5851    ///    {
5852    ///      "type": "object",
5853    ///      "additionalProperties": {}
5854    ///    }
5855    ///  ]
5856    ///}
5857    /// ```
5858    /// </details>
5859    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5860    #[serde(untagged)]
5861    pub enum OptionsSetDlnaValue {
5862        Variant0(::std::string::String),
5863        Variant1(f64),
5864        Variant2(i64),
5865        Variant3(bool),
5866        Variant4(::std::vec::Vec<::serde_json::Value>),
5867        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
5868    }
5869
5870    impl ::std::convert::From<&Self> for OptionsSetDlnaValue {
5871        fn from(value: &OptionsSetDlnaValue) -> Self {
5872            value.clone()
5873        }
5874    }
5875
5876    impl ::std::convert::From<f64> for OptionsSetDlnaValue {
5877        fn from(value: f64) -> Self {
5878            Self::Variant1(value)
5879        }
5880    }
5881
5882    impl ::std::convert::From<i64> for OptionsSetDlnaValue {
5883        fn from(value: i64) -> Self {
5884            Self::Variant2(value)
5885        }
5886    }
5887
5888    impl ::std::convert::From<bool> for OptionsSetDlnaValue {
5889        fn from(value: bool) -> Self {
5890            Self::Variant3(value)
5891        }
5892    }
5893
5894    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetDlnaValue {
5895        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
5896            Self::Variant4(value)
5897        }
5898    }
5899
5900    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
5901        for OptionsSetDlnaValue
5902    {
5903        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
5904            Self::Variant5(value)
5905        }
5906    }
5907
5908    ///`OptionsSetFilterValue`
5909    ///
5910    /// <details><summary>JSON schema</summary>
5911    ///
5912    /// ```json
5913    ///{
5914    ///  "oneOf": [
5915    ///    {
5916    ///      "type": "string"
5917    ///    },
5918    ///    {
5919    ///      "type": "number"
5920    ///    },
5921    ///    {
5922    ///      "type": "integer"
5923    ///    },
5924    ///    {
5925    ///      "type": "boolean"
5926    ///    },
5927    ///    {
5928    ///      "type": "array",
5929    ///      "items": {}
5930    ///    },
5931    ///    {
5932    ///      "type": "object",
5933    ///      "additionalProperties": {}
5934    ///    }
5935    ///  ]
5936    ///}
5937    /// ```
5938    /// </details>
5939    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
5940    #[serde(untagged)]
5941    pub enum OptionsSetFilterValue {
5942        Variant0(::std::string::String),
5943        Variant1(f64),
5944        Variant2(i64),
5945        Variant3(bool),
5946        Variant4(::std::vec::Vec<::serde_json::Value>),
5947        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
5948    }
5949
5950    impl ::std::convert::From<&Self> for OptionsSetFilterValue {
5951        fn from(value: &OptionsSetFilterValue) -> Self {
5952            value.clone()
5953        }
5954    }
5955
5956    impl ::std::convert::From<f64> for OptionsSetFilterValue {
5957        fn from(value: f64) -> Self {
5958            Self::Variant1(value)
5959        }
5960    }
5961
5962    impl ::std::convert::From<i64> for OptionsSetFilterValue {
5963        fn from(value: i64) -> Self {
5964            Self::Variant2(value)
5965        }
5966    }
5967
5968    impl ::std::convert::From<bool> for OptionsSetFilterValue {
5969        fn from(value: bool) -> Self {
5970            Self::Variant3(value)
5971        }
5972    }
5973
5974    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetFilterValue {
5975        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
5976            Self::Variant4(value)
5977        }
5978    }
5979
5980    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
5981        for OptionsSetFilterValue
5982    {
5983        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
5984            Self::Variant5(value)
5985        }
5986    }
5987
5988    ///`OptionsSetFtpValue`
5989    ///
5990    /// <details><summary>JSON schema</summary>
5991    ///
5992    /// ```json
5993    ///{
5994    ///  "oneOf": [
5995    ///    {
5996    ///      "type": "string"
5997    ///    },
5998    ///    {
5999    ///      "type": "number"
6000    ///    },
6001    ///    {
6002    ///      "type": "integer"
6003    ///    },
6004    ///    {
6005    ///      "type": "boolean"
6006    ///    },
6007    ///    {
6008    ///      "type": "array",
6009    ///      "items": {}
6010    ///    },
6011    ///    {
6012    ///      "type": "object",
6013    ///      "additionalProperties": {}
6014    ///    }
6015    ///  ]
6016    ///}
6017    /// ```
6018    /// </details>
6019    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6020    #[serde(untagged)]
6021    pub enum OptionsSetFtpValue {
6022        Variant0(::std::string::String),
6023        Variant1(f64),
6024        Variant2(i64),
6025        Variant3(bool),
6026        Variant4(::std::vec::Vec<::serde_json::Value>),
6027        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
6028    }
6029
6030    impl ::std::convert::From<&Self> for OptionsSetFtpValue {
6031        fn from(value: &OptionsSetFtpValue) -> Self {
6032            value.clone()
6033        }
6034    }
6035
6036    impl ::std::convert::From<f64> for OptionsSetFtpValue {
6037        fn from(value: f64) -> Self {
6038            Self::Variant1(value)
6039        }
6040    }
6041
6042    impl ::std::convert::From<i64> for OptionsSetFtpValue {
6043        fn from(value: i64) -> Self {
6044            Self::Variant2(value)
6045        }
6046    }
6047
6048    impl ::std::convert::From<bool> for OptionsSetFtpValue {
6049        fn from(value: bool) -> Self {
6050            Self::Variant3(value)
6051        }
6052    }
6053
6054    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetFtpValue {
6055        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
6056            Self::Variant4(value)
6057        }
6058    }
6059
6060    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
6061        for OptionsSetFtpValue
6062    {
6063        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
6064            Self::Variant5(value)
6065        }
6066    }
6067
6068    ///`OptionsSetHttpValue`
6069    ///
6070    /// <details><summary>JSON schema</summary>
6071    ///
6072    /// ```json
6073    ///{
6074    ///  "oneOf": [
6075    ///    {
6076    ///      "type": "string"
6077    ///    },
6078    ///    {
6079    ///      "type": "number"
6080    ///    },
6081    ///    {
6082    ///      "type": "integer"
6083    ///    },
6084    ///    {
6085    ///      "type": "boolean"
6086    ///    },
6087    ///    {
6088    ///      "type": "array",
6089    ///      "items": {}
6090    ///    },
6091    ///    {
6092    ///      "type": "object",
6093    ///      "additionalProperties": {}
6094    ///    }
6095    ///  ]
6096    ///}
6097    /// ```
6098    /// </details>
6099    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6100    #[serde(untagged)]
6101    pub enum OptionsSetHttpValue {
6102        Variant0(::std::string::String),
6103        Variant1(f64),
6104        Variant2(i64),
6105        Variant3(bool),
6106        Variant4(::std::vec::Vec<::serde_json::Value>),
6107        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
6108    }
6109
6110    impl ::std::convert::From<&Self> for OptionsSetHttpValue {
6111        fn from(value: &OptionsSetHttpValue) -> Self {
6112            value.clone()
6113        }
6114    }
6115
6116    impl ::std::convert::From<f64> for OptionsSetHttpValue {
6117        fn from(value: f64) -> Self {
6118            Self::Variant1(value)
6119        }
6120    }
6121
6122    impl ::std::convert::From<i64> for OptionsSetHttpValue {
6123        fn from(value: i64) -> Self {
6124            Self::Variant2(value)
6125        }
6126    }
6127
6128    impl ::std::convert::From<bool> for OptionsSetHttpValue {
6129        fn from(value: bool) -> Self {
6130            Self::Variant3(value)
6131        }
6132    }
6133
6134    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetHttpValue {
6135        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
6136            Self::Variant4(value)
6137        }
6138    }
6139
6140    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
6141        for OptionsSetHttpValue
6142    {
6143        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
6144            Self::Variant5(value)
6145        }
6146    }
6147
6148    ///`OptionsSetLogValue`
6149    ///
6150    /// <details><summary>JSON schema</summary>
6151    ///
6152    /// ```json
6153    ///{
6154    ///  "oneOf": [
6155    ///    {
6156    ///      "type": "string"
6157    ///    },
6158    ///    {
6159    ///      "type": "number"
6160    ///    },
6161    ///    {
6162    ///      "type": "integer"
6163    ///    },
6164    ///    {
6165    ///      "type": "boolean"
6166    ///    },
6167    ///    {
6168    ///      "type": "array",
6169    ///      "items": {}
6170    ///    },
6171    ///    {
6172    ///      "type": "object",
6173    ///      "additionalProperties": {}
6174    ///    }
6175    ///  ]
6176    ///}
6177    /// ```
6178    /// </details>
6179    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6180    #[serde(untagged)]
6181    pub enum OptionsSetLogValue {
6182        Variant0(::std::string::String),
6183        Variant1(f64),
6184        Variant2(i64),
6185        Variant3(bool),
6186        Variant4(::std::vec::Vec<::serde_json::Value>),
6187        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
6188    }
6189
6190    impl ::std::convert::From<&Self> for OptionsSetLogValue {
6191        fn from(value: &OptionsSetLogValue) -> Self {
6192            value.clone()
6193        }
6194    }
6195
6196    impl ::std::convert::From<f64> for OptionsSetLogValue {
6197        fn from(value: f64) -> Self {
6198            Self::Variant1(value)
6199        }
6200    }
6201
6202    impl ::std::convert::From<i64> for OptionsSetLogValue {
6203        fn from(value: i64) -> Self {
6204            Self::Variant2(value)
6205        }
6206    }
6207
6208    impl ::std::convert::From<bool> for OptionsSetLogValue {
6209        fn from(value: bool) -> Self {
6210            Self::Variant3(value)
6211        }
6212    }
6213
6214    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetLogValue {
6215        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
6216            Self::Variant4(value)
6217        }
6218    }
6219
6220    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
6221        for OptionsSetLogValue
6222    {
6223        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
6224            Self::Variant5(value)
6225        }
6226    }
6227
6228    ///`OptionsSetMainValue`
6229    ///
6230    /// <details><summary>JSON schema</summary>
6231    ///
6232    /// ```json
6233    ///{
6234    ///  "oneOf": [
6235    ///    {
6236    ///      "type": "string"
6237    ///    },
6238    ///    {
6239    ///      "type": "number"
6240    ///    },
6241    ///    {
6242    ///      "type": "integer"
6243    ///    },
6244    ///    {
6245    ///      "type": "boolean"
6246    ///    },
6247    ///    {
6248    ///      "type": "array",
6249    ///      "items": {}
6250    ///    },
6251    ///    {
6252    ///      "type": "object",
6253    ///      "additionalProperties": {}
6254    ///    }
6255    ///  ]
6256    ///}
6257    /// ```
6258    /// </details>
6259    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6260    #[serde(untagged)]
6261    pub enum OptionsSetMainValue {
6262        Variant0(::std::string::String),
6263        Variant1(f64),
6264        Variant2(i64),
6265        Variant3(bool),
6266        Variant4(::std::vec::Vec<::serde_json::Value>),
6267        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
6268    }
6269
6270    impl ::std::convert::From<&Self> for OptionsSetMainValue {
6271        fn from(value: &OptionsSetMainValue) -> Self {
6272            value.clone()
6273        }
6274    }
6275
6276    impl ::std::convert::From<f64> for OptionsSetMainValue {
6277        fn from(value: f64) -> Self {
6278            Self::Variant1(value)
6279        }
6280    }
6281
6282    impl ::std::convert::From<i64> for OptionsSetMainValue {
6283        fn from(value: i64) -> Self {
6284            Self::Variant2(value)
6285        }
6286    }
6287
6288    impl ::std::convert::From<bool> for OptionsSetMainValue {
6289        fn from(value: bool) -> Self {
6290            Self::Variant3(value)
6291        }
6292    }
6293
6294    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetMainValue {
6295        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
6296            Self::Variant4(value)
6297        }
6298    }
6299
6300    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
6301        for OptionsSetMainValue
6302    {
6303        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
6304            Self::Variant5(value)
6305        }
6306    }
6307
6308    ///`OptionsSetMountValue`
6309    ///
6310    /// <details><summary>JSON schema</summary>
6311    ///
6312    /// ```json
6313    ///{
6314    ///  "oneOf": [
6315    ///    {
6316    ///      "type": "string"
6317    ///    },
6318    ///    {
6319    ///      "type": "number"
6320    ///    },
6321    ///    {
6322    ///      "type": "integer"
6323    ///    },
6324    ///    {
6325    ///      "type": "boolean"
6326    ///    },
6327    ///    {
6328    ///      "type": "array",
6329    ///      "items": {}
6330    ///    },
6331    ///    {
6332    ///      "type": "object",
6333    ///      "additionalProperties": {}
6334    ///    }
6335    ///  ]
6336    ///}
6337    /// ```
6338    /// </details>
6339    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6340    #[serde(untagged)]
6341    pub enum OptionsSetMountValue {
6342        Variant0(::std::string::String),
6343        Variant1(f64),
6344        Variant2(i64),
6345        Variant3(bool),
6346        Variant4(::std::vec::Vec<::serde_json::Value>),
6347        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
6348    }
6349
6350    impl ::std::convert::From<&Self> for OptionsSetMountValue {
6351        fn from(value: &OptionsSetMountValue) -> Self {
6352            value.clone()
6353        }
6354    }
6355
6356    impl ::std::convert::From<f64> for OptionsSetMountValue {
6357        fn from(value: f64) -> Self {
6358            Self::Variant1(value)
6359        }
6360    }
6361
6362    impl ::std::convert::From<i64> for OptionsSetMountValue {
6363        fn from(value: i64) -> Self {
6364            Self::Variant2(value)
6365        }
6366    }
6367
6368    impl ::std::convert::From<bool> for OptionsSetMountValue {
6369        fn from(value: bool) -> Self {
6370            Self::Variant3(value)
6371        }
6372    }
6373
6374    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetMountValue {
6375        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
6376            Self::Variant4(value)
6377        }
6378    }
6379
6380    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
6381        for OptionsSetMountValue
6382    {
6383        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
6384            Self::Variant5(value)
6385        }
6386    }
6387
6388    ///`OptionsSetNfsValue`
6389    ///
6390    /// <details><summary>JSON schema</summary>
6391    ///
6392    /// ```json
6393    ///{
6394    ///  "oneOf": [
6395    ///    {
6396    ///      "type": "string"
6397    ///    },
6398    ///    {
6399    ///      "type": "number"
6400    ///    },
6401    ///    {
6402    ///      "type": "integer"
6403    ///    },
6404    ///    {
6405    ///      "type": "boolean"
6406    ///    },
6407    ///    {
6408    ///      "type": "array",
6409    ///      "items": {}
6410    ///    },
6411    ///    {
6412    ///      "type": "object",
6413    ///      "additionalProperties": {}
6414    ///    }
6415    ///  ]
6416    ///}
6417    /// ```
6418    /// </details>
6419    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6420    #[serde(untagged)]
6421    pub enum OptionsSetNfsValue {
6422        Variant0(::std::string::String),
6423        Variant1(f64),
6424        Variant2(i64),
6425        Variant3(bool),
6426        Variant4(::std::vec::Vec<::serde_json::Value>),
6427        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
6428    }
6429
6430    impl ::std::convert::From<&Self> for OptionsSetNfsValue {
6431        fn from(value: &OptionsSetNfsValue) -> Self {
6432            value.clone()
6433        }
6434    }
6435
6436    impl ::std::convert::From<f64> for OptionsSetNfsValue {
6437        fn from(value: f64) -> Self {
6438            Self::Variant1(value)
6439        }
6440    }
6441
6442    impl ::std::convert::From<i64> for OptionsSetNfsValue {
6443        fn from(value: i64) -> Self {
6444            Self::Variant2(value)
6445        }
6446    }
6447
6448    impl ::std::convert::From<bool> for OptionsSetNfsValue {
6449        fn from(value: bool) -> Self {
6450            Self::Variant3(value)
6451        }
6452    }
6453
6454    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetNfsValue {
6455        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
6456            Self::Variant4(value)
6457        }
6458    }
6459
6460    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
6461        for OptionsSetNfsValue
6462    {
6463        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
6464            Self::Variant5(value)
6465        }
6466    }
6467
6468    ///`OptionsSetProxyValue`
6469    ///
6470    /// <details><summary>JSON schema</summary>
6471    ///
6472    /// ```json
6473    ///{
6474    ///  "oneOf": [
6475    ///    {
6476    ///      "type": "string"
6477    ///    },
6478    ///    {
6479    ///      "type": "number"
6480    ///    },
6481    ///    {
6482    ///      "type": "integer"
6483    ///    },
6484    ///    {
6485    ///      "type": "boolean"
6486    ///    },
6487    ///    {
6488    ///      "type": "array",
6489    ///      "items": {}
6490    ///    },
6491    ///    {
6492    ///      "type": "object",
6493    ///      "additionalProperties": {}
6494    ///    }
6495    ///  ]
6496    ///}
6497    /// ```
6498    /// </details>
6499    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6500    #[serde(untagged)]
6501    pub enum OptionsSetProxyValue {
6502        Variant0(::std::string::String),
6503        Variant1(f64),
6504        Variant2(i64),
6505        Variant3(bool),
6506        Variant4(::std::vec::Vec<::serde_json::Value>),
6507        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
6508    }
6509
6510    impl ::std::convert::From<&Self> for OptionsSetProxyValue {
6511        fn from(value: &OptionsSetProxyValue) -> Self {
6512            value.clone()
6513        }
6514    }
6515
6516    impl ::std::convert::From<f64> for OptionsSetProxyValue {
6517        fn from(value: f64) -> Self {
6518            Self::Variant1(value)
6519        }
6520    }
6521
6522    impl ::std::convert::From<i64> for OptionsSetProxyValue {
6523        fn from(value: i64) -> Self {
6524            Self::Variant2(value)
6525        }
6526    }
6527
6528    impl ::std::convert::From<bool> for OptionsSetProxyValue {
6529        fn from(value: bool) -> Self {
6530            Self::Variant3(value)
6531        }
6532    }
6533
6534    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetProxyValue {
6535        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
6536            Self::Variant4(value)
6537        }
6538    }
6539
6540    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
6541        for OptionsSetProxyValue
6542    {
6543        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
6544            Self::Variant5(value)
6545        }
6546    }
6547
6548    ///`OptionsSetRcValue`
6549    ///
6550    /// <details><summary>JSON schema</summary>
6551    ///
6552    /// ```json
6553    ///{
6554    ///  "oneOf": [
6555    ///    {
6556    ///      "type": "string"
6557    ///    },
6558    ///    {
6559    ///      "type": "number"
6560    ///    },
6561    ///    {
6562    ///      "type": "integer"
6563    ///    },
6564    ///    {
6565    ///      "type": "boolean"
6566    ///    },
6567    ///    {
6568    ///      "type": "array",
6569    ///      "items": {}
6570    ///    },
6571    ///    {
6572    ///      "type": "object",
6573    ///      "additionalProperties": {}
6574    ///    }
6575    ///  ]
6576    ///}
6577    /// ```
6578    /// </details>
6579    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6580    #[serde(untagged)]
6581    pub enum OptionsSetRcValue {
6582        Variant0(::std::string::String),
6583        Variant1(f64),
6584        Variant2(i64),
6585        Variant3(bool),
6586        Variant4(::std::vec::Vec<::serde_json::Value>),
6587        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
6588    }
6589
6590    impl ::std::convert::From<&Self> for OptionsSetRcValue {
6591        fn from(value: &OptionsSetRcValue) -> Self {
6592            value.clone()
6593        }
6594    }
6595
6596    impl ::std::convert::From<f64> for OptionsSetRcValue {
6597        fn from(value: f64) -> Self {
6598            Self::Variant1(value)
6599        }
6600    }
6601
6602    impl ::std::convert::From<i64> for OptionsSetRcValue {
6603        fn from(value: i64) -> Self {
6604            Self::Variant2(value)
6605        }
6606    }
6607
6608    impl ::std::convert::From<bool> for OptionsSetRcValue {
6609        fn from(value: bool) -> Self {
6610            Self::Variant3(value)
6611        }
6612    }
6613
6614    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetRcValue {
6615        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
6616            Self::Variant4(value)
6617        }
6618    }
6619
6620    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
6621        for OptionsSetRcValue
6622    {
6623        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
6624            Self::Variant5(value)
6625        }
6626    }
6627
6628    ///`OptionsSetResticValue`
6629    ///
6630    /// <details><summary>JSON schema</summary>
6631    ///
6632    /// ```json
6633    ///{
6634    ///  "oneOf": [
6635    ///    {
6636    ///      "type": "string"
6637    ///    },
6638    ///    {
6639    ///      "type": "number"
6640    ///    },
6641    ///    {
6642    ///      "type": "integer"
6643    ///    },
6644    ///    {
6645    ///      "type": "boolean"
6646    ///    },
6647    ///    {
6648    ///      "type": "array",
6649    ///      "items": {}
6650    ///    },
6651    ///    {
6652    ///      "type": "object",
6653    ///      "additionalProperties": {}
6654    ///    }
6655    ///  ]
6656    ///}
6657    /// ```
6658    /// </details>
6659    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6660    #[serde(untagged)]
6661    pub enum OptionsSetResticValue {
6662        Variant0(::std::string::String),
6663        Variant1(f64),
6664        Variant2(i64),
6665        Variant3(bool),
6666        Variant4(::std::vec::Vec<::serde_json::Value>),
6667        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
6668    }
6669
6670    impl ::std::convert::From<&Self> for OptionsSetResticValue {
6671        fn from(value: &OptionsSetResticValue) -> Self {
6672            value.clone()
6673        }
6674    }
6675
6676    impl ::std::convert::From<f64> for OptionsSetResticValue {
6677        fn from(value: f64) -> Self {
6678            Self::Variant1(value)
6679        }
6680    }
6681
6682    impl ::std::convert::From<i64> for OptionsSetResticValue {
6683        fn from(value: i64) -> Self {
6684            Self::Variant2(value)
6685        }
6686    }
6687
6688    impl ::std::convert::From<bool> for OptionsSetResticValue {
6689        fn from(value: bool) -> Self {
6690            Self::Variant3(value)
6691        }
6692    }
6693
6694    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetResticValue {
6695        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
6696            Self::Variant4(value)
6697        }
6698    }
6699
6700    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
6701        for OptionsSetResticValue
6702    {
6703        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
6704            Self::Variant5(value)
6705        }
6706    }
6707
6708    ///`OptionsSetS3Value`
6709    ///
6710    /// <details><summary>JSON schema</summary>
6711    ///
6712    /// ```json
6713    ///{
6714    ///  "oneOf": [
6715    ///    {
6716    ///      "type": "string"
6717    ///    },
6718    ///    {
6719    ///      "type": "number"
6720    ///    },
6721    ///    {
6722    ///      "type": "integer"
6723    ///    },
6724    ///    {
6725    ///      "type": "boolean"
6726    ///    },
6727    ///    {
6728    ///      "type": "array",
6729    ///      "items": {}
6730    ///    },
6731    ///    {
6732    ///      "type": "object",
6733    ///      "additionalProperties": {}
6734    ///    }
6735    ///  ]
6736    ///}
6737    /// ```
6738    /// </details>
6739    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6740    #[serde(untagged)]
6741    pub enum OptionsSetS3Value {
6742        Variant0(::std::string::String),
6743        Variant1(f64),
6744        Variant2(i64),
6745        Variant3(bool),
6746        Variant4(::std::vec::Vec<::serde_json::Value>),
6747        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
6748    }
6749
6750    impl ::std::convert::From<&Self> for OptionsSetS3Value {
6751        fn from(value: &OptionsSetS3Value) -> Self {
6752            value.clone()
6753        }
6754    }
6755
6756    impl ::std::convert::From<f64> for OptionsSetS3Value {
6757        fn from(value: f64) -> Self {
6758            Self::Variant1(value)
6759        }
6760    }
6761
6762    impl ::std::convert::From<i64> for OptionsSetS3Value {
6763        fn from(value: i64) -> Self {
6764            Self::Variant2(value)
6765        }
6766    }
6767
6768    impl ::std::convert::From<bool> for OptionsSetS3Value {
6769        fn from(value: bool) -> Self {
6770            Self::Variant3(value)
6771        }
6772    }
6773
6774    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetS3Value {
6775        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
6776            Self::Variant4(value)
6777        }
6778    }
6779
6780    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
6781        for OptionsSetS3Value
6782    {
6783        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
6784            Self::Variant5(value)
6785        }
6786    }
6787
6788    ///`OptionsSetSftpValue`
6789    ///
6790    /// <details><summary>JSON schema</summary>
6791    ///
6792    /// ```json
6793    ///{
6794    ///  "oneOf": [
6795    ///    {
6796    ///      "type": "string"
6797    ///    },
6798    ///    {
6799    ///      "type": "number"
6800    ///    },
6801    ///    {
6802    ///      "type": "integer"
6803    ///    },
6804    ///    {
6805    ///      "type": "boolean"
6806    ///    },
6807    ///    {
6808    ///      "type": "array",
6809    ///      "items": {}
6810    ///    },
6811    ///    {
6812    ///      "type": "object",
6813    ///      "additionalProperties": {}
6814    ///    }
6815    ///  ]
6816    ///}
6817    /// ```
6818    /// </details>
6819    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6820    #[serde(untagged)]
6821    pub enum OptionsSetSftpValue {
6822        Variant0(::std::string::String),
6823        Variant1(f64),
6824        Variant2(i64),
6825        Variant3(bool),
6826        Variant4(::std::vec::Vec<::serde_json::Value>),
6827        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
6828    }
6829
6830    impl ::std::convert::From<&Self> for OptionsSetSftpValue {
6831        fn from(value: &OptionsSetSftpValue) -> Self {
6832            value.clone()
6833        }
6834    }
6835
6836    impl ::std::convert::From<f64> for OptionsSetSftpValue {
6837        fn from(value: f64) -> Self {
6838            Self::Variant1(value)
6839        }
6840    }
6841
6842    impl ::std::convert::From<i64> for OptionsSetSftpValue {
6843        fn from(value: i64) -> Self {
6844            Self::Variant2(value)
6845        }
6846    }
6847
6848    impl ::std::convert::From<bool> for OptionsSetSftpValue {
6849        fn from(value: bool) -> Self {
6850            Self::Variant3(value)
6851        }
6852    }
6853
6854    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetSftpValue {
6855        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
6856            Self::Variant4(value)
6857        }
6858    }
6859
6860    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
6861        for OptionsSetSftpValue
6862    {
6863        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
6864            Self::Variant5(value)
6865        }
6866    }
6867
6868    ///`OptionsSetVfsValue`
6869    ///
6870    /// <details><summary>JSON schema</summary>
6871    ///
6872    /// ```json
6873    ///{
6874    ///  "oneOf": [
6875    ///    {
6876    ///      "type": "string"
6877    ///    },
6878    ///    {
6879    ///      "type": "number"
6880    ///    },
6881    ///    {
6882    ///      "type": "integer"
6883    ///    },
6884    ///    {
6885    ///      "type": "boolean"
6886    ///    },
6887    ///    {
6888    ///      "type": "array",
6889    ///      "items": {}
6890    ///    },
6891    ///    {
6892    ///      "type": "object",
6893    ///      "additionalProperties": {}
6894    ///    }
6895    ///  ]
6896    ///}
6897    /// ```
6898    /// </details>
6899    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6900    #[serde(untagged)]
6901    pub enum OptionsSetVfsValue {
6902        Variant0(::std::string::String),
6903        Variant1(f64),
6904        Variant2(i64),
6905        Variant3(bool),
6906        Variant4(::std::vec::Vec<::serde_json::Value>),
6907        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
6908    }
6909
6910    impl ::std::convert::From<&Self> for OptionsSetVfsValue {
6911        fn from(value: &OptionsSetVfsValue) -> Self {
6912            value.clone()
6913        }
6914    }
6915
6916    impl ::std::convert::From<f64> for OptionsSetVfsValue {
6917        fn from(value: f64) -> Self {
6918            Self::Variant1(value)
6919        }
6920    }
6921
6922    impl ::std::convert::From<i64> for OptionsSetVfsValue {
6923        fn from(value: i64) -> Self {
6924            Self::Variant2(value)
6925        }
6926    }
6927
6928    impl ::std::convert::From<bool> for OptionsSetVfsValue {
6929        fn from(value: bool) -> Self {
6930            Self::Variant3(value)
6931        }
6932    }
6933
6934    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetVfsValue {
6935        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
6936            Self::Variant4(value)
6937        }
6938    }
6939
6940    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
6941        for OptionsSetVfsValue
6942    {
6943        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
6944            Self::Variant5(value)
6945        }
6946    }
6947
6948    ///`OptionsSetWebdavValue`
6949    ///
6950    /// <details><summary>JSON schema</summary>
6951    ///
6952    /// ```json
6953    ///{
6954    ///  "oneOf": [
6955    ///    {
6956    ///      "type": "string"
6957    ///    },
6958    ///    {
6959    ///      "type": "number"
6960    ///    },
6961    ///    {
6962    ///      "type": "integer"
6963    ///    },
6964    ///    {
6965    ///      "type": "boolean"
6966    ///    },
6967    ///    {
6968    ///      "type": "array",
6969    ///      "items": {}
6970    ///    },
6971    ///    {
6972    ///      "type": "object",
6973    ///      "additionalProperties": {}
6974    ///    }
6975    ///  ]
6976    ///}
6977    /// ```
6978    /// </details>
6979    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
6980    #[serde(untagged)]
6981    pub enum OptionsSetWebdavValue {
6982        Variant0(::std::string::String),
6983        Variant1(f64),
6984        Variant2(i64),
6985        Variant3(bool),
6986        Variant4(::std::vec::Vec<::serde_json::Value>),
6987        Variant5(::serde_json::Map<::std::string::String, ::serde_json::Value>),
6988    }
6989
6990    impl ::std::convert::From<&Self> for OptionsSetWebdavValue {
6991        fn from(value: &OptionsSetWebdavValue) -> Self {
6992            value.clone()
6993        }
6994    }
6995
6996    impl ::std::convert::From<f64> for OptionsSetWebdavValue {
6997        fn from(value: f64) -> Self {
6998            Self::Variant1(value)
6999        }
7000    }
7001
7002    impl ::std::convert::From<i64> for OptionsSetWebdavValue {
7003        fn from(value: i64) -> Self {
7004            Self::Variant2(value)
7005        }
7006    }
7007
7008    impl ::std::convert::From<bool> for OptionsSetWebdavValue {
7009        fn from(value: bool) -> Self {
7010            Self::Variant3(value)
7011        }
7012    }
7013
7014    impl ::std::convert::From<::std::vec::Vec<::serde_json::Value>> for OptionsSetWebdavValue {
7015        fn from(value: ::std::vec::Vec<::serde_json::Value>) -> Self {
7016            Self::Variant4(value)
7017        }
7018    }
7019
7020    impl ::std::convert::From<::serde_json::Map<::std::string::String, ::serde_json::Value>>
7021        for OptionsSetWebdavValue
7022    {
7023        fn from(value: ::serde_json::Map<::std::string::String, ::serde_json::Value>) -> Self {
7024            Self::Variant5(value)
7025        }
7026    }
7027
7028    ///`PluginsctlGetPluginsForTypeResponse`
7029    ///
7030    /// <details><summary>JSON schema</summary>
7031    ///
7032    /// ```json
7033    ///{
7034    ///  "type": "object",
7035    ///  "required": [
7036    ///    "loadedPlugins",
7037    ///    "loadedTestPlugins"
7038    ///  ],
7039    ///  "properties": {
7040    ///    "loadedPlugins": {
7041    ///      "description": "Installed plugins keyed by repository name.",
7042    ///      "type": "object",
7043    ///      "additionalProperties": {
7044    ///        "type": "object",
7045    ///        "additionalProperties": true
7046    ///      }
7047    ///    },
7048    ///    "loadedTestPlugins": {
7049    ///      "description": "Installed test plugins keyed by repository name.",
7050    ///      "type": "object",
7051    ///      "additionalProperties": {
7052    ///        "type": "object",
7053    ///        "additionalProperties": true
7054    ///      }
7055    ///    }
7056    ///  }
7057    ///}
7058    /// ```
7059    /// </details>
7060    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7061    pub struct PluginsctlGetPluginsForTypeResponse {
7062        ///Installed plugins keyed by repository name.
7063        #[serde(rename = "loadedPlugins")]
7064        pub loaded_plugins: ::std::collections::HashMap<
7065            ::std::string::String,
7066            ::serde_json::Map<::std::string::String, ::serde_json::Value>,
7067        >,
7068        ///Installed test plugins keyed by repository name.
7069        #[serde(rename = "loadedTestPlugins")]
7070        pub loaded_test_plugins: ::std::collections::HashMap<
7071            ::std::string::String,
7072            ::serde_json::Map<::std::string::String, ::serde_json::Value>,
7073        >,
7074    }
7075
7076    impl ::std::convert::From<&PluginsctlGetPluginsForTypeResponse>
7077        for PluginsctlGetPluginsForTypeResponse
7078    {
7079        fn from(value: &PluginsctlGetPluginsForTypeResponse) -> Self {
7080            value.clone()
7081        }
7082    }
7083
7084    ///`PluginsctlListPluginsResponse`
7085    ///
7086    /// <details><summary>JSON schema</summary>
7087    ///
7088    /// ```json
7089    ///{
7090    ///  "type": "object",
7091    ///  "required": [
7092    ///    "loadedPlugins",
7093    ///    "testPlugins"
7094    ///  ],
7095    ///  "properties": {
7096    ///    "loadedPlugins": {
7097    ///      "description": "Metadata entries for installed plugins.",
7098    ///      "type": "array",
7099    ///      "items": {
7100    ///        "type": "object",
7101    ///        "additionalProperties": true
7102    ///      }
7103    ///    },
7104    ///    "testPlugins": {
7105    ///      "description": "Metadata entries for installed test plugins.",
7106    ///      "type": "array",
7107    ///      "items": {
7108    ///        "type": "object",
7109    ///        "additionalProperties": true
7110    ///      }
7111    ///    }
7112    ///  }
7113    ///}
7114    /// ```
7115    /// </details>
7116    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7117    pub struct PluginsctlListPluginsResponse {
7118        ///Metadata entries for installed plugins.
7119        #[serde(rename = "loadedPlugins")]
7120        pub loaded_plugins:
7121            ::std::vec::Vec<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
7122        ///Metadata entries for installed test plugins.
7123        #[serde(rename = "testPlugins")]
7124        pub test_plugins:
7125            ::std::vec::Vec<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
7126    }
7127
7128    impl ::std::convert::From<&PluginsctlListPluginsResponse> for PluginsctlListPluginsResponse {
7129        fn from(value: &PluginsctlListPluginsResponse) -> Self {
7130            value.clone()
7131        }
7132    }
7133
7134    ///`PluginsctlListTestPluginsResponse`
7135    ///
7136    /// <details><summary>JSON schema</summary>
7137    ///
7138    /// ```json
7139    ///{
7140    ///  "type": "object",
7141    ///  "required": [
7142    ///    "loadedTestPlugins"
7143    ///  ],
7144    ///  "properties": {
7145    ///    "loadedTestPlugins": {
7146    ///      "description": "Installed test plugin metadata keyed by
7147    /// repository.",
7148    ///      "type": "object",
7149    ///      "additionalProperties": {
7150    ///        "type": "object",
7151    ///        "additionalProperties": true
7152    ///      }
7153    ///    }
7154    ///  }
7155    ///}
7156    /// ```
7157    /// </details>
7158    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7159    pub struct PluginsctlListTestPluginsResponse {
7160        ///Installed test plugin metadata keyed by repository.
7161        #[serde(rename = "loadedTestPlugins")]
7162        pub loaded_test_plugins: ::std::collections::HashMap<
7163            ::std::string::String,
7164            ::serde_json::Map<::std::string::String, ::serde_json::Value>,
7165        >,
7166    }
7167
7168    impl ::std::convert::From<&PluginsctlListTestPluginsResponse>
7169        for PluginsctlListTestPluginsResponse
7170    {
7171        fn from(value: &PluginsctlListTestPluginsResponse) -> Self {
7172            value.clone()
7173        }
7174    }
7175
7176    ///`RcError`
7177    ///
7178    /// <details><summary>JSON schema</summary>
7179    ///
7180    /// ```json
7181    ///{
7182    ///  "type": "object",
7183    ///  "required": [
7184    ///    "error",
7185    ///    "input",
7186    ///    "path",
7187    ///    "status"
7188    ///  ],
7189    ///  "properties": {
7190    ///    "error": {
7191    ///      "type": "string"
7192    ///    },
7193    ///    "input": {
7194    ///      "description": "Original request parameters echoed for debugging.",
7195    ///      "type": [
7196    ///        "object",
7197    ///        "null"
7198    ///      ],
7199    ///      "additionalProperties": {}
7200    ///    },
7201    ///    "path": {
7202    ///      "type": "string"
7203    ///    },
7204    ///    "status": {
7205    ///      "type": "integer"
7206    ///    }
7207    ///  }
7208    ///}
7209    /// ```
7210    /// </details>
7211    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7212    pub struct RcError {
7213        pub error: ::std::string::String,
7214        ///Original request parameters echoed for debugging.
7215        pub input:
7216            ::std::option::Option<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
7217        pub path: ::std::string::String,
7218        pub status: i64,
7219    }
7220
7221    impl ::std::convert::From<&RcError> for RcError {
7222        fn from(value: &RcError) -> Self {
7223            value.clone()
7224        }
7225    }
7226
7227    ///`RcListResponse`
7228    ///
7229    /// <details><summary>JSON schema</summary>
7230    ///
7231    /// ```json
7232    ///{
7233    ///  "type": "object",
7234    ///  "required": [
7235    ///    "commands"
7236    ///  ],
7237    ///  "properties": {
7238    ///    "commands": {
7239    ///      "type": "array",
7240    ///      "items": {
7241    ///        "type": "object",
7242    ///        "properties": {
7243    ///          "AuthRequired": {
7244    ///            "type": "boolean"
7245    ///          },
7246    ///          "Help": {
7247    ///            "type": "string"
7248    ///          },
7249    ///          "NeedsRequest": {
7250    ///            "type": "boolean"
7251    ///          },
7252    ///          "NeedsResponse": {
7253    ///            "type": "boolean"
7254    ///          },
7255    ///          "Path": {
7256    ///            "type": "string"
7257    ///          },
7258    ///          "Title": {
7259    ///            "type": "string"
7260    ///          }
7261    ///        },
7262    ///        "additionalProperties": true
7263    ///      }
7264    ///    }
7265    ///  }
7266    ///}
7267    /// ```
7268    /// </details>
7269    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7270    pub struct RcListResponse {
7271        pub commands: ::std::vec::Vec<RcListResponseCommandsItem>,
7272    }
7273
7274    impl ::std::convert::From<&RcListResponse> for RcListResponse {
7275        fn from(value: &RcListResponse) -> Self {
7276            value.clone()
7277        }
7278    }
7279
7280    ///`RcListResponseCommandsItem`
7281    ///
7282    /// <details><summary>JSON schema</summary>
7283    ///
7284    /// ```json
7285    ///{
7286    ///  "type": "object",
7287    ///  "properties": {
7288    ///    "AuthRequired": {
7289    ///      "type": "boolean"
7290    ///    },
7291    ///    "Help": {
7292    ///      "type": "string"
7293    ///    },
7294    ///    "NeedsRequest": {
7295    ///      "type": "boolean"
7296    ///    },
7297    ///    "NeedsResponse": {
7298    ///      "type": "boolean"
7299    ///    },
7300    ///    "Path": {
7301    ///      "type": "string"
7302    ///    },
7303    ///    "Title": {
7304    ///      "type": "string"
7305    ///    }
7306    ///  },
7307    ///  "additionalProperties": true
7308    ///}
7309    /// ```
7310    /// </details>
7311    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7312    pub struct RcListResponseCommandsItem {
7313        #[serde(
7314            rename = "AuthRequired",
7315            default,
7316            skip_serializing_if = "::std::option::Option::is_none"
7317        )]
7318        pub auth_required: ::std::option::Option<bool>,
7319        #[serde(
7320            rename = "Help",
7321            default,
7322            skip_serializing_if = "::std::option::Option::is_none"
7323        )]
7324        pub help: ::std::option::Option<::std::string::String>,
7325        #[serde(
7326            rename = "NeedsRequest",
7327            default,
7328            skip_serializing_if = "::std::option::Option::is_none"
7329        )]
7330        pub needs_request: ::std::option::Option<bool>,
7331        #[serde(
7332            rename = "NeedsResponse",
7333            default,
7334            skip_serializing_if = "::std::option::Option::is_none"
7335        )]
7336        pub needs_response: ::std::option::Option<bool>,
7337        #[serde(
7338            rename = "Path",
7339            default,
7340            skip_serializing_if = "::std::option::Option::is_none"
7341        )]
7342        pub path: ::std::option::Option<::std::string::String>,
7343        #[serde(
7344            rename = "Title",
7345            default,
7346            skip_serializing_if = "::std::option::Option::is_none"
7347        )]
7348        pub title: ::std::option::Option<::std::string::String>,
7349    }
7350
7351    impl ::std::convert::From<&RcListResponseCommandsItem> for RcListResponseCommandsItem {
7352        fn from(value: &RcListResponseCommandsItem) -> Self {
7353            value.clone()
7354        }
7355    }
7356
7357    impl ::std::default::Default for RcListResponseCommandsItem {
7358        fn default() -> Self {
7359            Self {
7360                auth_required: Default::default(),
7361                help: Default::default(),
7362                needs_request: Default::default(),
7363                needs_response: Default::default(),
7364                path: Default::default(),
7365                title: Default::default(),
7366            }
7367        }
7368    }
7369
7370    ///`ServeListResponse`
7371    ///
7372    /// <details><summary>JSON schema</summary>
7373    ///
7374    /// ```json
7375    ///{
7376    ///  "type": "object",
7377    ///  "required": [
7378    ///    "list"
7379    ///  ],
7380    ///  "properties": {
7381    ///    "list": {
7382    ///      "type": "array",
7383    ///      "items": {
7384    ///        "type": "object",
7385    ///        "required": [
7386    ///          "addr",
7387    ///          "id"
7388    ///        ],
7389    ///        "properties": {
7390    ///          "addr": {
7391    ///            "description": "Address and port the server is listening
7392    /// on.",
7393    ///            "type": "string"
7394    ///          },
7395    ///          "id": {
7396    ///            "description": "Identifier returned by `serve/start`.",
7397    ///            "type": "string"
7398    ///          },
7399    ///          "params": {
7400    ///            "description": "Serve configuration parameters supplied at
7401    /// startup.",
7402    ///            "type": "object",
7403    ///            "required": [
7404    ///              "fs",
7405    ///              "id",
7406    ///              "type"
7407    ///            ],
7408    ///            "properties": {
7409    ///              "fs": {
7410    ///                "type": "string"
7411    ///              },
7412    ///              "opt": {
7413    ///                "type": "object",
7414    ///                "additionalProperties": true
7415    ///              },
7416    ///              "type": {
7417    ///                "type": "string"
7418    ///              },
7419    ///              "vfsOpt": {
7420    ///                "type": "object",
7421    ///                "additionalProperties": true
7422    ///              }
7423    ///            },
7424    ///            "additionalProperties": true
7425    ///          }
7426    ///        },
7427    ///        "additionalProperties": false
7428    ///      }
7429    ///    }
7430    ///  }
7431    ///}
7432    /// ```
7433    /// </details>
7434    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7435    pub struct ServeListResponse {
7436        pub list: ::std::vec::Vec<ServeListResponseListItem>,
7437    }
7438
7439    impl ::std::convert::From<&ServeListResponse> for ServeListResponse {
7440        fn from(value: &ServeListResponse) -> Self {
7441            value.clone()
7442        }
7443    }
7444
7445    ///`ServeListResponseListItem`
7446    ///
7447    /// <details><summary>JSON schema</summary>
7448    ///
7449    /// ```json
7450    ///{
7451    ///  "type": "object",
7452    ///  "required": [
7453    ///    "addr",
7454    ///    "id"
7455    ///  ],
7456    ///  "properties": {
7457    ///    "addr": {
7458    ///      "description": "Address and port the server is listening on.",
7459    ///      "type": "string"
7460    ///    },
7461    ///    "id": {
7462    ///      "description": "Identifier returned by `serve/start`.",
7463    ///      "type": "string"
7464    ///    },
7465    ///    "params": {
7466    ///      "description": "Serve configuration parameters supplied at
7467    /// startup.",
7468    ///      "type": "object",
7469    ///      "required": [
7470    ///        "fs",
7471    ///        "id",
7472    ///        "type"
7473    ///      ],
7474    ///      "properties": {
7475    ///        "fs": {
7476    ///          "type": "string"
7477    ///        },
7478    ///        "opt": {
7479    ///          "type": "object",
7480    ///          "additionalProperties": true
7481    ///        },
7482    ///        "type": {
7483    ///          "type": "string"
7484    ///        },
7485    ///        "vfsOpt": {
7486    ///          "type": "object",
7487    ///          "additionalProperties": true
7488    ///        }
7489    ///      },
7490    ///      "additionalProperties": true
7491    ///    }
7492    ///  },
7493    ///  "additionalProperties": false
7494    ///}
7495    /// ```
7496    /// </details>
7497    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7498    #[serde(deny_unknown_fields)]
7499    pub struct ServeListResponseListItem {
7500        ///Address and port the server is listening on.
7501        pub addr: ::std::string::String,
7502        ///Identifier returned by `serve/start`.
7503        pub id: ::std::string::String,
7504        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
7505        pub params: ::std::option::Option<ServeListResponseListItemParams>,
7506    }
7507
7508    impl ::std::convert::From<&ServeListResponseListItem> for ServeListResponseListItem {
7509        fn from(value: &ServeListResponseListItem) -> Self {
7510            value.clone()
7511        }
7512    }
7513
7514    ///Serve configuration parameters supplied at startup.
7515    ///
7516    /// <details><summary>JSON schema</summary>
7517    ///
7518    /// ```json
7519    ///{
7520    ///  "description": "Serve configuration parameters supplied at startup.",
7521    ///  "type": "object",
7522    ///  "required": [
7523    ///    "fs",
7524    ///    "id",
7525    ///    "type"
7526    ///  ],
7527    ///  "properties": {
7528    ///    "fs": {
7529    ///      "type": "string"
7530    ///    },
7531    ///    "opt": {
7532    ///      "type": "object",
7533    ///      "additionalProperties": true
7534    ///    },
7535    ///    "type": {
7536    ///      "type": "string"
7537    ///    },
7538    ///    "vfsOpt": {
7539    ///      "type": "object",
7540    ///      "additionalProperties": true
7541    ///    }
7542    ///  },
7543    ///  "additionalProperties": true
7544    ///}
7545    /// ```
7546    /// </details>
7547    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7548    pub struct ServeListResponseListItemParams {
7549        pub fs: ::std::string::String,
7550        pub id: ::serde_json::Value,
7551        #[serde(default, skip_serializing_if = "::serde_json::Map::is_empty")]
7552        pub opt: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
7553        #[serde(rename = "type")]
7554        pub type_: ::std::string::String,
7555        #[serde(
7556            rename = "vfsOpt",
7557            default,
7558            skip_serializing_if = "::serde_json::Map::is_empty"
7559        )]
7560        pub vfs_opt: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
7561    }
7562
7563    impl ::std::convert::From<&ServeListResponseListItemParams> for ServeListResponseListItemParams {
7564        fn from(value: &ServeListResponseListItemParams) -> Self {
7565            value.clone()
7566        }
7567    }
7568
7569    ///`ServeStartResponse`
7570    ///
7571    /// <details><summary>JSON schema</summary>
7572    ///
7573    /// ```json
7574    ///{
7575    ///  "type": "object",
7576    ///  "required": [
7577    ///    "addr",
7578    ///    "id"
7579    ///  ],
7580    ///  "properties": {
7581    ///    "addr": {
7582    ///      "description": "Address and port the server is listening on.",
7583    ///      "type": "string"
7584    ///    },
7585    ///    "id": {
7586    ///      "description": "Identifier to pass to `serve/stop`.",
7587    ///      "type": "string"
7588    ///    }
7589    ///  }
7590    ///}
7591    /// ```
7592    /// </details>
7593    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7594    pub struct ServeStartResponse {
7595        ///Address and port the server is listening on.
7596        pub addr: ::std::string::String,
7597        ///Identifier to pass to `serve/stop`.
7598        pub id: ::std::string::String,
7599    }
7600
7601    impl ::std::convert::From<&ServeStartResponse> for ServeStartResponse {
7602        fn from(value: &ServeStartResponse) -> Self {
7603            value.clone()
7604        }
7605    }
7606
7607    ///`SyncBisyncResponse`
7608    ///
7609    /// <details><summary>JSON schema</summary>
7610    ///
7611    /// ```json
7612    ///{
7613    ///  "type": "object",
7614    ///  "properties": {
7615    ///    "jobid": {
7616    ///      "description": "Job ID of the operation.",
7617    ///      "type": "integer"
7618    ///    }
7619    ///  }
7620    ///}
7621    /// ```
7622    /// </details>
7623    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7624    pub struct SyncBisyncResponse {
7625        ///Job ID of the operation.
7626        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
7627        pub jobid: ::std::option::Option<i64>,
7628    }
7629
7630    impl ::std::convert::From<&SyncBisyncResponse> for SyncBisyncResponse {
7631        fn from(value: &SyncBisyncResponse) -> Self {
7632            value.clone()
7633        }
7634    }
7635
7636    impl ::std::default::Default for SyncBisyncResponse {
7637        fn default() -> Self {
7638            Self {
7639                jobid: Default::default(),
7640            }
7641        }
7642    }
7643
7644    ///`SyncCopyResponse`
7645    ///
7646    /// <details><summary>JSON schema</summary>
7647    ///
7648    /// ```json
7649    ///{
7650    ///  "type": "object",
7651    ///  "properties": {
7652    ///    "jobid": {
7653    ///      "description": "Job ID of the operation.",
7654    ///      "type": "integer"
7655    ///    }
7656    ///  }
7657    ///}
7658    /// ```
7659    /// </details>
7660    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7661    pub struct SyncCopyResponse {
7662        ///Job ID of the operation.
7663        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
7664        pub jobid: ::std::option::Option<i64>,
7665    }
7666
7667    impl ::std::convert::From<&SyncCopyResponse> for SyncCopyResponse {
7668        fn from(value: &SyncCopyResponse) -> Self {
7669            value.clone()
7670        }
7671    }
7672
7673    impl ::std::default::Default for SyncCopyResponse {
7674        fn default() -> Self {
7675            Self {
7676                jobid: Default::default(),
7677            }
7678        }
7679    }
7680
7681    ///`SyncMoveResponse`
7682    ///
7683    /// <details><summary>JSON schema</summary>
7684    ///
7685    /// ```json
7686    ///{
7687    ///  "type": "object",
7688    ///  "properties": {
7689    ///    "jobid": {
7690    ///      "description": "Job ID of the operation.",
7691    ///      "type": "integer"
7692    ///    }
7693    ///  }
7694    ///}
7695    /// ```
7696    /// </details>
7697    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7698    pub struct SyncMoveResponse {
7699        ///Job ID of the operation.
7700        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
7701        pub jobid: ::std::option::Option<i64>,
7702    }
7703
7704    impl ::std::convert::From<&SyncMoveResponse> for SyncMoveResponse {
7705        fn from(value: &SyncMoveResponse) -> Self {
7706            value.clone()
7707        }
7708    }
7709
7710    impl ::std::default::Default for SyncMoveResponse {
7711        fn default() -> Self {
7712            Self {
7713                jobid: Default::default(),
7714            }
7715        }
7716    }
7717
7718    ///`SyncSyncResponse`
7719    ///
7720    /// <details><summary>JSON schema</summary>
7721    ///
7722    /// ```json
7723    ///{
7724    ///  "type": "object",
7725    ///  "properties": {
7726    ///    "jobid": {
7727    ///      "description": "Job ID of the operation.",
7728    ///      "type": "integer"
7729    ///    }
7730    ///  }
7731    ///}
7732    /// ```
7733    /// </details>
7734    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7735    pub struct SyncSyncResponse {
7736        ///Job ID of the operation.
7737        #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
7738        pub jobid: ::std::option::Option<i64>,
7739    }
7740
7741    impl ::std::convert::From<&SyncSyncResponse> for SyncSyncResponse {
7742        fn from(value: &SyncSyncResponse) -> Self {
7743            value.clone()
7744        }
7745    }
7746
7747    impl ::std::default::Default for SyncSyncResponse {
7748        fn default() -> Self {
7749            Self {
7750                jobid: Default::default(),
7751            }
7752        }
7753    }
7754
7755    ///`VfsForgetResponse`
7756    ///
7757    /// <details><summary>JSON schema</summary>
7758    ///
7759    /// ```json
7760    ///{
7761    ///  "type": "object",
7762    ///  "required": [
7763    ///    "forgotten"
7764    ///  ],
7765    ///  "properties": {
7766    ///    "forgotten": {
7767    ///      "description": "Paths that were successfully forgotten.",
7768    ///      "type": "array",
7769    ///      "items": {
7770    ///        "type": "string"
7771    ///      }
7772    ///    }
7773    ///  }
7774    ///}
7775    /// ```
7776    /// </details>
7777    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7778    pub struct VfsForgetResponse {
7779        ///Paths that were successfully forgotten.
7780        pub forgotten: ::std::vec::Vec<::std::string::String>,
7781    }
7782
7783    impl ::std::convert::From<&VfsForgetResponse> for VfsForgetResponse {
7784        fn from(value: &VfsForgetResponse) -> Self {
7785            value.clone()
7786        }
7787    }
7788
7789    ///`VfsListResponse`
7790    ///
7791    /// <details><summary>JSON schema</summary>
7792    ///
7793    /// ```json
7794    ///{
7795    ///  "type": "object",
7796    ///  "required": [
7797    ///    "vfses"
7798    ///  ],
7799    ///  "properties": {
7800    ///    "vfses": {
7801    ///      "description": "VFS name that can be used with other VFS
7802    /// endpoints.",
7803    ///      "type": "array",
7804    ///      "items": {
7805    ///        "type": "string"
7806    ///      }
7807    ///    }
7808    ///  }
7809    ///}
7810    /// ```
7811    /// </details>
7812    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7813    pub struct VfsListResponse {
7814        ///VFS name that can be used with other VFS endpoints.
7815        pub vfses: ::std::vec::Vec<::std::string::String>,
7816    }
7817
7818    impl ::std::convert::From<&VfsListResponse> for VfsListResponse {
7819        fn from(value: &VfsListResponse) -> Self {
7820            value.clone()
7821        }
7822    }
7823
7824    ///`VfsQueueResponse`
7825    ///
7826    /// <details><summary>JSON schema</summary>
7827    ///
7828    /// ```json
7829    ///{
7830    ///  "type": "object",
7831    ///  "properties": {
7832    ///    "queued": {
7833    ///      "type": "array",
7834    ///      "items": {
7835    ///        "description": "Queued item metadata such as name, size, expiry,
7836    /// and upload state.",
7837    ///        "type": "object",
7838    ///        "additionalProperties": true
7839    ///      }
7840    ///    }
7841    ///  }
7842    ///}
7843    /// ```
7844    /// </details>
7845    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7846    pub struct VfsQueueResponse {
7847        #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
7848        pub queued: ::std::vec::Vec<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
7849    }
7850
7851    impl ::std::convert::From<&VfsQueueResponse> for VfsQueueResponse {
7852        fn from(value: &VfsQueueResponse) -> Self {
7853            value.clone()
7854        }
7855    }
7856
7857    impl ::std::default::Default for VfsQueueResponse {
7858        fn default() -> Self {
7859            Self {
7860                queued: Default::default(),
7861            }
7862        }
7863    }
7864
7865    ///`VfsRefreshResponse`
7866    ///
7867    /// <details><summary>JSON schema</summary>
7868    ///
7869    /// ```json
7870    ///{
7871    ///  "type": "object",
7872    ///  "required": [
7873    ///    "result"
7874    ///  ],
7875    ///  "properties": {
7876    ///    "result": {
7877    ///      "description": "Map of refreshed directories to status messages.",
7878    ///      "type": "object",
7879    ///      "additionalProperties": {
7880    ///        "type": "string"
7881    ///      }
7882    ///    }
7883    ///  }
7884    ///}
7885    /// ```
7886    /// </details>
7887    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7888    pub struct VfsRefreshResponse {
7889        ///Map of refreshed directories to status messages.
7890        pub result: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
7891    }
7892
7893    impl ::std::convert::From<&VfsRefreshResponse> for VfsRefreshResponse {
7894        fn from(value: &VfsRefreshResponse) -> Self {
7895            value.clone()
7896        }
7897    }
7898
7899    ///`VfsStatsResponse`
7900    ///
7901    /// <details><summary>JSON schema</summary>
7902    ///
7903    /// ```json
7904    ///{
7905    ///  "type": "object",
7906    ///  "required": [
7907    ///    "fs",
7908    ///    "inUse",
7909    ///    "metadataCache",
7910    ///    "opt"
7911    ///  ],
7912    ///  "properties": {
7913    ///    "diskCache": {
7914    ///      "description": "Disk cache metrics when caching is enabled.",
7915    ///      "type": [
7916    ///        "object",
7917    ///        "null"
7918    ///      ],
7919    ///      "additionalProperties": true
7920    ///    },
7921    ///    "fs": {
7922    ///      "description": "Name of the VFS.",
7923    ///      "type": "string"
7924    ///    },
7925    ///    "inUse": {
7926    ///      "description": "Number of active references to the VFS.",
7927    ///      "type": "integer"
7928    ///    },
7929    ///    "metadataCache": {
7930    ///      "description": "In-memory metadata cache counters.",
7931    ///      "type": "object",
7932    ///      "additionalProperties": {
7933    ///        "type": "integer"
7934    ///      }
7935    ///    },
7936    ///    "opt": {
7937    ///      "description": "Effective options applied to the VFS.",
7938    ///      "type": "object",
7939    ///      "additionalProperties": true
7940    ///    }
7941    ///  }
7942    ///}
7943    /// ```
7944    /// </details>
7945    #[derive(:: serde :: Deserialize, :: serde :: Serialize, Clone, Debug)]
7946    pub struct VfsStatsResponse {
7947        ///Disk cache metrics when caching is enabled.
7948        #[serde(
7949            rename = "diskCache",
7950            default,
7951            skip_serializing_if = "::std::option::Option::is_none"
7952        )]
7953        pub disk_cache:
7954            ::std::option::Option<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
7955        ///Name of the VFS.
7956        pub fs: ::std::string::String,
7957        ///Number of active references to the VFS.
7958        #[serde(rename = "inUse")]
7959        pub in_use: i64,
7960        ///In-memory metadata cache counters.
7961        #[serde(rename = "metadataCache")]
7962        pub metadata_cache: ::std::collections::HashMap<::std::string::String, i64>,
7963        ///Effective options applied to the VFS.
7964        pub opt: ::serde_json::Map<::std::string::String, ::serde_json::Value>,
7965    }
7966
7967    impl ::std::convert::From<&VfsStatsResponse> for VfsStatsResponse {
7968        fn from(value: &VfsStatsResponse) -> Self {
7969            value.clone()
7970        }
7971    }
7972}
7973
7974#[derive(Clone, Debug)]
7975///Client for Rclone RC API
7976///
7977///Full OpenAPI specification for the Rclone RC API.
7978///
7979///Version: 0.1.3
7980pub struct Client {
7981    pub(crate) baseurl: String,
7982    pub(crate) client: reqwest::Client,
7983}
7984
7985impl Client {
7986    /// Create a new client.
7987    ///
7988    /// `baseurl` is the base URL provided to the internal
7989    /// `reqwest::Client`, and should include a scheme and hostname,
7990    /// as well as port and a path stem if applicable.
7991    pub fn new(baseurl: &str) -> Self {
7992        #[cfg(not(target_arch = "wasm32"))]
7993        let client = {
7994            let dur = ::std::time::Duration::from_secs(15u64);
7995            reqwest::ClientBuilder::new()
7996                .connect_timeout(dur)
7997                .timeout(dur)
7998        };
7999        #[cfg(target_arch = "wasm32")]
8000        let client = reqwest::ClientBuilder::new();
8001        Self::new_with_client(baseurl, client.build().unwrap())
8002    }
8003
8004    /// Construct a new client with an existing `reqwest::Client`,
8005    /// allowing more control over its configuration.
8006    ///
8007    /// `baseurl` is the base URL provided to the internal
8008    /// `reqwest::Client`, and should include a scheme and hostname,
8009    /// as well as port and a path stem if applicable.
8010    pub fn new_with_client(baseurl: &str, client: reqwest::Client) -> Self {
8011        Self {
8012            baseurl: baseurl.to_string(),
8013            client,
8014        }
8015    }
8016}
8017
8018impl ClientInfo<()> for Client {
8019    fn api_version() -> &'static str {
8020        "0.1.3"
8021    }
8022
8023    fn baseurl(&self) -> &str {
8024        self.baseurl.as_str()
8025    }
8026
8027    fn client(&self) -> &reqwest::Client {
8028        &self.client
8029    }
8030
8031    fn inner(&self) -> &() {
8032        &()
8033    }
8034}
8035
8036impl ClientHooks<()> for &Client {}
8037#[allow(clippy::all)]
8038impl Client {
8039    ///Echo request parameters
8040    ///
8041    ///Returns all supplied parameters unchanged so you can verify RC
8042    /// connectivity.
8043    ///
8044    ///Sends a `POST` request to `/rc/noop`
8045    ///
8046    ///Arguments:
8047    /// - `async_`: Run the command asynchronously. Returns a job id
8048    ///   immediately.
8049    /// - `params`: Additional arbitrary parameters allowed.
8050    pub async fn rc_noop<'a>(
8051        &'a self,
8052        async_: Option<bool>,
8053        params: Option<&'a ::serde_json::Map<::std::string::String, ::serde_json::Value>>,
8054    ) -> Result<
8055        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
8056        Error<types::RcError>,
8057    > {
8058        let url = format!("{}/rc/noop", self.baseurl,);
8059        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8060        header_map.append(
8061            ::reqwest::header::HeaderName::from_static("api-version"),
8062            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8063        );
8064        #[allow(unused_mut)]
8065        let mut request = self
8066            .client
8067            .post(url)
8068            .header(
8069                ::reqwest::header::ACCEPT,
8070                ::reqwest::header::HeaderValue::from_static("application/json"),
8071            )
8072            .query(&progenitor_client::QueryParam::new("_async", &async_))
8073            .query(&progenitor_client::QueryParam::new("params", &params))
8074            .headers(header_map)
8075            .build()?;
8076        let info = OperationInfo {
8077            operation_id: "rc_noop",
8078        };
8079        self.pre(&mut request, &info).await?;
8080        let result = self.exec(request, &info).await;
8081        self.post(&result, &info).await?;
8082        let response = result?;
8083        match response.status().as_u16() {
8084            200u16 => ResponseValue::from_response(response).await,
8085            400u16..=499u16 => Err(Error::ErrorResponse(
8086                ResponseValue::from_response(response).await?,
8087            )),
8088            500u16..=599u16 => Err(Error::ErrorResponse(
8089                ResponseValue::from_response(response).await?,
8090            )),
8091            _ => Err(Error::UnexpectedResponse(response)),
8092        }
8093    }
8094
8095    ///Remove trashed files
8096    ///
8097    ///Permanently removes trashed objects from the specified remote path.
8098    ///
8099    ///Sends a `POST` request to `/operations/cleanup`
8100    ///
8101    ///Arguments:
8102    /// - `async_`: Run the command asynchronously. Returns a job id
8103    ///   immediately.
8104    /// - `group`: Assign the request to a custom stats group.
8105    /// - `fs`: Remote name or path to clean up, for example `drive:`.
8106    pub async fn operations_cleanup<'a>(
8107        &'a self,
8108        async_: Option<bool>,
8109        group: Option<&'a str>,
8110        fs: &'a str,
8111    ) -> Result<
8112        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
8113        Error<types::RcError>,
8114    > {
8115        let url = format!("{}/operations/cleanup", self.baseurl,);
8116        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8117        header_map.append(
8118            ::reqwest::header::HeaderName::from_static("api-version"),
8119            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8120        );
8121        #[allow(unused_mut)]
8122        let mut request = self
8123            .client
8124            .post(url)
8125            .header(
8126                ::reqwest::header::ACCEPT,
8127                ::reqwest::header::HeaderValue::from_static("application/json"),
8128            )
8129            .query(&progenitor_client::QueryParam::new("_async", &async_))
8130            .query(&progenitor_client::QueryParam::new("_group", &group))
8131            .query(&progenitor_client::QueryParam::new("fs", &fs))
8132            .headers(header_map)
8133            .build()?;
8134        let info = OperationInfo {
8135            operation_id: "operations_cleanup",
8136        };
8137        self.pre(&mut request, &info).await?;
8138        let result = self.exec(request, &info).await;
8139        self.post(&result, &info).await?;
8140        let response = result?;
8141        match response.status().as_u16() {
8142            200u16 => ResponseValue::from_response(response).await,
8143            400u16..=499u16 => Err(Error::ErrorResponse(
8144                ResponseValue::from_response(response).await?,
8145            )),
8146            500u16..=599u16 => Err(Error::ErrorResponse(
8147                ResponseValue::from_response(response).await?,
8148            )),
8149            _ => Err(Error::UnexpectedResponse(response)),
8150        }
8151    }
8152
8153    ///Copy a single file
8154    ///
8155    ///Copies one object from a source remote and path to a destination remote
8156    /// and path.
8157    ///
8158    ///Sends a `POST` request to `/operations/copyfile`
8159    ///
8160    ///Arguments:
8161    /// - `async_`: Run the command asynchronously. Returns a job id
8162    ///   immediately.
8163    /// - `group`: Assign the request to a custom stats group.
8164    /// - `dst_fs`: Destination remote name or path, such as `drive2:` or `/`
8165    ///   for local filesystem.
8166    /// - `dst_remote`: Target path within `dstFs` where the file should be
8167    ///   written.
8168    /// - `src_fs`: Source remote name or path, such as `drive:` or `/` for the
8169    ///   local filesystem.
8170    /// - `src_remote`: Path to the source object within `srcFs`, for example
8171    ///   `dir/file.txt`.
8172    pub async fn operations_copyfile<'a>(
8173        &'a self,
8174        async_: Option<bool>,
8175        group: Option<&'a str>,
8176        dst_fs: &'a str,
8177        dst_remote: &'a str,
8178        src_fs: &'a str,
8179        src_remote: &'a str,
8180    ) -> Result<
8181        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
8182        Error<types::RcError>,
8183    > {
8184        let url = format!("{}/operations/copyfile", self.baseurl,);
8185        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8186        header_map.append(
8187            ::reqwest::header::HeaderName::from_static("api-version"),
8188            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8189        );
8190        #[allow(unused_mut)]
8191        let mut request = self
8192            .client
8193            .post(url)
8194            .header(
8195                ::reqwest::header::ACCEPT,
8196                ::reqwest::header::HeaderValue::from_static("application/json"),
8197            )
8198            .query(&progenitor_client::QueryParam::new("_async", &async_))
8199            .query(&progenitor_client::QueryParam::new("_group", &group))
8200            .query(&progenitor_client::QueryParam::new("dstFs", &dst_fs))
8201            .query(&progenitor_client::QueryParam::new(
8202                "dstRemote",
8203                &dst_remote,
8204            ))
8205            .query(&progenitor_client::QueryParam::new("srcFs", &src_fs))
8206            .query(&progenitor_client::QueryParam::new(
8207                "srcRemote",
8208                &src_remote,
8209            ))
8210            .headers(header_map)
8211            .build()?;
8212        let info = OperationInfo {
8213            operation_id: "operations_copyfile",
8214        };
8215        self.pre(&mut request, &info).await?;
8216        let result = self.exec(request, &info).await;
8217        self.post(&result, &info).await?;
8218        let response = result?;
8219        match response.status().as_u16() {
8220            200u16 => ResponseValue::from_response(response).await,
8221            400u16..=499u16 => Err(Error::ErrorResponse(
8222                ResponseValue::from_response(response).await?,
8223            )),
8224            500u16..=599u16 => Err(Error::ErrorResponse(
8225                ResponseValue::from_response(response).await?,
8226            )),
8227            _ => Err(Error::UnexpectedResponse(response)),
8228        }
8229    }
8230
8231    ///Copy from URL
8232    ///
8233    ///Downloads a public URL and stores it at the requested remote path.
8234    ///
8235    ///Sends a `POST` request to `/operations/copyurl`
8236    ///
8237    ///Arguments:
8238    /// - `async_`: Run the command asynchronously. Returns a job id
8239    ///   immediately.
8240    /// - `group`: Assign the request to a custom stats group.
8241    /// - `auto_filename`: Set to true to derive the destination filename from
8242    ///   the URL.
8243    /// - `fs`: Remote name or path that will receive the downloaded file, e.g.
8244    ///   `drive:`.
8245    /// - `remote`: Destination path within `fs` where the fetched object will
8246    ///   be stored.
8247    /// - `url`: Source URL to fetch the object from.
8248    pub async fn operations_copyurl<'a>(
8249        &'a self,
8250        async_: Option<bool>,
8251        group: Option<&'a str>,
8252        auto_filename: Option<bool>,
8253        fs: &'a str,
8254        remote: &'a str,
8255        url: &'a str,
8256    ) -> Result<
8257        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
8258        Error<types::RcError>,
8259    > {
8260        let _url = format!("{}/operations/copyurl", self.baseurl,);
8261        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8262        header_map.append(
8263            ::reqwest::header::HeaderName::from_static("api-version"),
8264            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8265        );
8266        #[allow(unused_mut)]
8267        let mut request = self
8268            .client
8269            .post(_url)
8270            .header(
8271                ::reqwest::header::ACCEPT,
8272                ::reqwest::header::HeaderValue::from_static("application/json"),
8273            )
8274            .query(&progenitor_client::QueryParam::new("_async", &async_))
8275            .query(&progenitor_client::QueryParam::new("_group", &group))
8276            .query(&progenitor_client::QueryParam::new(
8277                "autoFilename",
8278                &auto_filename,
8279            ))
8280            .query(&progenitor_client::QueryParam::new("fs", &fs))
8281            .query(&progenitor_client::QueryParam::new("remote", &remote))
8282            .query(&progenitor_client::QueryParam::new("url", &url))
8283            .headers(header_map)
8284            .build()?;
8285        let info = OperationInfo {
8286            operation_id: "operations_copyurl",
8287        };
8288        self.pre(&mut request, &info).await?;
8289        let result = self.exec(request, &info).await;
8290        self.post(&result, &info).await?;
8291        let response = result?;
8292        match response.status().as_u16() {
8293            200u16 => ResponseValue::from_response(response).await,
8294            400u16..=499u16 => Err(Error::ErrorResponse(
8295                ResponseValue::from_response(response).await?,
8296            )),
8297            500u16..=599u16 => Err(Error::ErrorResponse(
8298                ResponseValue::from_response(response).await?,
8299            )),
8300            _ => Err(Error::UnexpectedResponse(response)),
8301        }
8302    }
8303
8304    ///Delete objects in path
8305    ///
8306    ///Deletes matching files and directories for the provided remote,
8307    /// honouring filters and config overrides.
8308    ///
8309    ///Sends a `POST` request to `/operations/delete`
8310    ///
8311    ///Arguments:
8312    /// - `async_`: Run the command asynchronously. Returns a job id
8313    ///   immediately.
8314    /// - `config`: JSON encoded config overrides applied for this call only.
8315    /// - `filter`: JSON encoded filter overrides applied for this call only.
8316    /// - `group`: Assign the request to a custom stats group.
8317    /// - `fs`: Remote name or path whose contents should be removed.
8318    pub async fn operations_delete<'a>(
8319        &'a self,
8320        async_: Option<bool>,
8321        config: Option<&'a str>,
8322        filter: Option<&'a str>,
8323        group: Option<&'a str>,
8324        fs: &'a str,
8325    ) -> Result<
8326        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
8327        Error<types::RcError>,
8328    > {
8329        let url = format!("{}/operations/delete", self.baseurl,);
8330        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8331        header_map.append(
8332            ::reqwest::header::HeaderName::from_static("api-version"),
8333            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8334        );
8335        #[allow(unused_mut)]
8336        let mut request = self
8337            .client
8338            .post(url)
8339            .header(
8340                ::reqwest::header::ACCEPT,
8341                ::reqwest::header::HeaderValue::from_static("application/json"),
8342            )
8343            .query(&progenitor_client::QueryParam::new("_async", &async_))
8344            .query(&progenitor_client::QueryParam::new("_config", &config))
8345            .query(&progenitor_client::QueryParam::new("_filter", &filter))
8346            .query(&progenitor_client::QueryParam::new("_group", &group))
8347            .query(&progenitor_client::QueryParam::new("fs", &fs))
8348            .headers(header_map)
8349            .build()?;
8350        let info = OperationInfo {
8351            operation_id: "operations_delete",
8352        };
8353        self.pre(&mut request, &info).await?;
8354        let result = self.exec(request, &info).await;
8355        self.post(&result, &info).await?;
8356        let response = result?;
8357        match response.status().as_u16() {
8358            200u16 => ResponseValue::from_response(response).await,
8359            400u16..=499u16 => Err(Error::ErrorResponse(
8360                ResponseValue::from_response(response).await?,
8361            )),
8362            500u16..=599u16 => Err(Error::ErrorResponse(
8363                ResponseValue::from_response(response).await?,
8364            )),
8365            _ => Err(Error::UnexpectedResponse(response)),
8366        }
8367    }
8368
8369    ///Delete single file
8370    ///
8371    ///Removes a specific object from the remote.
8372    ///
8373    ///Sends a `POST` request to `/operations/deletefile`
8374    ///
8375    ///Arguments:
8376    /// - `async_`: Run the command asynchronously. Returns a job id
8377    ///   immediately.
8378    /// - `group`: Assign the request to a custom stats group.
8379    /// - `fs`: Remote name or path that contains the file to delete.
8380    /// - `remote`: Exact path to the file within `fs` that should be deleted.
8381    pub async fn operations_deletefile<'a>(
8382        &'a self,
8383        async_: Option<bool>,
8384        group: Option<&'a str>,
8385        fs: &'a str,
8386        remote: &'a str,
8387    ) -> Result<
8388        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
8389        Error<types::RcError>,
8390    > {
8391        let url = format!("{}/operations/deletefile", self.baseurl,);
8392        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8393        header_map.append(
8394            ::reqwest::header::HeaderName::from_static("api-version"),
8395            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8396        );
8397        #[allow(unused_mut)]
8398        let mut request = self
8399            .client
8400            .post(url)
8401            .header(
8402                ::reqwest::header::ACCEPT,
8403                ::reqwest::header::HeaderValue::from_static("application/json"),
8404            )
8405            .query(&progenitor_client::QueryParam::new("_async", &async_))
8406            .query(&progenitor_client::QueryParam::new("_group", &group))
8407            .query(&progenitor_client::QueryParam::new("fs", &fs))
8408            .query(&progenitor_client::QueryParam::new("remote", &remote))
8409            .headers(header_map)
8410            .build()?;
8411        let info = OperationInfo {
8412            operation_id: "operations_deletefile",
8413        };
8414        self.pre(&mut request, &info).await?;
8415        let result = self.exec(request, &info).await;
8416        self.post(&result, &info).await?;
8417        let response = result?;
8418        match response.status().as_u16() {
8419            200u16 => ResponseValue::from_response(response).await,
8420            400u16..=499u16 => Err(Error::ErrorResponse(
8421                ResponseValue::from_response(response).await?,
8422            )),
8423            500u16..=599u16 => Err(Error::ErrorResponse(
8424                ResponseValue::from_response(response).await?,
8425            )),
8426            _ => Err(Error::UnexpectedResponse(response)),
8427        }
8428    }
8429
8430    ///Describe remote capabilities
8431    ///
8432    ///Returns backend features, hash support, metadata descriptions, and other
8433    /// info for the remote.
8434    ///
8435    ///Sends a `POST` request to `/operations/fsinfo`
8436    ///
8437    ///Arguments:
8438    /// - `async_`: Run the command asynchronously. Returns a job id
8439    ///   immediately.
8440    /// - `group`: Assign the request to a custom stats group.
8441    /// - `fs`: Remote name or path to inspect, e.g. `drive:`.
8442    pub async fn operations_fsinfo<'a>(
8443        &'a self,
8444        async_: Option<bool>,
8445        group: Option<&'a str>,
8446        fs: &'a str,
8447    ) -> Result<ResponseValue<types::OperationsFsinfoResponse>, Error<types::RcError>> {
8448        let url = format!("{}/operations/fsinfo", self.baseurl,);
8449        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8450        header_map.append(
8451            ::reqwest::header::HeaderName::from_static("api-version"),
8452            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8453        );
8454        #[allow(unused_mut)]
8455        let mut request = self
8456            .client
8457            .post(url)
8458            .header(
8459                ::reqwest::header::ACCEPT,
8460                ::reqwest::header::HeaderValue::from_static("application/json"),
8461            )
8462            .query(&progenitor_client::QueryParam::new("_async", &async_))
8463            .query(&progenitor_client::QueryParam::new("_group", &group))
8464            .query(&progenitor_client::QueryParam::new("fs", &fs))
8465            .headers(header_map)
8466            .build()?;
8467        let info = OperationInfo {
8468            operation_id: "operations_fsinfo",
8469        };
8470        self.pre(&mut request, &info).await?;
8471        let result = self.exec(request, &info).await;
8472        self.post(&result, &info).await?;
8473        let response = result?;
8474        match response.status().as_u16() {
8475            200u16 => ResponseValue::from_response(response).await,
8476            400u16..=499u16 => Err(Error::ErrorResponse(
8477                ResponseValue::from_response(response).await?,
8478            )),
8479            500u16..=599u16 => Err(Error::ErrorResponse(
8480                ResponseValue::from_response(response).await?,
8481            )),
8482            _ => Err(Error::UnexpectedResponse(response)),
8483        }
8484    }
8485
8486    ///Generate hash sums
8487    ///
8488    ///Produces a hash sum listing for files under the given path using the
8489    /// requested hash algorithm.
8490    ///
8491    ///Sends a `POST` request to `/operations/hashsum`
8492    ///
8493    ///Arguments:
8494    /// - `async_`: Run the command asynchronously. Returns a job id
8495    ///   immediately.
8496    /// - `group`: Assign the request to a custom stats group.
8497    /// - `base64`: Set to true to emit hash values in base64 rather than
8498    ///   hexadecimal.
8499    /// - `download`: Set to true to force reading the data instead of using
8500    ///   remote checksums.
8501    /// - `fs`: Remote name or path to hash, such as `drive:` or `/`.
8502    /// - `hash_type`: Hash algorithm to use, e.g. `md5`, `sha1`, or another
8503    ///   supported name.
8504    pub async fn operations_hashsum<'a>(
8505        &'a self,
8506        async_: Option<bool>,
8507        group: Option<&'a str>,
8508        base64: Option<bool>,
8509        download: Option<bool>,
8510        fs: &'a str,
8511        hash_type: &'a str,
8512    ) -> Result<ResponseValue<types::OperationsHashsumResponse>, Error<types::RcError>> {
8513        let url = format!("{}/operations/hashsum", self.baseurl,);
8514        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8515        header_map.append(
8516            ::reqwest::header::HeaderName::from_static("api-version"),
8517            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8518        );
8519        #[allow(unused_mut)]
8520        let mut request = self
8521            .client
8522            .post(url)
8523            .header(
8524                ::reqwest::header::ACCEPT,
8525                ::reqwest::header::HeaderValue::from_static("application/json"),
8526            )
8527            .query(&progenitor_client::QueryParam::new("_async", &async_))
8528            .query(&progenitor_client::QueryParam::new("_group", &group))
8529            .query(&progenitor_client::QueryParam::new("base64", &base64))
8530            .query(&progenitor_client::QueryParam::new("download", &download))
8531            .query(&progenitor_client::QueryParam::new("fs", &fs))
8532            .query(&progenitor_client::QueryParam::new("hashType", &hash_type))
8533            .headers(header_map)
8534            .build()?;
8535        let info = OperationInfo {
8536            operation_id: "operations_hashsum",
8537        };
8538        self.pre(&mut request, &info).await?;
8539        let result = self.exec(request, &info).await;
8540        self.post(&result, &info).await?;
8541        let response = result?;
8542        match response.status().as_u16() {
8543            200u16 => ResponseValue::from_response(response).await,
8544            400u16..=499u16 => Err(Error::ErrorResponse(
8545                ResponseValue::from_response(response).await?,
8546            )),
8547            500u16..=599u16 => Err(Error::ErrorResponse(
8548                ResponseValue::from_response(response).await?,
8549            )),
8550            _ => Err(Error::UnexpectedResponse(response)),
8551        }
8552    }
8553
8554    ///Move a single file
8555    ///
8556    ///Moves one object from a source remote and path to a destination remote
8557    /// and path.
8558    ///
8559    ///Sends a `POST` request to `/operations/movefile`
8560    ///
8561    ///Arguments:
8562    /// - `async_`: Run the command asynchronously. Returns a job id
8563    ///   immediately.
8564    /// - `group`: Assign the request to a custom stats group.
8565    /// - `dst_fs`: Destination remote name or path where the file will be
8566    ///   moved.
8567    /// - `dst_remote`: Destination path within `dstFs` for the moved object.
8568    /// - `src_fs`: Source remote name or path containing the file to move.
8569    /// - `src_remote`: Path to the source object within `srcFs`.
8570    pub async fn operations_movefile<'a>(
8571        &'a self,
8572        async_: Option<bool>,
8573        group: Option<&'a str>,
8574        dst_fs: &'a str,
8575        dst_remote: &'a str,
8576        src_fs: &'a str,
8577        src_remote: &'a str,
8578    ) -> Result<
8579        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
8580        Error<types::RcError>,
8581    > {
8582        let url = format!("{}/operations/movefile", self.baseurl,);
8583        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8584        header_map.append(
8585            ::reqwest::header::HeaderName::from_static("api-version"),
8586            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8587        );
8588        #[allow(unused_mut)]
8589        let mut request = self
8590            .client
8591            .post(url)
8592            .header(
8593                ::reqwest::header::ACCEPT,
8594                ::reqwest::header::HeaderValue::from_static("application/json"),
8595            )
8596            .query(&progenitor_client::QueryParam::new("_async", &async_))
8597            .query(&progenitor_client::QueryParam::new("_group", &group))
8598            .query(&progenitor_client::QueryParam::new("dstFs", &dst_fs))
8599            .query(&progenitor_client::QueryParam::new(
8600                "dstRemote",
8601                &dst_remote,
8602            ))
8603            .query(&progenitor_client::QueryParam::new("srcFs", &src_fs))
8604            .query(&progenitor_client::QueryParam::new(
8605                "srcRemote",
8606                &src_remote,
8607            ))
8608            .headers(header_map)
8609            .build()?;
8610        let info = OperationInfo {
8611            operation_id: "operations_movefile",
8612        };
8613        self.pre(&mut request, &info).await?;
8614        let result = self.exec(request, &info).await;
8615        self.post(&result, &info).await?;
8616        let response = result?;
8617        match response.status().as_u16() {
8618            200u16 => ResponseValue::from_response(response).await,
8619            400u16..=499u16 => Err(Error::ErrorResponse(
8620                ResponseValue::from_response(response).await?,
8621            )),
8622            500u16..=599u16 => Err(Error::ErrorResponse(
8623                ResponseValue::from_response(response).await?,
8624            )),
8625            _ => Err(Error::UnexpectedResponse(response)),
8626        }
8627    }
8628
8629    ///Create or remove public link
8630    ///
8631    ///Creates a share URL for an object or removes an existing link when
8632    /// `unlink=true`.
8633    ///
8634    ///Sends a `POST` request to `/operations/publiclink`
8635    ///
8636    ///Arguments:
8637    /// - `async_`: Run the command asynchronously. Returns a job id
8638    ///   immediately.
8639    /// - `group`: Assign the request to a custom stats group.
8640    /// - `expire`: Optional expiration time for the public link, formatted as
8641    ///   supported by the backend.
8642    /// - `fs`: Remote name or path hosting the object for which to manage a
8643    ///   public link.
8644    /// - `remote`: Path within `fs` to the object for which to create or remove
8645    ///   a public link.
8646    /// - `unlink`: Set to true to remove an existing public link instead of
8647    ///   creating one.
8648    pub async fn operations_publiclink<'a>(
8649        &'a self,
8650        async_: Option<bool>,
8651        group: Option<&'a str>,
8652        expire: Option<&'a str>,
8653        fs: &'a str,
8654        remote: &'a str,
8655        unlink: Option<bool>,
8656    ) -> Result<ResponseValue<types::OperationsPubliclinkResponse>, Error<types::RcError>> {
8657        let url = format!("{}/operations/publiclink", self.baseurl,);
8658        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8659        header_map.append(
8660            ::reqwest::header::HeaderName::from_static("api-version"),
8661            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8662        );
8663        #[allow(unused_mut)]
8664        let mut request = self
8665            .client
8666            .post(url)
8667            .header(
8668                ::reqwest::header::ACCEPT,
8669                ::reqwest::header::HeaderValue::from_static("application/json"),
8670            )
8671            .query(&progenitor_client::QueryParam::new("_async", &async_))
8672            .query(&progenitor_client::QueryParam::new("_group", &group))
8673            .query(&progenitor_client::QueryParam::new("expire", &expire))
8674            .query(&progenitor_client::QueryParam::new("fs", &fs))
8675            .query(&progenitor_client::QueryParam::new("remote", &remote))
8676            .query(&progenitor_client::QueryParam::new("unlink", &unlink))
8677            .headers(header_map)
8678            .build()?;
8679        let info = OperationInfo {
8680            operation_id: "operations_publiclink",
8681        };
8682        self.pre(&mut request, &info).await?;
8683        let result = self.exec(request, &info).await;
8684        self.post(&result, &info).await?;
8685        let response = result?;
8686        match response.status().as_u16() {
8687            200u16 => ResponseValue::from_response(response).await,
8688            400u16..=499u16 => Err(Error::ErrorResponse(
8689                ResponseValue::from_response(response).await?,
8690            )),
8691            500u16..=599u16 => Err(Error::ErrorResponse(
8692                ResponseValue::from_response(response).await?,
8693            )),
8694            _ => Err(Error::UnexpectedResponse(response)),
8695        }
8696    }
8697
8698    ///Remove empty directories
8699    ///
8700    ///Deletes empty subdirectories beneath the specified path, optionally
8701    /// leaving the root.
8702    ///
8703    ///Sends a `POST` request to `/operations/rmdirs`
8704    ///
8705    ///Arguments:
8706    /// - `async_`: Run the command asynchronously. Returns a job id
8707    ///   immediately.
8708    /// - `group`: Assign the request to a custom stats group.
8709    /// - `fs`: Remote name or path to scan for empty directories.
8710    /// - `leave_root`: Set to true to preserve the top-level directory even if
8711    ///   empty.
8712    /// - `remote`: Path within `fs` whose empty subdirectories should be
8713    ///   removed.
8714    pub async fn operations_rmdirs<'a>(
8715        &'a self,
8716        async_: Option<bool>,
8717        group: Option<&'a str>,
8718        fs: &'a str,
8719        leave_root: Option<bool>,
8720        remote: &'a str,
8721    ) -> Result<
8722        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
8723        Error<types::RcError>,
8724    > {
8725        let url = format!("{}/operations/rmdirs", self.baseurl,);
8726        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8727        header_map.append(
8728            ::reqwest::header::HeaderName::from_static("api-version"),
8729            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8730        );
8731        #[allow(unused_mut)]
8732        let mut request = self
8733            .client
8734            .post(url)
8735            .header(
8736                ::reqwest::header::ACCEPT,
8737                ::reqwest::header::HeaderValue::from_static("application/json"),
8738            )
8739            .query(&progenitor_client::QueryParam::new("_async", &async_))
8740            .query(&progenitor_client::QueryParam::new("_group", &group))
8741            .query(&progenitor_client::QueryParam::new("fs", &fs))
8742            .query(&progenitor_client::QueryParam::new(
8743                "leaveRoot",
8744                &leave_root,
8745            ))
8746            .query(&progenitor_client::QueryParam::new("remote", &remote))
8747            .headers(header_map)
8748            .build()?;
8749        let info = OperationInfo {
8750            operation_id: "operations_rmdirs",
8751        };
8752        self.pre(&mut request, &info).await?;
8753        let result = self.exec(request, &info).await;
8754        self.post(&result, &info).await?;
8755        let response = result?;
8756        match response.status().as_u16() {
8757            200u16 => ResponseValue::from_response(response).await,
8758            400u16..=499u16 => Err(Error::ErrorResponse(
8759                ResponseValue::from_response(response).await?,
8760            )),
8761            500u16..=599u16 => Err(Error::ErrorResponse(
8762                ResponseValue::from_response(response).await?,
8763            )),
8764            _ => Err(Error::UnexpectedResponse(response)),
8765        }
8766    }
8767
8768    ///Change storage tier
8769    ///
8770    ///Updates the storage class or tier for every object in the specified
8771    /// remote path.
8772    ///
8773    ///Sends a `POST` request to `/operations/settier`
8774    ///
8775    ///Arguments:
8776    /// - `async_`: Run the command asynchronously. Returns a job id
8777    ///   immediately.
8778    /// - `group`: Assign the request to a custom stats group.
8779    /// - `fs`: Remote name or path whose storage class tier should be changed.
8780    pub async fn operations_settier<'a>(
8781        &'a self,
8782        async_: Option<bool>,
8783        group: Option<&'a str>,
8784        fs: &'a str,
8785    ) -> Result<
8786        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
8787        Error<types::RcError>,
8788    > {
8789        let url = format!("{}/operations/settier", self.baseurl,);
8790        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8791        header_map.append(
8792            ::reqwest::header::HeaderName::from_static("api-version"),
8793            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8794        );
8795        #[allow(unused_mut)]
8796        let mut request = self
8797            .client
8798            .post(url)
8799            .header(
8800                ::reqwest::header::ACCEPT,
8801                ::reqwest::header::HeaderValue::from_static("application/json"),
8802            )
8803            .query(&progenitor_client::QueryParam::new("_async", &async_))
8804            .query(&progenitor_client::QueryParam::new("_group", &group))
8805            .query(&progenitor_client::QueryParam::new("fs", &fs))
8806            .headers(header_map)
8807            .build()?;
8808        let info = OperationInfo {
8809            operation_id: "operations_settier",
8810        };
8811        self.pre(&mut request, &info).await?;
8812        let result = self.exec(request, &info).await;
8813        self.post(&result, &info).await?;
8814        let response = result?;
8815        match response.status().as_u16() {
8816            200u16 => ResponseValue::from_response(response).await,
8817            400u16..=499u16 => Err(Error::ErrorResponse(
8818                ResponseValue::from_response(response).await?,
8819            )),
8820            500u16..=599u16 => Err(Error::ErrorResponse(
8821                ResponseValue::from_response(response).await?,
8822            )),
8823            _ => Err(Error::UnexpectedResponse(response)),
8824        }
8825    }
8826
8827    ///Change file storage tier
8828    ///
8829    ///Updates the storage class or tier for a single object.
8830    ///
8831    ///Sends a `POST` request to `/operations/settierfile`
8832    ///
8833    ///Arguments:
8834    /// - `async_`: Run the command asynchronously. Returns a job id
8835    ///   immediately.
8836    /// - `group`: Assign the request to a custom stats group.
8837    /// - `fs`: Remote name or path that contains the object whose tier should
8838    ///   change.
8839    /// - `remote`: Path within `fs` to the object whose storage class tier
8840    ///   should be updated.
8841    pub async fn operations_settierfile<'a>(
8842        &'a self,
8843        async_: Option<bool>,
8844        group: Option<&'a str>,
8845        fs: &'a str,
8846        remote: &'a str,
8847    ) -> Result<
8848        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
8849        Error<types::RcError>,
8850    > {
8851        let url = format!("{}/operations/settierfile", self.baseurl,);
8852        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8853        header_map.append(
8854            ::reqwest::header::HeaderName::from_static("api-version"),
8855            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8856        );
8857        #[allow(unused_mut)]
8858        let mut request = self
8859            .client
8860            .post(url)
8861            .header(
8862                ::reqwest::header::ACCEPT,
8863                ::reqwest::header::HeaderValue::from_static("application/json"),
8864            )
8865            .query(&progenitor_client::QueryParam::new("_async", &async_))
8866            .query(&progenitor_client::QueryParam::new("_group", &group))
8867            .query(&progenitor_client::QueryParam::new("fs", &fs))
8868            .query(&progenitor_client::QueryParam::new("remote", &remote))
8869            .headers(header_map)
8870            .build()?;
8871        let info = OperationInfo {
8872            operation_id: "operations_settierfile",
8873        };
8874        self.pre(&mut request, &info).await?;
8875        let result = self.exec(request, &info).await;
8876        self.post(&result, &info).await?;
8877        let response = result?;
8878        match response.status().as_u16() {
8879            200u16 => ResponseValue::from_response(response).await,
8880            400u16..=499u16 => Err(Error::ErrorResponse(
8881                ResponseValue::from_response(response).await?,
8882            )),
8883            500u16..=599u16 => Err(Error::ErrorResponse(
8884                ResponseValue::from_response(response).await?,
8885            )),
8886            _ => Err(Error::UnexpectedResponse(response)),
8887        }
8888    }
8889
8890    ///Count remote size
8891    ///
8892    ///Reports total size, file count, and number of objects without size
8893    /// metadata.
8894    ///
8895    ///Sends a `POST` request to `/operations/size`
8896    ///
8897    ///Arguments:
8898    /// - `async_`: Run the command asynchronously. Returns a job id
8899    ///   immediately.
8900    /// - `group`: Assign the request to a custom stats group.
8901    /// - `fs`: Remote name or path to measure aggregate size information for.
8902    pub async fn operations_size<'a>(
8903        &'a self,
8904        async_: Option<bool>,
8905        group: Option<&'a str>,
8906        fs: &'a str,
8907    ) -> Result<ResponseValue<types::OperationsSizeResponse>, Error<types::RcError>> {
8908        let url = format!("{}/operations/size", self.baseurl,);
8909        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8910        header_map.append(
8911            ::reqwest::header::HeaderName::from_static("api-version"),
8912            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8913        );
8914        #[allow(unused_mut)]
8915        let mut request = self
8916            .client
8917            .post(url)
8918            .header(
8919                ::reqwest::header::ACCEPT,
8920                ::reqwest::header::HeaderValue::from_static("application/json"),
8921            )
8922            .query(&progenitor_client::QueryParam::new("_async", &async_))
8923            .query(&progenitor_client::QueryParam::new("_group", &group))
8924            .query(&progenitor_client::QueryParam::new("fs", &fs))
8925            .headers(header_map)
8926            .build()?;
8927        let info = OperationInfo {
8928            operation_id: "operations_size",
8929        };
8930        self.pre(&mut request, &info).await?;
8931        let result = self.exec(request, &info).await;
8932        self.post(&result, &info).await?;
8933        let response = result?;
8934        match response.status().as_u16() {
8935            200u16 => ResponseValue::from_response(response).await,
8936            400u16..=499u16 => Err(Error::ErrorResponse(
8937                ResponseValue::from_response(response).await?,
8938            )),
8939            500u16..=599u16 => Err(Error::ErrorResponse(
8940                ResponseValue::from_response(response).await?,
8941            )),
8942            _ => Err(Error::UnexpectedResponse(response)),
8943        }
8944    }
8945
8946    ///Get or update bandwidth limits
8947    ///
8948    ///Reads the current bandwidth limit or applies a new schedule string, just
8949    /// like `rclone rc core/bwlimit`.
8950    ///
8951    ///Sends a `POST` request to `/core/bwlimit`
8952    ///
8953    ///Arguments:
8954    /// - `async_`: Run the command asynchronously. Returns a job id
8955    ///   immediately.
8956    /// - `group`: Assign the request to a custom stats group.
8957    /// - `rate`: Bandwidth limit to apply, for example `off`, `5M`, or a
8958    ///   schedule string.
8959    pub async fn core_bwlimit<'a>(
8960        &'a self,
8961        async_: Option<bool>,
8962        group: Option<&'a str>,
8963        rate: Option<&'a str>,
8964    ) -> Result<ResponseValue<types::CoreBwlimitResponse>, Error<types::RcError>> {
8965        let url = format!("{}/core/bwlimit", self.baseurl,);
8966        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
8967        header_map.append(
8968            ::reqwest::header::HeaderName::from_static("api-version"),
8969            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
8970        );
8971        #[allow(unused_mut)]
8972        let mut request = self
8973            .client
8974            .post(url)
8975            .header(
8976                ::reqwest::header::ACCEPT,
8977                ::reqwest::header::HeaderValue::from_static("application/json"),
8978            )
8979            .query(&progenitor_client::QueryParam::new("_async", &async_))
8980            .query(&progenitor_client::QueryParam::new("_group", &group))
8981            .query(&progenitor_client::QueryParam::new("rate", &rate))
8982            .headers(header_map)
8983            .build()?;
8984        let info = OperationInfo {
8985            operation_id: "core_bwlimit",
8986        };
8987        self.pre(&mut request, &info).await?;
8988        let result = self.exec(request, &info).await;
8989        self.post(&result, &info).await?;
8990        let response = result?;
8991        match response.status().as_u16() {
8992            200u16 => ResponseValue::from_response(response).await,
8993            400u16..=499u16 => Err(Error::ErrorResponse(
8994                ResponseValue::from_response(response).await?,
8995            )),
8996            500u16..=599u16 => Err(Error::ErrorResponse(
8997                ResponseValue::from_response(response).await?,
8998            )),
8999            _ => Err(Error::UnexpectedResponse(response)),
9000        }
9001    }
9002
9003    ///Run an rclone command
9004    ///
9005    ///Executes a standard rclone CLI command remotely and streams or returns
9006    /// its output.
9007    ///
9008    ///Sends a `POST` request to `/core/command`
9009    ///
9010    ///Arguments:
9011    /// - `async_`: Run the command asynchronously. Returns a job id
9012    ///   immediately.
9013    /// - `group`: Assign the request to a custom stats group.
9014    /// - `arg`: Optional positional arguments for the command. Repeat to supply
9015    ///   multiple values.
9016    /// - `command`: Name of the rclone command to execute, for example `ls` or
9017    ///   `lsf`.
9018    /// - `opt`: Optional command options encoded as a JSON string.
9019    /// - `return_type`: Controls how output is returned; accepts
9020    ///   `COMBINED_OUTPUT`, `STREAM`, `STREAM_ONLY_STDOUT`, or
9021    ///   `STREAM_ONLY_STDERR`.
9022    pub async fn core_command<'a>(
9023        &'a self,
9024        async_: Option<bool>,
9025        group: Option<&'a str>,
9026        arg: Option<&'a ::std::vec::Vec<::std::string::String>>,
9027        command: &'a str,
9028        opt: Option<&'a str>,
9029        return_type: Option<&'a str>,
9030    ) -> Result<ResponseValue<types::CoreCommandResponse>, Error<types::RcError>> {
9031        let url = format!("{}/core/command", self.baseurl,);
9032        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9033        header_map.append(
9034            ::reqwest::header::HeaderName::from_static("api-version"),
9035            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9036        );
9037        #[allow(unused_mut)]
9038        let mut request = self
9039            .client
9040            .post(url)
9041            .header(
9042                ::reqwest::header::ACCEPT,
9043                ::reqwest::header::HeaderValue::from_static("application/json"),
9044            )
9045            .query(&progenitor_client::QueryParam::new("_async", &async_))
9046            .query(&progenitor_client::QueryParam::new("_group", &group))
9047            .query(&progenitor_client::QueryParam::new("arg", &arg))
9048            .query(&progenitor_client::QueryParam::new("command", &command))
9049            .query(&progenitor_client::QueryParam::new("opt", &opt))
9050            .query(&progenitor_client::QueryParam::new(
9051                "returnType",
9052                &return_type,
9053            ))
9054            .headers(header_map)
9055            .build()?;
9056        let info = OperationInfo {
9057            operation_id: "core_command",
9058        };
9059        self.pre(&mut request, &info).await?;
9060        let result = self.exec(request, &info).await;
9061        self.post(&result, &info).await?;
9062        let response = result?;
9063        match response.status().as_u16() {
9064            200u16 => ResponseValue::from_response(response).await,
9065            400u16..=499u16 => Err(Error::ErrorResponse(
9066                ResponseValue::from_response(response).await?,
9067            )),
9068            500u16..=599u16 => Err(Error::ErrorResponse(
9069                ResponseValue::from_response(response).await?,
9070            )),
9071            _ => Err(Error::UnexpectedResponse(response)),
9072        }
9073    }
9074
9075    ///Report disk usage
9076    ///
9077    ///Returns disk usage statistics for the supplied local directory (defaults
9078    /// to the cache dir).
9079    ///
9080    ///Sends a `POST` request to `/core/du`
9081    ///
9082    ///Arguments:
9083    /// - `async_`: Run the command asynchronously. Returns a job id
9084    ///   immediately.
9085    /// - `group`: Assign the request to a custom stats group.
9086    /// - `dir`: Local directory path to report disk usage for. Defaults to the
9087    ///   rclone cache directory when omitted.
9088    pub async fn core_du<'a>(
9089        &'a self,
9090        async_: Option<bool>,
9091        group: Option<&'a str>,
9092        dir: Option<&'a str>,
9093    ) -> Result<ResponseValue<types::CoreDuResponse>, Error<types::RcError>> {
9094        let url = format!("{}/core/du", self.baseurl,);
9095        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9096        header_map.append(
9097            ::reqwest::header::HeaderName::from_static("api-version"),
9098            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9099        );
9100        #[allow(unused_mut)]
9101        let mut request = self
9102            .client
9103            .post(url)
9104            .header(
9105                ::reqwest::header::ACCEPT,
9106                ::reqwest::header::HeaderValue::from_static("application/json"),
9107            )
9108            .query(&progenitor_client::QueryParam::new("_async", &async_))
9109            .query(&progenitor_client::QueryParam::new("_group", &group))
9110            .query(&progenitor_client::QueryParam::new("dir", &dir))
9111            .headers(header_map)
9112            .build()?;
9113        let info = OperationInfo {
9114            operation_id: "core_du",
9115        };
9116        self.pre(&mut request, &info).await?;
9117        let result = self.exec(request, &info).await;
9118        self.post(&result, &info).await?;
9119        let response = result?;
9120        match response.status().as_u16() {
9121            200u16 => ResponseValue::from_response(response).await,
9122            400u16..=499u16 => Err(Error::ErrorResponse(
9123                ResponseValue::from_response(response).await?,
9124            )),
9125            500u16..=599u16 => Err(Error::ErrorResponse(
9126                ResponseValue::from_response(response).await?,
9127            )),
9128            _ => Err(Error::UnexpectedResponse(response)),
9129        }
9130    }
9131
9132    ///Force garbage collection
9133    ///
9134    ///Triggers Go's garbage collector to release unused memory.
9135    ///
9136    ///Sends a `POST` request to `/core/gc`
9137    ///
9138    ///Arguments:
9139    /// - `async_`: Run the command asynchronously. Returns a job id
9140    ///   immediately.
9141    /// - `group`: Assign the request to a custom stats group.
9142    pub async fn core_gc<'a>(
9143        &'a self,
9144        async_: Option<bool>,
9145        group: Option<&'a str>,
9146    ) -> Result<
9147        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
9148        Error<types::RcError>,
9149    > {
9150        let url = format!("{}/core/gc", self.baseurl,);
9151        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9152        header_map.append(
9153            ::reqwest::header::HeaderName::from_static("api-version"),
9154            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9155        );
9156        #[allow(unused_mut)]
9157        let mut request = self
9158            .client
9159            .post(url)
9160            .header(
9161                ::reqwest::header::ACCEPT,
9162                ::reqwest::header::HeaderValue::from_static("application/json"),
9163            )
9164            .query(&progenitor_client::QueryParam::new("_async", &async_))
9165            .query(&progenitor_client::QueryParam::new("_group", &group))
9166            .headers(header_map)
9167            .build()?;
9168        let info = OperationInfo {
9169            operation_id: "core_gc",
9170        };
9171        self.pre(&mut request, &info).await?;
9172        let result = self.exec(request, &info).await;
9173        self.post(&result, &info).await?;
9174        let response = result?;
9175        match response.status().as_u16() {
9176            200u16 => ResponseValue::from_response(response).await,
9177            400u16..=499u16 => Err(Error::ErrorResponse(
9178                ResponseValue::from_response(response).await?,
9179            )),
9180            500u16..=599u16 => Err(Error::ErrorResponse(
9181                ResponseValue::from_response(response).await?,
9182            )),
9183            _ => Err(Error::UnexpectedResponse(response)),
9184        }
9185    }
9186
9187    ///List stats groups
9188    ///
9189    ///Lists stats groups currently tracked by rclone.
9190    ///
9191    ///Sends a `POST` request to `/core/group-list`
9192    ///
9193    ///Arguments:
9194    /// - `async_`: Run the command asynchronously. Returns a job id
9195    ///   immediately.
9196    /// - `group`: Assign the request to a custom stats group.
9197    pub async fn core_group_list<'a>(
9198        &'a self,
9199        async_: Option<bool>,
9200        group: Option<&'a str>,
9201    ) -> Result<ResponseValue<types::CoreGroupListResponse>, Error<types::RcError>> {
9202        let url = format!("{}/core/group-list", self.baseurl,);
9203        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9204        header_map.append(
9205            ::reqwest::header::HeaderName::from_static("api-version"),
9206            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9207        );
9208        #[allow(unused_mut)]
9209        let mut request = self
9210            .client
9211            .post(url)
9212            .header(
9213                ::reqwest::header::ACCEPT,
9214                ::reqwest::header::HeaderValue::from_static("application/json"),
9215            )
9216            .query(&progenitor_client::QueryParam::new("_async", &async_))
9217            .query(&progenitor_client::QueryParam::new("_group", &group))
9218            .headers(header_map)
9219            .build()?;
9220        let info = OperationInfo {
9221            operation_id: "core_group_list",
9222        };
9223        self.pre(&mut request, &info).await?;
9224        let result = self.exec(request, &info).await;
9225        self.post(&result, &info).await?;
9226        let response = result?;
9227        match response.status().as_u16() {
9228            200u16 => ResponseValue::from_response(response).await,
9229            400u16..=499u16 => Err(Error::ErrorResponse(
9230                ResponseValue::from_response(response).await?,
9231            )),
9232            500u16..=599u16 => Err(Error::ErrorResponse(
9233                ResponseValue::from_response(response).await?,
9234            )),
9235            _ => Err(Error::UnexpectedResponse(response)),
9236        }
9237    }
9238
9239    ///Fetch runtime memory stats
9240    ///
9241    ///Returns Go runtime memory statistics similar to `runtime.ReadMemStats`.
9242    ///
9243    ///Sends a `POST` request to `/core/memstats`
9244    ///
9245    ///Arguments:
9246    /// - `async_`: Run the command asynchronously. Returns a job id
9247    ///   immediately.
9248    /// - `group`: Assign the request to a custom stats group.
9249    pub async fn core_memstats<'a>(
9250        &'a self,
9251        async_: Option<bool>,
9252        group: Option<&'a str>,
9253    ) -> Result<
9254        ResponseValue<::std::collections::HashMap<::std::string::String, f64>>,
9255        Error<types::RcError>,
9256    > {
9257        let url = format!("{}/core/memstats", self.baseurl,);
9258        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9259        header_map.append(
9260            ::reqwest::header::HeaderName::from_static("api-version"),
9261            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9262        );
9263        #[allow(unused_mut)]
9264        let mut request = self
9265            .client
9266            .post(url)
9267            .header(
9268                ::reqwest::header::ACCEPT,
9269                ::reqwest::header::HeaderValue::from_static("application/json"),
9270            )
9271            .query(&progenitor_client::QueryParam::new("_async", &async_))
9272            .query(&progenitor_client::QueryParam::new("_group", &group))
9273            .headers(header_map)
9274            .build()?;
9275        let info = OperationInfo {
9276            operation_id: "core_memstats",
9277        };
9278        self.pre(&mut request, &info).await?;
9279        let result = self.exec(request, &info).await;
9280        self.post(&result, &info).await?;
9281        let response = result?;
9282        match response.status().as_u16() {
9283            200u16 => ResponseValue::from_response(response).await,
9284            400u16..=499u16 => Err(Error::ErrorResponse(
9285                ResponseValue::from_response(response).await?,
9286            )),
9287            500u16..=599u16 => Err(Error::ErrorResponse(
9288                ResponseValue::from_response(response).await?,
9289            )),
9290            _ => Err(Error::UnexpectedResponse(response)),
9291        }
9292    }
9293
9294    ///Obscure a clear string
9295    ///
9296    ///Obscures a plain-text secret for inclusion in `rclone.conf`.
9297    ///
9298    ///Sends a `POST` request to `/core/obscure`
9299    ///
9300    ///Arguments:
9301    /// - `async_`: Run the command asynchronously. Returns a job id
9302    ///   immediately.
9303    /// - `group`: Assign the request to a custom stats group.
9304    /// - `clear`: Plain-text string to obscure for storage in the config file.
9305    pub async fn core_obscure<'a>(
9306        &'a self,
9307        async_: Option<bool>,
9308        group: Option<&'a str>,
9309        clear: &'a str,
9310    ) -> Result<ResponseValue<types::CoreObscureResponse>, Error<types::RcError>> {
9311        let url = format!("{}/core/obscure", self.baseurl,);
9312        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9313        header_map.append(
9314            ::reqwest::header::HeaderName::from_static("api-version"),
9315            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9316        );
9317        #[allow(unused_mut)]
9318        let mut request = self
9319            .client
9320            .post(url)
9321            .header(
9322                ::reqwest::header::ACCEPT,
9323                ::reqwest::header::HeaderValue::from_static("application/json"),
9324            )
9325            .query(&progenitor_client::QueryParam::new("_async", &async_))
9326            .query(&progenitor_client::QueryParam::new("_group", &group))
9327            .query(&progenitor_client::QueryParam::new("clear", &clear))
9328            .headers(header_map)
9329            .build()?;
9330        let info = OperationInfo {
9331            operation_id: "core_obscure",
9332        };
9333        self.pre(&mut request, &info).await?;
9334        let result = self.exec(request, &info).await;
9335        self.post(&result, &info).await?;
9336        let response = result?;
9337        match response.status().as_u16() {
9338            200u16 => ResponseValue::from_response(response).await,
9339            400u16..=499u16 => Err(Error::ErrorResponse(
9340                ResponseValue::from_response(response).await?,
9341            )),
9342            500u16..=599u16 => Err(Error::ErrorResponse(
9343                ResponseValue::from_response(response).await?,
9344            )),
9345            _ => Err(Error::UnexpectedResponse(response)),
9346        }
9347    }
9348
9349    ///Return rclone PID
9350    ///
9351    ///Returns the process ID of the running rclone instance.
9352    ///
9353    ///Sends a `POST` request to `/core/pid`
9354    ///
9355    ///Arguments:
9356    /// - `async_`: Run the command asynchronously. Returns a job id
9357    ///   immediately.
9358    /// - `group`: Assign the request to a custom stats group.
9359    pub async fn core_pid<'a>(
9360        &'a self,
9361        async_: Option<bool>,
9362        group: Option<&'a str>,
9363    ) -> Result<ResponseValue<types::CorePidResponse>, Error<types::RcError>> {
9364        let url = format!("{}/core/pid", self.baseurl,);
9365        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9366        header_map.append(
9367            ::reqwest::header::HeaderName::from_static("api-version"),
9368            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9369        );
9370        #[allow(unused_mut)]
9371        let mut request = self
9372            .client
9373            .post(url)
9374            .header(
9375                ::reqwest::header::ACCEPT,
9376                ::reqwest::header::HeaderValue::from_static("application/json"),
9377            )
9378            .query(&progenitor_client::QueryParam::new("_async", &async_))
9379            .query(&progenitor_client::QueryParam::new("_group", &group))
9380            .headers(header_map)
9381            .build()?;
9382        let info = OperationInfo {
9383            operation_id: "core_pid",
9384        };
9385        self.pre(&mut request, &info).await?;
9386        let result = self.exec(request, &info).await;
9387        self.post(&result, &info).await?;
9388        let response = result?;
9389        match response.status().as_u16() {
9390            200u16 => ResponseValue::from_response(response).await,
9391            400u16..=499u16 => Err(Error::ErrorResponse(
9392                ResponseValue::from_response(response).await?,
9393            )),
9394            500u16..=599u16 => Err(Error::ErrorResponse(
9395                ResponseValue::from_response(response).await?,
9396            )),
9397            _ => Err(Error::UnexpectedResponse(response)),
9398        }
9399    }
9400
9401    ///Terminate rclone
9402    ///
9403    ///Stops the rclone process, optionally supplying an exit code.
9404    ///
9405    ///Sends a `POST` request to `/core/quit`
9406    ///
9407    ///Arguments:
9408    /// - `async_`: Run the command asynchronously. Returns a job id
9409    ///   immediately.
9410    /// - `group`: Assign the request to a custom stats group.
9411    /// - `exit_code`: Optional exit code to use when terminating the rclone
9412    ///   process.
9413    pub async fn core_quit<'a>(
9414        &'a self,
9415        async_: Option<bool>,
9416        group: Option<&'a str>,
9417        exit_code: Option<i64>,
9418    ) -> Result<
9419        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
9420        Error<types::RcError>,
9421    > {
9422        let url = format!("{}/core/quit", self.baseurl,);
9423        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9424        header_map.append(
9425            ::reqwest::header::HeaderName::from_static("api-version"),
9426            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9427        );
9428        #[allow(unused_mut)]
9429        let mut request = self
9430            .client
9431            .post(url)
9432            .header(
9433                ::reqwest::header::ACCEPT,
9434                ::reqwest::header::HeaderValue::from_static("application/json"),
9435            )
9436            .query(&progenitor_client::QueryParam::new("_async", &async_))
9437            .query(&progenitor_client::QueryParam::new("_group", &group))
9438            .query(&progenitor_client::QueryParam::new("exitCode", &exit_code))
9439            .headers(header_map)
9440            .build()?;
9441        let info = OperationInfo {
9442            operation_id: "core_quit",
9443        };
9444        self.pre(&mut request, &info).await?;
9445        let result = self.exec(request, &info).await;
9446        self.post(&result, &info).await?;
9447        let response = result?;
9448        match response.status().as_u16() {
9449            200u16 => ResponseValue::from_response(response).await,
9450            400u16..=499u16 => Err(Error::ErrorResponse(
9451                ResponseValue::from_response(response).await?,
9452            )),
9453            500u16..=599u16 => Err(Error::ErrorResponse(
9454                ResponseValue::from_response(response).await?,
9455            )),
9456            _ => Err(Error::UnexpectedResponse(response)),
9457        }
9458    }
9459
9460    ///Delete stats group
9461    ///
9462    ///Deletes the counters associated with a specific stats group.
9463    ///
9464    ///Sends a `POST` request to `/core/stats-delete`
9465    ///
9466    ///Arguments:
9467    /// - `async_`: Run the command asynchronously. Returns a job id
9468    ///   immediately.
9469    /// - `group`: Assign the request to a custom stats group.
9470    /// - `group`: Stats group identifier to remove.
9471    pub async fn core_stats_delete<'a>(
9472        &'a self,
9473        async_: Option<bool>,
9474        _group: Option<&'a str>,
9475        group: &'a str
9476    ) -> Result<
9477        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
9478        Error<types::RcError>,
9479    > {
9480        let url = format!("{}/core/stats-delete", self.baseurl,);
9481        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9482        header_map.append(
9483            ::reqwest::header::HeaderName::from_static("api-version"),
9484            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9485        );
9486        #[allow(unused_mut)]
9487        let mut request = self
9488            .client
9489            .post(url)
9490            .header(
9491                ::reqwest::header::ACCEPT,
9492                ::reqwest::header::HeaderValue::from_static("application/json"),
9493            )
9494            .query(&progenitor_client::QueryParam::new("_async", &async_))
9495            .query(&progenitor_client::QueryParam::new("_group", &group))
9496            .query(&progenitor_client::QueryParam::new("group", &group))
9497            .headers(header_map)
9498            .build()?;
9499        let info = OperationInfo {
9500            operation_id: "core_stats_delete",
9501        };
9502        self.pre(&mut request, &info).await?;
9503        let result = self.exec(request, &info).await;
9504        self.post(&result, &info).await?;
9505        let response = result?;
9506        match response.status().as_u16() {
9507            200u16 => ResponseValue::from_response(response).await,
9508            400u16..=499u16 => Err(Error::ErrorResponse(
9509                ResponseValue::from_response(response).await?,
9510            )),
9511            500u16..=599u16 => Err(Error::ErrorResponse(
9512                ResponseValue::from_response(response).await?,
9513            )),
9514            _ => Err(Error::UnexpectedResponse(response)),
9515        }
9516    }
9517
9518    ///Reset stats counters
9519    ///
9520    ///Clears counters, errors, and finished transfers for the provided stats
9521    /// group or all groups.
9522    ///
9523    ///Sends a `POST` request to `/core/stats-reset`
9524    ///
9525    ///Arguments:
9526    /// - `async_`: Run the command asynchronously. Returns a job id
9527    ///   immediately.
9528    /// - `group`: Assign the request to a custom stats group.
9529    /// - `group`: Stats group identifier whose counters should be reset. Leave
9530    ///   unset to reset all groups.
9531    pub async fn core_stats_reset<'a>(
9532        &'a self,
9533        async_: Option<bool>,
9534        _group: Option<&'a str>,
9535        group: Option<&'a str>
9536    ) -> Result<
9537        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
9538        Error<types::RcError>,
9539    > {
9540        let url = format!("{}/core/stats-reset", self.baseurl,);
9541        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9542        header_map.append(
9543            ::reqwest::header::HeaderName::from_static("api-version"),
9544            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9545        );
9546        #[allow(unused_mut)]
9547        let mut request = self
9548            .client
9549            .post(url)
9550            .header(
9551                ::reqwest::header::ACCEPT,
9552                ::reqwest::header::HeaderValue::from_static("application/json"),
9553            )
9554            .query(&progenitor_client::QueryParam::new("_async", &async_))
9555            .query(&progenitor_client::QueryParam::new("_group", &group))
9556            .query(&progenitor_client::QueryParam::new("group", &group))
9557            .headers(header_map)
9558            .build()?;
9559        let info = OperationInfo {
9560            operation_id: "core_stats_reset",
9561        };
9562        self.pre(&mut request, &info).await?;
9563        let result = self.exec(request, &info).await;
9564        self.post(&result, &info).await?;
9565        let response = result?;
9566        match response.status().as_u16() {
9567            200u16 => ResponseValue::from_response(response).await,
9568            400u16..=499u16 => Err(Error::ErrorResponse(
9569                ResponseValue::from_response(response).await?,
9570            )),
9571            500u16..=599u16 => Err(Error::ErrorResponse(
9572                ResponseValue::from_response(response).await?,
9573            )),
9574            _ => Err(Error::UnexpectedResponse(response)),
9575        }
9576    }
9577
9578    ///List completed transfers
9579    ///
9580    ///Returns up to 100 recently completed transfers for the requested stats
9581    /// group.
9582    ///
9583    ///Sends a `POST` request to `/core/transferred`
9584    ///
9585    ///Arguments:
9586    /// - `async_`: Run the command asynchronously. Returns a job id
9587    ///   immediately.
9588    /// - `group`: Assign the request to a custom stats group.
9589    /// - `group`: Stats group identifier to filter the completed transfer list.
9590    ///   Leave unset for all groups.
9591    pub async fn core_transferred<'a>(
9592        &'a self,
9593        async_: Option<bool>,
9594        _group: Option<&'a str>,
9595        group: Option<&'a str>
9596    ) -> Result<ResponseValue<types::CoreTransferredResponse>, Error<types::RcError>> {
9597        let url = format!("{}/core/transferred", self.baseurl,);
9598        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9599        header_map.append(
9600            ::reqwest::header::HeaderName::from_static("api-version"),
9601            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9602        );
9603        #[allow(unused_mut)]
9604        let mut request = self
9605            .client
9606            .post(url)
9607            .header(
9608                ::reqwest::header::ACCEPT,
9609                ::reqwest::header::HeaderValue::from_static("application/json"),
9610            )
9611            .query(&progenitor_client::QueryParam::new("_async", &async_))
9612            .query(&progenitor_client::QueryParam::new("_group", &group))
9613            .query(&progenitor_client::QueryParam::new("group", &group))
9614            .headers(header_map)
9615            .build()?;
9616        let info = OperationInfo {
9617            operation_id: "core_transferred",
9618        };
9619        self.pre(&mut request, &info).await?;
9620        let result = self.exec(request, &info).await;
9621        self.post(&result, &info).await?;
9622        let response = result?;
9623        match response.status().as_u16() {
9624            200u16 => ResponseValue::from_response(response).await,
9625            400u16..=499u16 => Err(Error::ErrorResponse(
9626                ResponseValue::from_response(response).await?,
9627            )),
9628            500u16..=599u16 => Err(Error::ErrorResponse(
9629                ResponseValue::from_response(response).await?,
9630            )),
9631            _ => Err(Error::UnexpectedResponse(response)),
9632        }
9633    }
9634
9635    ///Sends a `POST` request to `/debug/set-block-profile-rate`
9636    ///
9637    ///Arguments:
9638    /// - `async_`: Run the command asynchronously. Returns a job id
9639    ///   immediately.
9640    /// - `group`: Assign the request to a custom stats group.
9641    /// - `rate`: Sampling interval in nanoseconds for blocking profile
9642    ///   collection; use 1 to capture all events.
9643    pub async fn debug_set_block_profile_rate<'a>(
9644        &'a self,
9645        async_: Option<bool>,
9646        group: Option<&'a str>,
9647        rate: i64,
9648    ) -> Result<
9649        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
9650        Error<types::RcError>,
9651    > {
9652        let url = format!("{}/debug/set-block-profile-rate", self.baseurl,);
9653        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9654        header_map.append(
9655            ::reqwest::header::HeaderName::from_static("api-version"),
9656            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9657        );
9658        #[allow(unused_mut)]
9659        let mut request = self
9660            .client
9661            .post(url)
9662            .header(
9663                ::reqwest::header::ACCEPT,
9664                ::reqwest::header::HeaderValue::from_static("application/json"),
9665            )
9666            .query(&progenitor_client::QueryParam::new("_async", &async_))
9667            .query(&progenitor_client::QueryParam::new("_group", &group))
9668            .query(&progenitor_client::QueryParam::new("rate", &rate))
9669            .headers(header_map)
9670            .build()?;
9671        let info = OperationInfo {
9672            operation_id: "debug_set_block_profile_rate",
9673        };
9674        self.pre(&mut request, &info).await?;
9675        let result = self.exec(request, &info).await;
9676        self.post(&result, &info).await?;
9677        let response = result?;
9678        match response.status().as_u16() {
9679            200u16 => ResponseValue::from_response(response).await,
9680            400u16..=499u16 => Err(Error::ErrorResponse(
9681                ResponseValue::from_response(response).await?,
9682            )),
9683            500u16..=599u16 => Err(Error::ErrorResponse(
9684                ResponseValue::from_response(response).await?,
9685            )),
9686            _ => Err(Error::UnexpectedResponse(response)),
9687        }
9688    }
9689
9690    ///Sends a `POST` request to `/debug/set-gc-percent`
9691    ///
9692    ///Arguments:
9693    /// - `async_`: Run the command asynchronously. Returns a job id
9694    ///   immediately.
9695    /// - `group`: Assign the request to a custom stats group.
9696    /// - `gc_percent`: Target percentage of newly allocated data to trigger
9697    ///   garbage collection.
9698    pub async fn debug_set_gc_percent<'a>(
9699        &'a self,
9700        async_: Option<bool>,
9701        group: Option<&'a str>,
9702        gc_percent: i64,
9703    ) -> Result<ResponseValue<types::DebugSetGcPercentResponse>, Error<types::RcError>> {
9704        let url = format!("{}/debug/set-gc-percent", self.baseurl,);
9705        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9706        header_map.append(
9707            ::reqwest::header::HeaderName::from_static("api-version"),
9708            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9709        );
9710        #[allow(unused_mut)]
9711        let mut request = self
9712            .client
9713            .post(url)
9714            .header(
9715                ::reqwest::header::ACCEPT,
9716                ::reqwest::header::HeaderValue::from_static("application/json"),
9717            )
9718            .query(&progenitor_client::QueryParam::new("_async", &async_))
9719            .query(&progenitor_client::QueryParam::new("_group", &group))
9720            .query(&progenitor_client::QueryParam::new(
9721                "gc-percent",
9722                &gc_percent,
9723            ))
9724            .headers(header_map)
9725            .build()?;
9726        let info = OperationInfo {
9727            operation_id: "debug_set_gc_percent",
9728        };
9729        self.pre(&mut request, &info).await?;
9730        let result = self.exec(request, &info).await;
9731        self.post(&result, &info).await?;
9732        let response = result?;
9733        match response.status().as_u16() {
9734            200u16 => ResponseValue::from_response(response).await,
9735            400u16..=499u16 => Err(Error::ErrorResponse(
9736                ResponseValue::from_response(response).await?,
9737            )),
9738            500u16..=599u16 => Err(Error::ErrorResponse(
9739                ResponseValue::from_response(response).await?,
9740            )),
9741            _ => Err(Error::UnexpectedResponse(response)),
9742        }
9743    }
9744
9745    ///Sends a `POST` request to `/debug/set-mutex-profile-fraction`
9746    ///
9747    ///Arguments:
9748    /// - `async_`: Run the command asynchronously. Returns a job id
9749    ///   immediately.
9750    /// - `group`: Assign the request to a custom stats group.
9751    /// - `rate`: Sampling fraction for mutex contention profiling; set to 0 to
9752    ///   disable.
9753    pub async fn debug_set_mutex_profile_fraction<'a>(
9754        &'a self,
9755        async_: Option<bool>,
9756        group: Option<&'a str>,
9757        rate: i64,
9758    ) -> Result<ResponseValue<types::DebugSetMutexProfileFractionResponse>, Error<types::RcError>>
9759    {
9760        let url = format!("{}/debug/set-mutex-profile-fraction", self.baseurl,);
9761        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9762        header_map.append(
9763            ::reqwest::header::HeaderName::from_static("api-version"),
9764            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9765        );
9766        #[allow(unused_mut)]
9767        let mut request = self
9768            .client
9769            .post(url)
9770            .header(
9771                ::reqwest::header::ACCEPT,
9772                ::reqwest::header::HeaderValue::from_static("application/json"),
9773            )
9774            .query(&progenitor_client::QueryParam::new("_async", &async_))
9775            .query(&progenitor_client::QueryParam::new("_group", &group))
9776            .query(&progenitor_client::QueryParam::new("rate", &rate))
9777            .headers(header_map)
9778            .build()?;
9779        let info = OperationInfo {
9780            operation_id: "debug_set_mutex_profile_fraction",
9781        };
9782        self.pre(&mut request, &info).await?;
9783        let result = self.exec(request, &info).await;
9784        self.post(&result, &info).await?;
9785        let response = result?;
9786        match response.status().as_u16() {
9787            200u16 => ResponseValue::from_response(response).await,
9788            400u16..=499u16 => Err(Error::ErrorResponse(
9789                ResponseValue::from_response(response).await?,
9790            )),
9791            500u16..=599u16 => Err(Error::ErrorResponse(
9792                ResponseValue::from_response(response).await?,
9793            )),
9794            _ => Err(Error::UnexpectedResponse(response)),
9795        }
9796    }
9797
9798    ///Sends a `POST` request to `/debug/set-soft-memory-limit`
9799    ///
9800    ///Arguments:
9801    /// - `async_`: Run the command asynchronously. Returns a job id
9802    ///   immediately.
9803    /// - `group`: Assign the request to a custom stats group.
9804    /// - `mem_limit`: Soft memory limit for the Go runtime in bytes.
9805    pub async fn debug_set_soft_memory_limit<'a>(
9806        &'a self,
9807        async_: Option<bool>,
9808        group: Option<&'a str>,
9809        mem_limit: i64,
9810    ) -> Result<ResponseValue<types::DebugSetSoftMemoryLimitResponse>, Error<types::RcError>> {
9811        let url = format!("{}/debug/set-soft-memory-limit", self.baseurl,);
9812        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9813        header_map.append(
9814            ::reqwest::header::HeaderName::from_static("api-version"),
9815            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9816        );
9817        #[allow(unused_mut)]
9818        let mut request = self
9819            .client
9820            .post(url)
9821            .header(
9822                ::reqwest::header::ACCEPT,
9823                ::reqwest::header::HeaderValue::from_static("application/json"),
9824            )
9825            .query(&progenitor_client::QueryParam::new("_async", &async_))
9826            .query(&progenitor_client::QueryParam::new("_group", &group))
9827            .query(&progenitor_client::QueryParam::new("mem-limit", &mem_limit))
9828            .headers(header_map)
9829            .build()?;
9830        let info = OperationInfo {
9831            operation_id: "debug_set_soft_memory_limit",
9832        };
9833        self.pre(&mut request, &info).await?;
9834        let result = self.exec(request, &info).await;
9835        self.post(&result, &info).await?;
9836        let response = result?;
9837        match response.status().as_u16() {
9838            200u16 => ResponseValue::from_response(response).await,
9839            400u16..=499u16 => Err(Error::ErrorResponse(
9840                ResponseValue::from_response(response).await?,
9841            )),
9842            500u16..=599u16 => Err(Error::ErrorResponse(
9843                ResponseValue::from_response(response).await?,
9844            )),
9845            _ => Err(Error::UnexpectedResponse(response)),
9846        }
9847    }
9848
9849    ///Sends a `POST` request to `/fscache/clear`
9850    ///
9851    ///Arguments:
9852    /// - `async_`: Run the command asynchronously. Returns a job id
9853    ///   immediately.
9854    /// - `group`: Assign the request to a custom stats group.
9855    pub async fn fscache_clear<'a>(
9856        &'a self,
9857        async_: Option<bool>,
9858        group: Option<&'a str>,
9859    ) -> Result<
9860        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
9861        Error<types::RcError>,
9862    > {
9863        let url = format!("{}/fscache/clear", 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            .headers(header_map)
9880            .build()?;
9881        let info = OperationInfo {
9882            operation_id: "fscache_clear",
9883        };
9884        self.pre(&mut request, &info).await?;
9885        let result = self.exec(request, &info).await;
9886        self.post(&result, &info).await?;
9887        let response = result?;
9888        match response.status().as_u16() {
9889            200u16 => ResponseValue::from_response(response).await,
9890            400u16..=499u16 => Err(Error::ErrorResponse(
9891                ResponseValue::from_response(response).await?,
9892            )),
9893            500u16..=599u16 => Err(Error::ErrorResponse(
9894                ResponseValue::from_response(response).await?,
9895            )),
9896            _ => Err(Error::UnexpectedResponse(response)),
9897        }
9898    }
9899
9900    ///Sends a `POST` request to `/fscache/entries`
9901    ///
9902    ///Arguments:
9903    /// - `async_`: Run the command asynchronously. Returns a job id
9904    ///   immediately.
9905    /// - `group`: Assign the request to a custom stats group.
9906    pub async fn fscache_entries<'a>(
9907        &'a self,
9908        async_: Option<bool>,
9909        group: Option<&'a str>,
9910    ) -> Result<ResponseValue<types::FscacheEntriesResponse>, Error<types::RcError>> {
9911        let url = format!("{}/fscache/entries", self.baseurl,);
9912        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9913        header_map.append(
9914            ::reqwest::header::HeaderName::from_static("api-version"),
9915            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9916        );
9917        #[allow(unused_mut)]
9918        let mut request = self
9919            .client
9920            .post(url)
9921            .header(
9922                ::reqwest::header::ACCEPT,
9923                ::reqwest::header::HeaderValue::from_static("application/json"),
9924            )
9925            .query(&progenitor_client::QueryParam::new("_async", &async_))
9926            .query(&progenitor_client::QueryParam::new("_group", &group))
9927            .headers(header_map)
9928            .build()?;
9929        let info = OperationInfo {
9930            operation_id: "fscache_entries",
9931        };
9932        self.pre(&mut request, &info).await?;
9933        let result = self.exec(request, &info).await;
9934        self.post(&result, &info).await?;
9935        let response = result?;
9936        match response.status().as_u16() {
9937            200u16 => ResponseValue::from_response(response).await,
9938            400u16..=499u16 => Err(Error::ErrorResponse(
9939                ResponseValue::from_response(response).await?,
9940            )),
9941            500u16..=599u16 => Err(Error::ErrorResponse(
9942                ResponseValue::from_response(response).await?,
9943            )),
9944            _ => Err(Error::UnexpectedResponse(response)),
9945        }
9946    }
9947
9948    ///Sends a `POST` request to `/mount/listmounts`
9949    ///
9950    ///Arguments:
9951    /// - `async_`: Run the command asynchronously. Returns a job id
9952    ///   immediately.
9953    /// - `group`: Assign the request to a custom stats group.
9954    pub async fn mount_listmounts<'a>(
9955        &'a self,
9956        async_: Option<bool>,
9957        group: Option<&'a str>,
9958    ) -> Result<ResponseValue<types::MountListmountsResponse>, Error<types::RcError>> {
9959        let url = format!("{}/mount/listmounts", self.baseurl,);
9960        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
9961        header_map.append(
9962            ::reqwest::header::HeaderName::from_static("api-version"),
9963            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
9964        );
9965        #[allow(unused_mut)]
9966        let mut request = self
9967            .client
9968            .post(url)
9969            .header(
9970                ::reqwest::header::ACCEPT,
9971                ::reqwest::header::HeaderValue::from_static("application/json"),
9972            )
9973            .query(&progenitor_client::QueryParam::new("_async", &async_))
9974            .query(&progenitor_client::QueryParam::new("_group", &group))
9975            .headers(header_map)
9976            .build()?;
9977        let info = OperationInfo {
9978            operation_id: "mount_listmounts",
9979        };
9980        self.pre(&mut request, &info).await?;
9981        let result = self.exec(request, &info).await;
9982        self.post(&result, &info).await?;
9983        let response = result?;
9984        match response.status().as_u16() {
9985            200u16 => ResponseValue::from_response(response).await,
9986            400u16..=499u16 => Err(Error::ErrorResponse(
9987                ResponseValue::from_response(response).await?,
9988            )),
9989            500u16..=599u16 => Err(Error::ErrorResponse(
9990                ResponseValue::from_response(response).await?,
9991            )),
9992            _ => Err(Error::UnexpectedResponse(response)),
9993        }
9994    }
9995
9996    ///Sends a `POST` request to `/mount/mount`
9997    ///
9998    ///Arguments:
9999    /// - `async_`: Run the command asynchronously. Returns a job id
10000    ///   immediately.
10001    /// - `config`: JSON encoded config overrides applied for this call only.
10002    /// - `filter`: JSON encoded filter overrides applied for this call only.
10003    /// - `group`: Assign the request to a custom stats group.
10004    /// - `fs`: Remote path to mount, such as `drive:` or `remote:subdir`.
10005    /// - `mount_opt`: Mount options encoded as JSON, matching flags accepted by
10006    ///   `rclone mount`.
10007    /// - `mount_point`: Absolute local path where the remote should be mounted.
10008    /// - `mount_type`: Optional mount implementation to use (`mount`, `cmount`,
10009    ///   or `mount2`).
10010    /// - `vfs_opt`: VFS options encoded as JSON, matching flags accepted by
10011    ///   `rclone mount`.
10012    pub async fn mount_mount<'a>(
10013        &'a self,
10014        async_: Option<bool>,
10015        config: Option<&'a str>,
10016        filter: Option<&'a str>,
10017        group: Option<&'a str>,
10018        fs: &'a str,
10019        mount_opt: Option<&'a str>,
10020        mount_point: &'a str,
10021        mount_type: Option<&'a str>,
10022        vfs_opt: Option<&'a str>,
10023    ) -> Result<
10024        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
10025        Error<types::RcError>,
10026    > {
10027        let url = format!("{}/mount/mount", self.baseurl,);
10028        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10029        header_map.append(
10030            ::reqwest::header::HeaderName::from_static("api-version"),
10031            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10032        );
10033        #[allow(unused_mut)]
10034        let mut request = self
10035            .client
10036            .post(url)
10037            .header(
10038                ::reqwest::header::ACCEPT,
10039                ::reqwest::header::HeaderValue::from_static("application/json"),
10040            )
10041            .query(&progenitor_client::QueryParam::new("_async", &async_))
10042            .query(&progenitor_client::QueryParam::new("_config", &config))
10043            .query(&progenitor_client::QueryParam::new("_filter", &filter))
10044            .query(&progenitor_client::QueryParam::new("_group", &group))
10045            .query(&progenitor_client::QueryParam::new("fs", &fs))
10046            .query(&progenitor_client::QueryParam::new("mountOpt", &mount_opt))
10047            .query(&progenitor_client::QueryParam::new(
10048                "mountPoint",
10049                &mount_point,
10050            ))
10051            .query(&progenitor_client::QueryParam::new(
10052                "mountType",
10053                &mount_type,
10054            ))
10055            .query(&progenitor_client::QueryParam::new("vfsOpt", &vfs_opt))
10056            .headers(header_map)
10057            .build()?;
10058        let info = OperationInfo {
10059            operation_id: "mount_mount",
10060        };
10061        self.pre(&mut request, &info).await?;
10062        let result = self.exec(request, &info).await;
10063        self.post(&result, &info).await?;
10064        let response = result?;
10065        match response.status().as_u16() {
10066            200u16 => ResponseValue::from_response(response).await,
10067            400u16..=499u16 => Err(Error::ErrorResponse(
10068                ResponseValue::from_response(response).await?,
10069            )),
10070            500u16..=599u16 => Err(Error::ErrorResponse(
10071                ResponseValue::from_response(response).await?,
10072            )),
10073            _ => Err(Error::UnexpectedResponse(response)),
10074        }
10075    }
10076
10077    ///Sends a `POST` request to `/mount/types`
10078    ///
10079    ///Arguments:
10080    /// - `async_`: Run the command asynchronously. Returns a job id
10081    ///   immediately.
10082    /// - `group`: Assign the request to a custom stats group.
10083    pub async fn mount_types<'a>(
10084        &'a self,
10085        async_: Option<bool>,
10086        group: Option<&'a str>,
10087    ) -> Result<ResponseValue<types::MountTypesResponse>, Error<types::RcError>> {
10088        let url = format!("{}/mount/types", self.baseurl,);
10089        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10090        header_map.append(
10091            ::reqwest::header::HeaderName::from_static("api-version"),
10092            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10093        );
10094        #[allow(unused_mut)]
10095        let mut request = self
10096            .client
10097            .post(url)
10098            .header(
10099                ::reqwest::header::ACCEPT,
10100                ::reqwest::header::HeaderValue::from_static("application/json"),
10101            )
10102            .query(&progenitor_client::QueryParam::new("_async", &async_))
10103            .query(&progenitor_client::QueryParam::new("_group", &group))
10104            .headers(header_map)
10105            .build()?;
10106        let info = OperationInfo {
10107            operation_id: "mount_types",
10108        };
10109        self.pre(&mut request, &info).await?;
10110        let result = self.exec(request, &info).await;
10111        self.post(&result, &info).await?;
10112        let response = result?;
10113        match response.status().as_u16() {
10114            200u16 => ResponseValue::from_response(response).await,
10115            400u16..=499u16 => Err(Error::ErrorResponse(
10116                ResponseValue::from_response(response).await?,
10117            )),
10118            500u16..=599u16 => Err(Error::ErrorResponse(
10119                ResponseValue::from_response(response).await?,
10120            )),
10121            _ => Err(Error::UnexpectedResponse(response)),
10122        }
10123    }
10124
10125    ///Sends a `POST` request to `/mount/unmount`
10126    ///
10127    ///Arguments:
10128    /// - `async_`: Run the command asynchronously. Returns a job id
10129    ///   immediately.
10130    /// - `group`: Assign the request to a custom stats group.
10131    /// - `mount_point`: Local mount point path to unmount.
10132    pub async fn mount_unmount<'a>(
10133        &'a self,
10134        async_: Option<bool>,
10135        group: Option<&'a str>,
10136        mount_point: &'a str,
10137    ) -> Result<
10138        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
10139        Error<types::RcError>,
10140    > {
10141        let url = format!("{}/mount/unmount", self.baseurl,);
10142        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10143        header_map.append(
10144            ::reqwest::header::HeaderName::from_static("api-version"),
10145            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10146        );
10147        #[allow(unused_mut)]
10148        let mut request = self
10149            .client
10150            .post(url)
10151            .header(
10152                ::reqwest::header::ACCEPT,
10153                ::reqwest::header::HeaderValue::from_static("application/json"),
10154            )
10155            .query(&progenitor_client::QueryParam::new("_async", &async_))
10156            .query(&progenitor_client::QueryParam::new("_group", &group))
10157            .query(&progenitor_client::QueryParam::new(
10158                "mountPoint",
10159                &mount_point,
10160            ))
10161            .headers(header_map)
10162            .build()?;
10163        let info = OperationInfo {
10164            operation_id: "mount_unmount",
10165        };
10166        self.pre(&mut request, &info).await?;
10167        let result = self.exec(request, &info).await;
10168        self.post(&result, &info).await?;
10169        let response = result?;
10170        match response.status().as_u16() {
10171            200u16 => ResponseValue::from_response(response).await,
10172            400u16..=499u16 => Err(Error::ErrorResponse(
10173                ResponseValue::from_response(response).await?,
10174            )),
10175            500u16..=599u16 => Err(Error::ErrorResponse(
10176                ResponseValue::from_response(response).await?,
10177            )),
10178            _ => Err(Error::UnexpectedResponse(response)),
10179        }
10180    }
10181
10182    ///Sends a `POST` request to `/mount/unmountall`
10183    ///
10184    ///Arguments:
10185    /// - `async_`: Run the command asynchronously. Returns a job id
10186    ///   immediately.
10187    /// - `group`: Assign the request to a custom stats group.
10188    pub async fn mount_unmountall<'a>(
10189        &'a self,
10190        async_: Option<bool>,
10191        group: Option<&'a str>,
10192    ) -> Result<
10193        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
10194        Error<types::RcError>,
10195    > {
10196        let url = format!("{}/mount/unmountall", self.baseurl,);
10197        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10198        header_map.append(
10199            ::reqwest::header::HeaderName::from_static("api-version"),
10200            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10201        );
10202        #[allow(unused_mut)]
10203        let mut request = self
10204            .client
10205            .post(url)
10206            .header(
10207                ::reqwest::header::ACCEPT,
10208                ::reqwest::header::HeaderValue::from_static("application/json"),
10209            )
10210            .query(&progenitor_client::QueryParam::new("_async", &async_))
10211            .query(&progenitor_client::QueryParam::new("_group", &group))
10212            .headers(header_map)
10213            .build()?;
10214        let info = OperationInfo {
10215            operation_id: "mount_unmountall",
10216        };
10217        self.pre(&mut request, &info).await?;
10218        let result = self.exec(request, &info).await;
10219        self.post(&result, &info).await?;
10220        let response = result?;
10221        match response.status().as_u16() {
10222            200u16 => ResponseValue::from_response(response).await,
10223            400u16..=499u16 => Err(Error::ErrorResponse(
10224                ResponseValue::from_response(response).await?,
10225            )),
10226            500u16..=599u16 => Err(Error::ErrorResponse(
10227                ResponseValue::from_response(response).await?,
10228            )),
10229            _ => Err(Error::UnexpectedResponse(response)),
10230        }
10231    }
10232
10233    ///Echo parameters (auth required)
10234    ///
10235    ///Same as `rc/noop`, but requires authentication to validate access
10236    /// control.
10237    ///
10238    ///Sends a `POST` request to `/rc/noopauth`
10239    ///
10240    ///Arguments:
10241    /// - `async_`: Run the command asynchronously. Returns a job id
10242    ///   immediately.
10243    /// - `params`: Additional arbitrary parameters allowed.
10244    pub async fn rc_noop_auth<'a>(
10245        &'a self,
10246        async_: Option<bool>,
10247        params: Option<&'a ::serde_json::Map<::std::string::String, ::serde_json::Value>>,
10248    ) -> Result<
10249        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
10250        Error<types::RcError>,
10251    > {
10252        let url = format!("{}/rc/noopauth", self.baseurl,);
10253        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10254        header_map.append(
10255            ::reqwest::header::HeaderName::from_static("api-version"),
10256            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10257        );
10258        #[allow(unused_mut)]
10259        let mut request = self
10260            .client
10261            .post(url)
10262            .header(
10263                ::reqwest::header::ACCEPT,
10264                ::reqwest::header::HeaderValue::from_static("application/json"),
10265            )
10266            .query(&progenitor_client::QueryParam::new("_async", &async_))
10267            .query(&progenitor_client::QueryParam::new("params", &params))
10268            .headers(header_map)
10269            .build()?;
10270        let info = OperationInfo {
10271            operation_id: "rc_noop_auth",
10272        };
10273        self.pre(&mut request, &info).await?;
10274        let result = self.exec(request, &info).await;
10275        self.post(&result, &info).await?;
10276        let response = result?;
10277        match response.status().as_u16() {
10278            200u16 => ResponseValue::from_response(response).await,
10279            400u16..=499u16 => Err(Error::ErrorResponse(
10280                ResponseValue::from_response(response).await?,
10281            )),
10282            500u16..=599u16 => Err(Error::ErrorResponse(
10283                ResponseValue::from_response(response).await?,
10284            )),
10285            _ => Err(Error::UnexpectedResponse(response)),
10286        }
10287    }
10288
10289    ///Return a test error
10290    ///
10291    ///Always returns an error response incorporating the supplied parameters,
10292    /// useful for testing error handling.
10293    ///
10294    ///Sends a `POST` request to `/rc/error`
10295    ///
10296    ///Arguments:
10297    /// - `async_`: Run the command asynchronously. Returns a job id
10298    ///   immediately.
10299    /// - `params`: Additional arbitrary parameters allowed.
10300    pub async fn rc_error<'a>(
10301        &'a self,
10302        async_: Option<bool>,
10303        params: Option<&'a ::serde_json::Map<::std::string::String, ::serde_json::Value>>,
10304    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
10305        let url = format!("{}/rc/error", self.baseurl,);
10306        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10307        header_map.append(
10308            ::reqwest::header::HeaderName::from_static("api-version"),
10309            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10310        );
10311        #[allow(unused_mut)]
10312        let mut request = self
10313            .client
10314            .post(url)
10315            .header(
10316                ::reqwest::header::ACCEPT,
10317                ::reqwest::header::HeaderValue::from_static("application/json"),
10318            )
10319            .query(&progenitor_client::QueryParam::new("_async", &async_))
10320            .query(&progenitor_client::QueryParam::new("params", &params))
10321            .headers(header_map)
10322            .build()?;
10323        let info = OperationInfo {
10324            operation_id: "rc_error",
10325        };
10326        self.pre(&mut request, &info).await?;
10327        let result = self.exec(request, &info).await;
10328        self.post(&result, &info).await?;
10329        let response = result?;
10330        match response.status().as_u16() {
10331            200u16 => Ok(ResponseValue::empty(response)),
10332            400u16..=499u16 => Err(Error::ErrorResponse(
10333                ResponseValue::from_response(response).await?,
10334            )),
10335            500u16..=599u16 => Err(Error::ErrorResponse(
10336                ResponseValue::from_response(response).await?,
10337            )),
10338            _ => Err(Error::UnexpectedResponse(response)),
10339        }
10340    }
10341
10342    ///List RC commands
10343    ///
10344    ///Returns metadata about every available RC command, including whether
10345    /// authentication is required.
10346    ///
10347    ///Sends a `POST` request to `/rc/list`
10348    ///
10349    ///Arguments:
10350    /// - `async_`: Run the command asynchronously. Returns a job id
10351    ///   immediately.
10352    /// - `group`: Assign the request to a custom stats group.
10353    pub async fn rc_list<'a>(
10354        &'a self,
10355        async_: Option<bool>,
10356        group: Option<&'a str>,
10357    ) -> Result<ResponseValue<types::RcListResponse>, Error<types::RcError>> {
10358        let url = format!("{}/rc/list", self.baseurl,);
10359        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10360        header_map.append(
10361            ::reqwest::header::HeaderName::from_static("api-version"),
10362            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10363        );
10364        #[allow(unused_mut)]
10365        let mut request = self
10366            .client
10367            .post(url)
10368            .header(
10369                ::reqwest::header::ACCEPT,
10370                ::reqwest::header::HeaderValue::from_static("application/json"),
10371            )
10372            .query(&progenitor_client::QueryParam::new("_async", &async_))
10373            .query(&progenitor_client::QueryParam::new("_group", &group))
10374            .headers(header_map)
10375            .build()?;
10376        let info = OperationInfo {
10377            operation_id: "rc_list",
10378        };
10379        self.pre(&mut request, &info).await?;
10380        let result = self.exec(request, &info).await;
10381        self.post(&result, &info).await?;
10382        let response = result?;
10383        match response.status().as_u16() {
10384            200u16 => ResponseValue::from_response(response).await,
10385            400u16..=499u16 => Err(Error::ErrorResponse(
10386                ResponseValue::from_response(response).await?,
10387            )),
10388            500u16..=599u16 => Err(Error::ErrorResponse(
10389                ResponseValue::from_response(response).await?,
10390            )),
10391            _ => Err(Error::UnexpectedResponse(response)),
10392        }
10393    }
10394
10395    ///Run backend command
10396    ///
10397    ///Invokes a backend-specific management command against an optional
10398    /// remote.
10399    ///
10400    ///Sends a `POST` request to `/backend/command`
10401    ///
10402    ///Arguments:
10403    /// - `async_`: Run the command asynchronously. Returns a job id
10404    ///   immediately.
10405    /// - `group`: Assign the request to a custom stats group.
10406    /// - `arg`: Optional positional arguments for the backend command.
10407    /// - `command`: Backend-specific command to invoke.
10408    /// - `fs`: Remote name or path the backend command should target.
10409    /// - `opt`: Backend command options encoded as a JSON string.
10410    pub async fn backend_command<'a>(
10411        &'a self,
10412        async_: Option<bool>,
10413        group: Option<&'a str>,
10414        arg: Option<&'a ::std::vec::Vec<::std::string::String>>,
10415        command: &'a str,
10416        fs: Option<&'a str>,
10417        opt: Option<&'a str>,
10418    ) -> Result<ResponseValue<types::BackendCommandResponse>, Error<types::RcError>> {
10419        let url = format!("{}/backend/command", self.baseurl,);
10420        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10421        header_map.append(
10422            ::reqwest::header::HeaderName::from_static("api-version"),
10423            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10424        );
10425        #[allow(unused_mut)]
10426        let mut request = self
10427            .client
10428            .post(url)
10429            .header(
10430                ::reqwest::header::ACCEPT,
10431                ::reqwest::header::HeaderValue::from_static("application/json"),
10432            )
10433            .query(&progenitor_client::QueryParam::new("_async", &async_))
10434            .query(&progenitor_client::QueryParam::new("_group", &group))
10435            .query(&progenitor_client::QueryParam::new("arg", &arg))
10436            .query(&progenitor_client::QueryParam::new("command", &command))
10437            .query(&progenitor_client::QueryParam::new("fs", &fs))
10438            .query(&progenitor_client::QueryParam::new("opt", &opt))
10439            .headers(header_map)
10440            .build()?;
10441        let info = OperationInfo {
10442            operation_id: "backend_command",
10443        };
10444        self.pre(&mut request, &info).await?;
10445        let result = self.exec(request, &info).await;
10446        self.post(&result, &info).await?;
10447        let response = result?;
10448        match response.status().as_u16() {
10449            200u16 => ResponseValue::from_response(response).await,
10450            400u16..=499u16 => Err(Error::ErrorResponse(
10451                ResponseValue::from_response(response).await?,
10452            )),
10453            500u16..=599u16 => Err(Error::ErrorResponse(
10454                ResponseValue::from_response(response).await?,
10455            )),
10456            _ => Err(Error::UnexpectedResponse(response)),
10457        }
10458    }
10459
10460    ///Expire cache entries
10461    ///
10462    ///Drops cached directory entries, and optionally cached file data, for the
10463    /// cache backend.
10464    ///
10465    ///Sends a `POST` request to `/cache/expire`
10466    ///
10467    ///Arguments:
10468    /// - `async_`: Run the command asynchronously. Returns a job id
10469    ///   immediately.
10470    /// - `group`: Assign the request to a custom stats group.
10471    /// - `remote`: Remote path to expire from the cache, e.g.
10472    ///   `remote:path/to/dir`.
10473    /// - `with_data`: Set to true to drop cached chunk data along with
10474    ///   directory entries.
10475    pub async fn cache_expire<'a>(
10476        &'a self,
10477        async_: Option<bool>,
10478        group: Option<&'a str>,
10479        remote: &'a str,
10480        with_data: Option<bool>,
10481    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
10482        let url = format!("{}/cache/expire", self.baseurl,);
10483        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10484        header_map.append(
10485            ::reqwest::header::HeaderName::from_static("api-version"),
10486            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10487        );
10488        #[allow(unused_mut)]
10489        let mut request = self
10490            .client
10491            .post(url)
10492            .header(
10493                ::reqwest::header::ACCEPT,
10494                ::reqwest::header::HeaderValue::from_static("application/json"),
10495            )
10496            .query(&progenitor_client::QueryParam::new("_async", &async_))
10497            .query(&progenitor_client::QueryParam::new("_group", &group))
10498            .query(&progenitor_client::QueryParam::new("remote", &remote))
10499            .query(&progenitor_client::QueryParam::new("withData", &with_data))
10500            .headers(header_map)
10501            .build()?;
10502        let info = OperationInfo {
10503            operation_id: "cache_expire",
10504        };
10505        self.pre(&mut request, &info).await?;
10506        let result = self.exec(request, &info).await;
10507        self.post(&result, &info).await?;
10508        let response = result?;
10509        match response.status().as_u16() {
10510            200u16 => Ok(ResponseValue::empty(response)),
10511            400u16..=499u16 => Err(Error::ErrorResponse(
10512                ResponseValue::from_response(response).await?,
10513            )),
10514            500u16..=599u16 => Err(Error::ErrorResponse(
10515                ResponseValue::from_response(response).await?,
10516            )),
10517            _ => Err(Error::UnexpectedResponse(response)),
10518        }
10519    }
10520
10521    ///Prefetch cache chunks
10522    ///
10523    ///Ensures specified file chunks are cached locally for a cache remote.
10524    ///
10525    ///Sends a `POST` request to `/cache/fetch`
10526    ///
10527    ///Arguments:
10528    /// - `async_`: Run the command asynchronously. Returns a job id
10529    ///   immediately.
10530    /// - `group`: Assign the request to a custom stats group.
10531    /// - `chunks`: Comma-separated chunk specifier list (e.g. `0:10,25:30`)
10532    ///   describing file pieces to prefetch.
10533    /// - `params`: Additional arbitrary parameters allowed.
10534    pub async fn cache_fetch<'a>(
10535        &'a self,
10536        async_: Option<bool>,
10537        group: Option<&'a str>,
10538        chunks: Option<&'a str>,
10539        params: Option<&'a ::serde_json::Map<::std::string::String, ::serde_json::Value>>,
10540    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
10541        let url = format!("{}/cache/fetch", self.baseurl,);
10542        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10543        header_map.append(
10544            ::reqwest::header::HeaderName::from_static("api-version"),
10545            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10546        );
10547        #[allow(unused_mut)]
10548        let mut request = self
10549            .client
10550            .post(url)
10551            .header(
10552                ::reqwest::header::ACCEPT,
10553                ::reqwest::header::HeaderValue::from_static("application/json"),
10554            )
10555            .query(&progenitor_client::QueryParam::new("_async", &async_))
10556            .query(&progenitor_client::QueryParam::new("_group", &group))
10557            .query(&progenitor_client::QueryParam::new("chunks", &chunks))
10558            .query(&progenitor_client::QueryParam::new("params", &params))
10559            .headers(header_map)
10560            .build()?;
10561        let info = OperationInfo {
10562            operation_id: "cache_fetch",
10563        };
10564        self.pre(&mut request, &info).await?;
10565        let result = self.exec(request, &info).await;
10566        self.post(&result, &info).await?;
10567        let response = result?;
10568        match response.status().as_u16() {
10569            200u16 => Ok(ResponseValue::empty(response)),
10570            400u16..=499u16 => Err(Error::ErrorResponse(
10571                ResponseValue::from_response(response).await?,
10572            )),
10573            500u16..=599u16 => Err(Error::ErrorResponse(
10574                ResponseValue::from_response(response).await?,
10575            )),
10576            _ => Err(Error::UnexpectedResponse(response)),
10577        }
10578    }
10579
10580    ///Show cache stats
10581    ///
10582    ///Returns runtime statistics for the cache backend.
10583    ///
10584    ///Sends a `POST` request to `/cache/stats`
10585    ///
10586    ///Arguments:
10587    /// - `async_`: Run the command asynchronously. Returns a job id
10588    ///   immediately.
10589    /// - `group`: Assign the request to a custom stats group.
10590    pub async fn cache_stats<'a>(
10591        &'a self,
10592        async_: Option<bool>,
10593        group: Option<&'a str>,
10594    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
10595        let url = format!("{}/cache/stats", self.baseurl,);
10596        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10597        header_map.append(
10598            ::reqwest::header::HeaderName::from_static("api-version"),
10599            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10600        );
10601        #[allow(unused_mut)]
10602        let mut request = self
10603            .client
10604            .post(url)
10605            .header(
10606                ::reqwest::header::ACCEPT,
10607                ::reqwest::header::HeaderValue::from_static("application/json"),
10608            )
10609            .query(&progenitor_client::QueryParam::new("_async", &async_))
10610            .query(&progenitor_client::QueryParam::new("_group", &group))
10611            .headers(header_map)
10612            .build()?;
10613        let info = OperationInfo {
10614            operation_id: "cache_stats",
10615        };
10616        self.pre(&mut request, &info).await?;
10617        let result = self.exec(request, &info).await;
10618        self.post(&result, &info).await?;
10619        let response = result?;
10620        match response.status().as_u16() {
10621            200u16 => Ok(ResponseValue::empty(response)),
10622            400u16..=499u16 => Err(Error::ErrorResponse(
10623                ResponseValue::from_response(response).await?,
10624            )),
10625            500u16..=599u16 => Err(Error::ErrorResponse(
10626                ResponseValue::from_response(response).await?,
10627            )),
10628            _ => Err(Error::UnexpectedResponse(response)),
10629        }
10630    }
10631
10632    ///Create remote configuration
10633    ///
10634    ///Creates a new remote in `rclone.conf`, mirroring `rclone config create`.
10635    ///
10636    ///Sends a `POST` request to `/config/create`
10637    ///
10638    ///Arguments:
10639    /// - `async_`: Run the command asynchronously. Returns a job id
10640    ///   immediately.
10641    /// - `group`: Assign the request to a custom stats group.
10642    /// - `name`: Name of the new remote configuration.
10643    /// - `opt`: Optional JSON object controlling interactive behaviour (e.g.
10644    ///   `obscure`, `continue`).
10645    /// - `parameters`: JSON object of configuration key/value pairs required
10646    ///   for the remote.
10647    /// - `type_`: Backend type identifier, such as `drive`, `s3`, or `dropbox`.
10648    pub async fn config_create<'a>(
10649        &'a self,
10650        async_: Option<bool>,
10651        group: Option<&'a str>,
10652        name: &'a str,
10653        opt: Option<&'a str>,
10654        parameters: &'a str,
10655        type_: &'a str,
10656    ) -> Result<
10657        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
10658        Error<types::RcError>,
10659    > {
10660        let url = format!("{}/config/create", self.baseurl,);
10661        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10662        header_map.append(
10663            ::reqwest::header::HeaderName::from_static("api-version"),
10664            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10665        );
10666        #[allow(unused_mut)]
10667        let mut request = self
10668            .client
10669            .post(url)
10670            .header(
10671                ::reqwest::header::ACCEPT,
10672                ::reqwest::header::HeaderValue::from_static("application/json"),
10673            )
10674            .query(&progenitor_client::QueryParam::new("_async", &async_))
10675            .query(&progenitor_client::QueryParam::new("_group", &group))
10676            .query(&progenitor_client::QueryParam::new("name", &name))
10677            .query(&progenitor_client::QueryParam::new("opt", &opt))
10678            .query(&progenitor_client::QueryParam::new(
10679                "parameters",
10680                &parameters,
10681            ))
10682            .query(&progenitor_client::QueryParam::new("type", &type_))
10683            .headers(header_map)
10684            .build()?;
10685        let info = OperationInfo {
10686            operation_id: "config_create",
10687        };
10688        self.pre(&mut request, &info).await?;
10689        let result = self.exec(request, &info).await;
10690        self.post(&result, &info).await?;
10691        let response = result?;
10692        match response.status().as_u16() {
10693            200u16 => ResponseValue::from_response(response).await,
10694            400u16..=499u16 => Err(Error::ErrorResponse(
10695                ResponseValue::from_response(response).await?,
10696            )),
10697            500u16..=599u16 => Err(Error::ErrorResponse(
10698                ResponseValue::from_response(response).await?,
10699            )),
10700            _ => Err(Error::UnexpectedResponse(response)),
10701        }
10702    }
10703
10704    ///Delete remote configuration
10705    ///
10706    ///Removes an existing remote from `rclone.conf`.
10707    ///
10708    ///Sends a `POST` request to `/config/delete`
10709    ///
10710    ///Arguments:
10711    /// - `async_`: Run the command asynchronously. Returns a job id
10712    ///   immediately.
10713    /// - `group`: Assign the request to a custom stats group.
10714    /// - `name`: Name of the remote configuration to delete.
10715    pub async fn config_delete<'a>(
10716        &'a self,
10717        async_: Option<bool>,
10718        group: Option<&'a str>,
10719        name: &'a str,
10720    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
10721        let url = format!("{}/config/delete", self.baseurl,);
10722        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10723        header_map.append(
10724            ::reqwest::header::HeaderName::from_static("api-version"),
10725            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10726        );
10727        #[allow(unused_mut)]
10728        let mut request = self
10729            .client
10730            .post(url)
10731            .header(
10732                ::reqwest::header::ACCEPT,
10733                ::reqwest::header::HeaderValue::from_static("application/json"),
10734            )
10735            .query(&progenitor_client::QueryParam::new("_async", &async_))
10736            .query(&progenitor_client::QueryParam::new("_group", &group))
10737            .query(&progenitor_client::QueryParam::new("name", &name))
10738            .headers(header_map)
10739            .build()?;
10740        let info = OperationInfo {
10741            operation_id: "config_delete",
10742        };
10743        self.pre(&mut request, &info).await?;
10744        let result = self.exec(request, &info).await;
10745        self.post(&result, &info).await?;
10746        let response = result?;
10747        match response.status().as_u16() {
10748            200u16 => Ok(ResponseValue::empty(response)),
10749            400u16..=499u16 => Err(Error::ErrorResponse(
10750                ResponseValue::from_response(response).await?,
10751            )),
10752            500u16..=599u16 => Err(Error::ErrorResponse(
10753                ResponseValue::from_response(response).await?,
10754            )),
10755            _ => Err(Error::UnexpectedResponse(response)),
10756        }
10757    }
10758
10759    ///Dump configuration
10760    ///
10761    ///Returns the contents of the config file as a JSON object keyed by remote
10762    /// name.
10763    ///
10764    ///Sends a `POST` request to `/config/dump`
10765    ///
10766    ///Arguments:
10767    /// - `async_`: Run the command asynchronously. Returns a job id
10768    ///   immediately.
10769    /// - `group`: Assign the request to a custom stats group.
10770    pub async fn config_dump<'a>(
10771        &'a self,
10772        async_: Option<bool>,
10773        group: Option<&'a str>,
10774    ) -> Result<
10775        ResponseValue<
10776            ::std::collections::HashMap<
10777                ::std::string::String,
10778                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
10779            >,
10780        >,
10781        Error<types::RcError>,
10782    > {
10783        let url = format!("{}/config/dump", self.baseurl,);
10784        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10785        header_map.append(
10786            ::reqwest::header::HeaderName::from_static("api-version"),
10787            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10788        );
10789        #[allow(unused_mut)]
10790        let mut request = self
10791            .client
10792            .post(url)
10793            .header(
10794                ::reqwest::header::ACCEPT,
10795                ::reqwest::header::HeaderValue::from_static("application/json"),
10796            )
10797            .query(&progenitor_client::QueryParam::new("_async", &async_))
10798            .query(&progenitor_client::QueryParam::new("_group", &group))
10799            .headers(header_map)
10800            .build()?;
10801        let info = OperationInfo {
10802            operation_id: "config_dump",
10803        };
10804        self.pre(&mut request, &info).await?;
10805        let result = self.exec(request, &info).await;
10806        self.post(&result, &info).await?;
10807        let response = result?;
10808        match response.status().as_u16() {
10809            200u16 => ResponseValue::from_response(response).await,
10810            400u16..=499u16 => Err(Error::ErrorResponse(
10811                ResponseValue::from_response(response).await?,
10812            )),
10813            500u16..=599u16 => Err(Error::ErrorResponse(
10814                ResponseValue::from_response(response).await?,
10815            )),
10816            _ => Err(Error::UnexpectedResponse(response)),
10817        }
10818    }
10819
10820    ///Get remote configuration
10821    ///
10822    ///Returns the key/value settings for a single remote.
10823    ///
10824    ///Sends a `POST` request to `/config/get`
10825    ///
10826    ///Arguments:
10827    /// - `async_`: Run the command asynchronously. Returns a job id
10828    ///   immediately.
10829    /// - `group`: Assign the request to a custom stats group.
10830    /// - `name`: Name of the remote configuration to fetch.
10831    pub async fn config_get<'a>(
10832        &'a self,
10833        async_: Option<bool>,
10834        group: Option<&'a str>,
10835        name: &'a str,
10836    ) -> Result<ResponseValue<types::ConfigGetResponse>, Error<types::RcError>> {
10837        let url = format!("{}/config/get", self.baseurl,);
10838        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10839        header_map.append(
10840            ::reqwest::header::HeaderName::from_static("api-version"),
10841            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10842        );
10843        #[allow(unused_mut)]
10844        let mut request = self
10845            .client
10846            .post(url)
10847            .header(
10848                ::reqwest::header::ACCEPT,
10849                ::reqwest::header::HeaderValue::from_static("application/json"),
10850            )
10851            .query(&progenitor_client::QueryParam::new("_async", &async_))
10852            .query(&progenitor_client::QueryParam::new("_group", &group))
10853            .query(&progenitor_client::QueryParam::new("name", &name))
10854            .headers(header_map)
10855            .build()?;
10856        let info = OperationInfo {
10857            operation_id: "config_get",
10858        };
10859        self.pre(&mut request, &info).await?;
10860        let result = self.exec(request, &info).await;
10861        self.post(&result, &info).await?;
10862        let response = result?;
10863        match response.status().as_u16() {
10864            200u16 => ResponseValue::from_response(response).await,
10865            400u16..=499u16 => Err(Error::ErrorResponse(
10866                ResponseValue::from_response(response).await?,
10867            )),
10868            500u16..=599u16 => Err(Error::ErrorResponse(
10869                ResponseValue::from_response(response).await?,
10870            )),
10871            _ => Err(Error::UnexpectedResponse(response)),
10872        }
10873    }
10874
10875    ///List configured remotes
10876    ///
10877    ///Returns the names of all remotes defined in the config file.
10878    ///
10879    ///Sends a `POST` request to `/config/listremotes`
10880    ///
10881    ///Arguments:
10882    /// - `async_`: Run the command asynchronously. Returns a job id
10883    ///   immediately.
10884    /// - `group`: Assign the request to a custom stats group.
10885    pub async fn config_listremotes<'a>(
10886        &'a self,
10887        async_: Option<bool>,
10888        group: Option<&'a str>,
10889    ) -> Result<ResponseValue<types::ConfigListremotesResponse>, Error<types::RcError>> {
10890        let url = format!("{}/config/listremotes", self.baseurl,);
10891        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10892        header_map.append(
10893            ::reqwest::header::HeaderName::from_static("api-version"),
10894            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10895        );
10896        #[allow(unused_mut)]
10897        let mut request = self
10898            .client
10899            .post(url)
10900            .header(
10901                ::reqwest::header::ACCEPT,
10902                ::reqwest::header::HeaderValue::from_static("application/json"),
10903            )
10904            .query(&progenitor_client::QueryParam::new("_async", &async_))
10905            .query(&progenitor_client::QueryParam::new("_group", &group))
10906            .headers(header_map)
10907            .build()?;
10908        let info = OperationInfo {
10909            operation_id: "config_listremotes",
10910        };
10911        self.pre(&mut request, &info).await?;
10912        let result = self.exec(request, &info).await;
10913        self.post(&result, &info).await?;
10914        let response = result?;
10915        match response.status().as_u16() {
10916            200u16 => ResponseValue::from_response(response).await,
10917            400u16..=499u16 => Err(Error::ErrorResponse(
10918                ResponseValue::from_response(response).await?,
10919            )),
10920            500u16..=599u16 => Err(Error::ErrorResponse(
10921                ResponseValue::from_response(response).await?,
10922            )),
10923            _ => Err(Error::UnexpectedResponse(response)),
10924        }
10925    }
10926
10927    ///Update remote secrets
10928    ///
10929    ///Sets obscured password fields for a remote configuration.
10930    ///
10931    ///Sends a `POST` request to `/config/password`
10932    ///
10933    ///Arguments:
10934    /// - `async_`: Run the command asynchronously. Returns a job id
10935    ///   immediately.
10936    /// - `group`: Assign the request to a custom stats group.
10937    /// - `name`: Name of the remote whose secrets should be updated.
10938    /// - `parameters`: JSON object of password answers, typically including
10939    ///   `pass`.
10940    pub async fn config_password<'a>(
10941        &'a self,
10942        async_: Option<bool>,
10943        group: Option<&'a str>,
10944        name: &'a str,
10945        parameters: &'a str,
10946    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
10947        let url = format!("{}/config/password", self.baseurl,);
10948        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
10949        header_map.append(
10950            ::reqwest::header::HeaderName::from_static("api-version"),
10951            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
10952        );
10953        #[allow(unused_mut)]
10954        let mut request = self
10955            .client
10956            .post(url)
10957            .header(
10958                ::reqwest::header::ACCEPT,
10959                ::reqwest::header::HeaderValue::from_static("application/json"),
10960            )
10961            .query(&progenitor_client::QueryParam::new("_async", &async_))
10962            .query(&progenitor_client::QueryParam::new("_group", &group))
10963            .query(&progenitor_client::QueryParam::new("name", &name))
10964            .query(&progenitor_client::QueryParam::new(
10965                "parameters",
10966                &parameters,
10967            ))
10968            .headers(header_map)
10969            .build()?;
10970        let info = OperationInfo {
10971            operation_id: "config_password",
10972        };
10973        self.pre(&mut request, &info).await?;
10974        let result = self.exec(request, &info).await;
10975        self.post(&result, &info).await?;
10976        let response = result?;
10977        match response.status().as_u16() {
10978            200u16 => Ok(ResponseValue::empty(response)),
10979            400u16..=499u16 => Err(Error::ErrorResponse(
10980                ResponseValue::from_response(response).await?,
10981            )),
10982            500u16..=599u16 => Err(Error::ErrorResponse(
10983                ResponseValue::from_response(response).await?,
10984            )),
10985            _ => Err(Error::UnexpectedResponse(response)),
10986        }
10987    }
10988
10989    ///Show config paths
10990    ///
10991    ///Returns the paths to the config file, cache directory, and temporary
10992    /// directory.
10993    ///
10994    ///Sends a `POST` request to `/config/paths`
10995    ///
10996    ///Arguments:
10997    /// - `async_`: Run the command asynchronously. Returns a job id
10998    ///   immediately.
10999    /// - `group`: Assign the request to a custom stats group.
11000    pub async fn config_paths<'a>(
11001        &'a self,
11002        async_: Option<bool>,
11003        group: Option<&'a str>,
11004    ) -> Result<ResponseValue<types::ConfigPathsResponse>, Error<types::RcError>> {
11005        let url = format!("{}/config/paths", self.baseurl,);
11006        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11007        header_map.append(
11008            ::reqwest::header::HeaderName::from_static("api-version"),
11009            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11010        );
11011        #[allow(unused_mut)]
11012        let mut request = self
11013            .client
11014            .post(url)
11015            .header(
11016                ::reqwest::header::ACCEPT,
11017                ::reqwest::header::HeaderValue::from_static("application/json"),
11018            )
11019            .query(&progenitor_client::QueryParam::new("_async", &async_))
11020            .query(&progenitor_client::QueryParam::new("_group", &group))
11021            .headers(header_map)
11022            .build()?;
11023        let info = OperationInfo {
11024            operation_id: "config_paths",
11025        };
11026        self.pre(&mut request, &info).await?;
11027        let result = self.exec(request, &info).await;
11028        self.post(&result, &info).await?;
11029        let response = result?;
11030        match response.status().as_u16() {
11031            200u16 => ResponseValue::from_response(response).await,
11032            400u16..=499u16 => Err(Error::ErrorResponse(
11033                ResponseValue::from_response(response).await?,
11034            )),
11035            500u16..=599u16 => Err(Error::ErrorResponse(
11036                ResponseValue::from_response(response).await?,
11037            )),
11038            _ => Err(Error::UnexpectedResponse(response)),
11039        }
11040    }
11041
11042    ///List backend providers
11043    ///
11044    ///Returns metadata describing each supported storage provider.
11045    ///
11046    ///Sends a `POST` request to `/config/providers`
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    pub async fn config_providers<'a>(
11053        &'a self,
11054        async_: Option<bool>,
11055        group: Option<&'a str>,
11056    ) -> Result<ResponseValue<types::ConfigProvidersResponse>, Error<types::RcError>> {
11057        let url = format!("{}/config/providers", self.baseurl,);
11058        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11059        header_map.append(
11060            ::reqwest::header::HeaderName::from_static("api-version"),
11061            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11062        );
11063        #[allow(unused_mut)]
11064        let mut request = self
11065            .client
11066            .post(url)
11067            .header(
11068                ::reqwest::header::ACCEPT,
11069                ::reqwest::header::HeaderValue::from_static("application/json"),
11070            )
11071            .query(&progenitor_client::QueryParam::new("_async", &async_))
11072            .query(&progenitor_client::QueryParam::new("_group", &group))
11073            .headers(header_map)
11074            .build()?;
11075        let info = OperationInfo {
11076            operation_id: "config_providers",
11077        };
11078        self.pre(&mut request, &info).await?;
11079        let result = self.exec(request, &info).await;
11080        self.post(&result, &info).await?;
11081        let response = result?;
11082        match response.status().as_u16() {
11083            200u16 => ResponseValue::from_response(response).await,
11084            400u16..=499u16 => Err(Error::ErrorResponse(
11085                ResponseValue::from_response(response).await?,
11086            )),
11087            500u16..=599u16 => Err(Error::ErrorResponse(
11088                ResponseValue::from_response(response).await?,
11089            )),
11090            _ => Err(Error::UnexpectedResponse(response)),
11091        }
11092    }
11093
11094    ///Set config path
11095    ///
11096    ///Points rclone at a specific `rclone.conf` file.
11097    ///
11098    ///Sends a `POST` request to `/config/setpath`
11099    ///
11100    ///Arguments:
11101    /// - `async_`: Run the command asynchronously. Returns a job id
11102    ///   immediately.
11103    /// - `group`: Assign the request to a custom stats group.
11104    /// - `path`: Absolute path to the `rclone.conf` file that rclone should
11105    ///   use.
11106    pub async fn config_setpath<'a>(
11107        &'a self,
11108        async_: Option<bool>,
11109        group: Option<&'a str>,
11110        path: &'a str,
11111    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
11112        let url = format!("{}/config/setpath", self.baseurl,);
11113        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11114        header_map.append(
11115            ::reqwest::header::HeaderName::from_static("api-version"),
11116            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11117        );
11118        #[allow(unused_mut)]
11119        let mut request = self
11120            .client
11121            .post(url)
11122            .header(
11123                ::reqwest::header::ACCEPT,
11124                ::reqwest::header::HeaderValue::from_static("application/json"),
11125            )
11126            .query(&progenitor_client::QueryParam::new("_async", &async_))
11127            .query(&progenitor_client::QueryParam::new("_group", &group))
11128            .query(&progenitor_client::QueryParam::new("path", &path))
11129            .headers(header_map)
11130            .build()?;
11131        let info = OperationInfo {
11132            operation_id: "config_setpath",
11133        };
11134        self.pre(&mut request, &info).await?;
11135        let result = self.exec(request, &info).await;
11136        self.post(&result, &info).await?;
11137        let response = result?;
11138        match response.status().as_u16() {
11139            200u16 => Ok(ResponseValue::empty(response)),
11140            400u16..=499u16 => Err(Error::ErrorResponse(
11141                ResponseValue::from_response(response).await?,
11142            )),
11143            500u16..=599u16 => Err(Error::ErrorResponse(
11144                ResponseValue::from_response(response).await?,
11145            )),
11146            _ => Err(Error::UnexpectedResponse(response)),
11147        }
11148    }
11149
11150    ///Unlock encrypted config
11151    ///
11152    ///Unlocks the configuration file using the provided password.
11153    ///
11154    ///Sends a `POST` request to `/config/unlock`
11155    ///
11156    ///Arguments:
11157    /// - `async_`: Run the command asynchronously. Returns a job id
11158    ///   immediately.
11159    /// - `group`: Assign the request to a custom stats group.
11160    /// - `config_password`: Password used to unlock an encrypted config file.
11161    pub async fn config_unlock<'a>(
11162        &'a self,
11163        async_: Option<bool>,
11164        group: Option<&'a str>,
11165        config_password: &'a str,
11166    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
11167        let url = format!("{}/config/unlock", self.baseurl,);
11168        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11169        header_map.append(
11170            ::reqwest::header::HeaderName::from_static("api-version"),
11171            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11172        );
11173        #[allow(unused_mut)]
11174        let mut request = self
11175            .client
11176            .post(url)
11177            .header(
11178                ::reqwest::header::ACCEPT,
11179                ::reqwest::header::HeaderValue::from_static("application/json"),
11180            )
11181            .query(&progenitor_client::QueryParam::new("_async", &async_))
11182            .query(&progenitor_client::QueryParam::new("_group", &group))
11183            .query(&progenitor_client::QueryParam::new(
11184                "configPassword",
11185                &config_password,
11186            ))
11187            .headers(header_map)
11188            .build()?;
11189        let info = OperationInfo {
11190            operation_id: "config_unlock",
11191        };
11192        self.pre(&mut request, &info).await?;
11193        let result = self.exec(request, &info).await;
11194        self.post(&result, &info).await?;
11195        let response = result?;
11196        match response.status().as_u16() {
11197            200u16 => Ok(ResponseValue::empty(response)),
11198            400u16..=499u16 => Err(Error::ErrorResponse(
11199                ResponseValue::from_response(response).await?,
11200            )),
11201            500u16..=599u16 => Err(Error::ErrorResponse(
11202                ResponseValue::from_response(response).await?,
11203            )),
11204            _ => Err(Error::UnexpectedResponse(response)),
11205        }
11206    }
11207
11208    ///Update remote configuration
11209    ///
11210    ///Updates an existing remote with new parameter values.
11211    ///
11212    ///Sends a `POST` request to `/config/update`
11213    ///
11214    ///Arguments:
11215    /// - `async_`: Run the command asynchronously. Returns a job id
11216    ///   immediately.
11217    /// - `group`: Assign the request to a custom stats group.
11218    /// - `name`: Name of the remote configuration to update.
11219    /// - `opt`: Optional JSON object controlling update behaviour (e.g.
11220    ///   `obscure`, `continue`).
11221    /// - `parameters`: JSON object of configuration key/value pairs to apply to
11222    ///   the remote.
11223    pub async fn config_update<'a>(
11224        &'a self,
11225        async_: Option<bool>,
11226        group: Option<&'a str>,
11227        name: &'a str,
11228        opt: Option<&'a str>,
11229        parameters: &'a str,
11230    ) -> Result<
11231        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
11232        Error<types::RcError>,
11233    > {
11234        let url = format!("{}/config/update", self.baseurl,);
11235        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11236        header_map.append(
11237            ::reqwest::header::HeaderName::from_static("api-version"),
11238            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11239        );
11240        #[allow(unused_mut)]
11241        let mut request = self
11242            .client
11243            .post(url)
11244            .header(
11245                ::reqwest::header::ACCEPT,
11246                ::reqwest::header::HeaderValue::from_static("application/json"),
11247            )
11248            .query(&progenitor_client::QueryParam::new("_async", &async_))
11249            .query(&progenitor_client::QueryParam::new("_group", &group))
11250            .query(&progenitor_client::QueryParam::new("name", &name))
11251            .query(&progenitor_client::QueryParam::new("opt", &opt))
11252            .query(&progenitor_client::QueryParam::new(
11253                "parameters",
11254                &parameters,
11255            ))
11256            .headers(header_map)
11257            .build()?;
11258        let info = OperationInfo {
11259            operation_id: "config_update",
11260        };
11261        self.pre(&mut request, &info).await?;
11262        let result = self.exec(request, &info).await;
11263        self.post(&result, &info).await?;
11264        let response = result?;
11265        match response.status().as_u16() {
11266            200u16 => ResponseValue::from_response(response).await,
11267            400u16..=499u16 => Err(Error::ErrorResponse(
11268                ResponseValue::from_response(response).await?,
11269            )),
11270            500u16..=599u16 => Err(Error::ErrorResponse(
11271                ResponseValue::from_response(response).await?,
11272            )),
11273            _ => Err(Error::UnexpectedResponse(response)),
11274        }
11275    }
11276
11277    ///Report rclone version
11278    ///
11279    ///Returns the running rclone version, build metadata, and Go runtime
11280    /// details.
11281    ///
11282    ///Sends a `POST` request to `/core/version`
11283    ///
11284    ///Arguments:
11285    /// - `async_`: Run the command asynchronously. Returns a job id
11286    ///   immediately.
11287    /// - `group`: Assign the request to a custom stats group.
11288    pub async fn core_version<'a>(
11289        &'a self,
11290        async_: Option<bool>,
11291        group: Option<&'a str>,
11292    ) -> Result<ResponseValue<types::CoreVersionResponse>, Error<types::RcError>> {
11293        let url = format!("{}/core/version", self.baseurl,);
11294        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11295        header_map.append(
11296            ::reqwest::header::HeaderName::from_static("api-version"),
11297            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11298        );
11299        #[allow(unused_mut)]
11300        let mut request = self
11301            .client
11302            .post(url)
11303            .header(
11304                ::reqwest::header::ACCEPT,
11305                ::reqwest::header::HeaderValue::from_static("application/json"),
11306            )
11307            .query(&progenitor_client::QueryParam::new("_async", &async_))
11308            .query(&progenitor_client::QueryParam::new("_group", &group))
11309            .headers(header_map)
11310            .build()?;
11311        let info = OperationInfo {
11312            operation_id: "core_version",
11313        };
11314        self.pre(&mut request, &info).await?;
11315        let result = self.exec(request, &info).await;
11316        self.post(&result, &info).await?;
11317        let response = result?;
11318        match response.status().as_u16() {
11319            200u16 => ResponseValue::from_response(response).await,
11320            400u16..=499u16 => Err(Error::ErrorResponse(
11321                ResponseValue::from_response(response).await?,
11322            )),
11323            500u16..=599u16 => Err(Error::ErrorResponse(
11324                ResponseValue::from_response(response).await?,
11325            )),
11326            _ => Err(Error::UnexpectedResponse(response)),
11327        }
11328    }
11329
11330    ///Current stats snapshot
11331    ///
11332    ///Returns active transfer statistics including bytes transferred, speed,
11333    /// and error counts.
11334    ///
11335    ///Sends a `POST` request to `/core/stats`
11336    ///
11337    ///Arguments:
11338    /// - `async_`: Run the command asynchronously. Returns a job id
11339    ///   immediately.
11340    /// - `group`: Assign the request to a custom stats group.
11341    /// - `group`: Stats group identifier to return a snapshot for. Leave unset
11342    ///   to include all groups.
11343    /// - `short`: When true, omit the `transferring` and `checking` arrays from
11344    ///   the response.
11345    pub async fn core_stats<'a>(
11346        &'a self,
11347        async_: Option<bool>,
11348        _group: Option<&'a str>,
11349        group: Option<&'a str>,
11350        short: Option<bool>
11351    ) -> Result<ResponseValue<types::CoreStatsResponse>, Error<types::RcError>> {
11352        let url = format!("{}/core/stats", self.baseurl,);
11353        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11354        header_map.append(
11355            ::reqwest::header::HeaderName::from_static("api-version"),
11356            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11357        );
11358        #[allow(unused_mut)]
11359        let mut request = self
11360            .client
11361            .post(url)
11362            .header(
11363                ::reqwest::header::ACCEPT,
11364                ::reqwest::header::HeaderValue::from_static("application/json"),
11365            )
11366            .query(&progenitor_client::QueryParam::new("_async", &async_))
11367            .query(&progenitor_client::QueryParam::new("_group", &group))
11368            .query(&progenitor_client::QueryParam::new("group", &group))
11369            .query(&progenitor_client::QueryParam::new("short", &short))
11370            .headers(header_map)
11371            .build()?;
11372        let info = OperationInfo {
11373            operation_id: "core_stats",
11374        };
11375        self.pre(&mut request, &info).await?;
11376        let result = self.exec(request, &info).await;
11377        self.post(&result, &info).await?;
11378        let response = result?;
11379        match response.status().as_u16() {
11380            200u16 => ResponseValue::from_response(response).await,
11381            400u16..=499u16 => Err(Error::ErrorResponse(
11382                ResponseValue::from_response(response).await?,
11383            )),
11384            500u16..=599u16 => Err(Error::ErrorResponse(
11385                ResponseValue::from_response(response).await?,
11386            )),
11387            _ => Err(Error::UnexpectedResponse(response)),
11388        }
11389    }
11390
11391    ///Run batch of commands
11392    ///
11393    ///Run a batch of rclone rc commands concurrently.
11394    ///
11395    ///Sends a `POST` request to `/job/batch`
11396    ///
11397    ///Arguments:
11398    /// - `async_`: Run the command asynchronously. Returns a job id
11399    ///   immediately.
11400    /// - `concurrency`: Do this many commands concurrently. Defaults to
11401    ///   --transfers if not set.
11402    /// - `inputs`: List of inputs to the commands with an extra _path
11403    ///   parameter.
11404    /// - `body`
11405    pub async fn job_batch<'a>(
11406        &'a self,
11407        async_: Option<bool>,
11408        concurrency: Option<i64>,
11409        inputs: Option<&'a ::std::vec::Vec<types::JobBatchInputsItem>>,
11410        body: &'a types::JobBatchRequest,
11411    ) -> Result<ResponseValue<types::JobBatchResponse>, Error<types::RcError>> {
11412        let url = format!("{}/job/batch", self.baseurl,);
11413        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11414        header_map.append(
11415            ::reqwest::header::HeaderName::from_static("api-version"),
11416            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11417        );
11418        #[allow(unused_mut)]
11419        let mut request = self
11420            .client
11421            .post(url)
11422            .header(
11423                ::reqwest::header::ACCEPT,
11424                ::reqwest::header::HeaderValue::from_static("application/json"),
11425            )
11426            .json(&body)
11427            .query(&progenitor_client::QueryParam::new("_async", &async_))
11428            .query(&progenitor_client::QueryParam::new(
11429                "concurrency",
11430                &concurrency,
11431            ))
11432            .query(&progenitor_client::QueryParam::new("inputs", &inputs))
11433            .headers(header_map)
11434            .build()?;
11435        let info = OperationInfo {
11436            operation_id: "job_batch",
11437        };
11438        self.pre(&mut request, &info).await?;
11439        let result = self.exec(request, &info).await;
11440        self.post(&result, &info).await?;
11441        let response = result?;
11442        match response.status().as_u16() {
11443            200u16 => ResponseValue::from_response(response).await,
11444            400u16..=499u16 => Err(Error::ErrorResponse(
11445                ResponseValue::from_response(response).await?,
11446            )),
11447            500u16..=599u16 => Err(Error::ErrorResponse(
11448                ResponseValue::from_response(response).await?,
11449            )),
11450            _ => Err(Error::UnexpectedResponse(response)),
11451        }
11452    }
11453
11454    ///List jobs
11455    ///
11456    ///Returns identifiers of active and recently completed asynchronous jobs.
11457    ///
11458    ///Sends a `POST` request to `/job/list`
11459    ///
11460    ///Arguments:
11461    /// - `async_`: Run the command asynchronously. Returns a job id
11462    ///   immediately.
11463    pub async fn job_list<'a>(
11464        &'a self,
11465        async_: Option<bool>,
11466    ) -> Result<ResponseValue<types::JobListResponse>, Error<types::RcError>> {
11467        let url = format!("{}/job/list", self.baseurl,);
11468        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11469        header_map.append(
11470            ::reqwest::header::HeaderName::from_static("api-version"),
11471            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11472        );
11473        #[allow(unused_mut)]
11474        let mut request = self
11475            .client
11476            .post(url)
11477            .header(
11478                ::reqwest::header::ACCEPT,
11479                ::reqwest::header::HeaderValue::from_static("application/json"),
11480            )
11481            .query(&progenitor_client::QueryParam::new("_async", &async_))
11482            .headers(header_map)
11483            .build()?;
11484        let info = OperationInfo {
11485            operation_id: "job_list",
11486        };
11487        self.pre(&mut request, &info).await?;
11488        let result = self.exec(request, &info).await;
11489        self.post(&result, &info).await?;
11490        let response = result?;
11491        match response.status().as_u16() {
11492            200u16 => ResponseValue::from_response(response).await,
11493            400u16..=499u16 => Err(Error::ErrorResponse(
11494                ResponseValue::from_response(response).await?,
11495            )),
11496            500u16..=599u16 => Err(Error::ErrorResponse(
11497                ResponseValue::from_response(response).await?,
11498            )),
11499            _ => Err(Error::UnexpectedResponse(response)),
11500        }
11501    }
11502
11503    ///Get job status
11504    ///
11505    ///Returns timing, success state, output, and progress for a specific job.
11506    ///
11507    ///Sends a `POST` request to `/job/status`
11508    ///
11509    ///Arguments:
11510    /// - `async_`: Run the command asynchronously. Returns a job id
11511    ///   immediately.
11512    /// - `jobid`: Numeric identifier of the job to query, as returned from an
11513    ///   async call.
11514    pub async fn job_status<'a>(
11515        &'a self,
11516        async_: Option<bool>,
11517        jobid: f64,
11518    ) -> Result<ResponseValue<types::JobStatusResponse>, Error<types::RcError>> {
11519        let url = format!("{}/job/status", self.baseurl,);
11520        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11521        header_map.append(
11522            ::reqwest::header::HeaderName::from_static("api-version"),
11523            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11524        );
11525        #[allow(unused_mut)]
11526        let mut request = self
11527            .client
11528            .post(url)
11529            .header(
11530                ::reqwest::header::ACCEPT,
11531                ::reqwest::header::HeaderValue::from_static("application/json"),
11532            )
11533            .query(&progenitor_client::QueryParam::new("_async", &async_))
11534            .query(&progenitor_client::QueryParam::new("jobid", &jobid))
11535            .headers(header_map)
11536            .build()?;
11537        let info = OperationInfo {
11538            operation_id: "job_status",
11539        };
11540        self.pre(&mut request, &info).await?;
11541        let result = self.exec(request, &info).await;
11542        self.post(&result, &info).await?;
11543        let response = result?;
11544        match response.status().as_u16() {
11545            200u16 => ResponseValue::from_response(response).await,
11546            400u16..=499u16 => Err(Error::ErrorResponse(
11547                ResponseValue::from_response(response).await?,
11548            )),
11549            500u16..=599u16 => Err(Error::ErrorResponse(
11550                ResponseValue::from_response(response).await?,
11551            )),
11552            _ => Err(Error::UnexpectedResponse(response)),
11553        }
11554    }
11555
11556    ///Stop job
11557    ///
11558    ///Attempts to cancel a running job by ID.
11559    ///
11560    ///Sends a `POST` request to `/job/stop`
11561    ///
11562    ///Arguments:
11563    /// - `async_`: Run the command asynchronously. Returns a job id
11564    ///   immediately.
11565    /// - `jobid`: Numeric identifier of the job to cancel.
11566    pub async fn job_stop<'a>(
11567        &'a self,
11568        async_: Option<bool>,
11569        jobid: f64,
11570    ) -> Result<
11571        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
11572        Error<types::RcError>,
11573    > {
11574        let url = format!("{}/job/stop", self.baseurl,);
11575        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11576        header_map.append(
11577            ::reqwest::header::HeaderName::from_static("api-version"),
11578            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11579        );
11580        #[allow(unused_mut)]
11581        let mut request = self
11582            .client
11583            .post(url)
11584            .header(
11585                ::reqwest::header::ACCEPT,
11586                ::reqwest::header::HeaderValue::from_static("application/json"),
11587            )
11588            .query(&progenitor_client::QueryParam::new("_async", &async_))
11589            .query(&progenitor_client::QueryParam::new("jobid", &jobid))
11590            .headers(header_map)
11591            .build()?;
11592        let info = OperationInfo {
11593            operation_id: "job_stop",
11594        };
11595        self.pre(&mut request, &info).await?;
11596        let result = self.exec(request, &info).await;
11597        self.post(&result, &info).await?;
11598        let response = result?;
11599        match response.status().as_u16() {
11600            200u16 => ResponseValue::from_response(response).await,
11601            400u16..=499u16 => Err(Error::ErrorResponse(
11602                ResponseValue::from_response(response).await?,
11603            )),
11604            500u16..=599u16 => Err(Error::ErrorResponse(
11605                ResponseValue::from_response(response).await?,
11606            )),
11607            _ => Err(Error::UnexpectedResponse(response)),
11608        }
11609    }
11610
11611    ///Stop jobs in group
11612    ///
11613    ///Cancels all active jobs associated with the provided stats group.
11614    ///
11615    ///Sends a `POST` request to `/job/stopgroup`
11616    ///
11617    ///Arguments:
11618    /// - `async_`: Run the command asynchronously. Returns a job id
11619    ///   immediately.
11620    /// - `group`: Stats group name whose active jobs should be stopped.
11621    pub async fn job_stopgroup<'a>(
11622        &'a self,
11623        async_: Option<bool>,
11624        group: &'a str,
11625    ) -> Result<
11626        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
11627        Error<types::RcError>,
11628    > {
11629        let url = format!("{}/job/stopgroup", self.baseurl,);
11630        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11631        header_map.append(
11632            ::reqwest::header::HeaderName::from_static("api-version"),
11633            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11634        );
11635        #[allow(unused_mut)]
11636        let mut request = self
11637            .client
11638            .post(url)
11639            .header(
11640                ::reqwest::header::ACCEPT,
11641                ::reqwest::header::HeaderValue::from_static("application/json"),
11642            )
11643            .query(&progenitor_client::QueryParam::new("_async", &async_))
11644            .query(&progenitor_client::QueryParam::new("group", &group))
11645            .headers(header_map)
11646            .build()?;
11647        let info = OperationInfo {
11648            operation_id: "job_stopgroup",
11649        };
11650        self.pre(&mut request, &info).await?;
11651        let result = self.exec(request, &info).await;
11652        self.post(&result, &info).await?;
11653        let response = result?;
11654        match response.status().as_u16() {
11655            200u16 => ResponseValue::from_response(response).await,
11656            400u16..=499u16 => Err(Error::ErrorResponse(
11657                ResponseValue::from_response(response).await?,
11658            )),
11659            500u16..=599u16 => Err(Error::ErrorResponse(
11660                ResponseValue::from_response(response).await?,
11661            )),
11662            _ => Err(Error::UnexpectedResponse(response)),
11663        }
11664    }
11665
11666    ///List objects
11667    ///
11668    ///Lists objects and directories for a remote path, returning the same
11669    /// fields as `rclone lsjson`.
11670    ///
11671    ///Sends a `POST` request to `/operations/list`
11672    ///
11673    ///Arguments:
11674    /// - `async_`: Run the command asynchronously. Returns a job id
11675    ///   immediately.
11676    /// - `group`: Assign the request to a custom stats group.
11677    /// - `dirs_only`: Set to true to return only directory entries.
11678    /// - `files_only`: Set to true to return only file entries.
11679    /// - `fs`: Remote name or path to list, for example `drive:`.
11680    /// - `hash_types`: Specify one or more hash algorithms to include when
11681    ///   `showHash` is true (e.g. `md5`).
11682    /// - `metadata`: Set to true to include backend-provided metadata maps.
11683    /// - `no_mime_type`: Set to true to omit MIME type detection.
11684    /// - `no_mod_time`: Set to true to omit modification times for faster
11685    ///   listings on some backends.
11686    /// - `opt`: Optional JSON-encoded object of listing flags (e.g. `{
11687    ///   "recurse": true, "showHash": true }`).
11688    /// - `recurse`: Set to true to list directories recursively.
11689    /// - `remote`: Directory path within `fs` to list; leave empty to target
11690    ///   the root.
11691    /// - `show_encrypted`: Set to true to include encrypted names when using
11692    ///   crypt remotes.
11693    /// - `show_hash`: Set to true to include hash digests for each entry.
11694    /// - `show_orig_i_ds`: Set to true to include original backend identifiers
11695    ///   where available.
11696    pub async fn operations_list<'a>(
11697        &'a self,
11698        async_: Option<bool>,
11699        group: Option<&'a str>,
11700        dirs_only: Option<bool>,
11701        files_only: Option<bool>,
11702        fs: &'a str,
11703        hash_types: Option<&'a ::std::vec::Vec<::std::string::String>>,
11704        metadata: Option<bool>,
11705        no_mime_type: Option<bool>,
11706        no_mod_time: Option<bool>,
11707        opt: Option<&'a str>,
11708        recurse: Option<bool>,
11709        remote: &'a str,
11710        show_encrypted: Option<bool>,
11711        show_hash: Option<bool>,
11712        show_orig_i_ds: Option<bool>,
11713    ) -> Result<ResponseValue<types::OperationsListResponse>, Error<types::RcError>> {
11714        let url = format!("{}/operations/list", self.baseurl,);
11715        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11716        header_map.append(
11717            ::reqwest::header::HeaderName::from_static("api-version"),
11718            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11719        );
11720        #[allow(unused_mut)]
11721        let mut request = self
11722            .client
11723            .post(url)
11724            .header(
11725                ::reqwest::header::ACCEPT,
11726                ::reqwest::header::HeaderValue::from_static("application/json"),
11727            )
11728            .query(&progenitor_client::QueryParam::new("_async", &async_))
11729            .query(&progenitor_client::QueryParam::new("_group", &group))
11730            .query(&progenitor_client::QueryParam::new("dirsOnly", &dirs_only))
11731            .query(&progenitor_client::QueryParam::new(
11732                "filesOnly",
11733                &files_only,
11734            ))
11735            .query(&progenitor_client::QueryParam::new("fs", &fs))
11736            .query(&progenitor_client::QueryParam::new(
11737                "hashTypes",
11738                &hash_types,
11739            ))
11740            .query(&progenitor_client::QueryParam::new("metadata", &metadata))
11741            .query(&progenitor_client::QueryParam::new(
11742                "noMimeType",
11743                &no_mime_type,
11744            ))
11745            .query(&progenitor_client::QueryParam::new(
11746                "noModTime",
11747                &no_mod_time,
11748            ))
11749            .query(&progenitor_client::QueryParam::new("opt", &opt))
11750            .query(&progenitor_client::QueryParam::new("recurse", &recurse))
11751            .query(&progenitor_client::QueryParam::new("remote", &remote))
11752            .query(&progenitor_client::QueryParam::new(
11753                "showEncrypted",
11754                &show_encrypted,
11755            ))
11756            .query(&progenitor_client::QueryParam::new("showHash", &show_hash))
11757            .query(&progenitor_client::QueryParam::new(
11758                "showOrigIDs",
11759                &show_orig_i_ds,
11760            ))
11761            .headers(header_map)
11762            .build()?;
11763        let info = OperationInfo {
11764            operation_id: "operations_list",
11765        };
11766        self.pre(&mut request, &info).await?;
11767        let result = self.exec(request, &info).await;
11768        self.post(&result, &info).await?;
11769        let response = result?;
11770        match response.status().as_u16() {
11771            200u16 => ResponseValue::from_response(response).await,
11772            400u16..=499u16 => Err(Error::ErrorResponse(
11773                ResponseValue::from_response(response).await?,
11774            )),
11775            500u16..=599u16 => Err(Error::ErrorResponse(
11776                ResponseValue::from_response(response).await?,
11777            )),
11778            _ => Err(Error::UnexpectedResponse(response)),
11779        }
11780    }
11781
11782    ///Stat an object
11783    ///
11784    ///Returns metadata for a single file or directory, mirroring `rclone
11785    /// lsjson` on one entry.
11786    ///
11787    ///Sends a `POST` request to `/operations/stat`
11788    ///
11789    ///Arguments:
11790    /// - `async_`: Run the command asynchronously. Returns a job id
11791    ///   immediately.
11792    /// - `group`: Assign the request to a custom stats group.
11793    /// - `fs`: Remote name or path that contains the item to inspect.
11794    /// - `opt`: Optional JSON object of listing flags, matching those accepted
11795    ///   by `operations/list`.
11796    /// - `remote`: Path to the file or directory within `fs` to describe.
11797    pub async fn operations_stat<'a>(
11798        &'a self,
11799        async_: Option<bool>,
11800        group: Option<&'a str>,
11801        fs: &'a str,
11802        opt: Option<&'a str>,
11803        remote: &'a str,
11804    ) -> Result<ResponseValue<types::OperationsStatResponse>, Error<types::RcError>> {
11805        let url = format!("{}/operations/stat", self.baseurl,);
11806        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11807        header_map.append(
11808            ::reqwest::header::HeaderName::from_static("api-version"),
11809            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11810        );
11811        #[allow(unused_mut)]
11812        let mut request = self
11813            .client
11814            .post(url)
11815            .header(
11816                ::reqwest::header::ACCEPT,
11817                ::reqwest::header::HeaderValue::from_static("application/json"),
11818            )
11819            .query(&progenitor_client::QueryParam::new("_async", &async_))
11820            .query(&progenitor_client::QueryParam::new("_group", &group))
11821            .query(&progenitor_client::QueryParam::new("fs", &fs))
11822            .query(&progenitor_client::QueryParam::new("opt", &opt))
11823            .query(&progenitor_client::QueryParam::new("remote", &remote))
11824            .headers(header_map)
11825            .build()?;
11826        let info = OperationInfo {
11827            operation_id: "operations_stat",
11828        };
11829        self.pre(&mut request, &info).await?;
11830        let result = self.exec(request, &info).await;
11831        self.post(&result, &info).await?;
11832        let response = result?;
11833        match response.status().as_u16() {
11834            200u16 => ResponseValue::from_response(response).await,
11835            400u16..=499u16 => Err(Error::ErrorResponse(
11836                ResponseValue::from_response(response).await?,
11837            )),
11838            500u16..=599u16 => Err(Error::ErrorResponse(
11839                ResponseValue::from_response(response).await?,
11840            )),
11841            _ => Err(Error::UnexpectedResponse(response)),
11842        }
11843    }
11844
11845    ///Get remote quota
11846    ///
11847    ///Returns storage quota and usage details for the remote, equivalent to
11848    /// `rclone about`.
11849    ///
11850    ///Sends a `POST` request to `/operations/about`
11851    ///
11852    ///Arguments:
11853    /// - `async_`: Run the command asynchronously. Returns a job id
11854    ///   immediately.
11855    /// - `group`: Assign the request to a custom stats group.
11856    /// - `fs`: Remote name or path to query for capacity information.
11857    pub async fn operations_about<'a>(
11858        &'a self,
11859        async_: Option<bool>,
11860        group: Option<&'a str>,
11861        fs: &'a str,
11862    ) -> Result<ResponseValue<types::OperationsAboutResponse>, Error<types::RcError>> {
11863        let url = format!("{}/operations/about", self.baseurl,);
11864        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11865        header_map.append(
11866            ::reqwest::header::HeaderName::from_static("api-version"),
11867            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11868        );
11869        #[allow(unused_mut)]
11870        let mut request = self
11871            .client
11872            .post(url)
11873            .header(
11874                ::reqwest::header::ACCEPT,
11875                ::reqwest::header::HeaderValue::from_static("application/json"),
11876            )
11877            .query(&progenitor_client::QueryParam::new("_async", &async_))
11878            .query(&progenitor_client::QueryParam::new("_group", &group))
11879            .query(&progenitor_client::QueryParam::new("fs", &fs))
11880            .headers(header_map)
11881            .build()?;
11882        let info = OperationInfo {
11883            operation_id: "operations_about",
11884        };
11885        self.pre(&mut request, &info).await?;
11886        let result = self.exec(request, &info).await;
11887        self.post(&result, &info).await?;
11888        let response = result?;
11889        match response.status().as_u16() {
11890            200u16 => ResponseValue::from_response(response).await,
11891            400u16..=499u16 => Err(Error::ErrorResponse(
11892                ResponseValue::from_response(response).await?,
11893            )),
11894            500u16..=599u16 => Err(Error::ErrorResponse(
11895                ResponseValue::from_response(response).await?,
11896            )),
11897            _ => Err(Error::UnexpectedResponse(response)),
11898        }
11899    }
11900
11901    ///Upload files via multipart
11902    ///
11903    ///Accepts multipart/form-data payloads and writes the uploaded files to
11904    /// the specified remote path.
11905    ///
11906    ///Sends a `POST` request to `/operations/uploadfile`
11907    ///
11908    ///Arguments:
11909    /// - `async_`: Run the command asynchronously. Returns a job id
11910    ///   immediately.
11911    /// - `group`: Assign the request to a custom stats group.
11912    /// - `fs`: Remote name or path where the uploaded file should be stored.
11913    /// - `remote`: Destination path within `fs` for the uploaded file.
11914    /// - `body`: Multipart form payload containing one or more files to upload.
11915    pub async fn operations_uploadfile<'a, B: Into<reqwest::Body>>(
11916        &'a self,
11917        async_: Option<bool>,
11918        group: Option<&'a str>,
11919        fs: &'a str,
11920        remote: &'a str,
11921        body: B,
11922    ) -> Result<
11923        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
11924        Error<types::RcError>,
11925    > {
11926        let url = format!("{}/operations/uploadfile", self.baseurl,);
11927        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11928        header_map.append(
11929            ::reqwest::header::HeaderName::from_static("api-version"),
11930            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
11931        );
11932        #[allow(unused_mut)]
11933        let mut request = self
11934            .client
11935            .post(url)
11936            .header(
11937                ::reqwest::header::ACCEPT,
11938                ::reqwest::header::HeaderValue::from_static("application/json"),
11939            )
11940            .header(
11941                ::reqwest::header::CONTENT_TYPE,
11942                ::reqwest::header::HeaderValue::from_static("application/octet-stream"),
11943            )
11944            .body(body)
11945            .query(&progenitor_client::QueryParam::new("_async", &async_))
11946            .query(&progenitor_client::QueryParam::new("_group", &group))
11947            .query(&progenitor_client::QueryParam::new("fs", &fs))
11948            .query(&progenitor_client::QueryParam::new("remote", &remote))
11949            .headers(header_map)
11950            .build()?;
11951        let info = OperationInfo {
11952            operation_id: "operations_uploadfile",
11953        };
11954        self.pre(&mut request, &info).await?;
11955        let result = self.exec(request, &info).await;
11956        self.post(&result, &info).await?;
11957        let response = result?;
11958        match response.status().as_u16() {
11959            200u16 => ResponseValue::from_response(response).await,
11960            400u16..=499u16 => Err(Error::ErrorResponse(
11961                ResponseValue::from_response(response).await?,
11962            )),
11963            500u16..=599u16 => Err(Error::ErrorResponse(
11964                ResponseValue::from_response(response).await?,
11965            )),
11966            _ => Err(Error::UnexpectedResponse(response)),
11967        }
11968    }
11969
11970    ///Purge directory
11971    ///
11972    ///Deletes a directory or container and all of its contents.
11973    ///
11974    ///Sends a `POST` request to `/operations/purge`
11975    ///
11976    ///Arguments:
11977    /// - `async_`: Run the command asynchronously. Returns a job id
11978    ///   immediately.
11979    /// - `config`: JSON encoded config overrides applied for this call only.
11980    /// - `filter`: JSON encoded filter overrides applied for this call only.
11981    /// - `group`: Assign the request to a custom stats group.
11982    /// - `fs`: Remote name or path from which to remove all contents.
11983    /// - `remote`: Path within `fs` whose contents should be purged.
11984    pub async fn operations_purge<'a>(
11985        &'a self,
11986        async_: Option<bool>,
11987        config: Option<&'a str>,
11988        filter: Option<&'a str>,
11989        group: Option<&'a str>,
11990        fs: &'a str,
11991        remote: &'a str,
11992    ) -> Result<
11993        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
11994        Error<types::RcError>,
11995    > {
11996        let url = format!("{}/operations/purge", self.baseurl,);
11997        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
11998        header_map.append(
11999            ::reqwest::header::HeaderName::from_static("api-version"),
12000            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12001        );
12002        #[allow(unused_mut)]
12003        let mut request = self
12004            .client
12005            .post(url)
12006            .header(
12007                ::reqwest::header::ACCEPT,
12008                ::reqwest::header::HeaderValue::from_static("application/json"),
12009            )
12010            .query(&progenitor_client::QueryParam::new("_async", &async_))
12011            .query(&progenitor_client::QueryParam::new("_config", &config))
12012            .query(&progenitor_client::QueryParam::new("_filter", &filter))
12013            .query(&progenitor_client::QueryParam::new("_group", &group))
12014            .query(&progenitor_client::QueryParam::new("fs", &fs))
12015            .query(&progenitor_client::QueryParam::new("remote", &remote))
12016            .headers(header_map)
12017            .build()?;
12018        let info = OperationInfo {
12019            operation_id: "operations_purge",
12020        };
12021        self.pre(&mut request, &info).await?;
12022        let result = self.exec(request, &info).await;
12023        self.post(&result, &info).await?;
12024        let response = result?;
12025        match response.status().as_u16() {
12026            200u16 => ResponseValue::from_response(response).await,
12027            400u16..=499u16 => Err(Error::ErrorResponse(
12028                ResponseValue::from_response(response).await?,
12029            )),
12030            500u16..=599u16 => Err(Error::ErrorResponse(
12031                ResponseValue::from_response(response).await?,
12032            )),
12033            _ => Err(Error::UnexpectedResponse(response)),
12034        }
12035    }
12036
12037    ///Create directory
12038    ///
12039    ///Creates the target directory or container if it does not exist.
12040    ///
12041    ///Sends a `POST` request to `/operations/mkdir`
12042    ///
12043    ///Arguments:
12044    /// - `async_`: Run the command asynchronously. Returns a job id
12045    ///   immediately.
12046    /// - `group`: Assign the request to a custom stats group.
12047    /// - `fs`: Remote name or path in which to create a directory.
12048    /// - `remote`: Directory path within `fs` to create.
12049    pub async fn operations_mkdir<'a>(
12050        &'a self,
12051        async_: Option<bool>,
12052        group: Option<&'a str>,
12053        fs: &'a str,
12054        remote: &'a str,
12055    ) -> Result<
12056        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
12057        Error<types::RcError>,
12058    > {
12059        let url = format!("{}/operations/mkdir", self.baseurl,);
12060        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12061        header_map.append(
12062            ::reqwest::header::HeaderName::from_static("api-version"),
12063            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12064        );
12065        #[allow(unused_mut)]
12066        let mut request = self
12067            .client
12068            .post(url)
12069            .header(
12070                ::reqwest::header::ACCEPT,
12071                ::reqwest::header::HeaderValue::from_static("application/json"),
12072            )
12073            .query(&progenitor_client::QueryParam::new("_async", &async_))
12074            .query(&progenitor_client::QueryParam::new("_group", &group))
12075            .query(&progenitor_client::QueryParam::new("fs", &fs))
12076            .query(&progenitor_client::QueryParam::new("remote", &remote))
12077            .headers(header_map)
12078            .build()?;
12079        let info = OperationInfo {
12080            operation_id: "operations_mkdir",
12081        };
12082        self.pre(&mut request, &info).await?;
12083        let result = self.exec(request, &info).await;
12084        self.post(&result, &info).await?;
12085        let response = result?;
12086        match response.status().as_u16() {
12087            200u16 => ResponseValue::from_response(response).await,
12088            400u16..=499u16 => Err(Error::ErrorResponse(
12089                ResponseValue::from_response(response).await?,
12090            )),
12091            500u16..=599u16 => Err(Error::ErrorResponse(
12092                ResponseValue::from_response(response).await?,
12093            )),
12094            _ => Err(Error::UnexpectedResponse(response)),
12095        }
12096    }
12097
12098    ///Remove empty directory
12099    ///
12100    ///Deletes an empty directory or container.
12101    ///
12102    ///Sends a `POST` request to `/operations/rmdir`
12103    ///
12104    ///Arguments:
12105    /// - `async_`: Run the command asynchronously. Returns a job id
12106    ///   immediately.
12107    /// - `group`: Assign the request to a custom stats group.
12108    /// - `fs`: Remote name or path containing the directory to remove.
12109    /// - `remote`: Directory path within `fs` to delete.
12110    pub async fn operations_rmdir<'a>(
12111        &'a self,
12112        async_: Option<bool>,
12113        group: Option<&'a str>,
12114        fs: &'a str,
12115        remote: &'a str,
12116    ) -> Result<
12117        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
12118        Error<types::RcError>,
12119    > {
12120        let url = format!("{}/operations/rmdir", self.baseurl,);
12121        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12122        header_map.append(
12123            ::reqwest::header::HeaderName::from_static("api-version"),
12124            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12125        );
12126        #[allow(unused_mut)]
12127        let mut request = self
12128            .client
12129            .post(url)
12130            .header(
12131                ::reqwest::header::ACCEPT,
12132                ::reqwest::header::HeaderValue::from_static("application/json"),
12133            )
12134            .query(&progenitor_client::QueryParam::new("_async", &async_))
12135            .query(&progenitor_client::QueryParam::new("_group", &group))
12136            .query(&progenitor_client::QueryParam::new("fs", &fs))
12137            .query(&progenitor_client::QueryParam::new("remote", &remote))
12138            .headers(header_map)
12139            .build()?;
12140        let info = OperationInfo {
12141            operation_id: "operations_rmdir",
12142        };
12143        self.pre(&mut request, &info).await?;
12144        let result = self.exec(request, &info).await;
12145        self.post(&result, &info).await?;
12146        let response = result?;
12147        match response.status().as_u16() {
12148            200u16 => ResponseValue::from_response(response).await,
12149            400u16..=499u16 => Err(Error::ErrorResponse(
12150                ResponseValue::from_response(response).await?,
12151            )),
12152            500u16..=599u16 => Err(Error::ErrorResponse(
12153                ResponseValue::from_response(response).await?,
12154            )),
12155            _ => Err(Error::UnexpectedResponse(response)),
12156        }
12157    }
12158
12159    ///Compare source and destination
12160    ///
12161    ///Compares source and destination trees, reporting matches, differences,
12162    /// and missing files.
12163    ///
12164    ///Sends a `POST` request to `/operations/check`
12165    ///
12166    ///Arguments:
12167    /// - `async_`: Run the command asynchronously. Returns a job id
12168    ///   immediately.
12169    /// - `group`: Assign the request to a custom stats group.
12170    /// - `check_file_fs`: Remote containing the checksum SUM file when using
12171    ///   `checkFileHash`.
12172    /// - `check_file_hash`: Hash name to expect in the supplied SUM file, such
12173    ///   as `md5`.
12174    /// - `check_file_remote`: Path within `checkFileFs` to the checksum SUM
12175    ///   file.
12176    /// - `combined`: Set to true to include a combined summary report in the
12177    ///   response.
12178    /// - `differ`: Set to true to include differing files in the report.
12179    /// - `download`: Set to true to read file contents during comparison
12180    ///   instead of relying on hashes.
12181    /// - `dst_fs`: Destination remote name or path that should match the
12182    ///   source.
12183    /// - `error`: Set to true to include entries that encountered errors.
12184    /// - `match_`: Set to true to include matching files in the report.
12185    /// - `missing_on_dst`: Set to true to report files missing from the
12186    ///   destination.
12187    /// - `missing_on_src`: Set to true to report files missing from the source.
12188    /// - `one_way`: Set to true to only ensure that source files exist on the
12189    ///   destination.
12190    /// - `src_fs`: Source remote name or path to verify, e.g. `drive:`.
12191    pub async fn operations_check<'a>(
12192        &'a self,
12193        async_: Option<bool>,
12194        group: Option<&'a str>,
12195        check_file_fs: Option<&'a str>,
12196        check_file_hash: Option<&'a str>,
12197        check_file_remote: Option<&'a str>,
12198        combined: Option<bool>,
12199        differ: Option<bool>,
12200        download: Option<bool>,
12201        dst_fs: &'a str,
12202        error: Option<bool>,
12203        match_: Option<bool>,
12204        missing_on_dst: Option<bool>,
12205        missing_on_src: Option<bool>,
12206        one_way: Option<bool>,
12207        src_fs: &'a str,
12208    ) -> Result<ResponseValue<types::OperationsCheckResponse>, Error<types::RcError>> {
12209        let url = format!("{}/operations/check", self.baseurl,);
12210        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12211        header_map.append(
12212            ::reqwest::header::HeaderName::from_static("api-version"),
12213            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12214        );
12215        #[allow(unused_mut)]
12216        let mut request = self
12217            .client
12218            .post(url)
12219            .header(
12220                ::reqwest::header::ACCEPT,
12221                ::reqwest::header::HeaderValue::from_static("application/json"),
12222            )
12223            .query(&progenitor_client::QueryParam::new("_async", &async_))
12224            .query(&progenitor_client::QueryParam::new("_group", &group))
12225            .query(&progenitor_client::QueryParam::new(
12226                "checkFileFs",
12227                &check_file_fs,
12228            ))
12229            .query(&progenitor_client::QueryParam::new(
12230                "checkFileHash",
12231                &check_file_hash,
12232            ))
12233            .query(&progenitor_client::QueryParam::new(
12234                "checkFileRemote",
12235                &check_file_remote,
12236            ))
12237            .query(&progenitor_client::QueryParam::new("combined", &combined))
12238            .query(&progenitor_client::QueryParam::new("differ", &differ))
12239            .query(&progenitor_client::QueryParam::new("download", &download))
12240            .query(&progenitor_client::QueryParam::new("dstFs", &dst_fs))
12241            .query(&progenitor_client::QueryParam::new("error", &error))
12242            .query(&progenitor_client::QueryParam::new("match", &match_))
12243            .query(&progenitor_client::QueryParam::new(
12244                "missingOnDst",
12245                &missing_on_dst,
12246            ))
12247            .query(&progenitor_client::QueryParam::new(
12248                "missingOnSrc",
12249                &missing_on_src,
12250            ))
12251            .query(&progenitor_client::QueryParam::new("oneWay", &one_way))
12252            .query(&progenitor_client::QueryParam::new("srcFs", &src_fs))
12253            .headers(header_map)
12254            .build()?;
12255        let info = OperationInfo {
12256            operation_id: "operations_check",
12257        };
12258        self.pre(&mut request, &info).await?;
12259        let result = self.exec(request, &info).await;
12260        self.post(&result, &info).await?;
12261        let response = result?;
12262        match response.status().as_u16() {
12263            200u16 => ResponseValue::from_response(response).await,
12264            400u16..=499u16 => Err(Error::ErrorResponse(
12265                ResponseValue::from_response(response).await?,
12266            )),
12267            500u16..=599u16 => Err(Error::ErrorResponse(
12268                ResponseValue::from_response(response).await?,
12269            )),
12270            _ => Err(Error::UnexpectedResponse(response)),
12271        }
12272    }
12273
12274    ///Sync source to destination
12275    ///
12276    ///Synchronises a source remote to a destination remote, making the
12277    /// destination match the source.
12278    ///
12279    ///Sends a `POST` request to `/sync/sync`
12280    ///
12281    ///Arguments:
12282    /// - `async_`: Run the command asynchronously. Returns a job id
12283    ///   immediately.
12284    /// - `config`: JSON encoded config overrides applied for this call only.
12285    /// - `filter`: JSON encoded filter overrides applied for this call only.
12286    /// - `group`: Assign the request to a custom stats group.
12287    /// - `create_empty_src_dirs`: Set to true to create empty source
12288    ///   directories on the destination.
12289    /// - `dst_fs`: Destination remote path to sync to, e.g. `drive:dst`.
12290    /// - `src_fs`: Source remote path to sync from, e.g. `drive:src`.
12291    pub async fn sync_sync<'a>(
12292        &'a self,
12293        async_: Option<bool>,
12294        config: Option<&'a str>,
12295        filter: Option<&'a str>,
12296        group: Option<&'a str>,
12297        create_empty_src_dirs: Option<bool>,
12298        dst_fs: &'a str,
12299        src_fs: &'a str,
12300    ) -> Result<ResponseValue<types::SyncSyncResponse>, Error<types::RcError>> {
12301        let url = format!("{}/sync/sync", self.baseurl,);
12302        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12303        header_map.append(
12304            ::reqwest::header::HeaderName::from_static("api-version"),
12305            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12306        );
12307        #[allow(unused_mut)]
12308        let mut request = self
12309            .client
12310            .post(url)
12311            .header(
12312                ::reqwest::header::ACCEPT,
12313                ::reqwest::header::HeaderValue::from_static("application/json"),
12314            )
12315            .query(&progenitor_client::QueryParam::new("_async", &async_))
12316            .query(&progenitor_client::QueryParam::new("_config", &config))
12317            .query(&progenitor_client::QueryParam::new("_filter", &filter))
12318            .query(&progenitor_client::QueryParam::new("_group", &group))
12319            .query(&progenitor_client::QueryParam::new(
12320                "createEmptySrcDirs",
12321                &create_empty_src_dirs,
12322            ))
12323            .query(&progenitor_client::QueryParam::new("dstFs", &dst_fs))
12324            .query(&progenitor_client::QueryParam::new("srcFs", &src_fs))
12325            .headers(header_map)
12326            .build()?;
12327        let info = OperationInfo {
12328            operation_id: "sync_sync",
12329        };
12330        self.pre(&mut request, &info).await?;
12331        let result = self.exec(request, &info).await;
12332        self.post(&result, &info).await?;
12333        let response = result?;
12334        match response.status().as_u16() {
12335            200u16 => ResponseValue::from_response(response).await,
12336            400u16..=499u16 => Err(Error::ErrorResponse(
12337                ResponseValue::from_response(response).await?,
12338            )),
12339            500u16..=599u16 => Err(Error::ErrorResponse(
12340                ResponseValue::from_response(response).await?,
12341            )),
12342            _ => Err(Error::UnexpectedResponse(response)),
12343        }
12344    }
12345
12346    ///Copy source to destination
12347    ///
12348    ///Copies objects from a source remote to a destination remote without
12349    /// deleting destination files.
12350    ///
12351    ///Sends a `POST` request to `/sync/copy`
12352    ///
12353    ///Arguments:
12354    /// - `async_`: Run the command asynchronously. Returns a job id
12355    ///   immediately.
12356    /// - `config`: JSON encoded config overrides applied for this call only.
12357    /// - `filter`: JSON encoded filter overrides applied for this call only.
12358    /// - `group`: Assign the request to a custom stats group.
12359    /// - `create_empty_src_dirs`: Set to true to replicate empty source
12360    ///   directories on the destination.
12361    /// - `dst_fs`: Destination remote path to copy to.
12362    /// - `src_fs`: Source remote path to copy from.
12363    pub async fn sync_copy<'a>(
12364        &'a self,
12365        async_: Option<bool>,
12366        config: Option<&'a str>,
12367        filter: Option<&'a str>,
12368        group: Option<&'a str>,
12369        create_empty_src_dirs: Option<bool>,
12370        dst_fs: &'a str,
12371        src_fs: &'a str,
12372    ) -> Result<ResponseValue<types::SyncCopyResponse>, Error<types::RcError>> {
12373        let url = format!("{}/sync/copy", self.baseurl,);
12374        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12375        header_map.append(
12376            ::reqwest::header::HeaderName::from_static("api-version"),
12377            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12378        );
12379        #[allow(unused_mut)]
12380        let mut request = self
12381            .client
12382            .post(url)
12383            .header(
12384                ::reqwest::header::ACCEPT,
12385                ::reqwest::header::HeaderValue::from_static("application/json"),
12386            )
12387            .query(&progenitor_client::QueryParam::new("_async", &async_))
12388            .query(&progenitor_client::QueryParam::new("_config", &config))
12389            .query(&progenitor_client::QueryParam::new("_filter", &filter))
12390            .query(&progenitor_client::QueryParam::new("_group", &group))
12391            .query(&progenitor_client::QueryParam::new(
12392                "createEmptySrcDirs",
12393                &create_empty_src_dirs,
12394            ))
12395            .query(&progenitor_client::QueryParam::new("dstFs", &dst_fs))
12396            .query(&progenitor_client::QueryParam::new("srcFs", &src_fs))
12397            .headers(header_map)
12398            .build()?;
12399        let info = OperationInfo {
12400            operation_id: "sync_copy",
12401        };
12402        self.pre(&mut request, &info).await?;
12403        let result = self.exec(request, &info).await;
12404        self.post(&result, &info).await?;
12405        let response = result?;
12406        match response.status().as_u16() {
12407            200u16 => ResponseValue::from_response(response).await,
12408            400u16..=499u16 => Err(Error::ErrorResponse(
12409                ResponseValue::from_response(response).await?,
12410            )),
12411            500u16..=599u16 => Err(Error::ErrorResponse(
12412                ResponseValue::from_response(response).await?,
12413            )),
12414            _ => Err(Error::UnexpectedResponse(response)),
12415        }
12416    }
12417
12418    ///Move source to destination
12419    ///
12420    ///Moves objects from a source remote to a destination remote, optionally
12421    /// cleaning up empty directories.
12422    ///
12423    ///Sends a `POST` request to `/sync/move`
12424    ///
12425    ///Arguments:
12426    /// - `async_`: Run the command asynchronously. Returns a job id
12427    ///   immediately.
12428    /// - `config`: JSON encoded config overrides applied for this call only.
12429    /// - `filter`: JSON encoded filter overrides applied for this call only.
12430    /// - `group`: Assign the request to a custom stats group.
12431    /// - `create_empty_src_dirs`: Set to true to create empty source
12432    ///   directories on the destination.
12433    /// - `delete_empty_src_dirs`: Set to true to delete empty directories from
12434    ///   the source after the move completes.
12435    /// - `dst_fs`: Destination remote path that will receive moved files.
12436    /// - `src_fs`: Source remote path whose contents will be moved.
12437    pub async fn sync_move<'a>(
12438        &'a self,
12439        async_: Option<bool>,
12440        config: Option<&'a str>,
12441        filter: Option<&'a str>,
12442        group: Option<&'a str>,
12443        create_empty_src_dirs: Option<bool>,
12444        delete_empty_src_dirs: Option<bool>,
12445        dst_fs: &'a str,
12446        src_fs: &'a str,
12447    ) -> Result<ResponseValue<types::SyncMoveResponse>, Error<types::RcError>> {
12448        let url = format!("{}/sync/move", self.baseurl,);
12449        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12450        header_map.append(
12451            ::reqwest::header::HeaderName::from_static("api-version"),
12452            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12453        );
12454        #[allow(unused_mut)]
12455        let mut request = self
12456            .client
12457            .post(url)
12458            .header(
12459                ::reqwest::header::ACCEPT,
12460                ::reqwest::header::HeaderValue::from_static("application/json"),
12461            )
12462            .query(&progenitor_client::QueryParam::new("_async", &async_))
12463            .query(&progenitor_client::QueryParam::new("_config", &config))
12464            .query(&progenitor_client::QueryParam::new("_filter", &filter))
12465            .query(&progenitor_client::QueryParam::new("_group", &group))
12466            .query(&progenitor_client::QueryParam::new(
12467                "createEmptySrcDirs",
12468                &create_empty_src_dirs,
12469            ))
12470            .query(&progenitor_client::QueryParam::new(
12471                "deleteEmptySrcDirs",
12472                &delete_empty_src_dirs,
12473            ))
12474            .query(&progenitor_client::QueryParam::new("dstFs", &dst_fs))
12475            .query(&progenitor_client::QueryParam::new("srcFs", &src_fs))
12476            .headers(header_map)
12477            .build()?;
12478        let info = OperationInfo {
12479            operation_id: "sync_move",
12480        };
12481        self.pre(&mut request, &info).await?;
12482        let result = self.exec(request, &info).await;
12483        self.post(&result, &info).await?;
12484        let response = result?;
12485        match response.status().as_u16() {
12486            200u16 => ResponseValue::from_response(response).await,
12487            400u16..=499u16 => Err(Error::ErrorResponse(
12488                ResponseValue::from_response(response).await?,
12489            )),
12490            500u16..=599u16 => Err(Error::ErrorResponse(
12491                ResponseValue::from_response(response).await?,
12492            )),
12493            _ => Err(Error::UnexpectedResponse(response)),
12494        }
12495    }
12496
12497    ///Bidirectional sync
12498    ///
12499    ///Performs a bidirectional synchronisation between two paths, supporting
12500    /// safety checks and recovery options.
12501    ///
12502    ///Sends a `POST` request to `/sync/bisync`
12503    ///
12504    ///Arguments:
12505    /// - `async_`: Run the command asynchronously. Returns a job id
12506    ///   immediately.
12507    /// - `config`: JSON encoded config overrides applied for this call only.
12508    /// - `filter`: JSON encoded filter overrides applied for this call only.
12509    /// - `group`: Assign the request to a custom stats group.
12510    /// - `backupdir1`: Backup directory on the first remote for changed files.
12511    /// - `backupdir2`: Backup directory on the second remote for changed files.
12512    /// - `check_access`: Set to true to abort if `RCLONE_TEST` files are
12513    ///   missing on either side.
12514    /// - `check_filename`: Override the access-check sentinel filename;
12515    ///   defaults to `RCLONE_TEST`.
12516    /// - `check_sync`: Controls final listing comparison; leave true for normal
12517    ///   verification or set false to skip.
12518    /// - `create_empty_src_dirs`: Set to true to mirror empty directories
12519    ///   between the two paths.
12520    /// - `dry_run`: Set to true to simulate the bisync run without making
12521    ///   changes.
12522    /// - `filters_file`: Path to an rclone filters file applied to both paths.
12523    /// - `force`: Set to true to bypass the `maxDelete` safety check.
12524    /// - `ignore_listing_checksum`: Set to true to ignore checksum differences
12525    ///   when comparing listings.
12526    /// - `max_delete`: Abort the run if deletions exceed this percentage
12527    ///   (default 50).
12528    /// - `no_cleanup`: Set to true to keep bisync working files after
12529    ///   completion.
12530    /// - `path1`: First remote directory, e.g. `drive:path1`.
12531    /// - `path2`: Second remote directory, e.g. `drive:path2`.
12532    /// - `remove_empty_dirs`: Set to true to remove empty directories during
12533    ///   cleanup.
12534    /// - `resilient`: Set to true to allow retrying after certain recoverable
12535    ///   errors.
12536    /// - `resync`: Set to true to perform a one-time resync, rebuilding bisync
12537    ///   history.
12538    /// - `workdir`: Directory path used to store bisync working files.
12539    pub async fn sync_bisync<'a>(
12540        &'a self,
12541        async_: Option<bool>,
12542        config: Option<&'a str>,
12543        filter: Option<&'a str>,
12544        group: Option<&'a str>,
12545        backupdir1: Option<&'a str>,
12546        backupdir2: Option<&'a str>,
12547        check_access: Option<bool>,
12548        check_filename: Option<&'a str>,
12549        check_sync: Option<bool>,
12550        create_empty_src_dirs: Option<bool>,
12551        dry_run: Option<bool>,
12552        filters_file: Option<&'a str>,
12553        force: Option<bool>,
12554        ignore_listing_checksum: Option<bool>,
12555        max_delete: Option<f64>,
12556        no_cleanup: Option<bool>,
12557        path1: &'a str,
12558        path2: &'a str,
12559        remove_empty_dirs: Option<bool>,
12560        resilient: Option<bool>,
12561        resync: Option<bool>,
12562        workdir: Option<&'a str>,
12563    ) -> Result<ResponseValue<types::SyncBisyncResponse>, Error<types::RcError>> {
12564        let url = format!("{}/sync/bisync", self.baseurl,);
12565        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12566        header_map.append(
12567            ::reqwest::header::HeaderName::from_static("api-version"),
12568            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12569        );
12570        #[allow(unused_mut)]
12571        let mut request = self
12572            .client
12573            .post(url)
12574            .header(
12575                ::reqwest::header::ACCEPT,
12576                ::reqwest::header::HeaderValue::from_static("application/json"),
12577            )
12578            .query(&progenitor_client::QueryParam::new("_async", &async_))
12579            .query(&progenitor_client::QueryParam::new("_config", &config))
12580            .query(&progenitor_client::QueryParam::new("_filter", &filter))
12581            .query(&progenitor_client::QueryParam::new("_group", &group))
12582            .query(&progenitor_client::QueryParam::new(
12583                "backupdir1",
12584                &backupdir1,
12585            ))
12586            .query(&progenitor_client::QueryParam::new(
12587                "backupdir2",
12588                &backupdir2,
12589            ))
12590            .query(&progenitor_client::QueryParam::new(
12591                "checkAccess",
12592                &check_access,
12593            ))
12594            .query(&progenitor_client::QueryParam::new(
12595                "checkFilename",
12596                &check_filename,
12597            ))
12598            .query(&progenitor_client::QueryParam::new(
12599                "checkSync",
12600                &check_sync,
12601            ))
12602            .query(&progenitor_client::QueryParam::new(
12603                "createEmptySrcDirs",
12604                &create_empty_src_dirs,
12605            ))
12606            .query(&progenitor_client::QueryParam::new("dryRun", &dry_run))
12607            .query(&progenitor_client::QueryParam::new(
12608                "filtersFile",
12609                &filters_file,
12610            ))
12611            .query(&progenitor_client::QueryParam::new("force", &force))
12612            .query(&progenitor_client::QueryParam::new(
12613                "ignoreListingChecksum",
12614                &ignore_listing_checksum,
12615            ))
12616            .query(&progenitor_client::QueryParam::new(
12617                "maxDelete",
12618                &max_delete,
12619            ))
12620            .query(&progenitor_client::QueryParam::new(
12621                "noCleanup",
12622                &no_cleanup,
12623            ))
12624            .query(&progenitor_client::QueryParam::new("path1", &path1))
12625            .query(&progenitor_client::QueryParam::new("path2", &path2))
12626            .query(&progenitor_client::QueryParam::new(
12627                "removeEmptyDirs",
12628                &remove_empty_dirs,
12629            ))
12630            .query(&progenitor_client::QueryParam::new("resilient", &resilient))
12631            .query(&progenitor_client::QueryParam::new("resync", &resync))
12632            .query(&progenitor_client::QueryParam::new("workdir", &workdir))
12633            .headers(header_map)
12634            .build()?;
12635        let info = OperationInfo {
12636            operation_id: "sync_bisync",
12637        };
12638        self.pre(&mut request, &info).await?;
12639        let result = self.exec(request, &info).await;
12640        self.post(&result, &info).await?;
12641        let response = result?;
12642        match response.status().as_u16() {
12643            200u16 => ResponseValue::from_response(response).await,
12644            400u16..=499u16 => Err(Error::ErrorResponse(
12645                ResponseValue::from_response(response).await?,
12646            )),
12647            500u16..=599u16 => Err(Error::ErrorResponse(
12648                ResponseValue::from_response(response).await?,
12649            )),
12650            _ => Err(Error::UnexpectedResponse(response)),
12651        }
12652    }
12653
12654    ///List option blocks
12655    ///
12656    ///Returns the names of option blocks that can be queried or updated.
12657    ///
12658    ///Sends a `POST` request to `/options/blocks`
12659    ///
12660    ///Arguments:
12661    /// - `async_`: Run the command asynchronously. Returns a job id
12662    ///   immediately.
12663    /// - `group`: Assign the request to a custom stats group.
12664    pub async fn options_blocks<'a>(
12665        &'a self,
12666        async_: Option<bool>,
12667        group: Option<&'a str>,
12668    ) -> Result<ResponseValue<types::OptionsBlocksResponse>, Error<types::RcError>> {
12669        let url = format!("{}/options/blocks", self.baseurl,);
12670        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12671        header_map.append(
12672            ::reqwest::header::HeaderName::from_static("api-version"),
12673            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12674        );
12675        #[allow(unused_mut)]
12676        let mut request = self
12677            .client
12678            .post(url)
12679            .header(
12680                ::reqwest::header::ACCEPT,
12681                ::reqwest::header::HeaderValue::from_static("application/json"),
12682            )
12683            .query(&progenitor_client::QueryParam::new("_async", &async_))
12684            .query(&progenitor_client::QueryParam::new("_group", &group))
12685            .headers(header_map)
12686            .build()?;
12687        let info = OperationInfo {
12688            operation_id: "options_blocks",
12689        };
12690        self.pre(&mut request, &info).await?;
12691        let result = self.exec(request, &info).await;
12692        self.post(&result, &info).await?;
12693        let response = result?;
12694        match response.status().as_u16() {
12695            200u16 => ResponseValue::from_response(response).await,
12696            400u16..=499u16 => Err(Error::ErrorResponse(
12697                ResponseValue::from_response(response).await?,
12698            )),
12699            500u16..=599u16 => Err(Error::ErrorResponse(
12700                ResponseValue::from_response(response).await?,
12701            )),
12702            _ => Err(Error::UnexpectedResponse(response)),
12703        }
12704    }
12705
12706    ///Get option values
12707    ///
12708    ///Returns the current global option values, optionally filtered by block.
12709    ///
12710    ///Sends a `POST` request to `/options/get`
12711    ///
12712    ///Arguments:
12713    /// - `async_`: Run the command asynchronously. Returns a job id
12714    ///   immediately.
12715    /// - `group`: Assign the request to a custom stats group.
12716    /// - `blocks`: Optional comma-separated list of option block names to
12717    ///   return.
12718    pub async fn options_get<'a>(
12719        &'a self,
12720        async_: Option<bool>,
12721        group: Option<&'a str>,
12722        blocks: Option<&'a str>,
12723    ) -> Result<ResponseValue<types::OptionsGetResponse>, Error<types::RcError>> {
12724        let url = format!("{}/options/get", self.baseurl,);
12725        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12726        header_map.append(
12727            ::reqwest::header::HeaderName::from_static("api-version"),
12728            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12729        );
12730        #[allow(unused_mut)]
12731        let mut request = self
12732            .client
12733            .post(url)
12734            .header(
12735                ::reqwest::header::ACCEPT,
12736                ::reqwest::header::HeaderValue::from_static("application/json"),
12737            )
12738            .query(&progenitor_client::QueryParam::new("_async", &async_))
12739            .query(&progenitor_client::QueryParam::new("_group", &group))
12740            .query(&progenitor_client::QueryParam::new("blocks", &blocks))
12741            .headers(header_map)
12742            .build()?;
12743        let info = OperationInfo {
12744            operation_id: "options_get",
12745        };
12746        self.pre(&mut request, &info).await?;
12747        let result = self.exec(request, &info).await;
12748        self.post(&result, &info).await?;
12749        let response = result?;
12750        match response.status().as_u16() {
12751            200u16 => ResponseValue::from_response(response).await,
12752            400u16..=499u16 => Err(Error::ErrorResponse(
12753                ResponseValue::from_response(response).await?,
12754            )),
12755            500u16..=599u16 => Err(Error::ErrorResponse(
12756                ResponseValue::from_response(response).await?,
12757            )),
12758            _ => Err(Error::UnexpectedResponse(response)),
12759        }
12760    }
12761
12762    ///Describe options
12763    ///
12764    ///Returns metadata for options, including help text and defaults, grouped
12765    /// by block.
12766    ///
12767    ///Sends a `POST` request to `/options/info`
12768    ///
12769    ///Arguments:
12770    /// - `async_`: Run the command asynchronously. Returns a job id
12771    ///   immediately.
12772    /// - `group`: Assign the request to a custom stats group.
12773    /// - `blocks`: Optional comma-separated list of option block names to
12774    ///   describe.
12775    pub async fn options_info<'a>(
12776        &'a self,
12777        async_: Option<bool>,
12778        group: Option<&'a str>,
12779        blocks: Option<&'a str>,
12780    ) -> Result<ResponseValue<types::OptionsInfoResponse>, Error<types::RcError>> {
12781        let url = format!("{}/options/info", self.baseurl,);
12782        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12783        header_map.append(
12784            ::reqwest::header::HeaderName::from_static("api-version"),
12785            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12786        );
12787        #[allow(unused_mut)]
12788        let mut request = self
12789            .client
12790            .post(url)
12791            .header(
12792                ::reqwest::header::ACCEPT,
12793                ::reqwest::header::HeaderValue::from_static("application/json"),
12794            )
12795            .query(&progenitor_client::QueryParam::new("_async", &async_))
12796            .query(&progenitor_client::QueryParam::new("_group", &group))
12797            .query(&progenitor_client::QueryParam::new("blocks", &blocks))
12798            .headers(header_map)
12799            .build()?;
12800        let info = OperationInfo {
12801            operation_id: "options_info",
12802        };
12803        self.pre(&mut request, &info).await?;
12804        let result = self.exec(request, &info).await;
12805        self.post(&result, &info).await?;
12806        let response = result?;
12807        match response.status().as_u16() {
12808            200u16 => ResponseValue::from_response(response).await,
12809            400u16..=499u16 => Err(Error::ErrorResponse(
12810                ResponseValue::from_response(response).await?,
12811            )),
12812            500u16..=599u16 => Err(Error::ErrorResponse(
12813                ResponseValue::from_response(response).await?,
12814            )),
12815            _ => Err(Error::UnexpectedResponse(response)),
12816        }
12817    }
12818
12819    ///Set option values
12820    ///
12821    ///Sets temporary option overrides for the running process by supplying
12822    /// key/value pairs grouped under option block names. Provide one or more
12823    /// query parameters whose names match the blocks you want to modify (for
12824    /// example `main`, `rc`, `http`). Each block parameter carries an object of
12825    /// option overrides.
12826    ///
12827    ///
12828    ///Sends a `POST` request to `/options/set`
12829    ///
12830    ///Arguments:
12831    /// - `async_`: Run the command asynchronously. Returns a job id
12832    ///   immediately.
12833    /// - `group`: Assign the request to a custom stats group.
12834    /// - `dlna`: Overrides for the `dlna` option block.
12835    /// - `filter`: Overrides for the `filter` option block.
12836    /// - `ftp`: Overrides for the `ftp` option block.
12837    /// - `http`: Overrides for the `http` option block.
12838    /// - `log`: Overrides for the `log` option block.
12839    /// - `main`: Overrides for the `main` option block.
12840    /// - `mount`: Overrides for the `mount` option block.
12841    /// - `nfs`: Overrides for the `nfs` option block.
12842    /// - `proxy`: Overrides for the `proxy` option block.
12843    /// - `rc`: Overrides for the `rc` option block.
12844    /// - `restic`: Overrides for the `restic` option block.
12845    /// - `s3`: Overrides for the `s3` option block.
12846    /// - `sftp`: Overrides for the `sftp` option block.
12847    /// - `vfs`: Overrides for the `vfs` option block.
12848    /// - `webdav`: Overrides for the `webdav` option block.
12849    pub async fn options_set<'a>(
12850        &'a self,
12851        async_: Option<bool>,
12852        group: Option<&'a str>,
12853        dlna: Option<
12854            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetDlnaValue>,
12855        >,
12856        filter: Option<
12857            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetFilterValue>,
12858        >,
12859        ftp: Option<
12860            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetFtpValue>,
12861        >,
12862        http: Option<
12863            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetHttpValue>,
12864        >,
12865        log: Option<
12866            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetLogValue>,
12867        >,
12868        main: Option<
12869            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetMainValue>,
12870        >,
12871        mount: Option<
12872            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetMountValue>,
12873        >,
12874        nfs: Option<
12875            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetNfsValue>,
12876        >,
12877        proxy: Option<
12878            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetProxyValue>,
12879        >,
12880        rc: Option<
12881            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetRcValue>,
12882        >,
12883        restic: Option<
12884            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetResticValue>,
12885        >,
12886        s3: Option<
12887            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetS3Value>,
12888        >,
12889        sftp: Option<
12890            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetSftpValue>,
12891        >,
12892        vfs: Option<
12893            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetVfsValue>,
12894        >,
12895        webdav: Option<
12896            &'a ::std::collections::HashMap<::std::string::String, types::OptionsSetWebdavValue>,
12897        >,
12898    ) -> Result<
12899        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
12900        Error<types::RcError>,
12901    > {
12902        let url = format!("{}/options/set", self.baseurl,);
12903        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12904        header_map.append(
12905            ::reqwest::header::HeaderName::from_static("api-version"),
12906            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12907        );
12908        #[allow(unused_mut)]
12909        let mut request = self
12910            .client
12911            .post(url)
12912            .header(
12913                ::reqwest::header::ACCEPT,
12914                ::reqwest::header::HeaderValue::from_static("application/json"),
12915            )
12916            .query(&progenitor_client::QueryParam::new("_async", &async_))
12917            .query(&progenitor_client::QueryParam::new("_group", &group))
12918            .query(&progenitor_client::QueryParam::new("dlna", &dlna))
12919            .query(&progenitor_client::QueryParam::new("filter", &filter))
12920            .query(&progenitor_client::QueryParam::new("ftp", &ftp))
12921            .query(&progenitor_client::QueryParam::new("http", &http))
12922            .query(&progenitor_client::QueryParam::new("log", &log))
12923            .query(&progenitor_client::QueryParam::new("main", &main))
12924            .query(&progenitor_client::QueryParam::new("mount", &mount))
12925            .query(&progenitor_client::QueryParam::new("nfs", &nfs))
12926            .query(&progenitor_client::QueryParam::new("proxy", &proxy))
12927            .query(&progenitor_client::QueryParam::new("rc", &rc))
12928            .query(&progenitor_client::QueryParam::new("restic", &restic))
12929            .query(&progenitor_client::QueryParam::new("s3", &s3))
12930            .query(&progenitor_client::QueryParam::new("sftp", &sftp))
12931            .query(&progenitor_client::QueryParam::new("vfs", &vfs))
12932            .query(&progenitor_client::QueryParam::new("webdav", &webdav))
12933            .headers(header_map)
12934            .build()?;
12935        let info = OperationInfo {
12936            operation_id: "options_set",
12937        };
12938        self.pre(&mut request, &info).await?;
12939        let result = self.exec(request, &info).await;
12940        self.post(&result, &info).await?;
12941        let response = result?;
12942        match response.status().as_u16() {
12943            200u16 => ResponseValue::from_response(response).await,
12944            400u16..=499u16 => Err(Error::ErrorResponse(
12945                ResponseValue::from_response(response).await?,
12946            )),
12947            500u16..=599u16 => Err(Error::ErrorResponse(
12948                ResponseValue::from_response(response).await?,
12949            )),
12950            _ => Err(Error::UnexpectedResponse(response)),
12951        }
12952    }
12953
12954    ///Show effective options
12955    ///
12956    ///Returns the current effective options for this request, including
12957    /// `_config` and `_filter` overrides.
12958    ///
12959    ///Sends a `POST` request to `/options/local`
12960    ///
12961    ///Arguments:
12962    /// - `async_`: Run the command asynchronously. Returns a job id
12963    ///   immediately.
12964    /// - `group`: Assign the request to a custom stats group.
12965    pub async fn options_local<'a>(
12966        &'a self,
12967        async_: Option<bool>,
12968        group: Option<&'a str>,
12969    ) -> Result<ResponseValue<types::OptionsLocalResponse>, Error<types::RcError>> {
12970        let url = format!("{}/options/local", self.baseurl,);
12971        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
12972        header_map.append(
12973            ::reqwest::header::HeaderName::from_static("api-version"),
12974            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
12975        );
12976        #[allow(unused_mut)]
12977        let mut request = self
12978            .client
12979            .post(url)
12980            .header(
12981                ::reqwest::header::ACCEPT,
12982                ::reqwest::header::HeaderValue::from_static("application/json"),
12983            )
12984            .query(&progenitor_client::QueryParam::new("_async", &async_))
12985            .query(&progenitor_client::QueryParam::new("_group", &group))
12986            .headers(header_map)
12987            .build()?;
12988        let info = OperationInfo {
12989            operation_id: "options_local",
12990        };
12991        self.pre(&mut request, &info).await?;
12992        let result = self.exec(request, &info).await;
12993        self.post(&result, &info).await?;
12994        let response = result?;
12995        match response.status().as_u16() {
12996            200u16 => ResponseValue::from_response(response).await,
12997            400u16..=499u16 => Err(Error::ErrorResponse(
12998                ResponseValue::from_response(response).await?,
12999            )),
13000            500u16..=599u16 => Err(Error::ErrorResponse(
13001                ResponseValue::from_response(response).await?,
13002            )),
13003            _ => Err(Error::UnexpectedResponse(response)),
13004        }
13005    }
13006
13007    ///List serve instances
13008    ///
13009    ///Returns all running `rclone serve` instances with their IDs and options.
13010    ///
13011    ///Sends a `POST` request to `/serve/list`
13012    ///
13013    ///Arguments:
13014    /// - `async_`: Run the command asynchronously. Returns a job id
13015    ///   immediately.
13016    /// - `group`: Assign the request to a custom stats group.
13017    pub async fn serve_list<'a>(
13018        &'a self,
13019        async_: Option<bool>,
13020        group: Option<&'a str>,
13021    ) -> Result<ResponseValue<types::ServeListResponse>, Error<types::RcError>> {
13022        let url = format!("{}/serve/list", self.baseurl,);
13023        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13024        header_map.append(
13025            ::reqwest::header::HeaderName::from_static("api-version"),
13026            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13027        );
13028        #[allow(unused_mut)]
13029        let mut request = self
13030            .client
13031            .post(url)
13032            .header(
13033                ::reqwest::header::ACCEPT,
13034                ::reqwest::header::HeaderValue::from_static("application/json"),
13035            )
13036            .query(&progenitor_client::QueryParam::new("_async", &async_))
13037            .query(&progenitor_client::QueryParam::new("_group", &group))
13038            .headers(header_map)
13039            .build()?;
13040        let info = OperationInfo {
13041            operation_id: "serve_list",
13042        };
13043        self.pre(&mut request, &info).await?;
13044        let result = self.exec(request, &info).await;
13045        self.post(&result, &info).await?;
13046        let response = result?;
13047        match response.status().as_u16() {
13048            200u16 => ResponseValue::from_response(response).await,
13049            400u16..=499u16 => Err(Error::ErrorResponse(
13050                ResponseValue::from_response(response).await?,
13051            )),
13052            500u16..=599u16 => Err(Error::ErrorResponse(
13053                ResponseValue::from_response(response).await?,
13054            )),
13055            _ => Err(Error::UnexpectedResponse(response)),
13056        }
13057    }
13058
13059    ///Start serve instance
13060    ///
13061    ///Launches a new `rclone serve` endpoint (http, webdav, ftp, etc.) with
13062    /// the provided parameters.
13063    ///
13064    ///Sends a `POST` request to `/serve/start`
13065    ///
13066    ///Arguments:
13067    /// - `async_`: Run the command asynchronously. Returns a job id
13068    ///   immediately.
13069    /// - `config`: JSON encoded config overrides applied for this call only.
13070    /// - `filter`: JSON encoded filter overrides applied for this call only.
13071    /// - `group`: Assign the request to a custom stats group.
13072    /// - `addr`: Address and port to bind the server to, such as `:5572` or
13073    ///   `localhost:8080`.
13074    /// - `fs`: Remote path that will be served.
13075    /// - `params`: Additional arbitrary parameters allowed.
13076    /// - `type_`: Type of server to start (e.g. `http`, `webdav`, `ftp`,
13077    ///   `sftp`).
13078    pub async fn serve_start<'a>(
13079        &'a self,
13080        async_: Option<bool>,
13081        config: Option<&'a str>,
13082        filter: Option<&'a str>,
13083        group: Option<&'a str>,
13084        addr: &'a str,
13085        fs: &'a str,
13086        params: Option<&'a ::serde_json::Map<::std::string::String, ::serde_json::Value>>,
13087        type_: &'a str,
13088    ) -> Result<ResponseValue<types::ServeStartResponse>, Error<types::RcError>> {
13089        let url = format!("{}/serve/start", self.baseurl,);
13090        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13091        header_map.append(
13092            ::reqwest::header::HeaderName::from_static("api-version"),
13093            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13094        );
13095        #[allow(unused_mut)]
13096        let mut request = self
13097            .client
13098            .post(url)
13099            .header(
13100                ::reqwest::header::ACCEPT,
13101                ::reqwest::header::HeaderValue::from_static("application/json"),
13102            )
13103            .query(&progenitor_client::QueryParam::new("_async", &async_))
13104            .query(&progenitor_client::QueryParam::new("_config", &config))
13105            .query(&progenitor_client::QueryParam::new("_filter", &filter))
13106            .query(&progenitor_client::QueryParam::new("_group", &group))
13107            .query(&progenitor_client::QueryParam::new("addr", &addr))
13108            .query(&progenitor_client::QueryParam::new("fs", &fs))
13109            .query(&progenitor_client::QueryParam::new("params", &params))
13110            .query(&progenitor_client::QueryParam::new("type", &type_))
13111            .headers(header_map)
13112            .build()?;
13113        let info = OperationInfo {
13114            operation_id: "serve_start",
13115        };
13116        self.pre(&mut request, &info).await?;
13117        let result = self.exec(request, &info).await;
13118        self.post(&result, &info).await?;
13119        let response = result?;
13120        match response.status().as_u16() {
13121            200u16 => ResponseValue::from_response(response).await,
13122            400u16..=499u16 => Err(Error::ErrorResponse(
13123                ResponseValue::from_response(response).await?,
13124            )),
13125            500u16..=599u16 => Err(Error::ErrorResponse(
13126                ResponseValue::from_response(response).await?,
13127            )),
13128            _ => Err(Error::UnexpectedResponse(response)),
13129        }
13130    }
13131
13132    ///Stop serve instance
13133    ///
13134    ///Stops a running `serve` instance identified by its ID.
13135    ///
13136    ///Sends a `POST` request to `/serve/stop`
13137    ///
13138    ///Arguments:
13139    /// - `async_`: Run the command asynchronously. Returns a job id
13140    ///   immediately.
13141    /// - `group`: Assign the request to a custom stats group.
13142    /// - `id`: Identifier of the running serve instance returned by
13143    ///   `serve/start`.
13144    pub async fn serve_stop<'a>(
13145        &'a self,
13146        async_: Option<bool>,
13147        group: Option<&'a str>,
13148        id: &'a str,
13149    ) -> Result<
13150        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
13151        Error<types::RcError>,
13152    > {
13153        let url = format!("{}/serve/stop", self.baseurl,);
13154        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13155        header_map.append(
13156            ::reqwest::header::HeaderName::from_static("api-version"),
13157            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13158        );
13159        #[allow(unused_mut)]
13160        let mut request = self
13161            .client
13162            .post(url)
13163            .header(
13164                ::reqwest::header::ACCEPT,
13165                ::reqwest::header::HeaderValue::from_static("application/json"),
13166            )
13167            .query(&progenitor_client::QueryParam::new("_async", &async_))
13168            .query(&progenitor_client::QueryParam::new("_group", &group))
13169            .query(&progenitor_client::QueryParam::new("id", &id))
13170            .headers(header_map)
13171            .build()?;
13172        let info = OperationInfo {
13173            operation_id: "serve_stop",
13174        };
13175        self.pre(&mut request, &info).await?;
13176        let result = self.exec(request, &info).await;
13177        self.post(&result, &info).await?;
13178        let response = result?;
13179        match response.status().as_u16() {
13180            200u16 => ResponseValue::from_response(response).await,
13181            400u16..=499u16 => Err(Error::ErrorResponse(
13182                ResponseValue::from_response(response).await?,
13183            )),
13184            500u16..=599u16 => Err(Error::ErrorResponse(
13185                ResponseValue::from_response(response).await?,
13186            )),
13187            _ => Err(Error::UnexpectedResponse(response)),
13188        }
13189    }
13190
13191    ///Stop all serve instances
13192    ///
13193    ///Stops every active `serve` instance.
13194    ///
13195    ///Sends a `POST` request to `/serve/stopall`
13196    ///
13197    ///Arguments:
13198    /// - `async_`: Run the command asynchronously. Returns a job id
13199    ///   immediately.
13200    /// - `group`: Assign the request to a custom stats group.
13201    pub async fn serve_stopall<'a>(
13202        &'a self,
13203        async_: Option<bool>,
13204        group: Option<&'a str>,
13205    ) -> Result<
13206        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
13207        Error<types::RcError>,
13208    > {
13209        let url = format!("{}/serve/stopall", self.baseurl,);
13210        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13211        header_map.append(
13212            ::reqwest::header::HeaderName::from_static("api-version"),
13213            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13214        );
13215        #[allow(unused_mut)]
13216        let mut request = self
13217            .client
13218            .post(url)
13219            .header(
13220                ::reqwest::header::ACCEPT,
13221                ::reqwest::header::HeaderValue::from_static("application/json"),
13222            )
13223            .query(&progenitor_client::QueryParam::new("_async", &async_))
13224            .query(&progenitor_client::QueryParam::new("_group", &group))
13225            .headers(header_map)
13226            .build()?;
13227        let info = OperationInfo {
13228            operation_id: "serve_stopall",
13229        };
13230        self.pre(&mut request, &info).await?;
13231        let result = self.exec(request, &info).await;
13232        self.post(&result, &info).await?;
13233        let response = result?;
13234        match response.status().as_u16() {
13235            200u16 => ResponseValue::from_response(response).await,
13236            400u16..=499u16 => Err(Error::ErrorResponse(
13237                ResponseValue::from_response(response).await?,
13238            )),
13239            500u16..=599u16 => Err(Error::ErrorResponse(
13240                ResponseValue::from_response(response).await?,
13241            )),
13242            _ => Err(Error::UnexpectedResponse(response)),
13243        }
13244    }
13245
13246    ///List serve types
13247    ///
13248    ///Returns the list of supported `rclone serve` protocols.
13249    ///
13250    ///Sends a `POST` request to `/serve/types`
13251    ///
13252    ///Arguments:
13253    /// - `async_`: Run the command asynchronously. Returns a job id
13254    ///   immediately.
13255    /// - `group`: Assign the request to a custom stats group.
13256    pub async fn serve_types<'a>(
13257        &'a self,
13258        async_: Option<bool>,
13259        group: Option<&'a str>,
13260    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
13261        let url = format!("{}/serve/types", self.baseurl,);
13262        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13263        header_map.append(
13264            ::reqwest::header::HeaderName::from_static("api-version"),
13265            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13266        );
13267        #[allow(unused_mut)]
13268        let mut request = self
13269            .client
13270            .post(url)
13271            .header(
13272                ::reqwest::header::ACCEPT,
13273                ::reqwest::header::HeaderValue::from_static("application/json"),
13274            )
13275            .query(&progenitor_client::QueryParam::new("_async", &async_))
13276            .query(&progenitor_client::QueryParam::new("_group", &group))
13277            .headers(header_map)
13278            .build()?;
13279        let info = OperationInfo {
13280            operation_id: "serve_types",
13281        };
13282        self.pre(&mut request, &info).await?;
13283        let result = self.exec(request, &info).await;
13284        self.post(&result, &info).await?;
13285        let response = result?;
13286        match response.status().as_u16() {
13287            200u16 => Ok(ResponseValue::empty(response)),
13288            400u16..=499u16 => Err(Error::ErrorResponse(
13289                ResponseValue::from_response(response).await?,
13290            )),
13291            500u16..=599u16 => Err(Error::ErrorResponse(
13292                ResponseValue::from_response(response).await?,
13293            )),
13294            _ => Err(Error::UnexpectedResponse(response)),
13295        }
13296    }
13297
13298    ///Forget cached paths
13299    ///
13300    ///Evicts specific files or directories from the VFS directory cache.
13301    ///
13302    ///Sends a `POST` request to `/vfs/forget`
13303    ///
13304    ///Arguments:
13305    /// - `async_`: Run the command asynchronously. Returns a job id
13306    ///   immediately.
13307    /// - `group`: Assign the request to a custom stats group.
13308    /// - `fs`: Optional VFS identifier to target; required when more than one
13309    ///   VFS is active.
13310    /// - `params`: Additional arbitrary parameters allowed.
13311    pub async fn vfs_forget<'a>(
13312        &'a self,
13313        async_: Option<bool>,
13314        group: Option<&'a str>,
13315        fs: Option<&'a str>,
13316        params: Option<&'a ::serde_json::Map<::std::string::String, ::serde_json::Value>>,
13317    ) -> Result<ResponseValue<types::VfsForgetResponse>, Error<types::RcError>> {
13318        let url = format!("{}/vfs/forget", self.baseurl,);
13319        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13320        header_map.append(
13321            ::reqwest::header::HeaderName::from_static("api-version"),
13322            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13323        );
13324        #[allow(unused_mut)]
13325        let mut request = self
13326            .client
13327            .post(url)
13328            .header(
13329                ::reqwest::header::ACCEPT,
13330                ::reqwest::header::HeaderValue::from_static("application/json"),
13331            )
13332            .query(&progenitor_client::QueryParam::new("_async", &async_))
13333            .query(&progenitor_client::QueryParam::new("_group", &group))
13334            .query(&progenitor_client::QueryParam::new("fs", &fs))
13335            .query(&progenitor_client::QueryParam::new("params", &params))
13336            .headers(header_map)
13337            .build()?;
13338        let info = OperationInfo {
13339            operation_id: "vfs_forget",
13340        };
13341        self.pre(&mut request, &info).await?;
13342        let result = self.exec(request, &info).await;
13343        self.post(&result, &info).await?;
13344        let response = result?;
13345        match response.status().as_u16() {
13346            200u16 => ResponseValue::from_response(response).await,
13347            400u16..=499u16 => Err(Error::ErrorResponse(
13348                ResponseValue::from_response(response).await?,
13349            )),
13350            500u16..=599u16 => Err(Error::ErrorResponse(
13351                ResponseValue::from_response(response).await?,
13352            )),
13353            _ => Err(Error::UnexpectedResponse(response)),
13354        }
13355    }
13356
13357    ///List VFS instances
13358    ///
13359    ///Lists the active VFS instances and their identifiers.
13360    ///
13361    ///Sends a `POST` request to `/vfs/list`
13362    ///
13363    ///Arguments:
13364    /// - `async_`: Run the command asynchronously. Returns a job id
13365    ///   immediately.
13366    /// - `group`: Assign the request to a custom stats group.
13367    /// - `fs`: Optional VFS identifier; omit to list all active VFS instances.
13368    pub async fn vfs_list<'a>(
13369        &'a self,
13370        async_: Option<bool>,
13371        group: Option<&'a str>,
13372        fs: Option<&'a str>,
13373    ) -> Result<ResponseValue<types::VfsListResponse>, Error<types::RcError>> {
13374        let url = format!("{}/vfs/list", self.baseurl,);
13375        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13376        header_map.append(
13377            ::reqwest::header::HeaderName::from_static("api-version"),
13378            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13379        );
13380        #[allow(unused_mut)]
13381        let mut request = self
13382            .client
13383            .post(url)
13384            .header(
13385                ::reqwest::header::ACCEPT,
13386                ::reqwest::header::HeaderValue::from_static("application/json"),
13387            )
13388            .query(&progenitor_client::QueryParam::new("_async", &async_))
13389            .query(&progenitor_client::QueryParam::new("_group", &group))
13390            .query(&progenitor_client::QueryParam::new("fs", &fs))
13391            .headers(header_map)
13392            .build()?;
13393        let info = OperationInfo {
13394            operation_id: "vfs_list",
13395        };
13396        self.pre(&mut request, &info).await?;
13397        let result = self.exec(request, &info).await;
13398        self.post(&result, &info).await?;
13399        let response = result?;
13400        match response.status().as_u16() {
13401            200u16 => ResponseValue::from_response(response).await,
13402            400u16..=499u16 => Err(Error::ErrorResponse(
13403                ResponseValue::from_response(response).await?,
13404            )),
13405            500u16..=599u16 => Err(Error::ErrorResponse(
13406                ResponseValue::from_response(response).await?,
13407            )),
13408            _ => Err(Error::UnexpectedResponse(response)),
13409        }
13410    }
13411
13412    ///Get or set poll interval
13413    ///
13414    ///Reads or updates the VFS poll interval duration, optionally waiting for
13415    /// the change to apply.
13416    ///
13417    ///Sends a `POST` request to `/vfs/poll-interval`
13418    ///
13419    ///Arguments:
13420    /// - `async_`: Run the command asynchronously. Returns a job id
13421    ///   immediately.
13422    /// - `group`: Assign the request to a custom stats group.
13423    /// - `fs`: Optional VFS identifier whose poll interval should be queried or
13424    ///   modified.
13425    /// - `interval`: Duration string (e.g. `5m`) to set as the new poll
13426    ///   interval.
13427    /// - `timeout`: Duration to wait for the poll interval change to take
13428    ///   effect; `0` waits indefinitely.
13429    pub async fn vfs_poll_interval<'a>(
13430        &'a self,
13431        async_: Option<bool>,
13432        group: Option<&'a str>,
13433        fs: Option<&'a str>,
13434        interval: Option<&'a str>,
13435        timeout: Option<&'a str>,
13436    ) -> Result<
13437        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
13438        Error<types::RcError>,
13439    > {
13440        let url = format!("{}/vfs/poll-interval", self.baseurl,);
13441        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13442        header_map.append(
13443            ::reqwest::header::HeaderName::from_static("api-version"),
13444            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13445        );
13446        #[allow(unused_mut)]
13447        let mut request = self
13448            .client
13449            .post(url)
13450            .header(
13451                ::reqwest::header::ACCEPT,
13452                ::reqwest::header::HeaderValue::from_static("application/json"),
13453            )
13454            .query(&progenitor_client::QueryParam::new("_async", &async_))
13455            .query(&progenitor_client::QueryParam::new("_group", &group))
13456            .query(&progenitor_client::QueryParam::new("fs", &fs))
13457            .query(&progenitor_client::QueryParam::new("interval", &interval))
13458            .query(&progenitor_client::QueryParam::new("timeout", &timeout))
13459            .headers(header_map)
13460            .build()?;
13461        let info = OperationInfo {
13462            operation_id: "vfs_poll_interval",
13463        };
13464        self.pre(&mut request, &info).await?;
13465        let result = self.exec(request, &info).await;
13466        self.post(&result, &info).await?;
13467        let response = result?;
13468        match response.status().as_u16() {
13469            200u16 => ResponseValue::from_response(response).await,
13470            400u16..=499u16 => Err(Error::ErrorResponse(
13471                ResponseValue::from_response(response).await?,
13472            )),
13473            500u16..=599u16 => Err(Error::ErrorResponse(
13474                ResponseValue::from_response(response).await?,
13475            )),
13476            _ => Err(Error::UnexpectedResponse(response)),
13477        }
13478    }
13479
13480    ///Inspect upload queue
13481    ///
13482    ///Returns the contents of the VFS upload queue.
13483    ///
13484    ///Sends a `POST` request to `/vfs/queue`
13485    ///
13486    ///Arguments:
13487    /// - `async_`: Run the command asynchronously. Returns a job id
13488    ///   immediately.
13489    /// - `group`: Assign the request to a custom stats group.
13490    /// - `fs`: Optional VFS identifier whose upload queue should be inspected.
13491    pub async fn vfs_queue<'a>(
13492        &'a self,
13493        async_: Option<bool>,
13494        group: Option<&'a str>,
13495        fs: Option<&'a str>,
13496    ) -> Result<ResponseValue<types::VfsQueueResponse>, Error<types::RcError>> {
13497        let url = format!("{}/vfs/queue", self.baseurl,);
13498        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13499        header_map.append(
13500            ::reqwest::header::HeaderName::from_static("api-version"),
13501            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13502        );
13503        #[allow(unused_mut)]
13504        let mut request = self
13505            .client
13506            .post(url)
13507            .header(
13508                ::reqwest::header::ACCEPT,
13509                ::reqwest::header::HeaderValue::from_static("application/json"),
13510            )
13511            .query(&progenitor_client::QueryParam::new("_async", &async_))
13512            .query(&progenitor_client::QueryParam::new("_group", &group))
13513            .query(&progenitor_client::QueryParam::new("fs", &fs))
13514            .headers(header_map)
13515            .build()?;
13516        let info = OperationInfo {
13517            operation_id: "vfs_queue",
13518        };
13519        self.pre(&mut request, &info).await?;
13520        let result = self.exec(request, &info).await;
13521        self.post(&result, &info).await?;
13522        let response = result?;
13523        match response.status().as_u16() {
13524            200u16 => ResponseValue::from_response(response).await,
13525            400u16..=499u16 => Err(Error::ErrorResponse(
13526                ResponseValue::from_response(response).await?,
13527            )),
13528            500u16..=599u16 => Err(Error::ErrorResponse(
13529                ResponseValue::from_response(response).await?,
13530            )),
13531            _ => Err(Error::UnexpectedResponse(response)),
13532        }
13533    }
13534
13535    ///Adjust queue expiry
13536    ///
13537    ///Sets the expiry time of a queued VFS upload item, optionally relative to
13538    /// its current value.
13539    ///
13540    ///Sends a `POST` request to `/vfs/queue-set-expiry`
13541    ///
13542    ///Arguments:
13543    /// - `async_`: Run the command asynchronously. Returns a job id
13544    ///   immediately.
13545    /// - `group`: Assign the request to a custom stats group.
13546    /// - `expiry`: New eligibility time in seconds (may be negative for
13547    ///   immediate upload).
13548    /// - `fs`: Optional VFS identifier for the queued item.
13549    /// - `id`: Queue item ID as returned by `vfs/queue`.
13550    /// - `relative`: Set to true to treat `expiry` as relative to the current
13551    ///   value.
13552    pub async fn vfs_queue_set_expiry<'a>(
13553        &'a self,
13554        async_: Option<bool>,
13555        group: Option<&'a str>,
13556        expiry: f64,
13557        fs: Option<&'a str>,
13558        id: i64,
13559        relative: Option<bool>,
13560    ) -> Result<
13561        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
13562        Error<types::RcError>,
13563    > {
13564        let url = format!("{}/vfs/queue-set-expiry", self.baseurl,);
13565        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13566        header_map.append(
13567            ::reqwest::header::HeaderName::from_static("api-version"),
13568            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13569        );
13570        #[allow(unused_mut)]
13571        let mut request = self
13572            .client
13573            .post(url)
13574            .header(
13575                ::reqwest::header::ACCEPT,
13576                ::reqwest::header::HeaderValue::from_static("application/json"),
13577            )
13578            .query(&progenitor_client::QueryParam::new("_async", &async_))
13579            .query(&progenitor_client::QueryParam::new("_group", &group))
13580            .query(&progenitor_client::QueryParam::new("expiry", &expiry))
13581            .query(&progenitor_client::QueryParam::new("fs", &fs))
13582            .query(&progenitor_client::QueryParam::new("id", &id))
13583            .query(&progenitor_client::QueryParam::new("relative", &relative))
13584            .headers(header_map)
13585            .build()?;
13586        let info = OperationInfo {
13587            operation_id: "vfs_queue_set_expiry",
13588        };
13589        self.pre(&mut request, &info).await?;
13590        let result = self.exec(request, &info).await;
13591        self.post(&result, &info).await?;
13592        let response = result?;
13593        match response.status().as_u16() {
13594            200u16 => ResponseValue::from_response(response).await,
13595            400u16..=499u16 => Err(Error::ErrorResponse(
13596                ResponseValue::from_response(response).await?,
13597            )),
13598            500u16..=599u16 => Err(Error::ErrorResponse(
13599                ResponseValue::from_response(response).await?,
13600            )),
13601            _ => Err(Error::UnexpectedResponse(response)),
13602        }
13603    }
13604
13605    ///Refresh directory cache
13606    ///
13607    ///Refreshes one or more directories in the VFS cache, optionally
13608    /// recursively.
13609    ///
13610    ///Sends a `POST` request to `/vfs/refresh`
13611    ///
13612    ///Arguments:
13613    /// - `async_`: Run the command asynchronously. Returns a job id
13614    ///   immediately.
13615    /// - `group`: Assign the request to a custom stats group.
13616    /// - `fs`: Optional VFS identifier whose directory cache should be
13617    ///   refreshed.
13618    /// - `params`: Additional arbitrary parameters allowed.
13619    /// - `recursive`: Set to true to refresh entire directory trees.
13620    pub async fn vfs_refresh<'a>(
13621        &'a self,
13622        async_: Option<bool>,
13623        group: Option<&'a str>,
13624        fs: Option<&'a str>,
13625        params: Option<&'a ::serde_json::Map<::std::string::String, ::serde_json::Value>>,
13626        recursive: Option<bool>,
13627    ) -> Result<ResponseValue<types::VfsRefreshResponse>, Error<types::RcError>> {
13628        let url = format!("{}/vfs/refresh", self.baseurl,);
13629        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13630        header_map.append(
13631            ::reqwest::header::HeaderName::from_static("api-version"),
13632            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13633        );
13634        #[allow(unused_mut)]
13635        let mut request = self
13636            .client
13637            .post(url)
13638            .header(
13639                ::reqwest::header::ACCEPT,
13640                ::reqwest::header::HeaderValue::from_static("application/json"),
13641            )
13642            .query(&progenitor_client::QueryParam::new("_async", &async_))
13643            .query(&progenitor_client::QueryParam::new("_group", &group))
13644            .query(&progenitor_client::QueryParam::new("fs", &fs))
13645            .query(&progenitor_client::QueryParam::new("params", &params))
13646            .query(&progenitor_client::QueryParam::new("recursive", &recursive))
13647            .headers(header_map)
13648            .build()?;
13649        let info = OperationInfo {
13650            operation_id: "vfs_refresh",
13651        };
13652        self.pre(&mut request, &info).await?;
13653        let result = self.exec(request, &info).await;
13654        self.post(&result, &info).await?;
13655        let response = result?;
13656        match response.status().as_u16() {
13657            200u16 => ResponseValue::from_response(response).await,
13658            400u16..=499u16 => Err(Error::ErrorResponse(
13659                ResponseValue::from_response(response).await?,
13660            )),
13661            500u16..=599u16 => Err(Error::ErrorResponse(
13662                ResponseValue::from_response(response).await?,
13663            )),
13664            _ => Err(Error::UnexpectedResponse(response)),
13665        }
13666    }
13667
13668    ///Show VFS stats
13669    ///
13670    ///Returns VFS statistics including disk cache usage and metadata cache
13671    /// counters.
13672    ///
13673    ///Sends a `POST` request to `/vfs/stats`
13674    ///
13675    ///Arguments:
13676    /// - `async_`: Run the command asynchronously. Returns a job id
13677    ///   immediately.
13678    /// - `group`: Assign the request to a custom stats group.
13679    /// - `fs`: Optional VFS identifier whose statistics should be returned.
13680    pub async fn vfs_stats<'a>(
13681        &'a self,
13682        async_: Option<bool>,
13683        group: Option<&'a str>,
13684        fs: Option<&'a str>,
13685    ) -> Result<ResponseValue<types::VfsStatsResponse>, Error<types::RcError>> {
13686        let url = format!("{}/vfs/stats", self.baseurl,);
13687        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13688        header_map.append(
13689            ::reqwest::header::HeaderName::from_static("api-version"),
13690            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13691        );
13692        #[allow(unused_mut)]
13693        let mut request = self
13694            .client
13695            .post(url)
13696            .header(
13697                ::reqwest::header::ACCEPT,
13698                ::reqwest::header::HeaderValue::from_static("application/json"),
13699            )
13700            .query(&progenitor_client::QueryParam::new("_async", &async_))
13701            .query(&progenitor_client::QueryParam::new("_group", &group))
13702            .query(&progenitor_client::QueryParam::new("fs", &fs))
13703            .headers(header_map)
13704            .build()?;
13705        let info = OperationInfo {
13706            operation_id: "vfs_stats",
13707        };
13708        self.pre(&mut request, &info).await?;
13709        let result = self.exec(request, &info).await;
13710        self.post(&result, &info).await?;
13711        let response = result?;
13712        match response.status().as_u16() {
13713            200u16 => ResponseValue::from_response(response).await,
13714            400u16..=499u16 => Err(Error::ErrorResponse(
13715                ResponseValue::from_response(response).await?,
13716            )),
13717            500u16..=599u16 => Err(Error::ErrorResponse(
13718                ResponseValue::from_response(response).await?,
13719            )),
13720            _ => Err(Error::UnexpectedResponse(response)),
13721        }
13722    }
13723
13724    ///Install plugin
13725    ///
13726    ///Downloads and installs a plugin into the WebUI from the provided
13727    /// repository URL.
13728    ///
13729    ///Sends a `POST` request to `/pluginsctl/addPlugin`
13730    ///
13731    ///Arguments:
13732    /// - `async_`: Run the command asynchronously. Returns a job id
13733    ///   immediately.
13734    /// - `group`: Assign the request to a custom stats group.
13735    /// - `url`: Repository URL of the plugin to install.
13736    pub async fn pluginsctl_add_plugin<'a>(
13737        &'a self,
13738        async_: Option<bool>,
13739        group: Option<&'a str>,
13740        url: &'a str,
13741    ) -> Result<
13742        ResponseValue<::serde_json::Map<::std::string::String, ::serde_json::Value>>,
13743        Error<types::RcError>,
13744    > {
13745        let _url = format!("{}/pluginsctl/addPlugin", self.baseurl,);
13746        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13747        header_map.append(
13748            ::reqwest::header::HeaderName::from_static("api-version"),
13749            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13750        );
13751        #[allow(unused_mut)]
13752        let mut request = self
13753            .client
13754            .post(_url)
13755            .header(
13756                ::reqwest::header::ACCEPT,
13757                ::reqwest::header::HeaderValue::from_static("application/json"),
13758            )
13759            .query(&progenitor_client::QueryParam::new("_async", &async_))
13760            .query(&progenitor_client::QueryParam::new("_group", &group))
13761            .query(&progenitor_client::QueryParam::new("url", &url))
13762            .headers(header_map)
13763            .build()?;
13764        let info = OperationInfo {
13765            operation_id: "pluginsctl_add_plugin",
13766        };
13767        self.pre(&mut request, &info).await?;
13768        let result = self.exec(request, &info).await;
13769        self.post(&result, &info).await?;
13770        let response = result?;
13771        match response.status().as_u16() {
13772            200u16 => ResponseValue::from_response(response).await,
13773            400u16..=499u16 => Err(Error::ErrorResponse(
13774                ResponseValue::from_response(response).await?,
13775            )),
13776            500u16..=599u16 => Err(Error::ErrorResponse(
13777                ResponseValue::from_response(response).await?,
13778            )),
13779            _ => Err(Error::UnexpectedResponse(response)),
13780        }
13781    }
13782
13783    ///Filter plugins by MIME type
13784    ///
13785    ///Returns plugins matching the requested MIME type and optional plugin
13786    /// type.
13787    ///
13788    ///Sends a `POST` request to `/pluginsctl/getPluginsForType`
13789    ///
13790    ///Arguments:
13791    /// - `async_`: Run the command asynchronously. Returns a job id
13792    ///   immediately.
13793    /// - `group`: Assign the request to a custom stats group.
13794    /// - `plugin_type`: Filter results by plugin type (e.g. `test`).
13795    /// - `type_`: MIME type to match when listing plugins.
13796    pub async fn pluginsctl_get_plugins_for_type<'a>(
13797        &'a self,
13798        async_: Option<bool>,
13799        group: Option<&'a str>,
13800        plugin_type: Option<&'a str>,
13801        type_: Option<&'a str>,
13802    ) -> Result<ResponseValue<types::PluginsctlGetPluginsForTypeResponse>, Error<types::RcError>>
13803    {
13804        let url = format!("{}/pluginsctl/getPluginsForType", self.baseurl,);
13805        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13806        header_map.append(
13807            ::reqwest::header::HeaderName::from_static("api-version"),
13808            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13809        );
13810        #[allow(unused_mut)]
13811        let mut request = self
13812            .client
13813            .post(url)
13814            .header(
13815                ::reqwest::header::ACCEPT,
13816                ::reqwest::header::HeaderValue::from_static("application/json"),
13817            )
13818            .query(&progenitor_client::QueryParam::new("_async", &async_))
13819            .query(&progenitor_client::QueryParam::new("_group", &group))
13820            .query(&progenitor_client::QueryParam::new(
13821                "pluginType",
13822                &plugin_type,
13823            ))
13824            .query(&progenitor_client::QueryParam::new("type", &type_))
13825            .headers(header_map)
13826            .build()?;
13827        let info = OperationInfo {
13828            operation_id: "pluginsctl_get_plugins_for_type",
13829        };
13830        self.pre(&mut request, &info).await?;
13831        let result = self.exec(request, &info).await;
13832        self.post(&result, &info).await?;
13833        let response = result?;
13834        match response.status().as_u16() {
13835            200u16 => ResponseValue::from_response(response).await,
13836            400u16..=499u16 => Err(Error::ErrorResponse(
13837                ResponseValue::from_response(response).await?,
13838            )),
13839            500u16..=599u16 => Err(Error::ErrorResponse(
13840                ResponseValue::from_response(response).await?,
13841            )),
13842            _ => Err(Error::UnexpectedResponse(response)),
13843        }
13844    }
13845
13846    ///List installed plugins
13847    ///
13848    ///Returns metadata for installed production and test plugins.
13849    ///
13850    ///Sends a `POST` request to `/pluginsctl/listPlugins`
13851    ///
13852    ///Arguments:
13853    /// - `async_`: Run the command asynchronously. Returns a job id
13854    ///   immediately.
13855    /// - `group`: Assign the request to a custom stats group.
13856    pub async fn pluginsctl_list_plugins<'a>(
13857        &'a self,
13858        async_: Option<bool>,
13859        group: Option<&'a str>,
13860    ) -> Result<ResponseValue<types::PluginsctlListPluginsResponse>, Error<types::RcError>> {
13861        let url = format!("{}/pluginsctl/listPlugins", self.baseurl,);
13862        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13863        header_map.append(
13864            ::reqwest::header::HeaderName::from_static("api-version"),
13865            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13866        );
13867        #[allow(unused_mut)]
13868        let mut request = self
13869            .client
13870            .post(url)
13871            .header(
13872                ::reqwest::header::ACCEPT,
13873                ::reqwest::header::HeaderValue::from_static("application/json"),
13874            )
13875            .query(&progenitor_client::QueryParam::new("_async", &async_))
13876            .query(&progenitor_client::QueryParam::new("_group", &group))
13877            .headers(header_map)
13878            .build()?;
13879        let info = OperationInfo {
13880            operation_id: "pluginsctl_list_plugins",
13881        };
13882        self.pre(&mut request, &info).await?;
13883        let result = self.exec(request, &info).await;
13884        self.post(&result, &info).await?;
13885        let response = result?;
13886        match response.status().as_u16() {
13887            200u16 => ResponseValue::from_response(response).await,
13888            400u16..=499u16 => Err(Error::ErrorResponse(
13889                ResponseValue::from_response(response).await?,
13890            )),
13891            500u16..=599u16 => Err(Error::ErrorResponse(
13892                ResponseValue::from_response(response).await?,
13893            )),
13894            _ => Err(Error::UnexpectedResponse(response)),
13895        }
13896    }
13897
13898    ///List installed test plugins
13899    ///
13900    ///Returns metadata for installed test plugins.
13901    ///
13902    ///Sends a `POST` request to `/pluginsctl/listTestPlugins`
13903    ///
13904    ///Arguments:
13905    /// - `async_`: Run the command asynchronously. Returns a job id
13906    ///   immediately.
13907    /// - `group`: Assign the request to a custom stats group.
13908    pub async fn pluginsctl_list_test_plugins<'a>(
13909        &'a self,
13910        async_: Option<bool>,
13911        group: Option<&'a str>,
13912    ) -> Result<ResponseValue<types::PluginsctlListTestPluginsResponse>, Error<types::RcError>>
13913    {
13914        let url = format!("{}/pluginsctl/listTestPlugins", self.baseurl,);
13915        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13916        header_map.append(
13917            ::reqwest::header::HeaderName::from_static("api-version"),
13918            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13919        );
13920        #[allow(unused_mut)]
13921        let mut request = self
13922            .client
13923            .post(url)
13924            .header(
13925                ::reqwest::header::ACCEPT,
13926                ::reqwest::header::HeaderValue::from_static("application/json"),
13927            )
13928            .query(&progenitor_client::QueryParam::new("_async", &async_))
13929            .query(&progenitor_client::QueryParam::new("_group", &group))
13930            .headers(header_map)
13931            .build()?;
13932        let info = OperationInfo {
13933            operation_id: "pluginsctl_list_test_plugins",
13934        };
13935        self.pre(&mut request, &info).await?;
13936        let result = self.exec(request, &info).await;
13937        self.post(&result, &info).await?;
13938        let response = result?;
13939        match response.status().as_u16() {
13940            200u16 => ResponseValue::from_response(response).await,
13941            400u16..=499u16 => Err(Error::ErrorResponse(
13942                ResponseValue::from_response(response).await?,
13943            )),
13944            500u16..=599u16 => Err(Error::ErrorResponse(
13945                ResponseValue::from_response(response).await?,
13946            )),
13947            _ => Err(Error::UnexpectedResponse(response)),
13948        }
13949    }
13950
13951    ///Remove plugin
13952    ///
13953    ///Uninstalls a plugin from the WebUI.
13954    ///
13955    ///Sends a `POST` request to `/pluginsctl/removePlugin`
13956    ///
13957    ///Arguments:
13958    /// - `async_`: Run the command asynchronously. Returns a job id
13959    ///   immediately.
13960    /// - `group`: Assign the request to a custom stats group.
13961    /// - `name`: Name of the plugin to uninstall.
13962    pub async fn pluginsctl_remove_plugin<'a>(
13963        &'a self,
13964        async_: Option<bool>,
13965        group: Option<&'a str>,
13966        name: &'a str,
13967    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
13968        let url = format!("{}/pluginsctl/removePlugin", self.baseurl,);
13969        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
13970        header_map.append(
13971            ::reqwest::header::HeaderName::from_static("api-version"),
13972            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
13973        );
13974        #[allow(unused_mut)]
13975        let mut request = self
13976            .client
13977            .post(url)
13978            .header(
13979                ::reqwest::header::ACCEPT,
13980                ::reqwest::header::HeaderValue::from_static("application/json"),
13981            )
13982            .query(&progenitor_client::QueryParam::new("_async", &async_))
13983            .query(&progenitor_client::QueryParam::new("_group", &group))
13984            .query(&progenitor_client::QueryParam::new("name", &name))
13985            .headers(header_map)
13986            .build()?;
13987        let info = OperationInfo {
13988            operation_id: "pluginsctl_remove_plugin",
13989        };
13990        self.pre(&mut request, &info).await?;
13991        let result = self.exec(request, &info).await;
13992        self.post(&result, &info).await?;
13993        let response = result?;
13994        match response.status().as_u16() {
13995            200u16 => Ok(ResponseValue::empty(response)),
13996            400u16..=499u16 => Err(Error::ErrorResponse(
13997                ResponseValue::from_response(response).await?,
13998            )),
13999            500u16..=599u16 => Err(Error::ErrorResponse(
14000                ResponseValue::from_response(response).await?,
14001            )),
14002            _ => Err(Error::UnexpectedResponse(response)),
14003        }
14004    }
14005
14006    ///Remove test plugin
14007    ///
14008    ///Uninstalls a test plugin from the WebUI.
14009    ///
14010    ///Sends a `POST` request to `/pluginsctl/removeTestPlugin`
14011    ///
14012    ///Arguments:
14013    /// - `async_`: Run the command asynchronously. Returns a job id
14014    ///   immediately.
14015    /// - `group`: Assign the request to a custom stats group.
14016    /// - `name`: Name of the test plugin to uninstall.
14017    pub async fn pluginsctl_remove_test_plugin<'a>(
14018        &'a self,
14019        async_: Option<bool>,
14020        group: Option<&'a str>,
14021        name: &'a str,
14022    ) -> Result<ResponseValue<()>, Error<types::RcError>> {
14023        let url = format!("{}/pluginsctl/removeTestPlugin", self.baseurl,);
14024        let mut header_map = ::reqwest::header::HeaderMap::with_capacity(1usize);
14025        header_map.append(
14026            ::reqwest::header::HeaderName::from_static("api-version"),
14027            ::reqwest::header::HeaderValue::from_static(Self::api_version()),
14028        );
14029        #[allow(unused_mut)]
14030        let mut request = self
14031            .client
14032            .post(url)
14033            .header(
14034                ::reqwest::header::ACCEPT,
14035                ::reqwest::header::HeaderValue::from_static("application/json"),
14036            )
14037            .query(&progenitor_client::QueryParam::new("_async", &async_))
14038            .query(&progenitor_client::QueryParam::new("_group", &group))
14039            .query(&progenitor_client::QueryParam::new("name", &name))
14040            .headers(header_map)
14041            .build()?;
14042        let info = OperationInfo {
14043            operation_id: "pluginsctl_remove_test_plugin",
14044        };
14045        self.pre(&mut request, &info).await?;
14046        let result = self.exec(request, &info).await;
14047        self.post(&result, &info).await?;
14048        let response = result?;
14049        match response.status().as_u16() {
14050            200u16 => Ok(ResponseValue::empty(response)),
14051            400u16..=499u16 => Err(Error::ErrorResponse(
14052                ResponseValue::from_response(response).await?,
14053            )),
14054            500u16..=599u16 => Err(Error::ErrorResponse(
14055                ResponseValue::from_response(response).await?,
14056            )),
14057            _ => Err(Error::UnexpectedResponse(response)),
14058        }
14059    }
14060}
14061
14062/// Items consumers will typically use such as the Client.
14063pub mod prelude {
14064    #[allow(unused_imports)]
14065    pub use super::Client;
14066}