diff --git a/.changelog/2963.txt b/.changelog/2963.txt new file mode 100644 index 0000000000..4b13c0bdd5 --- /dev/null +++ b/.changelog/2963.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +resource/tencentcloud_vpc_flow_log: support modifying `tags` +``` \ No newline at end of file diff --git a/tencentcloud/services/fl/resource_tc_vpc_flow_log.go b/tencentcloud/services/fl/resource_tc_vpc_flow_log.go index 9d75c212b2..b10079301d 100644 --- a/tencentcloud/services/fl/resource_tc_vpc_flow_log.go +++ b/tencentcloud/services/fl/resource_tc_vpc_flow_log.go @@ -325,33 +325,31 @@ func resourceTencentCloudVpcFlowLogUpdate(d *schema.ResourceData, meta interface } } - request.FlowLogId = &flowLogId - request.VpcId = &vpcId - - if d.HasChange("flow_log_name") { + if d.HasChange("flow_log_name") || d.HasChange("flow_log_description") { if v, ok := d.GetOk("flow_log_name"); ok { request.FlowLogName = helper.String(v.(string)) } - } - if d.HasChange("flow_log_description") { if v, ok := d.GetOk("flow_log_description"); ok { request.FlowLogDescription = helper.String(v.(string)) } - } - err = resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { - result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseVpcClient().ModifyFlowLogAttribute(request) - if e != nil { - return tccommon.RetryError(e) - } else { - log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) + request.FlowLogId = &flowLogId + request.VpcId = &vpcId + err = resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseVpcClient().ModifyFlowLogAttribute(request) + if e != nil { + return tccommon.RetryError(e) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) + } + return nil + }) + + if err != nil { + log.Printf("[CRITAL]%s update vpc flowLog failed, reason:%+v", logId, err) + return err } - return nil - }) - if err != nil { - log.Printf("[CRITAL]%s update vpc flowLog failed, reason:%+v", logId, err) - return err } if d.HasChange("tags") { diff --git a/tencentcloud/services/fl/resource_tc_vpc_flow_log.md b/tencentcloud/services/fl/resource_tc_vpc_flow_log.md index da18334756..dcaf8f2ab3 100644 --- a/tencentcloud/services/fl/resource_tc_vpc_flow_log.md +++ b/tencentcloud/services/fl/resource_tc_vpc_flow_log.md @@ -30,9 +30,9 @@ data "tencentcloud_instance_types" "instance_types" { } resource "tencentcloud_cls_logset" "logset" { - logset_name = "delogsetmo" - tags = { - "test" = "test" + logset_name = "logset" + tags = { + createBy = "Terraform" } } @@ -44,26 +44,26 @@ resource "tencentcloud_cls_topic" "topic" { partition_count = 1 period = 10 storage_type = "hot" - tags = { - "test" = "test", + tags = { + createBy = "Terraform" } } resource "tencentcloud_vpc" "vpc" { - name = "vpc-flow-log-vpc" + name = "vpc" cidr_block = "10.0.0.0/16" } resource "tencentcloud_subnet" "subnet" { availability_zone = data.tencentcloud_availability_zones.zones.zones.0.name - name = "vpc-flow-log-subnet" + name = "subnet" vpc_id = tencentcloud_vpc.vpc.id cidr_block = "10.0.0.0/16" is_multicast = false } resource "tencentcloud_eni" "example" { - name = "vpc-flow-log-eni" + name = "tf-example" vpc_id = tencentcloud_vpc.vpc.id subnet_id = tencentcloud_subnet.subnet.id description = "eni desc" @@ -71,7 +71,7 @@ resource "tencentcloud_eni" "example" { } resource "tencentcloud_instance" "example" { - instance_name = "ci-test-eni-attach" + instance_name = "tf-example" availability_zone = data.tencentcloud_availability_zones.zones.zones.0.name image_id = data.tencentcloud_images.image.images.0.image_id instance_type = data.tencentcloud_instance_types.instance_types.instance_types.0.instance_type @@ -88,7 +88,7 @@ resource "tencentcloud_eni_attachment" "example" { } resource "tencentcloud_vpc_flow_log" "example" { - flow_log_name = "tf-example-vpc-flow-log" + flow_log_name = "tf-example" resource_type = "NETWORKINTERFACE" resource_id = tencentcloud_eni_attachment.example.eni_id traffic_type = "ACCEPT" @@ -96,8 +96,8 @@ resource "tencentcloud_vpc_flow_log" "example" { flow_log_description = "this is a testing flow log" cloud_log_id = tencentcloud_cls_topic.topic.id storage_type = "cls" - tags = { - "testKey" = "testValue" + tags = { + createBy = "Terraform" } } ``` @@ -107,5 +107,5 @@ Import vpc flow_log can be imported using the flow log Id combine vpc Id, e.g. ``` -$ terraform import tencentcloud_vpc_flow_log.flow_log flow_log_id fl-xxxx1234#vpc-yyyy5678 +$ terraform import tencentcloud_vpc_flow_log.example fl-7k59x22l#vpc-n6qjlen5 ``` \ No newline at end of file diff --git a/website/docs/r/vpc_flow_log.html.markdown b/website/docs/r/vpc_flow_log.html.markdown index bc3bb45545..1ea250a79d 100644 --- a/website/docs/r/vpc_flow_log.html.markdown +++ b/website/docs/r/vpc_flow_log.html.markdown @@ -41,9 +41,9 @@ data "tencentcloud_instance_types" "instance_types" { } resource "tencentcloud_cls_logset" "logset" { - logset_name = "delogsetmo" + logset_name = "logset" tags = { - "test" = "test" + createBy = "Terraform" } } @@ -56,25 +56,25 @@ resource "tencentcloud_cls_topic" "topic" { period = 10 storage_type = "hot" tags = { - "test" = "test", + createBy = "Terraform" } } resource "tencentcloud_vpc" "vpc" { - name = "vpc-flow-log-vpc" + name = "vpc" cidr_block = "10.0.0.0/16" } resource "tencentcloud_subnet" "subnet" { availability_zone = data.tencentcloud_availability_zones.zones.zones.0.name - name = "vpc-flow-log-subnet" + name = "subnet" vpc_id = tencentcloud_vpc.vpc.id cidr_block = "10.0.0.0/16" is_multicast = false } resource "tencentcloud_eni" "example" { - name = "vpc-flow-log-eni" + name = "tf-example" vpc_id = tencentcloud_vpc.vpc.id subnet_id = tencentcloud_subnet.subnet.id description = "eni desc" @@ -82,7 +82,7 @@ resource "tencentcloud_eni" "example" { } resource "tencentcloud_instance" "example" { - instance_name = "ci-test-eni-attach" + instance_name = "tf-example" availability_zone = data.tencentcloud_availability_zones.zones.zones.0.name image_id = data.tencentcloud_images.image.images.0.image_id instance_type = data.tencentcloud_instance_types.instance_types.instance_types.0.instance_type @@ -99,7 +99,7 @@ resource "tencentcloud_eni_attachment" "example" { } resource "tencentcloud_vpc_flow_log" "example" { - flow_log_name = "tf-example-vpc-flow-log" + flow_log_name = "tf-example" resource_type = "NETWORKINTERFACE" resource_id = tencentcloud_eni_attachment.example.eni_id traffic_type = "ACCEPT" @@ -108,7 +108,7 @@ resource "tencentcloud_vpc_flow_log" "example" { cloud_log_id = tencentcloud_cls_topic.topic.id storage_type = "cls" tags = { - "testKey" = "testValue" + createBy = "Terraform" } } ``` @@ -147,6 +147,6 @@ In addition to all arguments above, the following attributes are exported: vpc flow_log can be imported using the flow log Id combine vpc Id, e.g. ``` -$ terraform import tencentcloud_vpc_flow_log.flow_log flow_log_id fl-xxxx1234#vpc-yyyy5678 +$ terraform import tencentcloud_vpc_flow_log.example fl-7k59x22l#vpc-n6qjlen5 ```