action.go raw
1 // Code Generated by gadget/xsdk, DO NOT EDIT
2
3 package dns
4
5 import (
6 "bytes"
7 "context"
8 "encoding/json"
9 "net/http"
10 )
11
12 // Group: CustomLines
13 // 自定义线路
14
15 func (c *Client) BatchDeleteCustomLine(ctx context.Context, data *BatchDeleteCustomLineRequest) (*BatchDeleteCustomLineResponse, error) {
16 body, err := json.Marshal(data)
17 if err != nil {
18 return nil, err
19 }
20
21 req, err := http.NewRequestWithContext(ctx, http.MethodPost, "/?Action=BatchDeleteCustomLine", bytes.NewReader(body))
22 if err != nil {
23 return nil, err
24 }
25
26 resp, err := c.do(ctx, req)
27 if err != nil {
28 return nil, err
29 }
30 defer resp.Body.Close()
31
32 var payload BatchDeleteCustomLineResponse
33 d := json.NewDecoder(resp.Body)
34 if err := d.Decode(&payload); err != nil {
35 return nil, err
36 }
37 return &payload, nil
38 }
39
40 func (c *Client) CreateCustomLine(ctx context.Context, data *CreateCustomLineRequest) (*CreateCustomLineResponse, error) {
41 body, err := json.Marshal(data)
42 if err != nil {
43 return nil, err
44 }
45
46 req, err := http.NewRequestWithContext(ctx, http.MethodPost, "/?Action=CreateCustomLine", bytes.NewReader(body))
47 if err != nil {
48 return nil, err
49 }
50
51 resp, err := c.do(ctx, req)
52 if err != nil {
53 return nil, err
54 }
55 defer resp.Body.Close()
56
57 var payload CreateCustomLineResponse
58 d := json.NewDecoder(resp.Body)
59 if err := d.Decode(&payload); err != nil {
60 return nil, err
61 }
62 return &payload, nil
63 }
64
65 func (c *Client) ListCustomLines(ctx context.Context, data *ListCustomLinesRequest) (*ListCustomLinesResponse, error) {
66 req, err := http.NewRequestWithContext(ctx, http.MethodGet, "/?Action=ListCustomLines", nil)
67 if err != nil {
68 return nil, err
69 }
70
71 q := req.URL.Query()
72 if v := data.Line; v != nil {
73 q.Add("Line", *v)
74 }
75 if v := data.NameCN; v != nil {
76 q.Add("NameCN", *v)
77 }
78 if v := data.Remark; v != nil {
79 q.Add("Remark", *v)
80 }
81 if v := data.IPSegment; v != nil {
82 q.Add("IPSegment", *v)
83 }
84 if v := data.PageSize; v != nil {
85 q.Add("PageSize", *v)
86 }
87 if v := data.PageNumber; v != nil {
88 q.Add("PageNumber", *v)
89 }
90 if v := data.SearchMode; v != nil {
91 q.Add("SearchMode", *v)
92 }
93 req.URL.RawQuery = q.Encode()
94
95 resp, err := c.do(ctx, req)
96 if err != nil {
97 return nil, err
98 }
99 defer resp.Body.Close()
100
101 var payload ListCustomLinesResponse
102 d := json.NewDecoder(resp.Body)
103 if err := d.Decode(&payload); err != nil {
104 return nil, err
105 }
106 return &payload, nil
107 }
108
109 func (c *Client) ListRecordDigestByLine(ctx context.Context, data *ListRecordDigestByLineRequest) (*ListRecordDigestByLineResponse, error) {
110 body, err := json.Marshal(data)
111 if err != nil {
112 return nil, err
113 }
114
115 req, err := http.NewRequestWithContext(ctx, http.MethodGet, "/?Action=ListRecordDigestByLine", bytes.NewReader(body))
116 if err != nil {
117 return nil, err
118 }
119
120 resp, err := c.do(ctx, req)
121 if err != nil {
122 return nil, err
123 }
124 defer resp.Body.Close()
125
126 var payload ListRecordDigestByLineResponse
127 d := json.NewDecoder(resp.Body)
128 if err := d.Decode(&payload); err != nil {
129 return nil, err
130 }
131 return &payload, nil
132 }
133
134 func (c *Client) UpdateCustomLine(ctx context.Context, data *UpdateCustomLineRequest) (*UpdateCustomLineResponse, error) {
135 body, err := json.Marshal(data)
136 if err != nil {
137 return nil, err
138 }
139
140 req, err := http.NewRequestWithContext(ctx, http.MethodPost, "/?Action=UpdateCustomLine", bytes.NewReader(body))
141 if err != nil {
142 return nil, err
143 }
144
145 resp, err := c.do(ctx, req)
146 if err != nil {
147 return nil, err
148 }
149 defer resp.Body.Close()
150
151 var payload UpdateCustomLineResponse
152 d := json.NewDecoder(resp.Body)
153 if err := d.Decode(&payload); err != nil {
154 return nil, err
155 }
156 return &payload, nil
157 }
158
159 // Group: Others
160 // 其他
161
162 func (c *Client) ListLines(ctx context.Context, data *ListLinesRequest) (*ListLinesResponse, error) {
163 req, err := http.NewRequestWithContext(ctx, http.MethodGet, "/?Action=ListLines", nil)
164 if err != nil {
165 return nil, err
166 }
167
168 q := req.URL.Query()
169 if v := data.Type; v != nil {
170 q.Add("Type", *v)
171 }
172 if v := data.PageSize; v != nil {
173 q.Add("PageSize", *v)
174 }
175 if v := data.PageNumber; v != nil {
176 q.Add("PageNumber", *v)
177 }
178 if v := data.Hierarchy; v != nil {
179 q.Add("Hierarchy", *v)
180 }
181 if v := data.ZID; v != nil {
182 q.Add("ZID", *v)
183 }
184 req.URL.RawQuery = q.Encode()
185
186 resp, err := c.do(ctx, req)
187 if err != nil {
188 return nil, err
189 }
190 defer resp.Body.Close()
191
192 var payload ListLinesResponse
193 d := json.NewDecoder(resp.Body)
194 if err := d.Decode(&payload); err != nil {
195 return nil, err
196 }
197 return &payload, nil
198 }
199
200 func (c *Client) ListRecordAttributes(ctx context.Context, data *ListRecordAttributesRequest) (*ListRecordAttributesResponse, error) {
201 req, err := http.NewRequestWithContext(ctx, http.MethodGet, "/?Action=ListRecordAttributes", nil)
202 if err != nil {
203 return nil, err
204 }
205
206 q := req.URL.Query()
207 if v := data.ZID; v != nil {
208 q.Add("ZID", *v)
209 }
210 req.URL.RawQuery = q.Encode()
211
212 resp, err := c.do(ctx, req)
213 if err != nil {
214 return nil, err
215 }
216 defer resp.Body.Close()
217
218 var payload ListRecordAttributesResponse
219 d := json.NewDecoder(resp.Body)
220 if err := d.Decode(&payload); err != nil {
221 return nil, err
222 }
223 return &payload, nil
224 }
225
226 // Group: Records
227 // 解析记录管理
228
229 func (c *Client) CreateRecord(ctx context.Context, data *CreateRecordRequest) (*CreateRecordResponse, error) {
230 body, err := json.Marshal(data)
231 if err != nil {
232 return nil, err
233 }
234
235 req, err := http.NewRequestWithContext(ctx, http.MethodPost, "/?Action=CreateRecord", bytes.NewReader(body))
236 if err != nil {
237 return nil, err
238 }
239
240 resp, err := c.do(ctx, req)
241 if err != nil {
242 return nil, err
243 }
244 defer resp.Body.Close()
245
246 var payload CreateRecordResponse
247 d := json.NewDecoder(resp.Body)
248 if err := d.Decode(&payload); err != nil {
249 return nil, err
250 }
251 return &payload, nil
252 }
253
254 func (c *Client) DeleteRecord(ctx context.Context, data *DeleteRecordRequest) error {
255 body, err := json.Marshal(data)
256 if err != nil {
257 return err
258 }
259
260 req, err := http.NewRequestWithContext(ctx, http.MethodPost, "/?Action=DeleteRecord", bytes.NewReader(body))
261 if err != nil {
262 return err
263 }
264
265 resp, err := c.do(ctx, req)
266 if err != nil {
267 return err
268 }
269 defer resp.Body.Close()
270
271 return nil
272 }
273
274 func (c *Client) ListRecordSets(ctx context.Context, data *ListRecordSetsRequest) (*ListRecordSetsResponse, error) {
275 req, err := http.NewRequestWithContext(ctx, http.MethodGet, "/?Action=ListRecordSets", nil)
276 if err != nil {
277 return nil, err
278 }
279
280 q := req.URL.Query()
281 if v := data.Host; v != nil {
282 q.Add("Host", *v)
283 }
284 if v := data.RecordSetID; v != nil {
285 q.Add("RecordSetID", *v)
286 }
287 if v := data.SearchMode; v != nil {
288 q.Add("SearchMode", *v)
289 }
290 if v := data.PageSize; v != nil {
291 q.Add("PageSize", *v)
292 }
293 if v := data.PageNumber; v != nil {
294 q.Add("PageNumber", *v)
295 }
296 if v := data.ZID; v != nil {
297 q.Add("ZID", *v)
298 }
299 req.URL.RawQuery = q.Encode()
300
301 resp, err := c.do(ctx, req)
302 if err != nil {
303 return nil, err
304 }
305 defer resp.Body.Close()
306
307 var payload ListRecordSetsResponse
308 d := json.NewDecoder(resp.Body)
309 if err := d.Decode(&payload); err != nil {
310 return nil, err
311 }
312 return &payload, nil
313 }
314
315 func (c *Client) ListRecords(ctx context.Context, data *ListRecordsRequest) (*ListRecordsResponse, error) {
316 req, err := http.NewRequestWithContext(ctx, http.MethodGet, "/?Action=ListRecords", nil)
317 if err != nil {
318 return nil, err
319 }
320
321 q := req.URL.Query()
322 if v := data.PageNumber; v != nil {
323 q.Add("PageNumber", *v)
324 }
325 if v := data.Type; v != nil {
326 q.Add("Type", *v)
327 }
328 if v := data.SearchMode; v != nil {
329 q.Add("SearchMode", *v)
330 }
331 if v := data.SearchOrder; v != nil {
332 q.Add("SearchOrder", *v)
333 }
334 if v := data.Host; v != nil {
335 q.Add("Host", *v)
336 }
337 if v := data.ZID; v != nil {
338 q.Add("ZID", *v)
339 }
340 if v := data.Value; v != nil {
341 q.Add("Value", *v)
342 }
343 if v := data.RecordSetID; v != nil {
344 q.Add("RecordSetID", *v)
345 }
346 if v := data.PageSize; v != nil {
347 q.Add("PageSize", *v)
348 }
349 if v := data.Line; v != nil {
350 q.Add("Line", *v)
351 }
352 req.URL.RawQuery = q.Encode()
353
354 resp, err := c.do(ctx, req)
355 if err != nil {
356 return nil, err
357 }
358 defer resp.Body.Close()
359
360 var payload ListRecordsResponse
361 d := json.NewDecoder(resp.Body)
362 if err := d.Decode(&payload); err != nil {
363 return nil, err
364 }
365 return &payload, nil
366 }
367
368 func (c *Client) ListRecordsAdvance(ctx context.Context, data *ListRecordsAdvanceRequest) (*ListRecordsAdvanceResponse, error) {
369 req, err := http.NewRequestWithContext(ctx, http.MethodGet, "/?Action=ListRecordsAdvance", nil)
370 if err != nil {
371 return nil, err
372 }
373
374 q := req.URL.Query()
375 if v := data.SearchOrder; v != nil {
376 q.Add("SearchOrder", *v)
377 }
378 if v := data.SubPageNumber; v != nil {
379 q.Add("SubPageNumber", *v)
380 }
381 if v := data.LastOperator; v != nil {
382 q.Add("LastOperator", *v)
383 }
384 if v := data.ZID; v != nil {
385 q.Add("ZID", *v)
386 }
387 if v := data.OrderKey; v != nil {
388 q.Add("OrderKey", *v)
389 }
390 if v := data.SearchMode; v != nil {
391 q.Add("SearchMode", *v)
392 }
393 if v := data.TTL; v != nil {
394 q.Add("TTL", *v)
395 }
396 if v := data.GTMDomainFilter; v != nil {
397 q.Add("GTMDomainFilter", *v)
398 }
399 if v := data.Name; v != nil {
400 q.Add("Name", *v)
401 }
402 if v := data.PageSize; v != nil {
403 q.Add("PageSize", *v)
404 }
405 if v := data.SubPageSize; v != nil {
406 q.Add("SubPageSize", *v)
407 }
408 if v := data.Host; v != nil {
409 q.Add("Host", *v)
410 }
411 if v := data.Line; v != nil {
412 q.Add("Line", *v)
413 }
414 if v := data.PageNumber; v != nil {
415 q.Add("PageNumber", *v)
416 }
417 if v := data.Value; v != nil {
418 q.Add("Value", *v)
419 }
420 if v := data.Type; v != nil {
421 q.Add("Type", *v)
422 }
423 if v := data.Enable; v != nil {
424 q.Add("Enable", *v)
425 }
426 req.URL.RawQuery = q.Encode()
427
428 resp, err := c.do(ctx, req)
429 if err != nil {
430 return nil, err
431 }
432 defer resp.Body.Close()
433
434 var payload ListRecordsAdvanceResponse
435 d := json.NewDecoder(resp.Body)
436 if err := d.Decode(&payload); err != nil {
437 return nil, err
438 }
439 return &payload, nil
440 }
441
442 func (c *Client) QueryRecord(ctx context.Context, data *QueryRecordRequest) (*QueryRecordResponse, error) {
443 req, err := http.NewRequestWithContext(ctx, http.MethodGet, "/?Action=QueryRecord", nil)
444 if err != nil {
445 return nil, err
446 }
447
448 q := req.URL.Query()
449 if v := data.Value; v != nil {
450 q.Add("Value", *v)
451 }
452 if v := data.Line; v != nil {
453 q.Add("Line", *v)
454 }
455 if v := data.RecordID; v != nil {
456 q.Add("RecordID", *v)
457 }
458 if v := data.FQDN; v != nil {
459 q.Add("FQDN", *v)
460 }
461 if v := data.PQDN; v != nil {
462 q.Add("PQDN", *v)
463 }
464 if v := data.Type; v != nil {
465 q.Add("Type", *v)
466 }
467 req.URL.RawQuery = q.Encode()
468
469 resp, err := c.do(ctx, req)
470 if err != nil {
471 return nil, err
472 }
473 defer resp.Body.Close()
474
475 var payload QueryRecordResponse
476 d := json.NewDecoder(resp.Body)
477 if err := d.Decode(&payload); err != nil {
478 return nil, err
479 }
480 return &payload, nil
481 }
482
483 func (c *Client) SyncFullRecordsV2(ctx context.Context, data *SyncFullRecordsV2Request) (*SyncFullRecordsV2Response, error) {
484 body, err := json.Marshal(data)
485 if err != nil {
486 return nil, err
487 }
488
489 req, err := http.NewRequestWithContext(ctx, http.MethodPost, "/?Action=SyncFullRecordsV2", bytes.NewReader(body))
490 if err != nil {
491 return nil, err
492 }
493
494 resp, err := c.do(ctx, req)
495 if err != nil {
496 return nil, err
497 }
498 defer resp.Body.Close()
499
500 var payload SyncFullRecordsV2Response
501 d := json.NewDecoder(resp.Body)
502 if err := d.Decode(&payload); err != nil {
503 return nil, err
504 }
505 return &payload, nil
506 }
507
508 func (c *Client) UpdateRecord(ctx context.Context, data *UpdateRecordRequest) (*UpdateRecordResponse, error) {
509 body, err := json.Marshal(data)
510 if err != nil {
511 return nil, err
512 }
513
514 req, err := http.NewRequestWithContext(ctx, http.MethodPost, "/?Action=UpdateRecord", bytes.NewReader(body))
515 if err != nil {
516 return nil, err
517 }
518
519 resp, err := c.do(ctx, req)
520 if err != nil {
521 return nil, err
522 }
523 defer resp.Body.Close()
524
525 var payload UpdateRecordResponse
526 d := json.NewDecoder(resp.Body)
527 if err := d.Decode(&payload); err != nil {
528 return nil, err
529 }
530 return &payload, nil
531 }
532
533 func (c *Client) UpdateRecordSet(ctx context.Context, data *UpdateRecordSetRequest) (*UpdateRecordSetResponse, error) {
534 body, err := json.Marshal(data)
535 if err != nil {
536 return nil, err
537 }
538
539 req, err := http.NewRequestWithContext(ctx, http.MethodPost, "/?Action=UpdateRecordSet", bytes.NewReader(body))
540 if err != nil {
541 return nil, err
542 }
543
544 resp, err := c.do(ctx, req)
545 if err != nil {
546 return nil, err
547 }
548 defer resp.Body.Close()
549
550 var payload UpdateRecordSetResponse
551 d := json.NewDecoder(resp.Body)
552 if err := d.Decode(&payload); err != nil {
553 return nil, err
554 }
555 return &payload, nil
556 }
557
558 func (c *Client) UpdateRecordStatus(ctx context.Context, data *UpdateRecordStatusRequest) (*UpdateRecordStatusResponse, error) {
559 body, err := json.Marshal(data)
560 if err != nil {
561 return nil, err
562 }
563
564 req, err := http.NewRequestWithContext(ctx, http.MethodPost, "/?Action=UpdateRecordStatus", bytes.NewReader(body))
565 if err != nil {
566 return nil, err
567 }
568
569 resp, err := c.do(ctx, req)
570 if err != nil {
571 return nil, err
572 }
573 defer resp.Body.Close()
574
575 var payload UpdateRecordStatusResponse
576 d := json.NewDecoder(resp.Body)
577 if err := d.Decode(&payload); err != nil {
578 return nil, err
579 }
580 return &payload, nil
581 }
582
583 // Group: Stats
584 // 访问量统计
585
586 func (c *Client) ListDomainStatistics(ctx context.Context, data *ListDomainStatisticsRequest) (*ListDomainStatisticsResponse, error) {
587 req, err := http.NewRequestWithContext(ctx, http.MethodGet, "/?Action=ListDomainStatistics", nil)
588 if err != nil {
589 return nil, err
590 }
591
592 q := req.URL.Query()
593 if v := data.Name; v != nil {
594 q.Add("Name", *v)
595 }
596 if v := data.SearchMode; v != nil {
597 q.Add("SearchMode", *v)
598 }
599 if v := data.Start; v != nil {
600 q.Add("Start", *v)
601 }
602 if v := data.End; v != nil {
603 q.Add("End", *v)
604 }
605 if v := data.Threshold; v != nil {
606 q.Add("Threshold", *v)
607 }
608 if v := data.PageNumber; v != nil {
609 q.Add("PageNumber", *v)
610 }
611 if v := data.PageSize; v != nil {
612 q.Add("PageSize", *v)
613 }
614 if v := data.ZID; v != nil {
615 q.Add("ZID", *v)
616 }
617 req.URL.RawQuery = q.Encode()
618
619 resp, err := c.do(ctx, req)
620 if err != nil {
621 return nil, err
622 }
623 defer resp.Body.Close()
624
625 var payload ListDomainStatisticsResponse
626 d := json.NewDecoder(resp.Body)
627 if err := d.Decode(&payload); err != nil {
628 return nil, err
629 }
630 return &payload, nil
631 }
632
633 func (c *Client) ListZoneStatistics(ctx context.Context, data *ListZoneStatisticsRequest) (*ListZoneStatisticsResponse, error) {
634 req, err := http.NewRequestWithContext(ctx, http.MethodGet, "/?Action=ListZoneStatistics", nil)
635 if err != nil {
636 return nil, err
637 }
638
639 q := req.URL.Query()
640 if v := data.PageNumber; v != nil {
641 q.Add("PageNumber", *v)
642 }
643 if v := data.PageSize; v != nil {
644 q.Add("PageSize", *v)
645 }
646 if v := data.SearchMode; v != nil {
647 q.Add("SearchMode", *v)
648 }
649 if v := data.Name; v != nil {
650 q.Add("Name", *v)
651 }
652 if v := data.Start; v != nil {
653 q.Add("Start", *v)
654 }
655 if v := data.End; v != nil {
656 q.Add("End", *v)
657 }
658 if v := data.Threshold; v != nil {
659 q.Add("Threshold", *v)
660 }
661 req.URL.RawQuery = q.Encode()
662
663 resp, err := c.do(ctx, req)
664 if err != nil {
665 return nil, err
666 }
667 defer resp.Body.Close()
668
669 var payload ListZoneStatisticsResponse
670 d := json.NewDecoder(resp.Body)
671 if err := d.Decode(&payload); err != nil {
672 return nil, err
673 }
674 return &payload, nil
675 }
676
677 func (c *Client) QueryDomainStatistics(ctx context.Context, data *QueryDomainStatisticsRequest) (QueryDomainStatisticsResponse, error) {
678 req, err := http.NewRequestWithContext(ctx, http.MethodGet, "/?Action=QueryDomainStatistics", nil)
679 if err != nil {
680 return nil, err
681 }
682
683 q := req.URL.Query()
684 if v := data.Name; v != nil {
685 q.Add("Name", *v)
686 }
687 if v := data.Start; v != nil {
688 q.Add("Start", *v)
689 }
690 if v := data.End; v != nil {
691 q.Add("End", *v)
692 }
693 if v := data.ZID; v != nil {
694 q.Add("ZID", *v)
695 }
696 req.URL.RawQuery = q.Encode()
697
698 resp, err := c.do(ctx, req)
699 if err != nil {
700 return nil, err
701 }
702 defer resp.Body.Close()
703
704 var payload QueryDomainStatisticsResponse
705 d := json.NewDecoder(resp.Body)
706 if err := d.Decode(&payload); err != nil {
707 return nil, err
708 }
709 return payload, nil
710 }
711
712 func (c *Client) QueryZoneStatistics(ctx context.Context, data *QueryZoneStatisticsRequest) (QueryZoneStatisticsResponse, error) {
713 req, err := http.NewRequestWithContext(ctx, http.MethodGet, "/?Action=QueryZoneStatistics", nil)
714 if err != nil {
715 return nil, err
716 }
717
718 q := req.URL.Query()
719 if v := data.ZID; v != nil {
720 q.Add("ZID", *v)
721 }
722 if v := data.Start; v != nil {
723 q.Add("Start", *v)
724 }
725 if v := data.End; v != nil {
726 q.Add("End", *v)
727 }
728 req.URL.RawQuery = q.Encode()
729
730 resp, err := c.do(ctx, req)
731 if err != nil {
732 return nil, err
733 }
734 defer resp.Body.Close()
735
736 var payload QueryZoneStatisticsResponse
737 d := json.NewDecoder(resp.Body)
738 if err := d.Decode(&payload); err != nil {
739 return nil, err
740 }
741 return payload, nil
742 }
743
744 // Group: Zones
745 // 域名管理
746
747 func (c *Client) CheckRetrieveZone(ctx context.Context, data *CheckRetrieveZoneRequest) (*CheckRetrieveZoneResponse, error) {
748 body, err := json.Marshal(data)
749 if err != nil {
750 return nil, err
751 }
752
753 req, err := http.NewRequestWithContext(ctx, http.MethodPost, "/?Action=CheckRetrieveZone", bytes.NewReader(body))
754 if err != nil {
755 return nil, err
756 }
757
758 resp, err := c.do(ctx, req)
759 if err != nil {
760 return nil, err
761 }
762 defer resp.Body.Close()
763
764 var payload CheckRetrieveZoneResponse
765 d := json.NewDecoder(resp.Body)
766 if err := d.Decode(&payload); err != nil {
767 return nil, err
768 }
769 return &payload, nil
770 }
771
772 func (c *Client) CreateZone(ctx context.Context, data *CreateZoneRequest) (*CreateZoneResponse, error) {
773 body, err := json.Marshal(data)
774 if err != nil {
775 return nil, err
776 }
777
778 req, err := http.NewRequestWithContext(ctx, http.MethodPost, "/?Action=CreateZone", bytes.NewReader(body))
779 if err != nil {
780 return nil, err
781 }
782
783 resp, err := c.do(ctx, req)
784 if err != nil {
785 return nil, err
786 }
787 defer resp.Body.Close()
788
789 var payload CreateZoneResponse
790 d := json.NewDecoder(resp.Body)
791 if err := d.Decode(&payload); err != nil {
792 return nil, err
793 }
794 return &payload, nil
795 }
796
797 func (c *Client) DeleteZone(ctx context.Context, data *DeleteZoneRequest) error {
798 body, err := json.Marshal(data)
799 if err != nil {
800 return err
801 }
802
803 req, err := http.NewRequestWithContext(ctx, http.MethodPost, "/?Action=DeleteZone", bytes.NewReader(body))
804 if err != nil {
805 return err
806 }
807
808 resp, err := c.do(ctx, req)
809 if err != nil {
810 return err
811 }
812 defer resp.Body.Close()
813
814 return nil
815 }
816
817 func (c *Client) ListZones(ctx context.Context, data *ListZonesRequest) (*ListZonesResponse, error) {
818 req, err := http.NewRequestWithContext(ctx, http.MethodGet, "/?Action=ListZones", nil)
819 if err != nil {
820 return nil, err
821 }
822
823 q := req.URL.Query()
824 if v := data.TradeCode; v != nil {
825 q.Add("TradeCode", *v)
826 }
827 if v := data.OrderKey; v != nil {
828 q.Add("OrderKey", *v)
829 }
830 if v := data.SearchOrder; v != nil {
831 q.Add("SearchOrder", *v)
832 }
833 if v := data.Remark; v != nil {
834 q.Add("Remark", *v)
835 }
836 if v := data.Stage; v != nil {
837 q.Add("Stage", *v)
838 }
839 if v := data.AboutToExpire; v != nil {
840 q.Add("AboutToExpire", *v)
841 }
842 if v := data.PageSize; v != nil {
843 q.Add("PageSize", *v)
844 }
845 if v := data.PageNumber; v != nil {
846 q.Add("PageNumber", *v)
847 }
848 if v := data.Key; v != nil {
849 q.Add("Key", *v)
850 }
851 if v := data.SearchMode; v != nil {
852 q.Add("SearchMode", *v)
853 }
854 req.URL.RawQuery = q.Encode()
855
856 resp, err := c.do(ctx, req)
857 if err != nil {
858 return nil, err
859 }
860 defer resp.Body.Close()
861
862 var payload ListZonesResponse
863 d := json.NewDecoder(resp.Body)
864 if err := d.Decode(&payload); err != nil {
865 return nil, err
866 }
867 return &payload, nil
868 }
869
870 func (c *Client) ListZonesNameServer(ctx context.Context, data *ListZonesNameServerRequest) (*ListZonesNameServerResponse, error) {
871 req, err := http.NewRequestWithContext(ctx, http.MethodGet, "/?Action=ListZonesNameServer", nil)
872 if err != nil {
873 return nil, err
874 }
875
876 q := req.URL.Query()
877 if v := data.ZIDs; v != nil {
878 q.Add("ZIDs", *v)
879 }
880 req.URL.RawQuery = q.Encode()
881
882 resp, err := c.do(ctx, req)
883 if err != nil {
884 return nil, err
885 }
886 defer resp.Body.Close()
887
888 var payload ListZonesNameServerResponse
889 d := json.NewDecoder(resp.Body)
890 if err := d.Decode(&payload); err != nil {
891 return nil, err
892 }
893 return &payload, nil
894 }
895
896 func (c *Client) QueryZone(ctx context.Context, data *QueryZoneRequest) (*QueryZoneResponse, error) {
897 req, err := http.NewRequestWithContext(ctx, http.MethodGet, "/?Action=QueryZone", nil)
898 if err != nil {
899 return nil, err
900 }
901
902 q := req.URL.Query()
903 if v := data.ZID; v != nil {
904 q.Add("ZID", *v)
905 }
906 if v := data.UseAllocateNameServer; v != nil {
907 q.Add("UseAllocateNameServer", *v)
908 }
909 req.URL.RawQuery = q.Encode()
910
911 resp, err := c.do(ctx, req)
912 if err != nil {
913 return nil, err
914 }
915 defer resp.Body.Close()
916
917 var payload QueryZoneResponse
918 d := json.NewDecoder(resp.Body)
919 if err := d.Decode(&payload); err != nil {
920 return nil, err
921 }
922 return &payload, nil
923 }
924
925 func (c *Client) RetrieveZone(ctx context.Context, data *RetrieveZoneRequest) (*RetrieveZoneResponse, error) {
926 body, err := json.Marshal(data)
927 if err != nil {
928 return nil, err
929 }
930
931 req, err := http.NewRequestWithContext(ctx, http.MethodPost, "/?Action=RetrieveZone", bytes.NewReader(body))
932 if err != nil {
933 return nil, err
934 }
935
936 resp, err := c.do(ctx, req)
937 if err != nil {
938 return nil, err
939 }
940 defer resp.Body.Close()
941
942 var payload RetrieveZoneResponse
943 d := json.NewDecoder(resp.Body)
944 if err := d.Decode(&payload); err != nil {
945 return nil, err
946 }
947 return &payload, nil
948 }
949
950 func (c *Client) UpdateZone(ctx context.Context, data *UpdateZoneRequest) (*UpdateZoneResponse, error) {
951 body, err := json.Marshal(data)
952 if err != nil {
953 return nil, err
954 }
955
956 req, err := http.NewRequestWithContext(ctx, http.MethodPost, "/?Action=UpdateZone", bytes.NewReader(body))
957 if err != nil {
958 return nil, err
959 }
960
961 resp, err := c.do(ctx, req)
962 if err != nil {
963 return nil, err
964 }
965 defer resp.Body.Close()
966
967 var payload UpdateZoneResponse
968 d := json.NewDecoder(resp.Body)
969 if err := d.Decode(&payload); err != nil {
970 return nil, err
971 }
972 return &payload, nil
973 }
974