Skip to content

Commit 081272f

Browse files
authored
Feat/support tcr resource (#1713)
* support resource: tencentcloud_tcr_customized_domain * add changelog * Support tcr general and operation resources. * passed the e2e case * passed the e2e case * feat:adjust tags
1 parent 50022be commit 081272f

File tree

2 files changed

+30
-2
lines changed

2 files changed

+30
-2
lines changed

tencentcloud/resource_tc_tcr_customized_domain.go

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ func resourceTencentCloudTcrCustomizedDomain() *schema.Resource {
4141
return &schema.Resource{
4242
Create: resourceTencentCloudTcrCustomizedDomainCreate,
4343
Read: resourceTencentCloudTcrCustomizedDomainRead,
44+
Update: resourceTencentCloudTcrCustomizedDomainUpdate,
4445
Delete: resourceTencentCloudTcrCustomizedDomainDelete,
4546
Importer: &schema.ResourceImporter{
4647
State: schema.ImportStatePassthrough,
@@ -69,7 +70,6 @@ func resourceTencentCloudTcrCustomizedDomain() *schema.Resource {
6970

7071
"tags": {
7172
Optional: true,
72-
ForceNew: true,
7373
Type: schema.TypeMap,
7474
Description: "Tag description list.",
7575
},
@@ -192,6 +192,34 @@ func resourceTencentCloudTcrCustomizedDomainRead(d *schema.ResourceData, meta in
192192
return nil
193193
}
194194

195+
func resourceTencentCloudTcrCustomizedDomainUpdate(d *schema.ResourceData, meta interface{}) error {
196+
defer logElapsed("resource.tencentcloud_tcr_customized_domain.update")()
197+
defer inconsistentCheck(d, meta)()
198+
199+
logId := getLogId(contextNil)
200+
201+
immutableArgs := []string{"registry_id", "domain_name", "certificate_id"}
202+
203+
for _, v := range immutableArgs {
204+
if d.HasChange(v) {
205+
return fmt.Errorf("argument `%s` cannot be changed", v)
206+
}
207+
}
208+
if d.HasChange("tags") {
209+
ctx := context.WithValue(context.TODO(), logIdKey, logId)
210+
tcClient := meta.(*TencentCloudClient).apiV3Conn
211+
tagService := &TagService{client: tcClient}
212+
oldTags, newTags := d.GetChange("tags")
213+
replaceTags, deleteTags := diffTags(oldTags.(map[string]interface{}), newTags.(map[string]interface{}))
214+
resourceName := BuildTagResourceName("tcr", "instance", tcClient.Region, d.Id())
215+
if err := tagService.ModifyTags(ctx, resourceName, replaceTags, deleteTags); err != nil {
216+
return err
217+
}
218+
}
219+
220+
return resourceTencentCloudTcrCustomizedDomainRead(d, meta)
221+
}
222+
195223
func resourceTencentCloudTcrCustomizedDomainDelete(d *schema.ResourceData, meta interface{}) error {
196224
defer logElapsed("resource.tencentcloud_tcr_customized_domain.delete")()
197225
defer inconsistentCheck(d, meta)()

website/docs/r/tcr_customized_domain.html.markdown

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ The following arguments are supported:
3131
* `certificate_id` - (Required, String, ForceNew) certificate id.
3232
* `domain_name` - (Required, String, ForceNew) custom domain name.
3333
* `registry_id` - (Required, String, ForceNew) instance id.
34-
* `tags` - (Optional, Map, ForceNew) Tag description list.
34+
* `tags` - (Optional, Map) Tag description list.
3535

3636
## Attributes Reference
3737

0 commit comments

Comments
 (0)