dnspod_lib/
response.rs

1//! 返回结果 <https://cloud.tencent.com/document/api/1427/56191>
2//! 参数类型 <https://cloud.tencent.com/document/api/1427/78480>
3//!
4//! 目前腾讯云 API 3.0 输入参数和输出参数支持如下几种数据格式:
5//!
6//! String: 字符串。
7//! Integer:整型,上限为无符号64位整数。SDK 3.0 不同编程语言支持的类型有所差异,建议以所使用编程语言的最大整型定义,例如 Golang 的 uint64。
8//! Boolean:布尔型。
9//! Float:浮点型。
10//! Double:双精度浮点型。
11//! Date:字符串,日期格式。例如:2022-01-01。
12//! Timestamp:字符串,时间格式。例如:2022-01-01 00:00:00。
13//! Timestamp ISO8601:ISO 8601 是由国际标准化组织(International Organization for Standardization,ISO)发布的关于日期和时间格式的国际标准,对应国标 《GB/T 7408-2005数据元和交换格式信息交换日期和时间表示法》。建议以所使用编程语言的标准库进行格式解析。例如:2022-01-01T00:00:00+08:00。
14//! Binary:二进制内容,需要以特定协议请求和解析。
15#![allow(dead_code)]
16#![allow(non_snake_case)]
17
18use crate::data_types::*;
19use crate::error_code::ErrorCode;
20
21crate::custom_meta_struct! {
22    (
23        // 公共 meta attribute, 赋给每个 struct 
24        #[derive(Debug, Clone, crate::serde::Serialize, crate::serde::Deserialize)]
25    ),
26
27    /// 返回结果
28    /// <https://cloud.tencent.com/document/api/1427/56191>
29    pub struct Response {
30        pub Response: InnerResponse,
31    }
32
33    pub struct InnerResponse {
34        #[serde(skip_serializing_if = "Option::is_none")]
35        pub Error: Option<Error>,
36        #[serde(skip_serializing_if = "Option::is_none")]
37        pub TotalCount: Option<Integer>,
38        /// 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId
39        pub RequestId: String,
40        /// 记录ID
41        /// 示例值:162
42        #[serde(skip_serializing_if = "Option::is_none")]
43        pub RecordId: Option<Integer>,
44        #[serde(skip_serializing_if = "Option::is_none")]
45        pub RecordCountInfo: Option<RecordCountInfo>,
46        #[serde(skip_serializing_if = "Option::is_none")]
47        pub RecordList: Option<Vec<RecordListItem>>,
48        #[serde(skip_serializing_if = "Option::is_none")]
49        pub RecordInfo: Option<RecordInfo>,
50        #[serde(skip_serializing_if = "Option::is_none")]
51        pub DomainCountInfo: Option<DomainCountInfo>,
52        #[serde(skip_serializing_if = "Option::is_none")]
53        pub DomainList: Option<Vec<DomainListItem>>,
54        #[serde(skip_serializing_if = "Option::is_none")]
55        pub LineList: Option<Vec<LineInfo>>,
56        #[serde(skip_serializing_if = "Option::is_none")]
57        pub LineGroupList: Option<Vec<LineGroupInfo>>,
58        /// 域名信息
59        #[serde(skip_serializing_if = "Option::is_none")]
60        pub DomainInfo: Option<DomainCreateInfo>,
61    }
62
63    pub struct Error {
64        #[serde(flatten)]
65        pub code: ErrorCode,
66        pub Message: String,
67    }
68
69    pub struct RecordCountInfo {
70        pub SubdomainCount: Integer,
71        pub TotalCount: Integer,
72        pub ListCount: Integer,
73    }
74
75    pub struct RecordListItem {
76        /// 记录Id
77        /// 示例值:1
78        pub RecordId: Integer,
79        /// String    记录值
80        /// 示例值:1.1.1.1
81        pub Value: String,
82        /// Status    String    记录状态,启用:ENABLE,暂停:DISABLE
83        /// 示例值:ENABLE
84        pub Status: String,
85        /// UpdatedOn    Timestamp    更新时间
86        /// 示例值:2021-03-28 11:27:09
87        pub UpdatedOn: Timestamp,
88        /// Name    String    主机名
89        /// 示例值:www
90        pub Name: String,
91        /// Line    String    记录线路
92        /// 示例值:默认
93        pub Line: String,
94        /// LineId    String    线路Id
95        /// 示例值:0
96        pub LineId: String,
97        /// Type    String    记录类型
98        /// 示例值:A
99        pub Type: String,
100        /// Weight    Integer    记录权重,用于负载均衡记录
101        /// 注意:此字段可能返回 null,表示取不到有效值。
102        /// 示例值:20
103        pub Weight: Option<Integer>,
104        /// MonitorStatus    String    记录监控状态,正常:OK,告警:WARN,宕机:DOWN,未设置监控或监控暂停则为空
105        /// 示例值:OK
106        pub MonitorStatus: String,
107        /// Remark    String    记录备注说明
108        /// 示例值:用于api
109        pub Remark: String,
110        /// TTL    Integer    记录缓存时间
111        /// 示例值:600
112        pub TTL: Integer,
113        /// MX    Integer    MX值,只有MX记录有
114        /// 注意:此字段可能返回 null,表示取不到有效值。
115        /// 示例值:10
116        pub MX: Option<Integer>,
117        /// DefaultNS    Boolean    是否是默认的ns记录
118        /// 示例值:true
119        pub DefaultNS: Option<Boolean>,
120    }
121
122    pub struct RecordInfo {
123        /// Id    Integer    记录 ID 。
124        /// 示例值:158
125        pub Id: Integer,
126
127        /// SubDomain    String    子域名(主机记录)。
128        /// 示例值:www
129        pub SubDomain: String,
130
131        /// RecordType    String    记录类型, 详见 [DescribeRecordType](super::action::DescribeRecordType) 接口。
132        /// 示例值:A
133        pub RecordType: String,
134
135        /// RecordLine    String    解析记录的线路,详见 [DescribeRecordLineList](super::action::DescribeRecordLineList) 接口。
136        /// 示例值:百度
137        pub RecordLine: String,
138
139        /// RecordLineId    String    解析记录的线路 ID ,详见 [DescribeRecordLineList](super::action::DescribeRecordLineList) 接口。
140        /// 示例值:90=0
141        pub RecordLineId: String,
142
143        /// Value    String    记录值。
144        /// 示例值:129.23.32.32
145        pub Value: String,
146
147        /// Weight    Integer    记录权重值。
148        /// 注意:此字段可能返回 null,表示取不到有效值。
149        /// 示例值:10
150        pub Weight: Option<Integer>,
151
152        /// MX    Integer    记录的 MX 记录值,非 MX 记录类型,默认为 0。
153        /// 示例值:20
154        pub MX: Integer,
155
156        /// TTL    Integer    记录的 TTL 值。
157        /// 示例值:600
158        pub TTL: Integer,
159
160        /// Enabled    Integer    记录状态。0表示禁用,1表示启用。
161        /// 示例值:1
162        pub Enabled: Integer,
163
164        /// MonitorStatus    String    该记录的 D 监控状态。
165        /// "Ok" : 服务器正常。
166        /// "Warn" : 该记录有报警, 服务器返回 4XX。
167        /// "Down" : 服务器宕机。
168        /// "" : 该记录未开启 D 监控。
169        /// 示例值:Ok
170        pub MonitorStatus: String,
171
172        /// Remark    String    记录的备注。
173        /// 注意:此字段可能返回 null,表示取不到有效值。
174        /// 示例值:这是解析记录的备注
175        pub Remark: Option<String>,
176
177        /// UpdatedOn    Timestamp    记录最后更新时间。
178        /// 示例值:2021-03-31 11:38:02
179        pub UpdatedOn: Timestamp,
180
181        /// DomainId    Integer    域名 ID 。
182        /// 示例值:62
183        pub DomainId: Integer,
184    }
185
186    pub struct DomainCountInfo {
187        /// DomainTotal    Integer    符合条件的域名数量
188        /// 示例值:1
189        pub DomainTotal: Integer,
190        /// AllTotal    Integer    用户可以查看的所有域名数量
191        /// 示例值:1
192        pub AllTotal: Integer,
193        /// MineTotal    Integer    用户账号添加的域名数量
194        /// 示例值:1
195        pub MineTotal: Integer,
196        /// ShareTotal    Integer    共享给用户的域名数量
197        /// 示例值:1
198        pub ShareTotal: Integer,
199        /// VipTotal    Integer    付费域名数量
200        /// 示例值:1
201        pub VipTotal: Integer,
202        /// PauseTotal    Integer    暂停的域名数量
203        /// 示例值:1
204        pub PauseTotal: Integer,
205        /// ErrorTotal    Integer    dns设置错误的域名数量
206        /// 示例值:1
207        pub ErrorTotal: Integer,
208        /// LockTotal    Integer    锁定的域名数量
209        /// 示例值:1
210        pub LockTotal: Integer,
211        /// SpamTotal    Integer    封禁的域名数量
212        /// 示例值:1
213        pub SpamTotal: Integer,
214        /// VipExpire    Integer    30天内即将到期的域名数量
215        /// 示例值:1
216        pub VipExpire: Integer,
217        /// ShareOutTotal    Integer    分享给其它人的域名数量
218        /// 示例值:1
219        pub ShareOutTotal: Integer,
220        /// GroupTotal    Integer    指定分组内的域名数量
221        /// 示例值:1
222        pub GroupTotal: Integer,
223    }
224
225    pub struct DomainListItem {
226        /// DomainId    Integer    系统分配给域名的唯一标识
227        /// 示例值:12
228        pub DomainId: Integer,
229        /// Name    String    域名的原始格式
230        /// 示例值:qq.com
231        pub Name: String,
232        /// Status    String    域名的状态,正常:ENABLE,暂停:PAUSE,封禁:SPAM
233        /// 示例值:ENABLE
234        pub Status: String,
235        /// TTL    Integer    域名默认的解析记录默认TTL值
236        /// 示例值:600
237        pub TTL: Integer,
238        /// CNAMESpeedup    String    是否开启CNAME加速,开启:ENABLE,未开启:DISABLE
239        /// 示例值:DISABLE
240        pub CNAMESpeedup: String,
241        /// DNSStatus    String    DNS 设置状态,错误:DNSERROR,正常:空字符串
242        /// 示例值:DNSERROR
243        pub DNSStatus: String,
244        /// Grade    String    域名的套餐等级代码
245        /// 示例值:DP_FREE
246        pub Grade: String,
247        /// GroupId    Integer    域名所属的分组Id
248        /// 示例值:1
249        pub GroupId: Integer,
250        /// SearchEnginePush    String    是否开启搜索引擎推送优化,是:YES,否:NO
251        /// 示例值:NO
252        pub SearchEnginePush: String,
253        /// Remark    String    域名备注说明
254        /// 示例值:重要域名
255        pub Remark: String,
256        /// Punycode    String    经过punycode编码后的域名格式
257        /// 示例值:xn--a9.com
258        pub Punycode: String,
259        /// EffectiveDNS    Array of String    系统为域名分配的有效DNS
260        /// 示例值:["f1g1ns1.dnspod.net","f1g1ns2.dnspod.net"]
261        pub EffectiveDNS: Vec<String>,
262        /// GradeLevel    Integer    域名套餐等级对应的序号
263        /// 示例值:5
264        pub GradeLevel: Integer,
265        /// GradeTitle    String    套餐名称
266        /// 示例值:免费版
267        pub GradeTitle: String,
268        /// IsVip    String    是否是付费套餐
269        /// 示例值:YES
270        pub IsVip: String,
271        /// VipStartAt    Timestamp    付费套餐开通时间
272        /// 示例值:2021-04-07 13:34:20
273        pub VipStartAt: Timestamp,
274        /// VipEndAt    Timestamp    付费套餐到期时间
275        /// 示例值:2022-04-07 13:34:20
276        pub VipEndAt: Timestamp,
277        /// VipAutoRenew    String    域名是否开通VIP自动续费,是:YES,否:NO,默认:DEFAULT
278        /// 示例值:YES
279        pub VipAutoRenew: String,
280        /// RecordCount    Integer    域名下的记录数量
281        /// 示例值:20
282        pub RecordCount: Integer,
283        /// CreatedOn    Timestamp    域名添加时间
284        /// 示例值:2020-05-21 16:08:29
285        pub CreatedOn: Timestamp,
286        /// UpdatedOn    Timestamp    域名更新时间
287        /// 示例值:2021-04-01 18:09:58
288        pub UpdatedOn: Timestamp,
289        /// Owner    String    域名所属账号
290        /// 示例值:abc@tencent.com
291        pub Owner: String,
292        /// TagList    Array of TagItem    域名关联的标签列表
293        /// 注意:此字段可能返回 null,表示取不到有效值。
294        pub TagList: Option<Vec<TagItem>>,
295    }
296
297    pub struct TagItem {
298        /// 标签键
299        /// 示例值:key1
300        pub TagKey: String,
301        /// 标签值
302        /// 注意:此字段可能返回 null,表示取不到有效值。
303        /// 示例值:value1
304        pub TagValue: Option<String>,
305    }
306
307    /// 解析线路信息
308    ///被如下接口引用:[DescribeRecordLineList](super::action::DescribeRecordLineList)
309    pub struct LineInfo {
310        /// 线路名称 示例值:电信
311        Name: String,
312        /// 线路ID 示例值:10=0
313        LineId: String,
314    }
315
316    /// 线路分组信息
317    /// 被如下接口引用:[DescribeRecordLineList](super::action::DescribeRecordLineList)
318    pub struct LineGroupInfo {
319        /// 线路分组ID 示例值:15=0
320        LineId: String,	
321        /// 线路分组名称 示例值:华北
322        Name: String,
323        /// 分组类型 示例值:system
324        Type: String,	
325        /// 线路分组包含的线路列表
326        LineList: Vec<String>,
327    }
328
329    /// 域名信息(创建域名时返回) 被如下接口引用:[CreateDomain](super::action::CreateDomain)
330    pub struct DomainCreateInfo {
331        /// 域名ID
332        Id: Integer,
333        /// 域名
334        Domain: String,
335        /// 域名的punycode 示例值:dnspod.cn
336        Punycode: String,
337        /// 域名的NS列表 示例值:["source.dnspod.net","low.dnspod.net"]
338        GradeNsList: Vec<String>,
339    }
340}
341