1use crate::client::Client;
2use crate::errors::Error;
3use crate::Result;
4use reqwest::header::{HeaderMap, HeaderValue};
5use reqwest::Method;
6use serde_json::Value;
7use tracing::instrument;
8use urlencoding::encode;
9#[derive(Debug, Clone)]
10pub struct ClipzyZaiXianJianTieBanService<'a> {
11 pub(crate) client: &'a Client,
12}
13
14impl<'a> ClipzyZaiXianJianTieBanService<'a> {
15#[instrument(skip(self, params))]
17 pub async fn get_clipzy_get(&self, params: GetClipzyGetParams) -> Result<Value> {
18 let mut path = "/api/v1/api/get".to_string();
19
20 let mut query: Vec<(String, String)> = Vec::new();
21 query.push(("id".to_string(), params.id_query.clone()));
22 let query = if query.is_empty() { None } else { Some(query) };
23
24 let mut extra_headers = HeaderMap::new();
25 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
26 let body = None;
27
28 self.client
29 .request_json(
30 Method::GET,
31 &path,
32 headers,
33 query,
34 body,
35 )
36 .await
37 }
38#[instrument(skip(self, params))]
40 pub async fn get_clipzy_raw(&self, params: GetClipzyRawParams) -> Result<Value> {
41 let mut path = "/api/v1/api/raw/{id}".to_string();
42 {
43 let encoded = encode(¶ms.id_path).into_owned();
44 path = path.replace("{id}", &encoded);
45 }
46
47 let mut query: Vec<(String, String)> = Vec::new();
48 query.push(("key".to_string(), params.key_query.clone()));
49 let query = if query.is_empty() { None } else { Some(query) };
50
51 let mut extra_headers = HeaderMap::new();
52 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
53 let body = None;
54
55 self.client
56 .request_json(
57 Method::GET,
58 &path,
59 headers,
60 query,
61 body,
62 )
63 .await
64 }
65#[instrument(skip(self, params))]
67 pub async fn post_clipzy_store(&self, params: PostClipzyStoreParams) -> Result<Value> {
68 let mut path = "/api/v1/api/store".to_string();
69
70 let mut query: Vec<(String, String)> = Vec::new();
71 let query = if query.is_empty() { None } else { Some(query) };
72
73 let mut extra_headers = HeaderMap::new();
74 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
75 let body = params.body.clone();
76
77 self.client
78 .request_json(
79 Method::POST,
80 &path,
81 headers,
82 query,
83 body,
84 )
85 .await
86 }
87}
88
89#[derive(Debug, Clone)]
90pub struct GetClipzyGetParams {
91 pub id_query: String,
92}
93
94impl GetClipzyGetParams {
95 pub fn new(id_query: impl Into<String>) -> Self {
96 Self {
97 id_query: id_query.into(),
98 }
99 }
100}
101
102#[derive(Debug, Clone)]
103pub struct GetClipzyRawParams {
104 pub id_path: String,
105 pub key_query: String,
106}
107
108impl GetClipzyRawParams {
109 pub fn new(id_path: impl Into<String>, key_query: impl Into<String>) -> Self {
110 Self {
111 id_path: id_path.into(),
112 key_query: key_query.into(),
113 }
114 }
115}
116
117#[derive(Debug, Clone)]
118pub struct PostClipzyStoreParams {
119 pub body: Option<Value>,
120}
121
122impl PostClipzyStoreParams {
123 pub fn new() -> Self {
124 Self {
125 body: None,
126 }
127 }
128 pub fn body(mut self, value: Value) -> Self {
129 self.body = Some(value);
130 self
131 }
132}
133#[derive(Debug, Clone)]
134pub struct ConvertService<'a> {
135 pub(crate) client: &'a Client,
136}
137
138impl<'a> ConvertService<'a> {
139#[instrument(skip(self, params))]
141 pub async fn get_convert_unixtime(&self, params: GetConvertUnixtimeParams) -> Result<Value> {
142 let mut path = "/api/v1/convert/unixtime".to_string();
143
144 let mut query: Vec<(String, String)> = Vec::new();
145 query.push(("time".to_string(), params.time_query.clone()));
146 let query = if query.is_empty() { None } else { Some(query) };
147
148 let mut extra_headers = HeaderMap::new();
149 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
150 let body = None;
151
152 self.client
153 .request_json(
154 Method::GET,
155 &path,
156 headers,
157 query,
158 body,
159 )
160 .await
161 }
162#[instrument(skip(self, params))]
164 pub async fn post_convert_json(&self, params: PostConvertJsonParams) -> Result<Value> {
165 let mut path = "/api/v1/convert/json".to_string();
166
167 let mut query: Vec<(String, String)> = Vec::new();
168 let query = if query.is_empty() { None } else { Some(query) };
169
170 let mut extra_headers = HeaderMap::new();
171 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
172 let body = params.body.clone();
173
174 self.client
175 .request_json(
176 Method::POST,
177 &path,
178 headers,
179 query,
180 body,
181 )
182 .await
183 }
184}
185
186#[derive(Debug, Clone)]
187pub struct GetConvertUnixtimeParams {
188 pub time_query: String,
189}
190
191impl GetConvertUnixtimeParams {
192 pub fn new(time_query: impl Into<String>) -> Self {
193 Self {
194 time_query: time_query.into(),
195 }
196 }
197}
198
199#[derive(Debug, Clone)]
200pub struct PostConvertJsonParams {
201 pub body: Option<Value>,
202}
203
204impl PostConvertJsonParams {
205 pub fn new() -> Self {
206 Self {
207 body: None,
208 }
209 }
210 pub fn body(mut self, value: Value) -> Self {
211 self.body = Some(value);
212 self
213 }
214}
215#[derive(Debug, Clone)]
216pub struct DailyService<'a> {
217 pub(crate) client: &'a Client,
218}
219
220impl<'a> DailyService<'a> {
221#[instrument(skip(self))]
223 pub async fn get_daily_news_image(&self) -> Result<Value> {
224 let mut path = "/api/v1/daily/news-image".to_string();
225
226 let mut query: Vec<(String, String)> = Vec::new();
227 let query = if query.is_empty() { None } else { Some(query) };
228
229 let mut extra_headers = HeaderMap::new();
230 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
231 let body = None;
232
233 self.client
234 .request_json(
235 Method::GET,
236 &path,
237 headers,
238 query,
239 body,
240 )
241 .await
242 }
243}
244
245#[derive(Debug, Clone)]
246pub struct GameService<'a> {
247 pub(crate) client: &'a Client,
248}
249
250impl<'a> GameService<'a> {
251#[instrument(skip(self))]
253 pub async fn get_game_epic_free(&self) -> Result<Value> {
254 let mut path = "/api/v1/game/epic-free".to_string();
255
256 let mut query: Vec<(String, String)> = Vec::new();
257 let query = if query.is_empty() { None } else { Some(query) };
258
259 let mut extra_headers = HeaderMap::new();
260 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
261 let body = None;
262
263 self.client
264 .request_json(
265 Method::GET,
266 &path,
267 headers,
268 query,
269 body,
270 )
271 .await
272 }
273#[instrument(skip(self, params))]
275 pub async fn get_game_minecraft_historyid(&self, params: GetGameMinecraftHistoryidParams) -> Result<Value> {
276 let mut path = "/api/v1/game/minecraft/historyid".to_string();
277
278 let mut query: Vec<(String, String)> = Vec::new();
279 query.push(("uuid".to_string(), params.uuid_query.clone()));
280 let query = if query.is_empty() { None } else { Some(query) };
281
282 let mut extra_headers = HeaderMap::new();
283 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
284 let body = None;
285
286 self.client
287 .request_json(
288 Method::GET,
289 &path,
290 headers,
291 query,
292 body,
293 )
294 .await
295 }
296#[instrument(skip(self, params))]
298 pub async fn get_game_minecraft_serverstatus(&self, params: GetGameMinecraftServerstatusParams) -> Result<Value> {
299 let mut path = "/api/v1/game/minecraft/serverstatus".to_string();
300
301 let mut query: Vec<(String, String)> = Vec::new();
302 query.push(("server".to_string(), params.server_query.clone()));
303 let query = if query.is_empty() { None } else { Some(query) };
304
305 let mut extra_headers = HeaderMap::new();
306 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
307 let body = None;
308
309 self.client
310 .request_json(
311 Method::GET,
312 &path,
313 headers,
314 query,
315 body,
316 )
317 .await
318 }
319#[instrument(skip(self, params))]
321 pub async fn get_game_minecraft_userinfo(&self, params: GetGameMinecraftUserinfoParams) -> Result<Value> {
322 let mut path = "/api/v1/game/minecraft/userinfo".to_string();
323
324 let mut query: Vec<(String, String)> = Vec::new();
325 query.push(("username".to_string(), params.username_query.clone()));
326 let query = if query.is_empty() { None } else { Some(query) };
327
328 let mut extra_headers = HeaderMap::new();
329 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
330 let body = None;
331
332 self.client
333 .request_json(
334 Method::GET,
335 &path,
336 headers,
337 query,
338 body,
339 )
340 .await
341 }
342#[instrument(skip(self, params))]
344 pub async fn get_game_steam_summary(&self, params: GetGameSteamSummaryParams) -> Result<Value> {
345 let mut path = "/api/v1/game/steam/summary".to_string();
346
347 let mut query: Vec<(String, String)> = Vec::new();
348 if let Some(value) = ¶ms.steamid_query {
349 query.push(("steamid".to_string(), value.clone()));
350 }
351 if let Some(value) = ¶ms.id_query {
352 query.push(("id".to_string(), value.clone()));
353 }
354 if let Some(value) = ¶ms.id_3_query {
355 query.push(("id3".to_string(), value.clone()));
356 }
357 if let Some(value) = ¶ms.key_query {
358 query.push(("key".to_string(), value.clone()));
359 }
360 let query = if query.is_empty() { None } else { Some(query) };
361
362 let mut extra_headers = HeaderMap::new();
363 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
364 let body = None;
365
366 self.client
367 .request_json(
368 Method::GET,
369 &path,
370 headers,
371 query,
372 body,
373 )
374 .await
375 }
376}
377
378
379#[derive(Debug, Clone)]
380pub struct GetGameMinecraftHistoryidParams {
381 pub uuid_query: String,
382}
383
384impl GetGameMinecraftHistoryidParams {
385 pub fn new(uuid_query: impl Into<String>) -> Self {
386 Self {
387 uuid_query: uuid_query.into(),
388 }
389 }
390}
391
392#[derive(Debug, Clone)]
393pub struct GetGameMinecraftServerstatusParams {
394 pub server_query: String,
395}
396
397impl GetGameMinecraftServerstatusParams {
398 pub fn new(server_query: impl Into<String>) -> Self {
399 Self {
400 server_query: server_query.into(),
401 }
402 }
403}
404
405#[derive(Debug, Clone)]
406pub struct GetGameMinecraftUserinfoParams {
407 pub username_query: String,
408}
409
410impl GetGameMinecraftUserinfoParams {
411 pub fn new(username_query: impl Into<String>) -> Self {
412 Self {
413 username_query: username_query.into(),
414 }
415 }
416}
417
418#[derive(Debug, Clone)]
419pub struct GetGameSteamSummaryParams {
420 pub steamid_query: Option<String>,
421 pub id_query: Option<String>,
422 pub id_3_query: Option<String>,
423 pub key_query: Option<String>,
424}
425
426impl GetGameSteamSummaryParams {
427 pub fn new() -> Self {
428 Self {
429 steamid_query: None,
430 id_query: None,
431 id_3_query: None,
432 key_query: None,
433 }
434 }
435 pub fn steamid_query(mut self, value: impl Into<String>) -> Self {
436 self.steamid_query = Some(value.into());
437 self
438 }
439 pub fn id_query(mut self, value: impl Into<String>) -> Self {
440 self.id_query = Some(value.into());
441 self
442 }
443 pub fn id_3_query(mut self, value: impl Into<String>) -> Self {
444 self.id_3_query = Some(value.into());
445 self
446 }
447 pub fn key_query(mut self, value: impl Into<String>) -> Self {
448 self.key_query = Some(value.into());
449 self
450 }
451}
452#[derive(Debug, Clone)]
453pub struct ImageService<'a> {
454 pub(crate) client: &'a Client,
455}
456
457impl<'a> ImageService<'a> {
458#[instrument(skip(self, params))]
460 pub async fn get_avatar_gravatar(&self, params: GetAvatarGravatarParams) -> Result<Value> {
461 let mut path = "/api/v1/avatar/gravatar".to_string();
462
463 let mut query: Vec<(String, String)> = Vec::new();
464 if let Some(value) = ¶ms.email_query {
465 query.push(("email".to_string(), value.clone()));
466 }
467 if let Some(value) = ¶ms.hash_query {
468 query.push(("hash".to_string(), value.clone()));
469 }
470 if let Some(value) = ¶ms.s_query {
471 query.push(("s".to_string(), value.clone()));
472 }
473 if let Some(value) = ¶ms.d_query {
474 query.push(("d".to_string(), value.clone()));
475 }
476 if let Some(value) = ¶ms.r_query {
477 query.push(("r".to_string(), value.clone()));
478 }
479 let query = if query.is_empty() { None } else { Some(query) };
480
481 let mut extra_headers = HeaderMap::new();
482 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
483 let body = None;
484
485 self.client
486 .request_json(
487 Method::GET,
488 &path,
489 headers,
490 query,
491 body,
492 )
493 .await
494 }
495#[instrument(skip(self))]
497 pub async fn get_image_bing_daily(&self) -> Result<Value> {
498 let mut path = "/api/v1/image/bing-daily".to_string();
499
500 let mut query: Vec<(String, String)> = Vec::new();
501 let query = if query.is_empty() { None } else { Some(query) };
502
503 let mut extra_headers = HeaderMap::new();
504 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
505 let body = None;
506
507 self.client
508 .request_json(
509 Method::GET,
510 &path,
511 headers,
512 query,
513 body,
514 )
515 .await
516 }
517#[instrument(skip(self, params))]
519 pub async fn get_image_motou(&self, params: GetImageMotouParams) -> Result<Value> {
520 let mut path = "/api/v1/image/motou".to_string();
521
522 let mut query: Vec<(String, String)> = Vec::new();
523 query.push(("qq".to_string(), params.qq_query.clone()));
524 if let Some(value) = ¶ms.bg_color_query {
525 query.push(("bg_color".to_string(), value.clone()));
526 }
527 let query = if query.is_empty() { None } else { Some(query) };
528
529 let mut extra_headers = HeaderMap::new();
530 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
531 let body = None;
532
533 self.client
534 .request_json(
535 Method::GET,
536 &path,
537 headers,
538 query,
539 body,
540 )
541 .await
542 }
543#[instrument(skip(self, params))]
545 pub async fn get_image_qrcode(&self, params: GetImageQrcodeParams) -> Result<Value> {
546 let mut path = "/api/v1/image/qrcode".to_string();
547
548 let mut query: Vec<(String, String)> = Vec::new();
549 query.push(("text".to_string(), params.text_query.clone()));
550 if let Some(value) = ¶ms.size_query {
551 query.push(("size".to_string(), value.clone()));
552 }
553 if let Some(value) = ¶ms.format_query {
554 query.push(("format".to_string(), value.clone()));
555 }
556 let query = if query.is_empty() { None } else { Some(query) };
557
558 let mut extra_headers = HeaderMap::new();
559 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
560 let body = None;
561
562 self.client
563 .request_json(
564 Method::GET,
565 &path,
566 headers,
567 query,
568 body,
569 )
570 .await
571 }
572#[instrument(skip(self, params))]
574 pub async fn get_image_tobase_64(&self, params: GetImageTobase64Params) -> Result<Value> {
575 let mut path = "/api/v1/image/tobase64".to_string();
576
577 let mut query: Vec<(String, String)> = Vec::new();
578 query.push(("url".to_string(), params.url_query.clone()));
579 let query = if query.is_empty() { None } else { Some(query) };
580
581 let mut extra_headers = HeaderMap::new();
582 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
583 let body = None;
584
585 self.client
586 .request_json(
587 Method::GET,
588 &path,
589 headers,
590 query,
591 body,
592 )
593 .await
594 }
595#[instrument(skip(self, params))]
597 pub async fn post_image_compress(&self, params: PostImageCompressParams) -> Result<Value> {
598 let mut path = "/api/v1/image/compress".to_string();
599
600 let mut query: Vec<(String, String)> = Vec::new();
601 if let Some(value) = ¶ms.level_query {
602 query.push(("level".to_string(), value.clone()));
603 }
604 if let Some(value) = ¶ms.format_query {
605 query.push(("format".to_string(), value.clone()));
606 }
607 let query = if query.is_empty() { None } else { Some(query) };
608
609 let mut extra_headers = HeaderMap::new();
610 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
611 let body = params.body.clone();
612
613 self.client
614 .request_json(
615 Method::POST,
616 &path,
617 headers,
618 query,
619 body,
620 )
621 .await
622 }
623#[instrument(skip(self, params))]
625 pub async fn post_image_frombase_64(&self, params: PostImageFrombase64Params) -> Result<Value> {
626 let mut path = "/api/v1/image/frombase64".to_string();
627
628 let mut query: Vec<(String, String)> = Vec::new();
629 let query = if query.is_empty() { None } else { Some(query) };
630
631 let mut extra_headers = HeaderMap::new();
632 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
633 let body = params.body.clone();
634
635 self.client
636 .request_json(
637 Method::POST,
638 &path,
639 headers,
640 query,
641 body,
642 )
643 .await
644 }
645#[instrument(skip(self, params))]
647 pub async fn post_image_motou(&self, params: PostImageMotouParams) -> Result<Value> {
648 let mut path = "/api/v1/image/motou".to_string();
649
650 let mut query: Vec<(String, String)> = Vec::new();
651 let query = if query.is_empty() { None } else { Some(query) };
652
653 let mut extra_headers = HeaderMap::new();
654 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
655 let body = params.body.clone();
656
657 self.client
658 .request_json(
659 Method::POST,
660 &path,
661 headers,
662 query,
663 body,
664 )
665 .await
666 }
667#[instrument(skip(self, params))]
669 pub async fn post_image_speechless(&self, params: PostImageSpeechlessParams) -> Result<Value> {
670 let mut path = "/api/v1/image/speechless".to_string();
671
672 let mut query: Vec<(String, String)> = Vec::new();
673 let query = if query.is_empty() { None } else { Some(query) };
674
675 let mut extra_headers = HeaderMap::new();
676 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
677 let body = params.body.clone();
678
679 self.client
680 .request_json(
681 Method::POST,
682 &path,
683 headers,
684 query,
685 body,
686 )
687 .await
688 }
689#[instrument(skip(self, params))]
691 pub async fn post_image_svg(&self, params: PostImageSvgParams) -> Result<Value> {
692 let mut path = "/api/v1/image/svg".to_string();
693
694 let mut query: Vec<(String, String)> = Vec::new();
695 if let Some(value) = ¶ms.format_query {
696 query.push(("format".to_string(), value.clone()));
697 }
698 if let Some(value) = ¶ms.width_query {
699 query.push(("width".to_string(), value.clone()));
700 }
701 if let Some(value) = ¶ms.height_query {
702 query.push(("height".to_string(), value.clone()));
703 }
704 if let Some(value) = ¶ms.quality_query {
705 query.push(("quality".to_string(), value.clone()));
706 }
707 let query = if query.is_empty() { None } else { Some(query) };
708
709 let mut extra_headers = HeaderMap::new();
710 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
711 let body = params.body.clone();
712
713 self.client
714 .request_json(
715 Method::POST,
716 &path,
717 headers,
718 query,
719 body,
720 )
721 .await
722 }
723}
724
725#[derive(Debug, Clone)]
726pub struct GetAvatarGravatarParams {
727 pub email_query: Option<String>,
728 pub hash_query: Option<String>,
729 pub s_query: Option<String>,
730 pub d_query: Option<String>,
731 pub r_query: Option<String>,
732}
733
734impl GetAvatarGravatarParams {
735 pub fn new() -> Self {
736 Self {
737 email_query: None,
738 hash_query: None,
739 s_query: None,
740 d_query: None,
741 r_query: None,
742 }
743 }
744 pub fn email_query(mut self, value: impl Into<String>) -> Self {
745 self.email_query = Some(value.into());
746 self
747 }
748 pub fn hash_query(mut self, value: impl Into<String>) -> Self {
749 self.hash_query = Some(value.into());
750 self
751 }
752 pub fn s_query(mut self, value: impl Into<String>) -> Self {
753 self.s_query = Some(value.into());
754 self
755 }
756 pub fn d_query(mut self, value: impl Into<String>) -> Self {
757 self.d_query = Some(value.into());
758 self
759 }
760 pub fn r_query(mut self, value: impl Into<String>) -> Self {
761 self.r_query = Some(value.into());
762 self
763 }
764}
765
766
767#[derive(Debug, Clone)]
768pub struct GetImageMotouParams {
769 pub qq_query: String,
770 pub bg_color_query: Option<String>,
771}
772
773impl GetImageMotouParams {
774 pub fn new(qq_query: impl Into<String>) -> Self {
775 Self {
776 qq_query: qq_query.into(),
777 bg_color_query: None,
778 }
779 }
780 pub fn bg_color_query(mut self, value: impl Into<String>) -> Self {
781 self.bg_color_query = Some(value.into());
782 self
783 }
784}
785
786#[derive(Debug, Clone)]
787pub struct GetImageQrcodeParams {
788 pub text_query: String,
789 pub size_query: Option<String>,
790 pub format_query: Option<String>,
791}
792
793impl GetImageQrcodeParams {
794 pub fn new(text_query: impl Into<String>) -> Self {
795 Self {
796 text_query: text_query.into(),
797 size_query: None,
798 format_query: None,
799 }
800 }
801 pub fn size_query(mut self, value: impl Into<String>) -> Self {
802 self.size_query = Some(value.into());
803 self
804 }
805 pub fn format_query(mut self, value: impl Into<String>) -> Self {
806 self.format_query = Some(value.into());
807 self
808 }
809}
810
811#[derive(Debug, Clone)]
812pub struct GetImageTobase64Params {
813 pub url_query: String,
814}
815
816impl GetImageTobase64Params {
817 pub fn new(url_query: impl Into<String>) -> Self {
818 Self {
819 url_query: url_query.into(),
820 }
821 }
822}
823
824#[derive(Debug, Clone)]
825pub struct PostImageCompressParams {
826 pub level_query: Option<String>,
827 pub format_query: Option<String>,
828 pub body: Option<Value>,
829}
830
831impl PostImageCompressParams {
832 pub fn new() -> Self {
833 Self {
834 level_query: None,
835 format_query: None,
836 body: None,
837 }
838 }
839 pub fn level_query(mut self, value: impl Into<String>) -> Self {
840 self.level_query = Some(value.into());
841 self
842 }
843 pub fn format_query(mut self, value: impl Into<String>) -> Self {
844 self.format_query = Some(value.into());
845 self
846 }
847 pub fn body(mut self, value: Value) -> Self {
848 self.body = Some(value);
849 self
850 }
851}
852
853#[derive(Debug, Clone)]
854pub struct PostImageFrombase64Params {
855 pub body: Option<Value>,
856}
857
858impl PostImageFrombase64Params {
859 pub fn new() -> Self {
860 Self {
861 body: None,
862 }
863 }
864 pub fn body(mut self, value: Value) -> Self {
865 self.body = Some(value);
866 self
867 }
868}
869
870#[derive(Debug, Clone)]
871pub struct PostImageMotouParams {
872 pub body: Option<Value>,
873}
874
875impl PostImageMotouParams {
876 pub fn new() -> Self {
877 Self {
878 body: None,
879 }
880 }
881 pub fn body(mut self, value: Value) -> Self {
882 self.body = Some(value);
883 self
884 }
885}
886
887#[derive(Debug, Clone)]
888pub struct PostImageSpeechlessParams {
889 pub body: Option<Value>,
890}
891
892impl PostImageSpeechlessParams {
893 pub fn new() -> Self {
894 Self {
895 body: None,
896 }
897 }
898 pub fn body(mut self, value: Value) -> Self {
899 self.body = Some(value);
900 self
901 }
902}
903
904#[derive(Debug, Clone)]
905pub struct PostImageSvgParams {
906 pub format_query: Option<String>,
907 pub width_query: Option<String>,
908 pub height_query: Option<String>,
909 pub quality_query: Option<String>,
910 pub body: Option<Value>,
911}
912
913impl PostImageSvgParams {
914 pub fn new() -> Self {
915 Self {
916 format_query: None,
917 width_query: None,
918 height_query: None,
919 quality_query: None,
920 body: None,
921 }
922 }
923 pub fn format_query(mut self, value: impl Into<String>) -> Self {
924 self.format_query = Some(value.into());
925 self
926 }
927 pub fn width_query(mut self, value: impl Into<String>) -> Self {
928 self.width_query = Some(value.into());
929 self
930 }
931 pub fn height_query(mut self, value: impl Into<String>) -> Self {
932 self.height_query = Some(value.into());
933 self
934 }
935 pub fn quality_query(mut self, value: impl Into<String>) -> Self {
936 self.quality_query = Some(value.into());
937 self
938 }
939 pub fn body(mut self, value: Value) -> Self {
940 self.body = Some(value);
941 self
942 }
943}
944#[derive(Debug, Clone)]
945pub struct MiscService<'a> {
946 pub(crate) client: &'a Client,
947}
948
949impl<'a> MiscService<'a> {
950#[instrument(skip(self, params))]
952 pub async fn get_history_programmer(&self, params: GetHistoryProgrammerParams) -> Result<Value> {
953 let mut path = "/api/v1/history/programmer".to_string();
954
955 let mut query: Vec<(String, String)> = Vec::new();
956 query.push(("month".to_string(), params.month_query.clone()));
957 query.push(("day".to_string(), params.day_query.clone()));
958 let query = if query.is_empty() { None } else { Some(query) };
959
960 let mut extra_headers = HeaderMap::new();
961 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
962 let body = None;
963
964 self.client
965 .request_json(
966 Method::GET,
967 &path,
968 headers,
969 query,
970 body,
971 )
972 .await
973 }
974#[instrument(skip(self))]
976 pub async fn get_history_programmer_today(&self) -> Result<Value> {
977 let mut path = "/api/v1/history/programmer/today".to_string();
978
979 let mut query: Vec<(String, String)> = Vec::new();
980 let query = if query.is_empty() { None } else { Some(query) };
981
982 let mut extra_headers = HeaderMap::new();
983 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
984 let body = None;
985
986 self.client
987 .request_json(
988 Method::GET,
989 &path,
990 headers,
991 query,
992 body,
993 )
994 .await
995 }
996#[instrument(skip(self, params))]
998 pub async fn get_misc_hotboard(&self, params: GetMiscHotboardParams) -> Result<Value> {
999 let mut path = "/api/v1/misc/hotboard".to_string();
1000
1001 let mut query: Vec<(String, String)> = Vec::new();
1002 query.push(("type".to_string(), params.type_query.clone()));
1003 let query = if query.is_empty() { None } else { Some(query) };
1004
1005 let mut extra_headers = HeaderMap::new();
1006 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1007 let body = None;
1008
1009 self.client
1010 .request_json(
1011 Method::GET,
1012 &path,
1013 headers,
1014 query,
1015 body,
1016 )
1017 .await
1018 }
1019#[instrument(skip(self, params))]
1021 pub async fn get_misc_phoneinfo(&self, params: GetMiscPhoneinfoParams) -> Result<Value> {
1022 let mut path = "/api/v1/misc/phoneinfo".to_string();
1023
1024 let mut query: Vec<(String, String)> = Vec::new();
1025 query.push(("phone".to_string(), params.phone_query.clone()));
1026 let query = if query.is_empty() { None } else { Some(query) };
1027
1028 let mut extra_headers = HeaderMap::new();
1029 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1030 let body = None;
1031
1032 self.client
1033 .request_json(
1034 Method::GET,
1035 &path,
1036 headers,
1037 query,
1038 body,
1039 )
1040 .await
1041 }
1042#[instrument(skip(self, params))]
1044 pub async fn get_misc_randomnumber(&self, params: GetMiscRandomnumberParams) -> Result<Value> {
1045 let mut path = "/api/v1/misc/randomnumber".to_string();
1046
1047 let mut query: Vec<(String, String)> = Vec::new();
1048 if let Some(value) = ¶ms.min_query {
1049 query.push(("min".to_string(), value.clone()));
1050 }
1051 if let Some(value) = ¶ms.max_query {
1052 query.push(("max".to_string(), value.clone()));
1053 }
1054 if let Some(value) = ¶ms.count_query {
1055 query.push(("count".to_string(), value.clone()));
1056 }
1057 if let Some(value) = ¶ms.allow_repeat_query {
1058 query.push(("allow_repeat".to_string(), value.clone()));
1059 }
1060 if let Some(value) = ¶ms.allow_decimal_query {
1061 query.push(("allow_decimal".to_string(), value.clone()));
1062 }
1063 if let Some(value) = ¶ms.decimal_places_query {
1064 query.push(("decimal_places".to_string(), value.clone()));
1065 }
1066 let query = if query.is_empty() { None } else { Some(query) };
1067
1068 let mut extra_headers = HeaderMap::new();
1069 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1070 let body = None;
1071
1072 self.client
1073 .request_json(
1074 Method::GET,
1075 &path,
1076 headers,
1077 query,
1078 body,
1079 )
1080 .await
1081 }
1082#[instrument(skip(self, params))]
1084 pub async fn get_misc_timestamp(&self, params: GetMiscTimestampParams) -> Result<Value> {
1085 let mut path = "/api/v1/misc/timestamp".to_string();
1086
1087 let mut query: Vec<(String, String)> = Vec::new();
1088 query.push(("ts".to_string(), params.ts_query.clone()));
1089 let query = if query.is_empty() { None } else { Some(query) };
1090
1091 let mut extra_headers = HeaderMap::new();
1092 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1093 let body = None;
1094
1095 self.client
1096 .request_json(
1097 Method::GET,
1098 &path,
1099 headers,
1100 query,
1101 body,
1102 )
1103 .await
1104 }
1105#[instrument(skip(self))]
1107 pub async fn get_misc_tracking_carriers(&self) -> Result<Value> {
1108 let mut path = "/api/v1/misc/tracking/carriers".to_string();
1109
1110 let mut query: Vec<(String, String)> = Vec::new();
1111 let query = if query.is_empty() { None } else { Some(query) };
1112
1113 let mut extra_headers = HeaderMap::new();
1114 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1115 let body = None;
1116
1117 self.client
1118 .request_json(
1119 Method::GET,
1120 &path,
1121 headers,
1122 query,
1123 body,
1124 )
1125 .await
1126 }
1127#[instrument(skip(self, params))]
1129 pub async fn get_misc_tracking_detect(&self, params: GetMiscTrackingDetectParams) -> Result<Value> {
1130 let mut path = "/api/v1/misc/tracking/detect".to_string();
1131
1132 let mut query: Vec<(String, String)> = Vec::new();
1133 query.push(("tracking_number".to_string(), params.tracking_number_query.clone()));
1134 let query = if query.is_empty() { None } else { Some(query) };
1135
1136 let mut extra_headers = HeaderMap::new();
1137 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1138 let body = None;
1139
1140 self.client
1141 .request_json(
1142 Method::GET,
1143 &path,
1144 headers,
1145 query,
1146 body,
1147 )
1148 .await
1149 }
1150#[instrument(skip(self, params))]
1152 pub async fn get_misc_tracking_query(&self, params: GetMiscTrackingQueryParams) -> Result<Value> {
1153 let mut path = "/api/v1/misc/tracking/query".to_string();
1154
1155 let mut query: Vec<(String, String)> = Vec::new();
1156 query.push(("tracking_number".to_string(), params.tracking_number_query.clone()));
1157 if let Some(value) = ¶ms.carrier_code_query {
1158 query.push(("carrier_code".to_string(), value.clone()));
1159 }
1160 let query = if query.is_empty() { None } else { Some(query) };
1161
1162 let mut extra_headers = HeaderMap::new();
1163 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1164 let body = None;
1165
1166 self.client
1167 .request_json(
1168 Method::GET,
1169 &path,
1170 headers,
1171 query,
1172 body,
1173 )
1174 .await
1175 }
1176#[instrument(skip(self, params))]
1178 pub async fn get_misc_weather(&self, params: GetMiscWeatherParams) -> Result<Value> {
1179 let mut path = "/api/v1/misc/weather".to_string();
1180
1181 let mut query: Vec<(String, String)> = Vec::new();
1182 if let Some(value) = ¶ms.city_query {
1183 query.push(("city".to_string(), value.clone()));
1184 }
1185 if let Some(value) = ¶ms.adcode_query {
1186 query.push(("adcode".to_string(), value.clone()));
1187 }
1188 let query = if query.is_empty() { None } else { Some(query) };
1189
1190 let mut extra_headers = HeaderMap::new();
1191 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1192 let body = None;
1193
1194 self.client
1195 .request_json(
1196 Method::GET,
1197 &path,
1198 headers,
1199 query,
1200 body,
1201 )
1202 .await
1203 }
1204#[instrument(skip(self, params))]
1206 pub async fn get_misc_worldtime(&self, params: GetMiscWorldtimeParams) -> Result<Value> {
1207 let mut path = "/api/v1/misc/worldtime".to_string();
1208
1209 let mut query: Vec<(String, String)> = Vec::new();
1210 query.push(("city".to_string(), params.city_query.clone()));
1211 let query = if query.is_empty() { None } else { Some(query) };
1212
1213 let mut extra_headers = HeaderMap::new();
1214 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1215 let body = None;
1216
1217 self.client
1218 .request_json(
1219 Method::GET,
1220 &path,
1221 headers,
1222 query,
1223 body,
1224 )
1225 .await
1226 }
1227}
1228
1229#[derive(Debug, Clone)]
1230pub struct GetHistoryProgrammerParams {
1231 pub month_query: String,
1232 pub day_query: String,
1233}
1234
1235impl GetHistoryProgrammerParams {
1236 pub fn new(month_query: impl Into<String>, day_query: impl Into<String>) -> Self {
1237 Self {
1238 month_query: month_query.into(),
1239 day_query: day_query.into(),
1240 }
1241 }
1242}
1243
1244
1245#[derive(Debug, Clone)]
1246pub struct GetMiscHotboardParams {
1247 pub type_query: String,
1248}
1249
1250impl GetMiscHotboardParams {
1251 pub fn new(type_query: impl Into<String>) -> Self {
1252 Self {
1253 type_query: type_query.into(),
1254 }
1255 }
1256}
1257
1258#[derive(Debug, Clone)]
1259pub struct GetMiscPhoneinfoParams {
1260 pub phone_query: String,
1261}
1262
1263impl GetMiscPhoneinfoParams {
1264 pub fn new(phone_query: impl Into<String>) -> Self {
1265 Self {
1266 phone_query: phone_query.into(),
1267 }
1268 }
1269}
1270
1271#[derive(Debug, Clone)]
1272pub struct GetMiscRandomnumberParams {
1273 pub min_query: Option<String>,
1274 pub max_query: Option<String>,
1275 pub count_query: Option<String>,
1276 pub allow_repeat_query: Option<String>,
1277 pub allow_decimal_query: Option<String>,
1278 pub decimal_places_query: Option<String>,
1279}
1280
1281impl GetMiscRandomnumberParams {
1282 pub fn new() -> Self {
1283 Self {
1284 min_query: None,
1285 max_query: None,
1286 count_query: None,
1287 allow_repeat_query: None,
1288 allow_decimal_query: None,
1289 decimal_places_query: None,
1290 }
1291 }
1292 pub fn min_query(mut self, value: impl Into<String>) -> Self {
1293 self.min_query = Some(value.into());
1294 self
1295 }
1296 pub fn max_query(mut self, value: impl Into<String>) -> Self {
1297 self.max_query = Some(value.into());
1298 self
1299 }
1300 pub fn count_query(mut self, value: impl Into<String>) -> Self {
1301 self.count_query = Some(value.into());
1302 self
1303 }
1304 pub fn allow_repeat_query(mut self, value: impl Into<String>) -> Self {
1305 self.allow_repeat_query = Some(value.into());
1306 self
1307 }
1308 pub fn allow_decimal_query(mut self, value: impl Into<String>) -> Self {
1309 self.allow_decimal_query = Some(value.into());
1310 self
1311 }
1312 pub fn decimal_places_query(mut self, value: impl Into<String>) -> Self {
1313 self.decimal_places_query = Some(value.into());
1314 self
1315 }
1316}
1317
1318#[derive(Debug, Clone)]
1319pub struct GetMiscTimestampParams {
1320 pub ts_query: String,
1321}
1322
1323impl GetMiscTimestampParams {
1324 pub fn new(ts_query: impl Into<String>) -> Self {
1325 Self {
1326 ts_query: ts_query.into(),
1327 }
1328 }
1329}
1330
1331
1332#[derive(Debug, Clone)]
1333pub struct GetMiscTrackingDetectParams {
1334 pub tracking_number_query: String,
1335}
1336
1337impl GetMiscTrackingDetectParams {
1338 pub fn new(tracking_number_query: impl Into<String>) -> Self {
1339 Self {
1340 tracking_number_query: tracking_number_query.into(),
1341 }
1342 }
1343}
1344
1345#[derive(Debug, Clone)]
1346pub struct GetMiscTrackingQueryParams {
1347 pub tracking_number_query: String,
1348 pub carrier_code_query: Option<String>,
1349}
1350
1351impl GetMiscTrackingQueryParams {
1352 pub fn new(tracking_number_query: impl Into<String>) -> Self {
1353 Self {
1354 tracking_number_query: tracking_number_query.into(),
1355 carrier_code_query: None,
1356 }
1357 }
1358 pub fn carrier_code_query(mut self, value: impl Into<String>) -> Self {
1359 self.carrier_code_query = Some(value.into());
1360 self
1361 }
1362}
1363
1364#[derive(Debug, Clone)]
1365pub struct GetMiscWeatherParams {
1366 pub city_query: Option<String>,
1367 pub adcode_query: Option<String>,
1368}
1369
1370impl GetMiscWeatherParams {
1371 pub fn new() -> Self {
1372 Self {
1373 city_query: None,
1374 adcode_query: None,
1375 }
1376 }
1377 pub fn city_query(mut self, value: impl Into<String>) -> Self {
1378 self.city_query = Some(value.into());
1379 self
1380 }
1381 pub fn adcode_query(mut self, value: impl Into<String>) -> Self {
1382 self.adcode_query = Some(value.into());
1383 self
1384 }
1385}
1386
1387#[derive(Debug, Clone)]
1388pub struct GetMiscWorldtimeParams {
1389 pub city_query: String,
1390}
1391
1392impl GetMiscWorldtimeParams {
1393 pub fn new(city_query: impl Into<String>) -> Self {
1394 Self {
1395 city_query: city_query.into(),
1396 }
1397 }
1398}
1399#[derive(Debug, Clone)]
1400pub struct NetworkService<'a> {
1401 pub(crate) client: &'a Client,
1402}
1403
1404impl<'a> NetworkService<'a> {
1405#[instrument(skip(self, params))]
1407 pub async fn get_network_dns(&self, params: GetNetworkDnsParams) -> Result<Value> {
1408 let mut path = "/api/v1/network/dns".to_string();
1409
1410 let mut query: Vec<(String, String)> = Vec::new();
1411 query.push(("domain".to_string(), params.domain_query.clone()));
1412 if let Some(value) = ¶ms.type_query {
1413 query.push(("type".to_string(), value.clone()));
1414 }
1415 let query = if query.is_empty() { None } else { Some(query) };
1416
1417 let mut extra_headers = HeaderMap::new();
1418 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1419 let body = None;
1420
1421 self.client
1422 .request_json(
1423 Method::GET,
1424 &path,
1425 headers,
1426 query,
1427 body,
1428 )
1429 .await
1430 }
1431#[instrument(skip(self, params))]
1433 pub async fn get_network_icp(&self, params: GetNetworkIcpParams) -> Result<Value> {
1434 let mut path = "/api/v1/network/icp".to_string();
1435
1436 let mut query: Vec<(String, String)> = Vec::new();
1437 query.push(("domain".to_string(), params.domain_query.clone()));
1438 let query = if query.is_empty() { None } else { Some(query) };
1439
1440 let mut extra_headers = HeaderMap::new();
1441 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1442 let body = None;
1443
1444 self.client
1445 .request_json(
1446 Method::GET,
1447 &path,
1448 headers,
1449 query,
1450 body,
1451 )
1452 .await
1453 }
1454#[instrument(skip(self, params))]
1456 pub async fn get_network_ipinfo(&self, params: GetNetworkIpinfoParams) -> Result<Value> {
1457 let mut path = "/api/v1/network/ipinfo".to_string();
1458
1459 let mut query: Vec<(String, String)> = Vec::new();
1460 query.push(("ip".to_string(), params.ip_query.clone()));
1461 if let Some(value) = ¶ms.source_query {
1462 query.push(("source".to_string(), value.clone()));
1463 }
1464 let query = if query.is_empty() { None } else { Some(query) };
1465
1466 let mut extra_headers = HeaderMap::new();
1467 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1468 let body = None;
1469
1470 self.client
1471 .request_json(
1472 Method::GET,
1473 &path,
1474 headers,
1475 query,
1476 body,
1477 )
1478 .await
1479 }
1480#[instrument(skip(self, params))]
1482 pub async fn get_network_myip(&self, params: GetNetworkMyipParams) -> Result<Value> {
1483 let mut path = "/api/v1/network/myip".to_string();
1484
1485 let mut query: Vec<(String, String)> = Vec::new();
1486 if let Some(value) = ¶ms.source_query {
1487 query.push(("source".to_string(), value.clone()));
1488 }
1489 let query = if query.is_empty() { None } else { Some(query) };
1490
1491 let mut extra_headers = HeaderMap::new();
1492 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1493 let body = None;
1494
1495 self.client
1496 .request_json(
1497 Method::GET,
1498 &path,
1499 headers,
1500 query,
1501 body,
1502 )
1503 .await
1504 }
1505#[instrument(skip(self, params))]
1507 pub async fn get_network_ping(&self, params: GetNetworkPingParams) -> Result<Value> {
1508 let mut path = "/api/v1/network/ping".to_string();
1509
1510 let mut query: Vec<(String, String)> = Vec::new();
1511 query.push(("host".to_string(), params.host_query.clone()));
1512 let query = if query.is_empty() { None } else { Some(query) };
1513
1514 let mut extra_headers = HeaderMap::new();
1515 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1516 let body = None;
1517
1518 self.client
1519 .request_json(
1520 Method::GET,
1521 &path,
1522 headers,
1523 query,
1524 body,
1525 )
1526 .await
1527 }
1528#[instrument(skip(self))]
1530 pub async fn get_network_pingmyip(&self) -> Result<Value> {
1531 let mut path = "/api/v1/network/pingmyip".to_string();
1532
1533 let mut query: Vec<(String, String)> = Vec::new();
1534 let query = if query.is_empty() { None } else { Some(query) };
1535
1536 let mut extra_headers = HeaderMap::new();
1537 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1538 let body = None;
1539
1540 self.client
1541 .request_json(
1542 Method::GET,
1543 &path,
1544 headers,
1545 query,
1546 body,
1547 )
1548 .await
1549 }
1550#[instrument(skip(self, params))]
1552 pub async fn get_network_portscan(&self, params: GetNetworkPortscanParams) -> Result<Value> {
1553 let mut path = "/api/v1/network/portscan".to_string();
1554
1555 let mut query: Vec<(String, String)> = Vec::new();
1556 query.push(("host".to_string(), params.host_query.clone()));
1557 query.push(("port".to_string(), params.port_query.clone()));
1558 if let Some(value) = ¶ms.protocol_query {
1559 query.push(("protocol".to_string(), value.clone()));
1560 }
1561 let query = if query.is_empty() { None } else { Some(query) };
1562
1563 let mut extra_headers = HeaderMap::new();
1564 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1565 let body = None;
1566
1567 self.client
1568 .request_json(
1569 Method::GET,
1570 &path,
1571 headers,
1572 query,
1573 body,
1574 )
1575 .await
1576 }
1577#[instrument(skip(self, params))]
1579 pub async fn get_network_urlstatus(&self, params: GetNetworkUrlstatusParams) -> Result<Value> {
1580 let mut path = "/api/v1/network/urlstatus".to_string();
1581
1582 let mut query: Vec<(String, String)> = Vec::new();
1583 query.push(("url".to_string(), params.url_query.clone()));
1584 let query = if query.is_empty() { None } else { Some(query) };
1585
1586 let mut extra_headers = HeaderMap::new();
1587 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1588 let body = None;
1589
1590 self.client
1591 .request_json(
1592 Method::GET,
1593 &path,
1594 headers,
1595 query,
1596 body,
1597 )
1598 .await
1599 }
1600#[instrument(skip(self, params))]
1602 pub async fn get_network_whois(&self, params: GetNetworkWhoisParams) -> Result<Value> {
1603 let mut path = "/api/v1/network/whois".to_string();
1604
1605 let mut query: Vec<(String, String)> = Vec::new();
1606 query.push(("domain".to_string(), params.domain_query.clone()));
1607 if let Some(value) = ¶ms.format_query {
1608 query.push(("format".to_string(), value.clone()));
1609 }
1610 let query = if query.is_empty() { None } else { Some(query) };
1611
1612 let mut extra_headers = HeaderMap::new();
1613 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1614 let body = None;
1615
1616 self.client
1617 .request_json(
1618 Method::GET,
1619 &path,
1620 headers,
1621 query,
1622 body,
1623 )
1624 .await
1625 }
1626#[instrument(skip(self, params))]
1628 pub async fn get_network_wxdomain(&self, params: GetNetworkWxdomainParams) -> Result<Value> {
1629 let mut path = "/api/v1/network/wxdomain".to_string();
1630
1631 let mut query: Vec<(String, String)> = Vec::new();
1632 query.push(("domain".to_string(), params.domain_query.clone()));
1633 let query = if query.is_empty() { None } else { Some(query) };
1634
1635 let mut extra_headers = HeaderMap::new();
1636 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1637 let body = None;
1638
1639 self.client
1640 .request_json(
1641 Method::GET,
1642 &path,
1643 headers,
1644 query,
1645 body,
1646 )
1647 .await
1648 }
1649}
1650
1651#[derive(Debug, Clone)]
1652pub struct GetNetworkDnsParams {
1653 pub domain_query: String,
1654 pub type_query: Option<String>,
1655}
1656
1657impl GetNetworkDnsParams {
1658 pub fn new(domain_query: impl Into<String>) -> Self {
1659 Self {
1660 domain_query: domain_query.into(),
1661 type_query: None,
1662 }
1663 }
1664 pub fn type_query(mut self, value: impl Into<String>) -> Self {
1665 self.type_query = Some(value.into());
1666 self
1667 }
1668}
1669
1670#[derive(Debug, Clone)]
1671pub struct GetNetworkIcpParams {
1672 pub domain_query: String,
1673}
1674
1675impl GetNetworkIcpParams {
1676 pub fn new(domain_query: impl Into<String>) -> Self {
1677 Self {
1678 domain_query: domain_query.into(),
1679 }
1680 }
1681}
1682
1683#[derive(Debug, Clone)]
1684pub struct GetNetworkIpinfoParams {
1685 pub ip_query: String,
1686 pub source_query: Option<String>,
1687}
1688
1689impl GetNetworkIpinfoParams {
1690 pub fn new(ip_query: impl Into<String>) -> Self {
1691 Self {
1692 ip_query: ip_query.into(),
1693 source_query: None,
1694 }
1695 }
1696 pub fn source_query(mut self, value: impl Into<String>) -> Self {
1697 self.source_query = Some(value.into());
1698 self
1699 }
1700}
1701
1702#[derive(Debug, Clone)]
1703pub struct GetNetworkMyipParams {
1704 pub source_query: Option<String>,
1705}
1706
1707impl GetNetworkMyipParams {
1708 pub fn new() -> Self {
1709 Self {
1710 source_query: None,
1711 }
1712 }
1713 pub fn source_query(mut self, value: impl Into<String>) -> Self {
1714 self.source_query = Some(value.into());
1715 self
1716 }
1717}
1718
1719#[derive(Debug, Clone)]
1720pub struct GetNetworkPingParams {
1721 pub host_query: String,
1722}
1723
1724impl GetNetworkPingParams {
1725 pub fn new(host_query: impl Into<String>) -> Self {
1726 Self {
1727 host_query: host_query.into(),
1728 }
1729 }
1730}
1731
1732
1733#[derive(Debug, Clone)]
1734pub struct GetNetworkPortscanParams {
1735 pub host_query: String,
1736 pub port_query: String,
1737 pub protocol_query: Option<String>,
1738}
1739
1740impl GetNetworkPortscanParams {
1741 pub fn new(host_query: impl Into<String>, port_query: impl Into<String>) -> Self {
1742 Self {
1743 host_query: host_query.into(),
1744 port_query: port_query.into(),
1745 protocol_query: None,
1746 }
1747 }
1748 pub fn protocol_query(mut self, value: impl Into<String>) -> Self {
1749 self.protocol_query = Some(value.into());
1750 self
1751 }
1752}
1753
1754#[derive(Debug, Clone)]
1755pub struct GetNetworkUrlstatusParams {
1756 pub url_query: String,
1757}
1758
1759impl GetNetworkUrlstatusParams {
1760 pub fn new(url_query: impl Into<String>) -> Self {
1761 Self {
1762 url_query: url_query.into(),
1763 }
1764 }
1765}
1766
1767#[derive(Debug, Clone)]
1768pub struct GetNetworkWhoisParams {
1769 pub domain_query: String,
1770 pub format_query: Option<String>,
1771}
1772
1773impl GetNetworkWhoisParams {
1774 pub fn new(domain_query: impl Into<String>) -> Self {
1775 Self {
1776 domain_query: domain_query.into(),
1777 format_query: None,
1778 }
1779 }
1780 pub fn format_query(mut self, value: impl Into<String>) -> Self {
1781 self.format_query = Some(value.into());
1782 self
1783 }
1784}
1785
1786#[derive(Debug, Clone)]
1787pub struct GetNetworkWxdomainParams {
1788 pub domain_query: String,
1789}
1790
1791impl GetNetworkWxdomainParams {
1792 pub fn new(domain_query: impl Into<String>) -> Self {
1793 Self {
1794 domain_query: domain_query.into(),
1795 }
1796 }
1797}
1798#[derive(Debug, Clone)]
1799pub struct PoemService<'a> {
1800 pub(crate) client: &'a Client,
1801}
1802
1803impl<'a> PoemService<'a> {
1804#[instrument(skip(self))]
1806 pub async fn get_saying(&self) -> Result<Value> {
1807 let mut path = "/api/v1/saying".to_string();
1808
1809 let mut query: Vec<(String, String)> = Vec::new();
1810 let query = if query.is_empty() { None } else { Some(query) };
1811
1812 let mut extra_headers = HeaderMap::new();
1813 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1814 let body = None;
1815
1816 self.client
1817 .request_json(
1818 Method::GET,
1819 &path,
1820 headers,
1821 query,
1822 body,
1823 )
1824 .await
1825 }
1826}
1827
1828#[derive(Debug, Clone)]
1829pub struct RandomService<'a> {
1830 pub(crate) client: &'a Client,
1831}
1832
1833impl<'a> RandomService<'a> {
1834#[instrument(skip(self, params))]
1836 pub async fn get_answerbook_ask(&self, params: GetAnswerbookAskParams) -> Result<Value> {
1837 let mut path = "/api/v1/answerbook/ask".to_string();
1838
1839 let mut query: Vec<(String, String)> = Vec::new();
1840 query.push(("question".to_string(), params.question_query.clone()));
1841 let query = if query.is_empty() { None } else { Some(query) };
1842
1843 let mut extra_headers = HeaderMap::new();
1844 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1845 let body = None;
1846
1847 self.client
1848 .request_json(
1849 Method::GET,
1850 &path,
1851 headers,
1852 query,
1853 body,
1854 )
1855 .await
1856 }
1857#[instrument(skip(self, params))]
1859 pub async fn get_random_image(&self, params: GetRandomImageParams) -> Result<Value> {
1860 let mut path = "/api/v1/random/image".to_string();
1861
1862 let mut query: Vec<(String, String)> = Vec::new();
1863 if let Some(value) = ¶ms.category_query {
1864 query.push(("category".to_string(), value.clone()));
1865 }
1866 if let Some(value) = ¶ms.type_query {
1867 query.push(("type".to_string(), value.clone()));
1868 }
1869 let query = if query.is_empty() { None } else { Some(query) };
1870
1871 let mut extra_headers = HeaderMap::new();
1872 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1873 let body = None;
1874
1875 self.client
1876 .request_json(
1877 Method::GET,
1878 &path,
1879 headers,
1880 query,
1881 body,
1882 )
1883 .await
1884 }
1885#[instrument(skip(self, params))]
1887 pub async fn get_random_string(&self, params: GetRandomStringParams) -> Result<Value> {
1888 let mut path = "/api/v1/random/string".to_string();
1889
1890 let mut query: Vec<(String, String)> = Vec::new();
1891 if let Some(value) = ¶ms.length_query {
1892 query.push(("length".to_string(), value.clone()));
1893 }
1894 if let Some(value) = ¶ms.type_query {
1895 query.push(("type".to_string(), value.clone()));
1896 }
1897 let query = if query.is_empty() { None } else { Some(query) };
1898
1899 let mut extra_headers = HeaderMap::new();
1900 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1901 let body = None;
1902
1903 self.client
1904 .request_json(
1905 Method::GET,
1906 &path,
1907 headers,
1908 query,
1909 body,
1910 )
1911 .await
1912 }
1913#[instrument(skip(self, params))]
1915 pub async fn post_answerbook_ask(&self, params: PostAnswerbookAskParams) -> Result<Value> {
1916 let mut path = "/api/v1/answerbook/ask".to_string();
1917
1918 let mut query: Vec<(String, String)> = Vec::new();
1919 let query = if query.is_empty() { None } else { Some(query) };
1920
1921 let mut extra_headers = HeaderMap::new();
1922 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
1923 let body = params.body.clone();
1924
1925 self.client
1926 .request_json(
1927 Method::POST,
1928 &path,
1929 headers,
1930 query,
1931 body,
1932 )
1933 .await
1934 }
1935}
1936
1937#[derive(Debug, Clone)]
1938pub struct GetAnswerbookAskParams {
1939 pub question_query: String,
1940}
1941
1942impl GetAnswerbookAskParams {
1943 pub fn new(question_query: impl Into<String>) -> Self {
1944 Self {
1945 question_query: question_query.into(),
1946 }
1947 }
1948}
1949
1950#[derive(Debug, Clone)]
1951pub struct GetRandomImageParams {
1952 pub category_query: Option<String>,
1953 pub type_query: Option<String>,
1954}
1955
1956impl GetRandomImageParams {
1957 pub fn new() -> Self {
1958 Self {
1959 category_query: None,
1960 type_query: None,
1961 }
1962 }
1963 pub fn category_query(mut self, value: impl Into<String>) -> Self {
1964 self.category_query = Some(value.into());
1965 self
1966 }
1967 pub fn type_query(mut self, value: impl Into<String>) -> Self {
1968 self.type_query = Some(value.into());
1969 self
1970 }
1971}
1972
1973#[derive(Debug, Clone)]
1974pub struct GetRandomStringParams {
1975 pub length_query: Option<String>,
1976 pub type_query: Option<String>,
1977}
1978
1979impl GetRandomStringParams {
1980 pub fn new() -> Self {
1981 Self {
1982 length_query: None,
1983 type_query: None,
1984 }
1985 }
1986 pub fn length_query(mut self, value: impl Into<String>) -> Self {
1987 self.length_query = Some(value.into());
1988 self
1989 }
1990 pub fn type_query(mut self, value: impl Into<String>) -> Self {
1991 self.type_query = Some(value.into());
1992 self
1993 }
1994}
1995
1996#[derive(Debug, Clone)]
1997pub struct PostAnswerbookAskParams {
1998 pub body: Option<Value>,
1999}
2000
2001impl PostAnswerbookAskParams {
2002 pub fn new() -> Self {
2003 Self {
2004 body: None,
2005 }
2006 }
2007 pub fn body(mut self, value: Value) -> Self {
2008 self.body = Some(value);
2009 self
2010 }
2011}
2012#[derive(Debug, Clone)]
2013pub struct SocialService<'a> {
2014 pub(crate) client: &'a Client,
2015}
2016
2017impl<'a> SocialService<'a> {
2018#[instrument(skip(self, params))]
2020 pub async fn get_github_repo(&self, params: GetGithubRepoParams) -> Result<Value> {
2021 let mut path = "/api/v1/github/repo".to_string();
2022
2023 let mut query: Vec<(String, String)> = Vec::new();
2024 query.push(("repo".to_string(), params.repo_query.clone()));
2025 let query = if query.is_empty() { None } else { Some(query) };
2026
2027 let mut extra_headers = HeaderMap::new();
2028 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2029 let body = None;
2030
2031 self.client
2032 .request_json(
2033 Method::GET,
2034 &path,
2035 headers,
2036 query,
2037 body,
2038 )
2039 .await
2040 }
2041#[instrument(skip(self, params))]
2043 pub async fn get_social_bilibili_archives(&self, params: GetSocialBilibiliArchivesParams) -> Result<Value> {
2044 let mut path = "/api/v1/social/bilibili/archives".to_string();
2045
2046 let mut query: Vec<(String, String)> = Vec::new();
2047 query.push(("mid".to_string(), params.mid_query.clone()));
2048 if let Some(value) = ¶ms.keywords_query {
2049 query.push(("keywords".to_string(), value.clone()));
2050 }
2051 if let Some(value) = ¶ms.orderby_query {
2052 query.push(("orderby".to_string(), value.clone()));
2053 }
2054 if let Some(value) = ¶ms.ps_query {
2055 query.push(("ps".to_string(), value.clone()));
2056 }
2057 if let Some(value) = ¶ms.pn_query {
2058 query.push(("pn".to_string(), value.clone()));
2059 }
2060 let query = if query.is_empty() { None } else { Some(query) };
2061
2062 let mut extra_headers = HeaderMap::new();
2063 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2064 let body = None;
2065
2066 self.client
2067 .request_json(
2068 Method::GET,
2069 &path,
2070 headers,
2071 query,
2072 body,
2073 )
2074 .await
2075 }
2076#[instrument(skip(self, params))]
2078 pub async fn get_social_bilibili_liveroom(&self, params: GetSocialBilibiliLiveroomParams) -> Result<Value> {
2079 let mut path = "/api/v1/social/bilibili/liveroom".to_string();
2080
2081 let mut query: Vec<(String, String)> = Vec::new();
2082 if let Some(value) = ¶ms.mid_query {
2083 query.push(("mid".to_string(), value.clone()));
2084 }
2085 if let Some(value) = ¶ms.room_id_query {
2086 query.push(("room_id".to_string(), value.clone()));
2087 }
2088 let query = if query.is_empty() { None } else { Some(query) };
2089
2090 let mut extra_headers = HeaderMap::new();
2091 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2092 let body = None;
2093
2094 self.client
2095 .request_json(
2096 Method::GET,
2097 &path,
2098 headers,
2099 query,
2100 body,
2101 )
2102 .await
2103 }
2104#[instrument(skip(self, params))]
2106 pub async fn get_social_bilibili_replies(&self, params: GetSocialBilibiliRepliesParams) -> Result<Value> {
2107 let mut path = "/api/v1/social/bilibili/replies".to_string();
2108
2109 let mut query: Vec<(String, String)> = Vec::new();
2110 query.push(("oid".to_string(), params.oid_query.clone()));
2111 if let Some(value) = ¶ms.sort_query {
2112 query.push(("sort".to_string(), value.clone()));
2113 }
2114 if let Some(value) = ¶ms.ps_query {
2115 query.push(("ps".to_string(), value.clone()));
2116 }
2117 if let Some(value) = ¶ms.pn_query {
2118 query.push(("pn".to_string(), value.clone()));
2119 }
2120 let query = if query.is_empty() { None } else { Some(query) };
2121
2122 let mut extra_headers = HeaderMap::new();
2123 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2124 let body = None;
2125
2126 self.client
2127 .request_json(
2128 Method::GET,
2129 &path,
2130 headers,
2131 query,
2132 body,
2133 )
2134 .await
2135 }
2136#[instrument(skip(self, params))]
2138 pub async fn get_social_bilibili_userinfo(&self, params: GetSocialBilibiliUserinfoParams) -> Result<Value> {
2139 let mut path = "/api/v1/social/bilibili/userinfo".to_string();
2140
2141 let mut query: Vec<(String, String)> = Vec::new();
2142 query.push(("uid".to_string(), params.uid_query.clone()));
2143 let query = if query.is_empty() { None } else { Some(query) };
2144
2145 let mut extra_headers = HeaderMap::new();
2146 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2147 let body = None;
2148
2149 self.client
2150 .request_json(
2151 Method::GET,
2152 &path,
2153 headers,
2154 query,
2155 body,
2156 )
2157 .await
2158 }
2159#[instrument(skip(self, params))]
2161 pub async fn get_social_bilibili_videoinfo(&self, params: GetSocialBilibiliVideoinfoParams) -> Result<Value> {
2162 let mut path = "/api/v1/social/bilibili/videoinfo".to_string();
2163
2164 let mut query: Vec<(String, String)> = Vec::new();
2165 if let Some(value) = ¶ms.aid_query {
2166 query.push(("aid".to_string(), value.clone()));
2167 }
2168 if let Some(value) = ¶ms.bvid_query {
2169 query.push(("bvid".to_string(), value.clone()));
2170 }
2171 let query = if query.is_empty() { None } else { Some(query) };
2172
2173 let mut extra_headers = HeaderMap::new();
2174 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2175 let body = None;
2176
2177 self.client
2178 .request_json(
2179 Method::GET,
2180 &path,
2181 headers,
2182 query,
2183 body,
2184 )
2185 .await
2186 }
2187#[instrument(skip(self, params))]
2189 pub async fn get_social_qq_groupinfo(&self, params: GetSocialQqGroupinfoParams) -> Result<Value> {
2190 let mut path = "/api/v1/social/qq/groupinfo".to_string();
2191
2192 let mut query: Vec<(String, String)> = Vec::new();
2193 query.push(("group_id".to_string(), params.group_id_query.clone()));
2194 let query = if query.is_empty() { None } else { Some(query) };
2195
2196 let mut extra_headers = HeaderMap::new();
2197 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2198 let body = None;
2199
2200 self.client
2201 .request_json(
2202 Method::GET,
2203 &path,
2204 headers,
2205 query,
2206 body,
2207 )
2208 .await
2209 }
2210#[instrument(skip(self, params))]
2212 pub async fn get_social_qq_userinfo(&self, params: GetSocialQqUserinfoParams) -> Result<Value> {
2213 let mut path = "/api/v1/social/qq/userinfo".to_string();
2214
2215 let mut query: Vec<(String, String)> = Vec::new();
2216 query.push(("qq".to_string(), params.qq_query.clone()));
2217 let query = if query.is_empty() { None } else { Some(query) };
2218
2219 let mut extra_headers = HeaderMap::new();
2220 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2221 let body = None;
2222
2223 self.client
2224 .request_json(
2225 Method::GET,
2226 &path,
2227 headers,
2228 query,
2229 body,
2230 )
2231 .await
2232 }
2233}
2234
2235#[derive(Debug, Clone)]
2236pub struct GetGithubRepoParams {
2237 pub repo_query: String,
2238}
2239
2240impl GetGithubRepoParams {
2241 pub fn new(repo_query: impl Into<String>) -> Self {
2242 Self {
2243 repo_query: repo_query.into(),
2244 }
2245 }
2246}
2247
2248#[derive(Debug, Clone)]
2249pub struct GetSocialBilibiliArchivesParams {
2250 pub mid_query: String,
2251 pub keywords_query: Option<String>,
2252 pub orderby_query: Option<String>,
2253 pub ps_query: Option<String>,
2254 pub pn_query: Option<String>,
2255}
2256
2257impl GetSocialBilibiliArchivesParams {
2258 pub fn new(mid_query: impl Into<String>) -> Self {
2259 Self {
2260 mid_query: mid_query.into(),
2261 keywords_query: None,
2262 orderby_query: None,
2263 ps_query: None,
2264 pn_query: None,
2265 }
2266 }
2267 pub fn keywords_query(mut self, value: impl Into<String>) -> Self {
2268 self.keywords_query = Some(value.into());
2269 self
2270 }
2271 pub fn orderby_query(mut self, value: impl Into<String>) -> Self {
2272 self.orderby_query = Some(value.into());
2273 self
2274 }
2275 pub fn ps_query(mut self, value: impl Into<String>) -> Self {
2276 self.ps_query = Some(value.into());
2277 self
2278 }
2279 pub fn pn_query(mut self, value: impl Into<String>) -> Self {
2280 self.pn_query = Some(value.into());
2281 self
2282 }
2283}
2284
2285#[derive(Debug, Clone)]
2286pub struct GetSocialBilibiliLiveroomParams {
2287 pub mid_query: Option<String>,
2288 pub room_id_query: Option<String>,
2289}
2290
2291impl GetSocialBilibiliLiveroomParams {
2292 pub fn new() -> Self {
2293 Self {
2294 mid_query: None,
2295 room_id_query: None,
2296 }
2297 }
2298 pub fn mid_query(mut self, value: impl Into<String>) -> Self {
2299 self.mid_query = Some(value.into());
2300 self
2301 }
2302 pub fn room_id_query(mut self, value: impl Into<String>) -> Self {
2303 self.room_id_query = Some(value.into());
2304 self
2305 }
2306}
2307
2308#[derive(Debug, Clone)]
2309pub struct GetSocialBilibiliRepliesParams {
2310 pub oid_query: String,
2311 pub sort_query: Option<String>,
2312 pub ps_query: Option<String>,
2313 pub pn_query: Option<String>,
2314}
2315
2316impl GetSocialBilibiliRepliesParams {
2317 pub fn new(oid_query: impl Into<String>) -> Self {
2318 Self {
2319 oid_query: oid_query.into(),
2320 sort_query: None,
2321 ps_query: None,
2322 pn_query: None,
2323 }
2324 }
2325 pub fn sort_query(mut self, value: impl Into<String>) -> Self {
2326 self.sort_query = Some(value.into());
2327 self
2328 }
2329 pub fn ps_query(mut self, value: impl Into<String>) -> Self {
2330 self.ps_query = Some(value.into());
2331 self
2332 }
2333 pub fn pn_query(mut self, value: impl Into<String>) -> Self {
2334 self.pn_query = Some(value.into());
2335 self
2336 }
2337}
2338
2339#[derive(Debug, Clone)]
2340pub struct GetSocialBilibiliUserinfoParams {
2341 pub uid_query: String,
2342}
2343
2344impl GetSocialBilibiliUserinfoParams {
2345 pub fn new(uid_query: impl Into<String>) -> Self {
2346 Self {
2347 uid_query: uid_query.into(),
2348 }
2349 }
2350}
2351
2352#[derive(Debug, Clone)]
2353pub struct GetSocialBilibiliVideoinfoParams {
2354 pub aid_query: Option<String>,
2355 pub bvid_query: Option<String>,
2356}
2357
2358impl GetSocialBilibiliVideoinfoParams {
2359 pub fn new() -> Self {
2360 Self {
2361 aid_query: None,
2362 bvid_query: None,
2363 }
2364 }
2365 pub fn aid_query(mut self, value: impl Into<String>) -> Self {
2366 self.aid_query = Some(value.into());
2367 self
2368 }
2369 pub fn bvid_query(mut self, value: impl Into<String>) -> Self {
2370 self.bvid_query = Some(value.into());
2371 self
2372 }
2373}
2374
2375#[derive(Debug, Clone)]
2376pub struct GetSocialQqGroupinfoParams {
2377 pub group_id_query: String,
2378}
2379
2380impl GetSocialQqGroupinfoParams {
2381 pub fn new(group_id_query: impl Into<String>) -> Self {
2382 Self {
2383 group_id_query: group_id_query.into(),
2384 }
2385 }
2386}
2387
2388#[derive(Debug, Clone)]
2389pub struct GetSocialQqUserinfoParams {
2390 pub qq_query: String,
2391}
2392
2393impl GetSocialQqUserinfoParams {
2394 pub fn new(qq_query: impl Into<String>) -> Self {
2395 Self {
2396 qq_query: qq_query.into(),
2397 }
2398 }
2399}
2400#[derive(Debug, Clone)]
2401pub struct StatusService<'a> {
2402 pub(crate) client: &'a Client,
2403}
2404
2405impl<'a> StatusService<'a> {
2406#[instrument(skip(self, params))]
2408 pub async fn get_status_ratelimit(&self, params: GetStatusRatelimitParams) -> Result<Value> {
2409 let mut path = "/api/v1/status/ratelimit".to_string();
2410
2411 let mut query: Vec<(String, String)> = Vec::new();
2412 let query = if query.is_empty() { None } else { Some(query) };
2413
2414 let mut extra_headers = HeaderMap::new();
2415 extra_headers.insert(
2416 "Authorization",
2417 HeaderValue::from_str(¶ms.authorization_header).map_err(|_| Error::InvalidHeader { name: "Authorization".into() })?,
2418 );
2419 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2420 let body = None;
2421
2422 self.client
2423 .request_json(
2424 Method::GET,
2425 &path,
2426 headers,
2427 query,
2428 body,
2429 )
2430 .await
2431 }
2432#[instrument(skip(self, params))]
2434 pub async fn get_status_usage(&self, params: GetStatusUsageParams) -> Result<Value> {
2435 let mut path = "/api/v1/status/usage".to_string();
2436
2437 let mut query: Vec<(String, String)> = Vec::new();
2438 if let Some(value) = ¶ms.path_query {
2439 query.push(("path".to_string(), value.clone()));
2440 }
2441 let query = if query.is_empty() { None } else { Some(query) };
2442
2443 let mut extra_headers = HeaderMap::new();
2444 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2445 let body = None;
2446
2447 self.client
2448 .request_json(
2449 Method::GET,
2450 &path,
2451 headers,
2452 query,
2453 body,
2454 )
2455 .await
2456 }
2457}
2458
2459#[derive(Debug, Clone)]
2460pub struct GetStatusRatelimitParams {
2461 pub authorization_header: String,
2462}
2463
2464impl GetStatusRatelimitParams {
2465 pub fn new(authorization_header: impl Into<String>) -> Self {
2466 Self {
2467 authorization_header: authorization_header.into(),
2468 }
2469 }
2470}
2471
2472#[derive(Debug, Clone)]
2473pub struct GetStatusUsageParams {
2474 pub path_query: Option<String>,
2475}
2476
2477impl GetStatusUsageParams {
2478 pub fn new() -> Self {
2479 Self {
2480 path_query: None,
2481 }
2482 }
2483 pub fn path_query(mut self, value: impl Into<String>) -> Self {
2484 self.path_query = Some(value.into());
2485 self
2486 }
2487}
2488#[derive(Debug, Clone)]
2489pub struct TextService<'a> {
2490 pub(crate) client: &'a Client,
2491}
2492
2493impl<'a> TextService<'a> {
2494#[instrument(skip(self, params))]
2496 pub async fn get_text_md_5(&self, params: GetTextMd5Params) -> Result<Value> {
2497 let mut path = "/api/v1/text/md5".to_string();
2498
2499 let mut query: Vec<(String, String)> = Vec::new();
2500 query.push(("text".to_string(), params.text_query.clone()));
2501 let query = if query.is_empty() { None } else { Some(query) };
2502
2503 let mut extra_headers = HeaderMap::new();
2504 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2505 let body = None;
2506
2507 self.client
2508 .request_json(
2509 Method::GET,
2510 &path,
2511 headers,
2512 query,
2513 body,
2514 )
2515 .await
2516 }
2517#[instrument(skip(self, params))]
2519 pub async fn post_text_aes_decrypt(&self, params: PostTextAesDecryptParams) -> Result<Value> {
2520 let mut path = "/api/v1/text/aes/decrypt".to_string();
2521
2522 let mut query: Vec<(String, String)> = Vec::new();
2523 let query = if query.is_empty() { None } else { Some(query) };
2524
2525 let mut extra_headers = HeaderMap::new();
2526 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2527 let body = params.body.clone();
2528
2529 self.client
2530 .request_json(
2531 Method::POST,
2532 &path,
2533 headers,
2534 query,
2535 body,
2536 )
2537 .await
2538 }
2539#[instrument(skip(self, params))]
2541 pub async fn post_text_aes_encrypt(&self, params: PostTextAesEncryptParams) -> Result<Value> {
2542 let mut path = "/api/v1/text/aes/encrypt".to_string();
2543
2544 let mut query: Vec<(String, String)> = Vec::new();
2545 let query = if query.is_empty() { None } else { Some(query) };
2546
2547 let mut extra_headers = HeaderMap::new();
2548 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2549 let body = params.body.clone();
2550
2551 self.client
2552 .request_json(
2553 Method::POST,
2554 &path,
2555 headers,
2556 query,
2557 body,
2558 )
2559 .await
2560 }
2561#[instrument(skip(self, params))]
2563 pub async fn post_text_analyze(&self, params: PostTextAnalyzeParams) -> Result<Value> {
2564 let mut path = "/api/v1/text/analyze".to_string();
2565
2566 let mut query: Vec<(String, String)> = Vec::new();
2567 let query = if query.is_empty() { None } else { Some(query) };
2568
2569 let mut extra_headers = HeaderMap::new();
2570 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2571 let body = params.body.clone();
2572
2573 self.client
2574 .request_json(
2575 Method::POST,
2576 &path,
2577 headers,
2578 query,
2579 body,
2580 )
2581 .await
2582 }
2583#[instrument(skip(self, params))]
2585 pub async fn post_text_base_64_decode(&self, params: PostTextBase64DecodeParams) -> Result<Value> {
2586 let mut path = "/api/v1/text/base64/decode".to_string();
2587
2588 let mut query: Vec<(String, String)> = Vec::new();
2589 let query = if query.is_empty() { None } else { Some(query) };
2590
2591 let mut extra_headers = HeaderMap::new();
2592 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2593 let body = params.body.clone();
2594
2595 self.client
2596 .request_json(
2597 Method::POST,
2598 &path,
2599 headers,
2600 query,
2601 body,
2602 )
2603 .await
2604 }
2605#[instrument(skip(self, params))]
2607 pub async fn post_text_base_64_encode(&self, params: PostTextBase64EncodeParams) -> Result<Value> {
2608 let mut path = "/api/v1/text/base64/encode".to_string();
2609
2610 let mut query: Vec<(String, String)> = Vec::new();
2611 let query = if query.is_empty() { None } else { Some(query) };
2612
2613 let mut extra_headers = HeaderMap::new();
2614 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2615 let body = params.body.clone();
2616
2617 self.client
2618 .request_json(
2619 Method::POST,
2620 &path,
2621 headers,
2622 query,
2623 body,
2624 )
2625 .await
2626 }
2627#[instrument(skip(self, params))]
2629 pub async fn post_text_md_5(&self, params: PostTextMd5Params) -> Result<Value> {
2630 let mut path = "/api/v1/text/md5".to_string();
2631
2632 let mut query: Vec<(String, String)> = Vec::new();
2633 let query = if query.is_empty() { None } else { Some(query) };
2634
2635 let mut extra_headers = HeaderMap::new();
2636 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2637 let body = params.body.clone();
2638
2639 self.client
2640 .request_json(
2641 Method::POST,
2642 &path,
2643 headers,
2644 query,
2645 body,
2646 )
2647 .await
2648 }
2649#[instrument(skip(self, params))]
2651 pub async fn post_text_md_5_verify(&self, params: PostTextMd5VerifyParams) -> Result<Value> {
2652 let mut path = "/api/v1/text/md5/verify".to_string();
2653
2654 let mut query: Vec<(String, String)> = Vec::new();
2655 let query = if query.is_empty() { None } else { Some(query) };
2656
2657 let mut extra_headers = HeaderMap::new();
2658 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2659 let body = params.body.clone();
2660
2661 self.client
2662 .request_json(
2663 Method::POST,
2664 &path,
2665 headers,
2666 query,
2667 body,
2668 )
2669 .await
2670 }
2671}
2672
2673#[derive(Debug, Clone)]
2674pub struct GetTextMd5Params {
2675 pub text_query: String,
2676}
2677
2678impl GetTextMd5Params {
2679 pub fn new(text_query: impl Into<String>) -> Self {
2680 Self {
2681 text_query: text_query.into(),
2682 }
2683 }
2684}
2685
2686#[derive(Debug, Clone)]
2687pub struct PostTextAesDecryptParams {
2688 pub body: Option<Value>,
2689}
2690
2691impl PostTextAesDecryptParams {
2692 pub fn new() -> Self {
2693 Self {
2694 body: None,
2695 }
2696 }
2697 pub fn body(mut self, value: Value) -> Self {
2698 self.body = Some(value);
2699 self
2700 }
2701}
2702
2703#[derive(Debug, Clone)]
2704pub struct PostTextAesEncryptParams {
2705 pub body: Option<Value>,
2706}
2707
2708impl PostTextAesEncryptParams {
2709 pub fn new() -> Self {
2710 Self {
2711 body: None,
2712 }
2713 }
2714 pub fn body(mut self, value: Value) -> Self {
2715 self.body = Some(value);
2716 self
2717 }
2718}
2719
2720#[derive(Debug, Clone)]
2721pub struct PostTextAnalyzeParams {
2722 pub body: Option<Value>,
2723}
2724
2725impl PostTextAnalyzeParams {
2726 pub fn new() -> Self {
2727 Self {
2728 body: None,
2729 }
2730 }
2731 pub fn body(mut self, value: Value) -> Self {
2732 self.body = Some(value);
2733 self
2734 }
2735}
2736
2737#[derive(Debug, Clone)]
2738pub struct PostTextBase64DecodeParams {
2739 pub body: Option<Value>,
2740}
2741
2742impl PostTextBase64DecodeParams {
2743 pub fn new() -> Self {
2744 Self {
2745 body: None,
2746 }
2747 }
2748 pub fn body(mut self, value: Value) -> Self {
2749 self.body = Some(value);
2750 self
2751 }
2752}
2753
2754#[derive(Debug, Clone)]
2755pub struct PostTextBase64EncodeParams {
2756 pub body: Option<Value>,
2757}
2758
2759impl PostTextBase64EncodeParams {
2760 pub fn new() -> Self {
2761 Self {
2762 body: None,
2763 }
2764 }
2765 pub fn body(mut self, value: Value) -> Self {
2766 self.body = Some(value);
2767 self
2768 }
2769}
2770
2771#[derive(Debug, Clone)]
2772pub struct PostTextMd5Params {
2773 pub body: Option<Value>,
2774}
2775
2776impl PostTextMd5Params {
2777 pub fn new() -> Self {
2778 Self {
2779 body: None,
2780 }
2781 }
2782 pub fn body(mut self, value: Value) -> Self {
2783 self.body = Some(value);
2784 self
2785 }
2786}
2787
2788#[derive(Debug, Clone)]
2789pub struct PostTextMd5VerifyParams {
2790 pub body: Option<Value>,
2791}
2792
2793impl PostTextMd5VerifyParams {
2794 pub fn new() -> Self {
2795 Self {
2796 body: None,
2797 }
2798 }
2799 pub fn body(mut self, value: Value) -> Self {
2800 self.body = Some(value);
2801 self
2802 }
2803}
2804#[derive(Debug, Clone)]
2805pub struct TranslateService<'a> {
2806 pub(crate) client: &'a Client,
2807}
2808
2809impl<'a> TranslateService<'a> {
2810#[instrument(skip(self))]
2812 pub async fn get_ai_translate_languages(&self) -> Result<Value> {
2813 let mut path = "/api/v1/ai/translate/languages".to_string();
2814
2815 let mut query: Vec<(String, String)> = Vec::new();
2816 let query = if query.is_empty() { None } else { Some(query) };
2817
2818 let mut extra_headers = HeaderMap::new();
2819 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2820 let body = None;
2821
2822 self.client
2823 .request_json(
2824 Method::GET,
2825 &path,
2826 headers,
2827 query,
2828 body,
2829 )
2830 .await
2831 }
2832#[instrument(skip(self, params))]
2834 pub async fn post_ai_translate(&self, params: PostAiTranslateParams) -> Result<Value> {
2835 let mut path = "/api/v1/ai/translate".to_string();
2836
2837 let mut query: Vec<(String, String)> = Vec::new();
2838 query.push(("target_lang".to_string(), params.target_lang_query.clone()));
2839 let query = if query.is_empty() { None } else { Some(query) };
2840
2841 let mut extra_headers = HeaderMap::new();
2842 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2843 let body = params.body.clone();
2844
2845 self.client
2846 .request_json(
2847 Method::POST,
2848 &path,
2849 headers,
2850 query,
2851 body,
2852 )
2853 .await
2854 }
2855#[instrument(skip(self, params))]
2857 pub async fn post_translate_stream(&self, params: PostTranslateStreamParams) -> Result<Value> {
2858 let mut path = "/api/v1/translate/stream".to_string();
2859
2860 let mut query: Vec<(String, String)> = Vec::new();
2861 let query = if query.is_empty() { None } else { Some(query) };
2862
2863 let mut extra_headers = HeaderMap::new();
2864 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2865 let body = params.body.clone();
2866
2867 self.client
2868 .request_json(
2869 Method::POST,
2870 &path,
2871 headers,
2872 query,
2873 body,
2874 )
2875 .await
2876 }
2877#[instrument(skip(self, params))]
2879 pub async fn post_translate_text(&self, params: PostTranslateTextParams) -> Result<Value> {
2880 let mut path = "/api/v1/translate/text".to_string();
2881
2882 let mut query: Vec<(String, String)> = Vec::new();
2883 query.push(("to_lang".to_string(), params.to_lang_query.clone()));
2884 let query = if query.is_empty() { None } else { Some(query) };
2885
2886 let mut extra_headers = HeaderMap::new();
2887 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2888 let body = params.body.clone();
2889
2890 self.client
2891 .request_json(
2892 Method::POST,
2893 &path,
2894 headers,
2895 query,
2896 body,
2897 )
2898 .await
2899 }
2900}
2901
2902
2903#[derive(Debug, Clone)]
2904pub struct PostAiTranslateParams {
2905 pub target_lang_query: String,
2906 pub body: Option<Value>,
2907}
2908
2909impl PostAiTranslateParams {
2910 pub fn new(target_lang_query: impl Into<String>) -> Self {
2911 Self {
2912 target_lang_query: target_lang_query.into(),
2913 body: None,
2914 }
2915 }
2916 pub fn body(mut self, value: Value) -> Self {
2917 self.body = Some(value);
2918 self
2919 }
2920}
2921
2922#[derive(Debug, Clone)]
2923pub struct PostTranslateStreamParams {
2924 pub body: Option<Value>,
2925}
2926
2927impl PostTranslateStreamParams {
2928 pub fn new() -> Self {
2929 Self {
2930 body: None,
2931 }
2932 }
2933 pub fn body(mut self, value: Value) -> Self {
2934 self.body = Some(value);
2935 self
2936 }
2937}
2938
2939#[derive(Debug, Clone)]
2940pub struct PostTranslateTextParams {
2941 pub to_lang_query: String,
2942 pub body: Option<Value>,
2943}
2944
2945impl PostTranslateTextParams {
2946 pub fn new(to_lang_query: impl Into<String>) -> Self {
2947 Self {
2948 to_lang_query: to_lang_query.into(),
2949 body: None,
2950 }
2951 }
2952 pub fn body(mut self, value: Value) -> Self {
2953 self.body = Some(value);
2954 self
2955 }
2956}
2957#[derive(Debug, Clone)]
2958pub struct WebparseService<'a> {
2959 pub(crate) client: &'a Client,
2960}
2961
2962impl<'a> WebparseService<'a> {
2963#[instrument(skip(self, params))]
2965 pub async fn get_web_tomarkdown_async_status(&self, params: GetWebTomarkdownAsyncStatusParams) -> Result<Value> {
2966 let mut path = "/api/v1/web/tomarkdown/async/{task_id}".to_string();
2967 {
2968 let encoded = encode(¶ms.task_id_path).into_owned();
2969 path = path.replace("{task_id}", &encoded);
2970 }
2971
2972 let mut query: Vec<(String, String)> = Vec::new();
2973 let query = if query.is_empty() { None } else { Some(query) };
2974
2975 let mut extra_headers = HeaderMap::new();
2976 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
2977 let body = None;
2978
2979 self.client
2980 .request_json(
2981 Method::GET,
2982 &path,
2983 headers,
2984 query,
2985 body,
2986 )
2987 .await
2988 }
2989#[instrument(skip(self, params))]
2991 pub async fn get_webparse_extractimages(&self, params: GetWebparseExtractimagesParams) -> Result<Value> {
2992 let mut path = "/api/v1/webparse/extractimages".to_string();
2993
2994 let mut query: Vec<(String, String)> = Vec::new();
2995 query.push(("url".to_string(), params.url_query.clone()));
2996 let query = if query.is_empty() { None } else { Some(query) };
2997
2998 let mut extra_headers = HeaderMap::new();
2999 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
3000 let body = None;
3001
3002 self.client
3003 .request_json(
3004 Method::GET,
3005 &path,
3006 headers,
3007 query,
3008 body,
3009 )
3010 .await
3011 }
3012#[instrument(skip(self, params))]
3014 pub async fn get_webparse_metadata(&self, params: GetWebparseMetadataParams) -> Result<Value> {
3015 let mut path = "/api/v1/webparse/metadata".to_string();
3016
3017 let mut query: Vec<(String, String)> = Vec::new();
3018 query.push(("url".to_string(), params.url_query.clone()));
3019 let query = if query.is_empty() { None } else { Some(query) };
3020
3021 let mut extra_headers = HeaderMap::new();
3022 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
3023 let body = None;
3024
3025 self.client
3026 .request_json(
3027 Method::GET,
3028 &path,
3029 headers,
3030 query,
3031 body,
3032 )
3033 .await
3034 }
3035#[instrument(skip(self, params))]
3037 pub async fn post_web_tomarkdown_async(&self, params: PostWebTomarkdownAsyncParams) -> Result<Value> {
3038 let mut path = "/api/v1/web/tomarkdown/async".to_string();
3039
3040 let mut query: Vec<(String, String)> = Vec::new();
3041 query.push(("url".to_string(), params.url_query.clone()));
3042 let query = if query.is_empty() { None } else { Some(query) };
3043
3044 let mut extra_headers = HeaderMap::new();
3045 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
3046 let body = None;
3047
3048 self.client
3049 .request_json(
3050 Method::POST,
3051 &path,
3052 headers,
3053 query,
3054 body,
3055 )
3056 .await
3057 }
3058}
3059
3060#[derive(Debug, Clone)]
3061pub struct GetWebTomarkdownAsyncStatusParams {
3062 pub task_id_path: String,
3063}
3064
3065impl GetWebTomarkdownAsyncStatusParams {
3066 pub fn new(task_id_path: impl Into<String>) -> Self {
3067 Self {
3068 task_id_path: task_id_path.into(),
3069 }
3070 }
3071}
3072
3073#[derive(Debug, Clone)]
3074pub struct GetWebparseExtractimagesParams {
3075 pub url_query: String,
3076}
3077
3078impl GetWebparseExtractimagesParams {
3079 pub fn new(url_query: impl Into<String>) -> Self {
3080 Self {
3081 url_query: url_query.into(),
3082 }
3083 }
3084}
3085
3086#[derive(Debug, Clone)]
3087pub struct GetWebparseMetadataParams {
3088 pub url_query: String,
3089}
3090
3091impl GetWebparseMetadataParams {
3092 pub fn new(url_query: impl Into<String>) -> Self {
3093 Self {
3094 url_query: url_query.into(),
3095 }
3096 }
3097}
3098
3099#[derive(Debug, Clone)]
3100pub struct PostWebTomarkdownAsyncParams {
3101 pub url_query: String,
3102}
3103
3104impl PostWebTomarkdownAsyncParams {
3105 pub fn new(url_query: impl Into<String>) -> Self {
3106 Self {
3107 url_query: url_query.into(),
3108 }
3109 }
3110}
3111#[derive(Debug, Clone)]
3112pub struct MinGanCiShiBieService<'a> {
3113 pub(crate) client: &'a Client,
3114}
3115
3116impl<'a> MinGanCiShiBieService<'a> {
3117#[instrument(skip(self, params))]
3119 pub async fn get_sensitive_word_analyze_query(&self, params: GetSensitiveWordAnalyzeQueryParams) -> Result<Value> {
3120 let mut path = "/api/v1/sensitive-word/analyze-query".to_string();
3121
3122 let mut query: Vec<(String, String)> = Vec::new();
3123 query.push(("keyword".to_string(), params.keyword_query.clone()));
3124 let query = if query.is_empty() { None } else { Some(query) };
3125
3126 let mut extra_headers = HeaderMap::new();
3127 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
3128 let body = None;
3129
3130 self.client
3131 .request_json(
3132 Method::GET,
3133 &path,
3134 headers,
3135 query,
3136 body,
3137 )
3138 .await
3139 }
3140#[instrument(skip(self, params))]
3142 pub async fn post_sensitive_word_analyze(&self, params: PostSensitiveWordAnalyzeParams) -> Result<Value> {
3143 let mut path = "/api/v1/sensitive-word/analyze".to_string();
3144
3145 let mut query: Vec<(String, String)> = Vec::new();
3146 let query = if query.is_empty() { None } else { Some(query) };
3147
3148 let mut extra_headers = HeaderMap::new();
3149 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
3150 let body = params.body.clone();
3151
3152 self.client
3153 .request_json(
3154 Method::POST,
3155 &path,
3156 headers,
3157 query,
3158 body,
3159 )
3160 .await
3161 }
3162#[instrument(skip(self, params))]
3164 pub async fn post_sensitive_word_quick_check(&self, params: PostSensitiveWordQuickCheckParams) -> Result<Value> {
3165 let mut path = "/api/v1/text/profanitycheck".to_string();
3166
3167 let mut query: Vec<(String, String)> = Vec::new();
3168 let query = if query.is_empty() { None } else { Some(query) };
3169
3170 let mut extra_headers = HeaderMap::new();
3171 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
3172 let body = params.body.clone();
3173
3174 self.client
3175 .request_json(
3176 Method::POST,
3177 &path,
3178 headers,
3179 query,
3180 body,
3181 )
3182 .await
3183 }
3184}
3185
3186#[derive(Debug, Clone)]
3187pub struct GetSensitiveWordAnalyzeQueryParams {
3188 pub keyword_query: String,
3189}
3190
3191impl GetSensitiveWordAnalyzeQueryParams {
3192 pub fn new(keyword_query: impl Into<String>) -> Self {
3193 Self {
3194 keyword_query: keyword_query.into(),
3195 }
3196 }
3197}
3198
3199#[derive(Debug, Clone)]
3200pub struct PostSensitiveWordAnalyzeParams {
3201 pub body: Option<Value>,
3202}
3203
3204impl PostSensitiveWordAnalyzeParams {
3205 pub fn new() -> Self {
3206 Self {
3207 body: None,
3208 }
3209 }
3210 pub fn body(mut self, value: Value) -> Self {
3211 self.body = Some(value);
3212 self
3213 }
3214}
3215
3216#[derive(Debug, Clone)]
3217pub struct PostSensitiveWordQuickCheckParams {
3218 pub body: Option<Value>,
3219}
3220
3221impl PostSensitiveWordQuickCheckParams {
3222 pub fn new() -> Self {
3223 Self {
3224 body: None,
3225 }
3226 }
3227 pub fn body(mut self, value: Value) -> Self {
3228 self.body = Some(value);
3229 self
3230 }
3231}
3232#[derive(Debug, Clone)]
3233pub struct ZhiNengSouSuoService<'a> {
3234 pub(crate) client: &'a Client,
3235}
3236
3237impl<'a> ZhiNengSouSuoService<'a> {
3238#[instrument(skip(self))]
3240 pub async fn get_search_engines(&self) -> Result<Value> {
3241 let mut path = "/api/v1/search/engines".to_string();
3242
3243 let mut query: Vec<(String, String)> = Vec::new();
3244 let query = if query.is_empty() { None } else { Some(query) };
3245
3246 let mut extra_headers = HeaderMap::new();
3247 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
3248 let body = None;
3249
3250 self.client
3251 .request_json(
3252 Method::GET,
3253 &path,
3254 headers,
3255 query,
3256 body,
3257 )
3258 .await
3259 }
3260#[instrument(skip(self, params))]
3262 pub async fn post_search_aggregate(&self, params: PostSearchAggregateParams) -> Result<Value> {
3263 let mut path = "/api/v1/search/aggregate".to_string();
3264
3265 let mut query: Vec<(String, String)> = Vec::new();
3266 let query = if query.is_empty() { None } else { Some(query) };
3267
3268 let mut extra_headers = HeaderMap::new();
3269 let headers = if extra_headers.is_empty() { None } else { Some(extra_headers) };
3270 let body = params.body.clone();
3271
3272 self.client
3273 .request_json(
3274 Method::POST,
3275 &path,
3276 headers,
3277 query,
3278 body,
3279 )
3280 .await
3281 }
3282}
3283
3284
3285#[derive(Debug, Clone)]
3286pub struct PostSearchAggregateParams {
3287 pub body: Option<Value>,
3288}
3289
3290impl PostSearchAggregateParams {
3291 pub fn new() -> Self {
3292 Self {
3293 body: None,
3294 }
3295 }
3296 pub fn body(mut self, value: Value) -> Self {
3297 self.body = Some(value);
3298 self
3299 }
3300}