Skip to content

Commit 81e5993

Browse files
authored
feat(dnspod): [132980201] add param update_on (#4180)
* add param update_on * add param update_on
1 parent 51a72f5 commit 81e5993

11 files changed

Lines changed: 319 additions & 0 deletions

File tree

.changelog/4180.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
resource/tencentcloud_dnspod_record: support new attribute `updated_on`
3+
```
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
schema: spec-driven
2+
created: 2026-06-03
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
## Context
2+
3+
`tencentcloud_dnspod_record` 资源底层使用 DNSPod SDK `DescribeRecord` 接口(`v20210323`),返回 `RecordInfo` 结构体已包含 `UpdatedOn`(记录最后更新时间)字段(vendor `models.go:7523`)。`tencentcloud_dnspod_record_list` 数据源底层使用 `DescribeRecordList`,返回 `RecordListItem.UpdatedOn`(vendor `models.go:7541`)。
4+
5+
当前状态:
6+
- 资源:schema 中**** `updated_on`,Read 中**未读取** `recordInfo.UpdatedOn`
7+
- 数据源:schema 中 `record_list``instance_list` 子块**已包含** `updated_on`(string、Computed),Read 中**已正确赋值** `recordListItemMap["updated_on"] = recordListItem.UpdatedOn` / `instanceListItemMap["updated_on"] = recordListItem.UpdatedOn`
8+
9+
本变更主要是给资源补齐 Read 回写,以及把数据源既有字段纳入正式 spec 承诺。
10+
11+
## Goals / Non-Goals
12+
13+
**Goals:**
14+
-`tencentcloud_dnspod_record` 资源中暴露 `updated_on`(Computed string),Read 阶段从 `RecordInfo.UpdatedOn` 回写。
15+
- 在 spec 中正式声明数据源 `record_list[].updated_on``instance_list[].updated_on` 为 Computed string。
16+
- 文档/样例同步更新;通过 `make doc` 重新生成 website 文档。
17+
18+
**Non-Goals:**
19+
- 不修改任何现有字段语义,不动 Create/Update/Delete 逻辑。
20+
- 不引入分页/排序/过滤的新参数。
21+
- 不实现"基于 `updated_on` 触发 Update"等业务联动逻辑(云端字段为只读时间戳)。
22+
- 不为 `created_on` 等其他时间戳一并新增(聚焦 `updated_on`,避免范围蔓延;后续可单独提案)。
23+
24+
## Decisions
25+
26+
### D1:字段名使用 `updated_on`,类型 `schema.TypeString`
27+
28+
- **选择**:snake_case 风格 `updated_on`,与项目惯例(如 `created_at` / `updated_at` / 已有数据源 `updated_on`)一致;类型 `string`,直接透传 SDK 返回的字符串时间格式(云端通常返回 `YYYY-MM-DD HH:MM:SS`)。
29+
- **替代**
30+
- `last_updated_on` —— 与 SDK 字段命名偏离,且数据源已用 `updated_on`,应保持一致。
31+
- `TypeInt`(unix 时间戳)—— SDK 返回 string,需要解析转换,可能产生时区/解析问题;保持原样最安全。
32+
33+
### D2:仅在资源端新增 schema + Read,数据源不改代码
34+
35+
- **选择**
36+
- `resource_tc_dnspod_record.go`:schema 新增 Computed 字段;Read 中 `if recordInfo.UpdatedOn != nil { _ = d.Set("updated_on", recordInfo.UpdatedOn) }`
37+
- `data_source_tc_dnspod_record_list.go`:仅同步文档与 spec,不改代码(schema 与 Read 已具备字段)。
38+
- **理由**:数据源现状代码与目标行为一致;改代码反而引入风险。Spec 只需 ADDED Requirement 描述资源端新行为 + 数据源端既有承诺。
39+
40+
### D3:使用 nil 检查 + `d.Set` 单值(与现有字段同风格)
41+
42+
- 与同文件内 `recordInfo.SubDomain` / `recordInfo.MX` 等字段保持同一回写风格:`_ = d.Set("updated_on", recordInfo.UpdatedOn)`,对 nil 做防护。
43+
44+
### D4:测试断言使用 `TestCheckResourceAttrSet` 而非具体值
45+
46+
- `updated_on` 为云端时间戳,每次创建结果不同,无法硬编码。使用 `TestCheckResourceAttrSet("tencentcloud_dnspod_record.foo","updated_on")` 验证非空即可。
47+
48+
### D5:仅新增 Computed 字段,向后兼容
49+
50+
- 不影响存量 state(state 中 `updated_on` 不存在 → refresh 后填入),不需要 `state migration`
51+
52+
## Risks / Trade-offs
53+
54+
- **[风险] SDK 在某些场景返回 `UpdatedOn=nil`** → 已加 nil 检查,Set 跳过,state 字段保持空字符串/未设置;不会破坏 plan。
55+
- **[风险] 时间格式可能因地域差异返回不同形式** → 直接透传字符串,不在 Provider 侧解析;用户层若需要解析自行处理。
56+
- **[Trade-off] 不在本次同时新增 `created_on`** → 聚焦最小可审,未来可独立加;Capability 命名 `dnspod-record-updated-on` 已明确边界。
57+
58+
## Migration Plan
59+
60+
无破坏性变更:
61+
1. 升级 Provider 后 `terraform refresh` / 下次 `terraform plan` 自动把 `updated_on` 填入 state。
62+
2. 用户已有 HCL 无需变更;如需引用,使用 `tencentcloud_dnspod_record.X.updated_on`
63+
3. 回滚:直接降级 Provider 即可,state 中多出的 `updated_on` 字段在旧版本中会被忽略(schema 不存在则 plan/apply 不读不写)。
64+
65+
## Open Questions
66+
67+
无。
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
## Why
2+
3+
`tencentcloud_dnspod_record` 资源对应的 SDK `RecordInfo``DescribeRecord` 接口中返回了 `UpdatedOn`(记录最后更新时间),但当前 Provider 资源未将其暴露为 Terraform attribute,用户无法在 state、`terraform output`、跨资源引用中获取该信息,导致需要额外脚本/手动查询才能审计/比对记录的最近变更时间。
4+
5+
`tencentcloud_dnspod_record_list` 数据源虽然在 schema 中已声明 `updated_on` 字段(位于 `record_list``instance_list` 嵌套块下),但缺少 spec 级承诺与文档说明,应同步将其纳入正式约定,避免后续重构误删。
6+
7+
## What Changes
8+
9+
- `tencentcloud_dnspod_record` 资源新增 Computed 属性 `updated_on`(string),在 Read 阶段从 `DescribeRecord` 响应的 `RecordInfo.UpdatedOn` 回写到 state。
10+
- `tencentcloud_dnspod_record_list` 数据源在 spec 中正式声明 `record_list[].updated_on``instance_list[].updated_on` 为 Computed string 字段(schema 与 Read 逻辑已存在,无代码改动)。
11+
- 更新 `resource_tc_dnspod_record.md``data_source_tc_dnspod_record_list.md`,并通过 `make doc` 重新生成 `website/docs/r/dnspod_record.html.markdown``website/docs/d/dnspod_record_list.html.markdown`
12+
- 增补对应验收测试断言(`TestCheckResourceAttrSet` 校验 `updated_on` 非空)。
13+
- 仅新增 Computed 字段,不影响任何已有字段语义;向后兼容。
14+
15+
## Capabilities
16+
17+
### New Capabilities
18+
19+
- `dnspod-record-updated-on`: 在 `tencentcloud_dnspod_record` 资源与 `tencentcloud_dnspod_record_list` 数据源中暴露记录最后更新时间 `updated_on` 字段。
20+
21+
### Modified Capabilities
22+
23+
(无)
24+
25+
## Impact
26+
27+
- 代码:
28+
- `tencentcloud/services/dnspod/resource_tc_dnspod_record.go`(schema + Read)
29+
- `tencentcloud/services/dnspod/data_source_tc_dnspod_record_list.go`(已具备字段,仅同步 spec/文档)
30+
- 测试:
31+
- `tencentcloud/services/dnspod/resource_tc_dnspod_record_test.go`
32+
- `tencentcloud/services/dnspod/data_source_tc_dnspod_record_list_test.go`
33+
- 文档:
34+
- `tencentcloud/services/dnspod/resource_tc_dnspod_record.md`
35+
- `tencentcloud/services/dnspod/data_source_tc_dnspod_record_list.md`
36+
- `website/docs/r/dnspod_record.html.markdown`(自动生成)
37+
- `website/docs/d/dnspod_record_list.html.markdown`(自动生成)
38+
- 依赖:无新依赖(SDK `RecordInfo.UpdatedOn` / `RecordListItem.UpdatedOn` 已在 vendor 中)。
39+
- API:无破坏性变更,纯增量 Computed 字段。
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
## ADDED Requirements
2+
3+
### Requirement: REQ-DNSPOD-RECORD-UPDATED-ON-001 - dnspod_record 资源暴露 updated_on Computed 字段
4+
5+
The `tencentcloud_dnspod_record` resource MUST expose a Computed `updated_on` attribute (string) that mirrors the `UpdatedOn` field returned by the DNSPod `DescribeRecord` API (`RecordInfo.UpdatedOn`).
6+
7+
`tencentcloud_dnspod_record` 资源必须新增 Computed 类型为 string 的 `updated_on` 属性,并在 Read 阶段将 DNSPod `DescribeRecord` 接口返回的 `RecordInfo.UpdatedOn` 透传写入 Terraform state,使用户能在 `terraform output` / 跨资源引用中访问该记录的最后更新时间。
8+
9+
**约束**
10+
11+
- 类型为 `schema.TypeString``Computed: true`****设置 `Optional`/`Required`/`ForceNew`/`Default`
12+
- 仅 Read 阶段写入;Create/Update/Delete 不感知该字段。
13+
- 当 SDK 返回 `RecordInfo.UpdatedOn == nil` 时,Provider MUST 跳过 `d.Set`,state 中保持原值不被错误清空。
14+
- 仅新增字段,不修改任何已有字段语义;向后兼容。
15+
16+
#### Scenario: 资源 Read 回写 updated_on
17+
18+
- **WHEN** 用户对一条已存在的 `tencentcloud_dnspod_record` 执行 `terraform refresh``terraform plan`
19+
- **THEN**
20+
- Provider 调用 `DescribeRecord` 接口,得到 `RecordInfo.UpdatedOn`(如 `"2026-06-03 09:30:00"`
21+
-`RecordInfo.UpdatedOn != nil` 时,Provider 通过 `d.Set("updated_on", recordInfo.UpdatedOn)` 写入 state
22+
- `terraform state show <addr>` 输出 `updated_on = "2026-06-03 09:30:00"`
23+
- 后续 `terraform plan` 不产生意料之外的 diff
24+
25+
**验收标准**
26+
- ✅ schema 中存在 `updated_on``Type: schema.TypeString, Computed: true`
27+
- ✅ Read 函数中存在 `_ = d.Set("updated_on", recordInfo.UpdatedOn)` 调用
28+
-`TestCheckResourceAttrSet("tencentcloud_dnspod_record.<name>", "updated_on")` 在验收测试中通过
29+
30+
---
31+
32+
#### Scenario: 创建后立即可读 updated_on
33+
34+
- **WHEN** 用户执行 `terraform apply` 创建一条新的 `tencentcloud_dnspod_record`
35+
- **THEN**
36+
- Create 完成后调用 Read,state 中 `updated_on` 字段被首次填充
37+
- `terraform output` 或在其它资源中通过 `tencentcloud_dnspod_record.X.updated_on` 引用可获取非空字符串
38+
39+
**验收标准**
40+
- ✅ 创建后无需手动 refresh,`terraform state show` 已含 `updated_on`
41+
-`output` 块输出该值非空
42+
43+
---
44+
45+
#### Scenario: SDK 返回 UpdatedOn 为 nil 的容错
46+
47+
- **WHEN** SDK 因边缘场景返回 `RecordInfo.UpdatedOn == nil`
48+
- **THEN**
49+
- Provider MUST 跳过 `d.Set("updated_on", ...)` 调用
50+
- state 中已有 `updated_on` 值不被错误清空为空字符串
51+
- 不抛出错误,Read 流程正常完成
52+
53+
**验收标准**
54+
- ✅ Read 函数在赋值前进行 `if recordInfo.UpdatedOn != nil` 防护
55+
- ✅ 单元/手工触发 nil 路径时 Read 返回 `nil` error
56+
57+
---
58+
59+
#### Scenario: 旧 state 升级兼容
60+
61+
- **WHEN** 用户从未含 `updated_on` 字段的旧 Provider 版本升级到本版本,对存量资源执行 `terraform plan`
62+
- **THEN**
63+
- 不要求 state migration
64+
- `updated_on` 作为 Computed 字段,在下一次 Read 时被自动填充
65+
- 不产生破坏性变更或额外 diff(除该 Computed 字段从空到有值)
66+
67+
**验收标准**
68+
- ✅ 升级后存量 HCL 无需修改
69+
- ✅ 不需要 state migration 步骤
70+
71+
---
72+
73+
### Requirement: REQ-DNSPOD-RECORD-UPDATED-ON-002 - dnspod_record_list 数据源暴露嵌套 updated_on Computed 字段
74+
75+
The `tencentcloud_dnspod_record_list` data source MUST expose Computed `updated_on` attributes (string) inside both the `record_list` and `instance_list` nested blocks, mapped to `RecordListItem.UpdatedOn` returned by the DNSPod `DescribeRecordList` API.
76+
77+
`tencentcloud_dnspod_record_list` 数据源必须在 `record_list``instance_list` 嵌套块下分别暴露 Computed string 类型的 `updated_on` 字段,并在 Read 阶段将 SDK `RecordListItem.UpdatedOn` 透传写入。
78+
79+
**约束**
80+
81+
- `record_list[].updated_on``schema.TypeString, Computed: true`
82+
- `instance_list[].updated_on``schema.TypeString, Computed: true`
83+
- 当某条 `RecordListItem.UpdatedOn == nil` 时,Read 跳过该条目的 `updated_on` 赋值,不污染其它字段。
84+
- 与现有 schema/Read 行为一致,本需求是对既有实现的形式化承诺,不引入代码变更。
85+
86+
#### Scenario: 数据源返回包含 updated_on 的 record_list
87+
88+
- **WHEN** 用户在 HCL 中使用 `data "tencentcloud_dnspod_record_list" "foo" { domain = "..." }` 并执行 `terraform plan/apply`
89+
- **THEN**
90+
- `data.tencentcloud_dnspod_record_list.foo.record_list[*].updated_on` 可被引用
91+
- 对至少 1 条云端返回有 `UpdatedOn` 的记录,对应数组项的 `updated_on` 为非空字符串
92+
- `instance_list[*].updated_on` 同步具备一致语义
93+
94+
**验收标准**
95+
- ✅ schema 中两处嵌套块都包含 `updated_on``Type: schema.TypeString, Computed: true`
96+
- ✅ Read 中存在 `recordListItemMap["updated_on"] = recordListItem.UpdatedOn``instanceListItemMap["updated_on"] = recordListItem.UpdatedOn` 赋值
97+
- ✅ 验收测试断言 `data.tencentcloud_dnspod_record_list.foo.record_list.0.updated_on``data.tencentcloud_dnspod_record_list.foo.instance_list.0.updated_on` 至少有一条非空(使用 `TestMatchResourceAttr``TestCheckResourceAttrSet`
98+
99+
---
100+
101+
#### Scenario: 单条记录 UpdatedOn 缺失时不影响其它字段
102+
103+
- **WHEN** SDK 返回的某条 `RecordListItem.UpdatedOn == nil`
104+
- **THEN**
105+
- Read 跳过该条 `updated_on` 赋值
106+
- 该条目其它字段(`record_id`/`value`/`name` 等)正常填充
107+
- 整次 `terraform plan` / `apply` 流程不报错
108+
109+
**验收标准**
110+
- ✅ Read 中存在 `if recordListItem.UpdatedOn != nil { ... }` 守护
111+
- ✅ 当云端返回部分条目无 `UpdatedOn` 时,结果列表长度与其它字段不受影响
112+
113+
---
114+
115+
### Requirement: REQ-DNSPOD-RECORD-UPDATED-ON-003 - 文档与示例同步
116+
117+
Documentation MUST be updated to reflect the new attribute on both the resource and the data source.
118+
119+
文档与示例必须同步更新,使用户能在网站文档中看到 `updated_on` 字段说明。
120+
121+
#### Scenario: 资源 markdown 与 website 文档展示 updated_on
122+
123+
- **WHEN** 用户在 Terraform Registry 网站查看 `tencentcloud_dnspod_record` 文档
124+
- **THEN**
125+
- "Attributes Reference" 段落包含 `updated_on - Last update time of the record.`
126+
- `make doc` 已根据 `tencentcloud/services/dnspod/resource_tc_dnspod_record.md` 与 schema description 自动生成 `website/docs/r/dnspod_record.html.markdown`
127+
128+
**验收标准**
129+
-`website/docs/r/dnspod_record.html.markdown` 中可 grep 到 `updated_on`
130+
-`make doc` 通过
131+
132+
---
133+
134+
#### Scenario: 数据源 markdown 与 website 文档展示嵌套 updated_on
135+
136+
- **WHEN** 用户在 Terraform Registry 网站查看 `tencentcloud_dnspod_record_list` 数据源文档
137+
- **THEN**
138+
- `record_list``instance_list` 的 Attributes Reference 中均含 `updated_on - Update time.`
139+
- `website/docs/d/dnspod_record_list.html.markdown` 可 grep 到 `updated_on`
140+
141+
**验收标准**
142+
- ✅ 网站文档两处嵌套块均出现 `updated_on`
143+
-`make doc` 通过
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
## 1. 资源 schema 与 Read 实现
2+
3+
- [x] 1.1 在 `tencentcloud/services/dnspod/resource_tc_dnspod_record.go``ResourceTencentCloudDnspodRecord().Schema` 中新增 `updated_on``Type: schema.TypeString, Computed: true, Description: "Last update time of the record."`
4+
- [x] 1.2 在 `resourceTencentCloudDnspodRecordRead` 中、与 `monitor_status` / `remark` 同级位置加入 `if recordInfo.UpdatedOn != nil { _ = d.Set("updated_on", recordInfo.UpdatedOn) }`
5+
- [x] 1.3 复核:不要将 `updated_on` 加入 Create/Update 的 request 构造路径;不要让其参与 `d.Partial``d.HasChange` 等更新判断
6+
7+
## 2. 数据源既有字段确认(无代码改动)
8+
9+
- [x] 2.1 复核 `tencentcloud/services/dnspod/data_source_tc_dnspod_record_list.go``record_list``instance_list` 子 schema 已存在 `updated_on``schema.TypeString, Computed: true`),如缺失则补齐
10+
- [x] 2.2 复核 Read 函数中存在 `recordListItemMap["updated_on"] = recordListItem.UpdatedOn``instanceListItemMap["updated_on"] = recordListItem.UpdatedOn` 赋值,且包裹在 `if recordListItem.UpdatedOn != nil` 守护中
11+
12+
## 3. 文档与示例
13+
14+
- [x] 3.1 更新 `tencentcloud/services/dnspod/resource_tc_dnspod_record.md`,在示例 HCL 后追加说明并展示 `output "updated_on" { value = tencentcloud_dnspod_record.demo.updated_on }`
15+
- [x] 3.2 复核 `tencentcloud/services/dnspod/data_source_tc_dnspod_record_list.md` 是否需要补充 `updated_on` 字段说明(如缺失则补充)
16+
- [x] 3.3 运行 `make doc` 自动生成 `website/docs/r/dnspod_record.html.markdown``website/docs/d/dnspod_record_list.html.markdown`,确认两份文件均包含 `updated_on`
17+
18+
## 4. 验收测试
19+
20+
- [x] 4.1 在 `tencentcloud/services/dnspod/resource_tc_dnspod_record_test.go` 的现有 `TestAccTencentCloudDnsPodRecord*` 测试 Steps 中追加 `resource.TestCheckResourceAttrSet("tencentcloud_dnspod_record.<name>", "updated_on")` 断言(不新增独立 Test 函数,避免重复占用真实 DNSPod 配额)
21+
- [x] 4.2 在 `tencentcloud/services/dnspod/data_source_tc_dnspod_record_list_test.go` 现有测试中追加 `resource.TestCheckResourceAttrSet("data.tencentcloud_dnspod_record_list.<name>", "record_list.0.updated_on")``instance_list.0.updated_on` 断言
22+
23+
## 5. Changelog
24+
25+
- [x] 5.1 在 `.changelog/` 下新增 `<PR_NUMBER>.txt`(占位 PR 号),使用 `enhancement` 块,内容:
26+
```
27+
```release-note:enhancement
28+
resource/tencentcloud_dnspod_record: support new attribute `updated_on`
29+
```
30+
```release-note:enhancement
31+
data-source/tencentcloud_dnspod_record_list: add `updated_on` attribute under `record_list` and `instance_list`
32+
```
33+
```
34+
35+
## 6. 验证
36+
37+
- [x] 6.1 运行 `make fmt`
38+
- [x] 6.2 运行 `make lint`(针对 dnspod 模块),确认本变更未引入新增 lint 错误
39+
- [x] 6.3 运行 `go build ./...`
40+
- [x] 6.4 运行 `go vet ./tencentcloud/services/dnspod/...`
41+
- [ ] 6.5 在具备 DNSPod 测试账号的环境下运行:`TF_ACC=1 go test -run "TestAccTencentCloudDnsPodRecord|TestAccTencentCloudDnspodRecordListDataSource" ./tencentcloud/services/dnspod/... -v -timeout 30m`
42+
- [x] 6.6 运行 `openspec validate dnspod-record-updated-on --strict`

tencentcloud/services/dnspod/data_source_tc_dnspod_record_list_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ func TestAccTencentCloudDnspodRecordListDataSource_subDomains(t *testing.T) {
3434
tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_dnspod_record_list.subdomains"),
3535
resource.TestCheckResourceAttr("data.tencentcloud_dnspod_record_list.subdomains", "record_list.#", "2"),
3636
resource.TestCheckResourceAttr("data.tencentcloud_dnspod_record_list.subdomains", "instance_list.#", "2"),
37+
resource.TestCheckResourceAttrSet("data.tencentcloud_dnspod_record_list.subdomains", "record_list.0.updated_on"),
38+
resource.TestCheckResourceAttrSet("data.tencentcloud_dnspod_record_list.subdomains", "instance_list.0.updated_on"),
3739
),
3840
},
3941
},

tencentcloud/services/dnspod/resource_tc_dnspod_record.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,11 @@ func ResourceTencentCloudDnspodRecord() *schema.Resource {
9393
Computed: true,
9494
Description: "ID of the record.",
9595
},
96+
"updated_on": {
97+
Type: schema.TypeString,
98+
Computed: true,
99+
Description: "Last update time of the record.",
100+
},
96101
},
97102
CustomizeDiff: func(ctx context.Context, d *schema.ResourceDiff, meta interface{}) error {
98103
// weight设置后不能单独关闭
@@ -245,6 +250,9 @@ func resourceTencentCloudDnspodRecordRead(d *schema.ResourceData, meta interface
245250
_ = d.Set("status", "ENABLE")
246251
}
247252
_ = d.Set("record_id", items[1])
253+
if recordInfo.UpdatedOn != nil {
254+
_ = d.Set("updated_on", recordInfo.UpdatedOn)
255+
}
248256
return nil
249257
}
250258

tencentcloud/services/dnspod/resource_tc_dnspod_record.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ resource "tencentcloud_dnspod_record" "demo" {
1212
value="1.2.3.9"
1313
sub_domain="demo"
1414
}
15+
16+
# Read the last update time of the record (Computed attribute).
17+
output "updated_on" {
18+
value = tencentcloud_dnspod_record.demo.updated_on
19+
}
1520
```
1621

1722
Import

tencentcloud/services/dnspod/resource_tc_dnspod_record_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ func TestAccTencentCloudDnspodRecordResource_basic(t *testing.T) {
3636
resource.TestCheckResourceAttr("tencentcloud_dnspod_record.demo", "record_line", "默认"),
3737
resource.TestCheckResourceAttr("tencentcloud_dnspod_record.demo", "remark", "terraform-test"),
3838
resource.TestCheckResourceAttr("tencentcloud_dnspod_record.demo", "weight", "100"),
39+
resource.TestCheckResourceAttrSet("tencentcloud_dnspod_record.demo", "updated_on"),
3940
),
4041
},
4142
{
@@ -95,6 +96,7 @@ func TestAccTencentCloudDnspodRecordResource_MX(t *testing.T) {
9596
resource.TestCheckResourceAttr("tencentcloud_dnspod_record.demo", "ttl", "86400"),
9697
resource.TestCheckResourceAttr("tencentcloud_dnspod_record.demo", "status", "ENABLE"),
9798
resource.TestCheckResourceAttr("tencentcloud_dnspod_record.demo", "remark", "terraform-test"),
99+
resource.TestCheckResourceAttrSet("tencentcloud_dnspod_record.demo", "updated_on"),
98100
),
99101
},
100102
{

0 commit comments

Comments
 (0)