diff --git a/.changelog/3584.txt b/.changelog/3584.txt
new file mode 100644
index 0000000000..3ae9030b14
--- /dev/null
+++ b/.changelog/3584.txt
@@ -0,0 +1,7 @@
+```release-note:new-resource
+tencentcloud_clb_cls_log_attachment
+```
+
+```release-note:enhancement
+resource/tencentcloud_clb_log_topic: support `status`
+```
diff --git a/tencentcloud/provider.go b/tencentcloud/provider.go
index 93f69699fa..0e53fb0c61 100644
--- a/tencentcloud/provider.go
+++ b/tencentcloud/provider.go
@@ -1448,6 +1448,8 @@ func Provider() *schema.Provider {
"tencentcloud_clb_instance_sla_config": clb.ResourceTencentCloudClbInstanceSlaConfig(),
"tencentcloud_clb_replace_cert_for_lbs": clb.ResourceTencentCloudClbReplaceCertForLbs(),
"tencentcloud_clb_security_group_attachment": clb.ResourceTencentCloudClbSecurityGroupAttachment(),
+ "tencentcloud_clb_target_group_attachments": clb.ResourceTencentCloudClbTargetGroupAttachments(),
+ "tencentcloud_clb_cls_log_attachment": clb.ResourceTencentCloudClbClsLogAttachment(),
"tencentcloud_gwlb_instance": gwlb.ResourceTencentCloudGwlbInstance(),
"tencentcloud_gwlb_target_group": gwlb.ResourceTencentCloudGwlbTargetGroup(),
"tencentcloud_gwlb_instance_associate_target_group": gwlb.ResourceTencentCloudGwlbInstanceAssociateTargetGroup(),
@@ -2412,7 +2414,6 @@ func Provider() *schema.Provider {
"tencentcloud_cdwpg_userhba": cdwpg.ResourceTencentCloudCdwpgUserhba(),
"tencentcloud_clickhouse_keyval_config": cdwch.ResourceTencentCloudClickhouseKeyvalConfig(),
"tencentcloud_clickhouse_xml_config": cdwch.ResourceTencentCloudClickhouseXmlConfig(),
- "tencentcloud_clb_target_group_attachments": clb.ResourceTencentCloudClbTargetGroupAttachments(),
"tencentcloud_vpc_peer_connect_manager": vpc.ResourceTencentCloudVpcPeerConnectManager(),
"tencentcloud_vpc_peer_connect_accept_operation": vpc.ResourceTencentCloudVpcPeerConnectAcceptOperation(),
"tencentcloud_vpc_peer_connect_reject_operation": vpc.ResourceTencentCloudVpcPeerConnectRejectOperation(),
diff --git a/tencentcloud/provider.md b/tencentcloud/provider.md
index c26b0b41fa..e2ba060464 100644
--- a/tencentcloud/provider.md
+++ b/tencentcloud/provider.md
@@ -418,6 +418,7 @@ tencentcloud_clb_instance_sla_config
tencentcloud_clb_instance_mix_ip_target_config
tencentcloud_clb_replace_cert_for_lbs
tencentcloud_clb_security_group_attachment
+tencentcloud_clb_cls_log_attachment
Cloud Object Storage(COS)
Data Source
diff --git a/tencentcloud/services/clb/resource_tc_clb_cls_log_attachment.go b/tencentcloud/services/clb/resource_tc_clb_cls_log_attachment.go
new file mode 100644
index 0000000000..40316f188f
--- /dev/null
+++ b/tencentcloud/services/clb/resource_tc_clb_cls_log_attachment.go
@@ -0,0 +1,200 @@
+package clb
+
+import (
+ "context"
+ "fmt"
+ "log"
+ "strings"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+ clbv20180317 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb/v20180317"
+
+ tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
+ "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
+)
+
+func ResourceTencentCloudClbClsLogAttachment() *schema.Resource {
+ return &schema.Resource{
+ Create: resourceTencentCloudClbClsLogAttachmentCreate,
+ Read: resourceTencentCloudClbClsLogAttachmentRead,
+ Delete: resourceTencentCloudClbClsLogAttachmentDelete,
+ Importer: &schema.ResourceImporter{
+ State: schema.ImportStatePassthrough,
+ },
+ Schema: map[string]*schema.Schema{
+ "load_balancer_id": {
+ Type: schema.TypeString,
+ Required: true,
+ ForceNew: true,
+ Description: "CLB instance ID.",
+ },
+
+ "log_set_id": {
+ Type: schema.TypeString,
+ Required: true,
+ ForceNew: true,
+ Description: "Logset ID of the Cloud Log Service (CLS).
When adding or updating a log topic, call the [DescribeLogsets](https://intl.cloud.tencent.com/document/product/614/58624?from_cn_redirect=1) API to obtain the logset ID.When deleting a log topic, set this parameter to null..",
+ },
+
+ "log_topic_id": {
+ Type: schema.TypeString,
+ Required: true,
+ ForceNew: true,
+ Description: "Log topic ID of the CLS.When adding or updating a log topic, call the [DescribeTopics](https://intl.cloud.tencent.com/document/product/614/56454?from_cn_redirect=1) API to obtain the log topic ID.When deleting a log topic, set this parameter to null..",
+ },
+
+ // "log_type": {
+ // Type: schema.TypeString,
+ // Optional: true,
+ // ForceNew: true,
+ // Computed: true,
+ // Description: "Log type:\n`ACCESS`: access logs\n`HEALTH`: health check logs\nDefault: `ACCESS`.",
+ // },
+ },
+ }
+}
+
+func resourceTencentCloudClbClsLogAttachmentCreate(d *schema.ResourceData, meta interface{}) error {
+ defer tccommon.LogElapsed("resource.tencentcloud_clb_cls_log_attachment.create")()
+ defer tccommon.InconsistentCheck(d, meta)()
+
+ var (
+ logId = tccommon.GetLogId(tccommon.ContextNil)
+ ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
+ request = clbv20180317.NewSetLoadBalancerClsLogRequest()
+ loadBalancerId string
+ logSetId string
+ logTopicId string
+ )
+
+ if v, ok := d.GetOk("load_balancer_id"); ok {
+ request.LoadBalancerId = helper.String(v.(string))
+ loadBalancerId = v.(string)
+ }
+
+ if v, ok := d.GetOk("log_set_id"); ok {
+ request.LogSetId = helper.String(v.(string))
+ logSetId = v.(string)
+ }
+
+ if v, ok := d.GetOk("log_topic_id"); ok {
+ request.LogTopicId = helper.String(v.(string))
+ logTopicId = v.(string)
+ }
+
+ // if v, ok := d.GetOk("log_type"); ok {
+ // request.LogType = helper.String(v.(string))
+ // }
+
+ reqErr := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
+ result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseClbClient().SetLoadBalancerClsLogWithContext(ctx, 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 reqErr != nil {
+ log.Printf("[CRITAL]%s create clb cls log attachment failed, reason:%+v", logId, reqErr)
+ return reqErr
+ }
+
+ d.SetId(strings.Join([]string{loadBalancerId, logSetId, logTopicId}, tccommon.FILED_SP))
+ return resourceTencentCloudClbClsLogAttachmentRead(d, meta)
+}
+
+func resourceTencentCloudClbClsLogAttachmentRead(d *schema.ResourceData, meta interface{}) error {
+ defer tccommon.LogElapsed("resource.tencentcloud_clb_cls_log_attachment.read")()
+ defer tccommon.InconsistentCheck(d, meta)()
+
+ var (
+ logId = tccommon.GetLogId(tccommon.ContextNil)
+ ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
+ service = ClbService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
+ )
+
+ idSplit := strings.Split(d.Id(), tccommon.FILED_SP)
+ if len(idSplit) != 3 {
+ return fmt.Errorf("id is broken,%s", d.Id())
+ }
+
+ loadBalancerId := idSplit[0]
+ logSetId := idSplit[1]
+ logTopicId := idSplit[2]
+
+ respData, err := service.DescribeClbClsLogAttachmentById(ctx, loadBalancerId, logSetId, logTopicId)
+ if err != nil {
+ return err
+ }
+
+ if respData == nil {
+ log.Printf("[WARN]%s resource `tencentcloud_clb_cls_log_attachment` [%s] not found, please check if it has been deleted.\n", logId, d.Id())
+ d.SetId("")
+ return nil
+ }
+
+ if respData.LoadBalancerId != nil {
+ _ = d.Set("load_balancer_id", respData.LoadBalancerId)
+ }
+
+ if respData.LogSetId != nil && respData.LogTopicId != nil {
+ if *respData.LogSetId == logSetId && *respData.LogTopicId == logTopicId {
+ _ = d.Set("log_set_id", respData.LogSetId)
+ _ = d.Set("log_topic_id", respData.LogTopicId)
+ // _ = d.Set("log_type", "ACCESS")
+ }
+ }
+
+ // if respData.HealthLogSetId != nil && respData.HealthLogTopicId != nil {
+ // if *respData.HealthLogSetId == logSetId && *respData.HealthLogTopicId == logTopicId {
+ // _ = d.Set("log_set_id", respData.HealthLogSetId)
+ // _ = d.Set("log_topic_id", respData.HealthLogTopicId)
+ // _ = d.Set("log_type", "HEALTH")
+ // }
+ // }
+
+ return nil
+}
+
+func resourceTencentCloudClbClsLogAttachmentDelete(d *schema.ResourceData, meta interface{}) error {
+ defer tccommon.LogElapsed("resource.tencentcloud_clb_cls_log_attachment.delete")()
+ defer tccommon.InconsistentCheck(d, meta)()
+
+ var (
+ logId = tccommon.GetLogId(tccommon.ContextNil)
+ ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
+ request = clbv20180317.NewSetLoadBalancerClsLogRequest()
+ )
+
+ idSplit := strings.Split(d.Id(), tccommon.FILED_SP)
+ if len(idSplit) != 3 {
+ return fmt.Errorf("id is broken,%s", d.Id())
+ }
+
+ loadBalancerId := idSplit[0]
+
+ request.LoadBalancerId = &loadBalancerId
+ request.LogSetId = helper.String("")
+ request.LogTopicId = helper.String("")
+ reqErr := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
+ result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseClbClient().SetLoadBalancerClsLogWithContext(ctx, 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 reqErr != nil {
+ log.Printf("[CRITAL]%s delete clb cls log attachment failed, reason:%+v", logId, reqErr)
+ return reqErr
+ }
+
+ return nil
+}
diff --git a/tencentcloud/services/clb/resource_tc_clb_cls_log_attachment.md b/tencentcloud/services/clb/resource_tc_clb_cls_log_attachment.md
new file mode 100644
index 0000000000..ddaac7372b
--- /dev/null
+++ b/tencentcloud/services/clb/resource_tc_clb_cls_log_attachment.md
@@ -0,0 +1,25 @@
+Provides a resource to create a CLB cls log attachment
+
+Example Usage
+
+```hcl
+resource "tencentcloud_clb_log_topic" "example" {
+ log_set_id = "2ed70190-bf06-4777-980d-2d8a327a2554"
+ topic_name = "tf-example"
+ status = true
+}
+
+resource "tencentcloud_clb_cls_log_attachment" "example" {
+ load_balancer_id = "lb-n26tx0bm"
+ log_set_id = "2ed70190-bf06-4777-980d-2d8a327a2554"
+ log_topic_id = tencentcloud_clb_log_topic.example.id
+}
+```
+
+Import
+
+CLB cls log attachment can be imported using the loadBalancerId#logSetId#logTopicId, e.g.
+
+```
+terraform import tencentcloud_clb_cls_log_attachment.example lb-n26tx0bm#2ed70190-bf06-4777-980d-2d8a327a2554#ac2fda28-3e79-4b51-b193-bfcf1aeece24
+```
diff --git a/tencentcloud/services/clb/resource_tc_clb_cls_log_attachment_test.go b/tencentcloud/services/clb/resource_tc_clb_cls_log_attachment_test.go
new file mode 100644
index 0000000000..ccaf5c0824
--- /dev/null
+++ b/tencentcloud/services/clb/resource_tc_clb_cls_log_attachment_test.go
@@ -0,0 +1,33 @@
+package clb_test
+
+import (
+ "testing"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
+
+ tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest"
+)
+
+func TestAccTencentCloudClbClsLogAttachmentResource_basic(t *testing.T) {
+ t.Parallel()
+ resource.Test(t, resource.TestCase{
+ PreCheck: func() {
+ tcacctest.AccPreCheck(t)
+ },
+ Providers: tcacctest.AccProviders,
+ Steps: []resource.TestStep{{
+ Config: testAccClbClsLogAttachment,
+ Check: resource.ComposeTestCheckFunc(resource.TestCheckResourceAttrSet("tencentcloud_clb_cls_log_attachment.clb_cls_log_attachment", "id")),
+ }, {
+ ResourceName: "tencentcloud_clb_cls_log_attachment.clb_cls_log_attachment",
+ ImportState: true,
+ ImportStateVerify: true,
+ }},
+ })
+}
+
+const testAccClbClsLogAttachment = `
+
+resource "tencentcloud_clb_cls_log_attachment" "clb_cls_log_attachment" {
+}
+`
diff --git a/tencentcloud/services/clb/resource_tc_clb_log_topic.go b/tencentcloud/services/clb/resource_tc_clb_log_topic.go
index 80660be692..c253138197 100644
--- a/tencentcloud/services/clb/resource_tc_clb_log_topic.go
+++ b/tencentcloud/services/clb/resource_tc_clb_log_topic.go
@@ -7,9 +7,13 @@ import (
"sync"
tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
+ "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
svccls "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/services/cls"
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+
+ cls "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls/v20201016"
)
var clsActionMu = &sync.Mutex{}
@@ -18,6 +22,7 @@ func ResourceTencentCloudClbLogTopic() *schema.Resource {
return &schema.Resource{
Create: resourceTencentCloudClbInstanceTopicCreate,
Read: resourceTencentCloudClbInstanceTopicRead,
+ Update: resourceTencentCloudClbInstanceTopicUpdate,
Delete: resourceTencentCloudClbInstanceTopicDelete,
Importer: &schema.ResourceImporter{
State: schema.ImportStatePassthrough,
@@ -36,18 +41,13 @@ func ResourceTencentCloudClbLogTopic() *schema.Resource {
ForceNew: true,
Description: "Log topic of CLB instance.",
},
- //"partition_count": {
- // Type: schema.TypeInt,
- // Optional: true,
- // ValidateFunc: tccommon.ValidateIntegerInRange(1, 10),
- // Description: "Topic partition count of CLB instance.(Default 1).",
- //},
- //compute
"status": {
Type: schema.TypeBool,
+ Optional: true,
Computed: true,
- Description: "The status of log topic.",
+ Description: "The status of log topic. true: enable; false: disable. Default is true.",
},
+ //compute
"create_time": {
Type: schema.TypeString,
Computed: true,
@@ -88,7 +88,32 @@ func resourceTencentCloudClbInstanceTopicCreate(d *schema.ResourceData, meta int
log.Printf("[CRITAL]%s create clb topic failed, reason:%+v", logId, err)
return err
}
- d.SetId(*resp.Response.TopicId)
+
+ topicId := *resp.Response.TopicId
+ d.SetId(topicId)
+
+ if v, ok := d.GetOkExists("status"); ok {
+ if !v.(bool) {
+ request := cls.NewModifyTopicRequest()
+ request.TopicId = &topicId
+ request.Status = helper.Bool(false)
+ err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
+ result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseClsClient().ModifyTopic(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 {
+ return err
+ }
+ }
+ }
+
return resourceTencentCloudClbInstanceTopicRead(d, meta)
}
@@ -113,7 +138,39 @@ func resourceTencentCloudClbInstanceTopicRead(d *schema.ResourceData, meta inter
_ = d.Set("create_time", res.CreateTime)
_ = d.Set("status", res.Status)
return nil
+}
+
+func resourceTencentCloudClbInstanceTopicUpdate(d *schema.ResourceData, meta interface{}) error {
+ defer tccommon.LogElapsed("resource.tencentcloud_clb_log_topic.update")()
+
+ var (
+ logId = tccommon.GetLogId(tccommon.ContextNil)
+ topicId = d.Id()
+ )
+
+ if d.HasChange("status") {
+ if v, ok := d.GetOkExists("status"); ok {
+ request := cls.NewModifyTopicRequest()
+ request.TopicId = &topicId
+ request.Status = helper.Bool(v.(bool))
+ err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
+ result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseClsClient().ModifyTopic(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 {
+ return err
+ }
+ }
+ }
+
+ return resourceTencentCloudClbInstanceTopicRead(d, meta)
}
func resourceTencentCloudClbInstanceTopicDelete(d *schema.ResourceData, meta interface{}) error {
diff --git a/tencentcloud/services/clb/resource_tc_clb_log_topic.md b/tencentcloud/services/clb/resource_tc_clb_log_topic.md
index 09035ea5d4..9927f180eb 100644
--- a/tencentcloud/services/clb/resource_tc_clb_log_topic.md
+++ b/tencentcloud/services/clb/resource_tc_clb_log_topic.md
@@ -1,11 +1,12 @@
-Provides a resource to create a CLB instance topic.
+Provides a resource to create a CLB log topic.
Example Usage
```hcl
-resource "tencentcloud_clb_log_topic" "topic" {
- log_set_id = "${tencentcloud_clb_log_set.set.id}"
- topic_name = "clb-topic"
+resource "tencentcloud_clb_log_topic" "example" {
+ log_set_id = "2ed70190-bf06-4777-980d-2d8a327a2554"
+ topic_name = "tf-example"
+ status = true
}
```
@@ -14,4 +15,5 @@ Import
CLB log topic can be imported using the id, e.g.
```
-$ terraform import tencentcloud_clb_log_topic.topic lb-7a0t6zqb
\ No newline at end of file
+terraform import tencentcloud_clb_log_topic.example be1a83dd-04b4-4807-89bf-8daddce0df71
+```
diff --git a/tencentcloud/services/clb/service_tencentcloud_clb.go b/tencentcloud/services/clb/service_tencentcloud_clb.go
index 7c946aea04..92a4d3684e 100644
--- a/tencentcloud/services/clb/service_tencentcloud_clb.go
+++ b/tencentcloud/services/clb/service_tencentcloud_clb.go
@@ -2593,3 +2593,42 @@ func (me *ClbService) DescribeDescribeCustomizedConfigAssociateListById(ctx cont
return
}
+
+func (me *ClbService) DescribeClbClsLogAttachmentById(ctx context.Context, loadBalancerId, logSetId, logTopicId string) (ret *clb.LoadBalancer, errRet error) {
+ logId := tccommon.GetLogId(ctx)
+
+ request := clb.NewDescribeLoadBalancersRequest()
+ response := clb.NewDescribeLoadBalancersResponse()
+ request.LoadBalancerIds = []*string{&loadBalancerId}
+
+ defer func() {
+ if errRet != nil {
+ log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error())
+ }
+ }()
+
+ err := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
+ ratelimit.Check(request.GetAction())
+ result, e := me.client.UseClbClient().DescribeLoadBalancers(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())
+ }
+
+ if result == nil || result.Response == nil || result.Response.LoadBalancerSet == nil || len(result.Response.LoadBalancerSet) < 1 {
+ return resource.NonRetryableError(fmt.Errorf("Describe load balancers failed, Response is nil."))
+ }
+
+ response = result
+ return nil
+ })
+
+ if err != nil {
+ errRet = err
+ return
+ }
+
+ ret = response.Response.LoadBalancerSet[0]
+ return
+}
diff --git a/website/docs/r/clb_cls_log_attachment.html.markdown b/website/docs/r/clb_cls_log_attachment.html.markdown
new file mode 100644
index 0000000000..96f46c3715
--- /dev/null
+++ b/website/docs/r/clb_cls_log_attachment.html.markdown
@@ -0,0 +1,53 @@
+---
+subcategory: "Cloud Load Balancer(CLB)"
+layout: "tencentcloud"
+page_title: "TencentCloud: tencentcloud_clb_cls_log_attachment"
+sidebar_current: "docs-tencentcloud-resource-clb_cls_log_attachment"
+description: |-
+ Provides a resource to create a CLB cls log attachment
+---
+
+# tencentcloud_clb_cls_log_attachment
+
+Provides a resource to create a CLB cls log attachment
+
+## Example Usage
+
+```hcl
+resource "tencentcloud_clb_log_topic" "example" {
+ log_set_id = "2ed70190-bf06-4777-980d-2d8a327a2554"
+ topic_name = "tf-example"
+ status = true
+}
+
+resource "tencentcloud_clb_cls_log_attachment" "example" {
+ load_balancer_id = "lb-n26tx0bm"
+ log_set_id = "2ed70190-bf06-4777-980d-2d8a327a2554"
+ log_topic_id = tencentcloud_clb_log_topic.example.id
+}
+```
+
+## Argument Reference
+
+The following arguments are supported:
+
+* `load_balancer_id` - (Required, String, ForceNew) CLB instance ID.
+* `log_set_id` - (Required, String, ForceNew) Logset ID of the Cloud Log Service (CLS).When adding or updating a log topic, call the [DescribeLogsets](https://intl.cloud.tencent.com/document/product/614/58624?from_cn_redirect=1) API to obtain the logset ID.When deleting a log topic, set this parameter to null..
+* `log_topic_id` - (Required, String, ForceNew) Log topic ID of the CLS.When adding or updating a log topic, call the [DescribeTopics](https://intl.cloud.tencent.com/document/product/614/56454?from_cn_redirect=1) API to obtain the log topic ID.When deleting a log topic, set this parameter to null..
+
+## Attributes Reference
+
+In addition to all arguments above, the following attributes are exported:
+
+* `id` - ID of the resource.
+
+
+
+## Import
+
+CLB cls log attachment can be imported using the loadBalancerId#logSetId#logTopicId, e.g.
+
+```
+terraform import tencentcloud_clb_cls_log_attachment.example lb-n26tx0bm#2ed70190-bf06-4777-980d-2d8a327a2554#ac2fda28-3e79-4b51-b193-bfcf1aeece24
+```
+
diff --git a/website/docs/r/clb_log_topic.html.markdown b/website/docs/r/clb_log_topic.html.markdown
index 004e251977..eeadcf12c5 100644
--- a/website/docs/r/clb_log_topic.html.markdown
+++ b/website/docs/r/clb_log_topic.html.markdown
@@ -4,19 +4,20 @@ layout: "tencentcloud"
page_title: "TencentCloud: tencentcloud_clb_log_topic"
sidebar_current: "docs-tencentcloud-resource-clb_log_topic"
description: |-
- Provides a resource to create a CLB instance topic.
+ Provides a resource to create a CLB log topic.
---
# tencentcloud_clb_log_topic
-Provides a resource to create a CLB instance topic.
+Provides a resource to create a CLB log topic.
## Example Usage
```hcl
-resource "tencentcloud_clb_log_topic" "topic" {
- log_set_id = "${tencentcloud_clb_log_set.set.id}"
- topic_name = "clb-topic"
+resource "tencentcloud_clb_log_topic" "example" {
+ log_set_id = "2ed70190-bf06-4777-980d-2d8a327a2554"
+ topic_name = "tf-example"
+ status = true
}
```
@@ -26,6 +27,7 @@ The following arguments are supported:
* `log_set_id` - (Required, String, ForceNew) Log topic of CLB instance.
* `topic_name` - (Required, String, ForceNew) Log topic of CLB instance.
+* `status` - (Optional, Bool) The status of log topic. true: enable; false: disable. Default is true.
## Attributes Reference
@@ -33,7 +35,6 @@ In addition to all arguments above, the following attributes are exported:
* `id` - ID of the resource.
* `create_time` - Log topic creation time.
-* `status` - The status of log topic.
## Import
@@ -41,5 +42,6 @@ In addition to all arguments above, the following attributes are exported:
CLB log topic can be imported using the id, e.g.
```
-$ terraform import tencentcloud_clb_log_topic.topic lb-7a0t6zqb
+terraform import tencentcloud_clb_log_topic.example be1a83dd-04b4-4807-89bf-8daddce0df71
+```
diff --git a/website/tencentcloud.erb b/website/tencentcloud.erb
index 04b0970431..97bb64778f 100644
--- a/website/tencentcloud.erb
+++ b/website/tencentcloud.erb
@@ -1480,6 +1480,9 @@
tencentcloud_clb_attachment
+
+ tencentcloud_clb_cls_log_attachment
+
tencentcloud_clb_customized_config