diff --git a/.changelog/2853.txt b/.changelog/2853.txt new file mode 100644 index 0000000000..a6fa16f373 --- /dev/null +++ b/.changelog/2853.txt @@ -0,0 +1,3 @@ +```release-note:new-resource +tencentcloud_redis_log_delivery +``` diff --git a/go.mod b/go.mod index 687e00b279..ecae53a6b0 100644 --- a/go.mod +++ b/go.mod @@ -73,7 +73,7 @@ require ( github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1010 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.859 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/pts v1.0.762 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.976 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.1008 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/rum v1.0.744 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf v1.0.807 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ses v1.0.748 diff --git a/go.sum b/go.sum index 1546b6c9b6..37b8a2dda7 100644 --- a/go.sum +++ b/go.sum @@ -840,8 +840,6 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.944 h1:+PGoNHl github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.944/go.mod h1:+VHcZ4Cnzpt6vtCvNROz8xWfNWUkoAZ9UPSonbA3NWM= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdc v1.0.970 h1:0A6PwOaUeLtm4U5TR1uD91ETBgDcnfqFnsG9mwCNvlY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdc v1.0.970/go.mod h1:H4k8QCKds731GA9pmSOfHJ99ZOZhy+gKvX1/N2DOsQQ= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.539 h1:0L6nZhT2bToTc/n1z3HOpNgdu5VX5ulmqIuPY+8UozA= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.539/go.mod h1:6Syk7W5fdDf0BLvX+RXL5obQ6unkt3Id4aN2QqVrV6U= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.1010 h1:sO0vW6E09xFQ5+I8mfvAyIlRZvWBWPf6ilZU5LI4lmE= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.0.1010/go.mod h1:/UDEkf2UhUud19VVMGMTpyiI7HoE3U/c23uoAqDgIWA= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwch v1.0.843 h1:3Xr3UPscUfi5jAzCtwQjDfDf4TPsbUxsCrDdHo6xIRI= @@ -870,7 +868,6 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.414/go.mod github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.486/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.524/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.533/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.539/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.544/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.547/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.563/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= @@ -922,19 +919,11 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.949/go.mod github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.955/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.960/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.970/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.976/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.978/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.984/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.993/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.995/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.998/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1001/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1004/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1006 h1:WX1KDLeAIhhcYMD5uqrnQ4Fv3Dmg9GPv0shNVBS/6fA= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1006/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1008 h1:BQJUiwOi2d368bF1qmdCjHjUMEt24vM6d68r9S+OrQM= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1008/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1010 h1:HwhKTg+VcQd5M9AyaEZaqKmpKuWxbf5kni23g1KRmOk= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1010/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1011 h1:cjqeXTwKKtGVqrf6luwunUnA77buzmzbk+G42US1Sns= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1011/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= @@ -990,20 +979,16 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.853 h1:abGpWsA github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.853/go.mod h1:xIprIT+IW+3Fj05GCWmgvxJOhICqFGoW4Ef77cDD2JQ= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.831 h1:oyazF5wgAgoinGo/SDGfUReE3JFxqcpI6/pstWhK7yE= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.831/go.mod h1:2WuTlTnKCnZoa6l0JxY9GNfo0UG6nU7AEsljF8rMMsM= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.1006 h1:138d+X1aR4JHLa75uWSQwX7dj68NmAMrOjrkdjmetxE= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.1006/go.mod h1:RB5H9BG9x0RaRI3pBGo2ksoeVtXQYb/zHa3EccQw6Co= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.1008 h1:bdUSSq3Y7OWZgrTBxhd7hvolu01zACD5GYdK/YePH/Q= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.1008/go.mod h1:wyPjTCtmxGUaR99fm3V4Fh53zi/oTy55l0+ZSQhsOog= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.995 h1:chLBYIeKYtDy2kB/IO4uFMLZzlYn/rDoBi7K34HWJu0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.995/go.mod h1:Qv44A5kdz3uX4TYhXz4WacYVSZ0BQL9aYtTdJEwDCQw= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1010 h1:lx554ZfB++mge+/Gk7LnDUI5Dwm9r+DgGNN9C/DqhE4= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1010/go.mod h1:GGhAf2ehV2/jwKf3Sezr2x/soJ3nDuefJFlcoZnlflA= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.859 h1:VrE3qzwzWB5mV/ejTJuwZbqZ/CNYLoc8X+uFbWEEOnY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.859/go.mod h1:FeOl14rPWpNEu6r4bPEsTNHIB9qaRTg0dRhxhRwQ5Hw= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/pts v1.0.762 h1:rZDKucVVtTnmnbZFDyh6t47dHswkb2oSuOxOHTTkygA= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/pts v1.0.762/go.mod h1:QB/XcdVZ8mhRgk90XuXd+2Smfo8emTo0wHIUsygEaKs= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.976 h1:sz55cAVBG5+6WvEpP+A5VhXRZrvchEIvDdPWkUUmnQQ= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.976/go.mod h1:5xaiCbtLOTK5j5SPEQP5qJ9bU33TeodyYl2vwli9b+M= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.1008 h1:Mo0njOK81dsBe6FBOieaGeHAVpo/PsYzDTeHovc57bA= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.1008/go.mod h1:wzdd7XxZHtuLTxGrWDvFJEX9ES6u17whFbn9Zz/WpKg= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/region v1.0.920 h1:Kaab57oHrhiagHURsTNU/XfRFWXXSWxOXoix+YvLHrY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/region v1.0.920/go.mod h1:AhvwfhTo0JOz2FG4FcmVVdxJ73NpPAQ7rzjjWoEYFOw= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/rum v1.0.744 h1:Z6xqpgnVPQfw2Yx/c2z6n30LfNodK4JEgMca1WpfOrY= @@ -1042,8 +1027,6 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.912 h1:XGOKd5u github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.912/go.mod h1:iqTDU0pVTQ8RCeMJPk/PAWl9HeI1DFMd1h07yMH7RGU= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/thpc v1.0.998 h1:f4/n0dVKQTD06xJ84B5asHViNJHrZmGojdAWEPIsITM= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/thpc v1.0.998/go.mod h1:fyi/HUwCwVe2NCCCjz8k/C5GwPu3QazCZO+OBJ3MhLk= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.1001 h1:qj+pw5MJFuOvA+a+yAA2JR8B4TmfX5H5D8jy3L0YKH0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.1001/go.mod h1:FVJUGrfLPiJWiKrH+62h38Iyo9mA2O1wuaPLMlbeDBI= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.1008 h1:Cz7JSuS2zxIBzAuZ2bKk3EmrZ1QgS2QAHmCDTDPWBz0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.1008/go.mod h1:71PkDdVPT2Pd8yiuX6QFUDReTji39R/03dg1JwcjHWo= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/trocket v1.0.947 h1:iZfuU8S86kfqFsAVT/LUApP8L5cpT90hl2wSKiUDVvw= @@ -1054,8 +1037,6 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tsf v1.0.674 h1:VsMV1/v github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tsf v1.0.674/go.mod h1:6+MWxaNR4y+spZHYNntulOyj628owTLuWmEFebJOWdA= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.860 h1:vW2NgAHK4BfpZP3m92eUEKbIP+nu9bL8mnaM0dBHWM8= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.860/go.mod h1:uCkDh/AW/tb8JGq5b2kqLjqZuhCFR+6oTsq1SrrvT44= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.978 h1:EZlxS90zY799+zYB7dmbMqU8XyWT0lesPTPkCtibC54= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.978/go.mod h1:+8DNFolL3rl8vlN1hiY8HhJG0SchGhzLbCN0K0TA0vU= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.1011 h1:QRtuN3T5bF0LWVllUB5ZTxe42P2ZFUB2PmyeWCd1ySs= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.1011/go.mod h1:7I7JGx2pVizVaXEte38bGHtyD/P1JwbVrBLbtTl2Rrs= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.833 h1:avaBlZ+Qqv7bfMg/u0jlRsbEBbE18CfqKWbfGc84PLg= diff --git a/tencentcloud/provider.go b/tencentcloud/provider.go index 31c9169f89..9842ec57e1 100644 --- a/tencentcloud/provider.go +++ b/tencentcloud/provider.go @@ -1333,6 +1333,7 @@ func Provider() *schema.Provider { "tencentcloud_redis_replicate_attachment": crs.ResourceTencentCloudRedisReplicateAttachment(), "tencentcloud_redis_backup_operation": crs.ResourceTencentCloudRedisBackupOperation(), "tencentcloud_redis_security_group_attachment": crs.ResourceTencentCloudRedisSecurityGroupAttachment(), + "tencentcloud_redis_log_delivery": crs.ResourceTencentCloudRedisLogDelivery(), "tencentcloud_as_load_balancer": as.ResourceTencentCloudAsLoadBalancer(), "tencentcloud_as_scaling_config": as.ResourceTencentCloudAsScalingConfig(), "tencentcloud_as_scaling_group": as.ResourceTencentCloudAsScalingGroup(), diff --git a/tencentcloud/provider.md b/tencentcloud/provider.md index 1944966304..40aad027be 100644 --- a/tencentcloud/provider.md +++ b/tencentcloud/provider.md @@ -933,6 +933,7 @@ TencentDB for Redis(crs) tencentcloud_redis_backup_operation tencentcloud_redis_security_group_attachment tencentcloud_redis_connection_config + tencentcloud_redis_log_delivery Serverless Cloud Function(SCF) Data Source diff --git a/tencentcloud/services/apigateway/data_source_tc_api_gateway_api_app_api.go b/tencentcloud/services/apigateway/data_source_tc_api_gateway_api_app_api.go index a5aaaadbfa..390e9908f0 100644 --- a/tencentcloud/services/apigateway/data_source_tc_api_gateway_api_app_api.go +++ b/tencentcloud/services/apigateway/data_source_tc_api_gateway_api_app_api.go @@ -95,8 +95,8 @@ func DataSourceTencentCloudApiGatewayApiAppApi() *schema.Resource { Description: "API authentication type. Possible values are SECRET (key pair authentication), NONE (authentication-free), and OAUTH.", }, "api_business_type": { - Type: schema.TypeString, - Computed: true, + Type: schema.TypeString, + Computed: true, Description: "Type of OAUTH API. Possible values are NORMAL (Business API), OAUTH (Authorization API).", }, "auth_relation_api_id": { diff --git a/tencentcloud/services/cam/data_source_tc_user_info.go b/tencentcloud/services/cam/data_source_tc_user_info.go index d92d62d192..90eaadb8fd 100644 --- a/tencentcloud/services/cam/data_source_tc_user_info.go +++ b/tencentcloud/services/cam/data_source_tc_user_info.go @@ -3,11 +3,12 @@ package cam import ( "context" "fmt" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" "log" "math/rand" "strconv" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common" cam "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam/v20190116" diff --git a/tencentcloud/services/cfs/data_source_tc_cfs_available_zone.go b/tencentcloud/services/cfs/data_source_tc_cfs_available_zone.go index 2799acab0b..ea3c241e6b 100644 --- a/tencentcloud/services/cfs/data_source_tc_cfs_available_zone.go +++ b/tencentcloud/services/cfs/data_source_tc_cfs_available_zone.go @@ -71,8 +71,8 @@ func DataSourceTencentCloudCfsAvailableZone() *schema.Resource { Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ "sale_status": { - Type: schema.TypeString, - Computed: true, + Type: schema.TypeString, + Computed: true, Description: " Sale status. Valid values: sale_out (sold out), saling (purchasable), no_saling (non-purchasable).", }, "protocol": { diff --git a/tencentcloud/services/cls/data_source_tc_cls_logsets.go b/tencentcloud/services/cls/data_source_tc_cls_logsets.go index f27a88301f..b1d0553cb1 100644 --- a/tencentcloud/services/cls/data_source_tc_cls_logsets.go +++ b/tencentcloud/services/cls/data_source_tc_cls_logsets.go @@ -2,6 +2,7 @@ package cls import ( "context" + "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" diff --git a/tencentcloud/services/cls/data_source_tc_cls_logsets_test.go b/tencentcloud/services/cls/data_source_tc_cls_logsets_test.go index 1a82cdec81..a2f63aa0c1 100644 --- a/tencentcloud/services/cls/data_source_tc_cls_logsets_test.go +++ b/tencentcloud/services/cls/data_source_tc_cls_logsets_test.go @@ -1,9 +1,10 @@ package cls_test import ( + "testing" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest" - "testing" ) // go test -i; go test -test.run TestAccTencentCloudClsLogsetsDataSource_basic -v diff --git a/tencentcloud/services/cos/data_source_tc_cos_bucket_inventorys.go b/tencentcloud/services/cos/data_source_tc_cos_bucket_inventorys.go index 95bf911afd..29ce55c934 100644 --- a/tencentcloud/services/cos/data_source_tc_cos_bucket_inventorys.go +++ b/tencentcloud/services/cos/data_source_tc_cos_bucket_inventorys.go @@ -78,8 +78,8 @@ func DataSourceTencentCloudCosBucketInventorys() *schema.Resource { }, }, "optional_fields": { - Type: schema.TypeList, - Optional: true, + Type: schema.TypeList, + Optional: true, Description: "Analysis items to include in the inventory result .", Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ diff --git a/tencentcloud/services/cos/resource_tc_cos_bucket_inventory.go b/tencentcloud/services/cos/resource_tc_cos_bucket_inventory.go index d8513885dc..63cd1cc410 100644 --- a/tencentcloud/services/cos/resource_tc_cos_bucket_inventory.go +++ b/tencentcloud/services/cos/resource_tc_cos_bucket_inventory.go @@ -83,9 +83,9 @@ func ResourceTencentCloudCosBucketInventory() *schema.Resource { }, }, "optional_fields": { - Type: schema.TypeList, - MaxItems: 1, - Optional: true, + Type: schema.TypeList, + MaxItems: 1, + Optional: true, Description: "Analysis items to include in the inventory result .", Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ diff --git a/tencentcloud/services/crs/resource_tc_redis_log_delivery.go b/tencentcloud/services/crs/resource_tc_redis_log_delivery.go new file mode 100644 index 0000000000..2fe46c7dae --- /dev/null +++ b/tencentcloud/services/crs/resource_tc_redis_log_delivery.go @@ -0,0 +1,359 @@ +package crs + +import ( + "context" + "log" + + 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" + redis "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis/v20180412" + tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common" + "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper" +) + +func ResourceTencentCloudRedisLogDelivery() *schema.Resource { + return &schema.Resource{ + Create: resourceTencentCloudRedisLogDeliveryCreate, + Read: resourceTencentCloudRedisLogDeliveryRead, + Update: resourceTencentCloudRedisLogDeliveryUpdate, + Delete: resourceTencentCloudRedisLogDeliveryDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Schema: map[string]*schema.Schema{ + "instance_id": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + Description: "Instance ID.", + }, + + "logset_id": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ConflictsWith: []string{"logset_name"}, + Description: "The ID of the log set being delivered.", + }, + + "topic_id": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ConflictsWith: []string{"topic_name"}, + Description: "The ID of the topic being delivered.", + }, + + "logset_name": { + Type: schema.TypeString, + Optional: true, + ConflictsWith: []string{"logset_id"}, + Computed: true, + Description: "Log set name. If LogsetId does not specify a specific log set ID, please configure this parameter to set the log set name, and the system will automatically create a new log set with the specified name.", + }, + + "topic_name": { + Type: schema.TypeString, + Optional: true, + ConflictsWith: []string{"topic_id"}, + Computed: true, + Description: "Log topic name, required when TopicId is empty, a new log topic will be automatically created.", + }, + + "log_region": { + Type: schema.TypeString, + Optional: true, + Computed: true, + Description: "The region where the log set is located; if not specified, the region where the instance is located will be used by default.", + }, + + "period": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + Description: "Log storage time, defaults to 30 days, with an optional range of 1-3600 days.", + }, + + "create_index": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + Description: "Whether to create an index when creating a log topic.", + }, + }, + } +} + +func resourceTencentCloudRedisLogDeliveryCreate(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_redis_log_delivery.create")() + defer tccommon.InconsistentCheck(d, meta)() + + logId := tccommon.GetLogId(tccommon.ContextNil) + ctx := tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta) + + var ( + instanceId string + request = redis.NewModifyInstanceLogDeliveryRequest() + response = redis.NewModifyInstanceLogDeliveryResponse() + ) + + if v, ok := d.GetOk("instance_id"); ok { + instanceId = v.(string) + request.InstanceId = helper.String(instanceId) + } + + request.LogType = helper.String("slowlog") + request.Enabled = helper.Bool(true) + + if v, ok := d.GetOk("logset_id"); ok { + request.LogsetId = helper.String(v.(string)) + } + + if v, ok := d.GetOk("topic_id"); ok { + request.TopicId = helper.String(v.(string)) + } + + if v, ok := d.GetOk("logset_name"); ok { + request.LogsetName = helper.String(v.(string)) + } + + if v, ok := d.GetOk("topic_name"); ok { + request.TopicName = helper.String(v.(string)) + } + + if v, ok := d.GetOk("log_region"); ok { + request.LogRegion = helper.String(v.(string)) + } + + if v, ok := d.GetOkExists("period"); ok { + request.Period = helper.IntInt64(v.(int)) + } + + if v, ok := d.GetOkExists("create_index"); ok { + request.CreateIndex = helper.Bool(v.(bool)) + } + + err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseRedisClient().ModifyInstanceLogDeliveryWithContext(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()) + } + response = result + return nil + }) + if err != nil { + log.Printf("[CRITAL]%s create RedisLogDelivery failed, reason:%+v", logId, err) + return err + } + + _ = response + d.SetId(instanceId) + + return resourceTencentCloudRedisLogDeliveryRead(d, meta) +} + +func resourceTencentCloudRedisLogDeliveryRead(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_redis_log_delivery.read")() + defer tccommon.InconsistentCheck(d, meta)() + + logId := tccommon.GetLogId(tccommon.ContextNil) + + ctx := tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta) + + client := meta.(tccommon.ProviderMeta).GetAPIV3Conn() + service := RedisService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()} + clsService := svcCls.NewClsService(client) + + instanceId := d.Id() + + respData, err := service.DescribeRedisLogDeliveryById(ctx, instanceId) + if err != nil { + return err + } + + if respData == nil { + d.SetId("") + log.Printf("[WARN]%s resource `RedisLogDelivery` [%s] not found, please check if it has been deleted.\n", logId, d.Id()) + return nil + } + + _ = d.Set("instance_id", instanceId) + + if respData.LogsetId != nil { + logsetId := respData.LogsetId + _ = d.Set("logset_id", logsetId) + + logset, err := clsService.DescribeClsLogset(ctx, *logsetId) + if err != nil { + return err + } + + if logset != nil { + _ = d.Set("logset_name", logset.LogsetName) + } + + } + + if respData.TopicId != nil { + topicId := respData.TopicId + _ = d.Set("topic_id", topicId) + + topic, err := clsService.DescribeClsTopicById(ctx, *topicId) + if err != nil { + return err + } + + if topic != nil { + if topic.TopicName != nil { + _ = d.Set("topic_name", topic.TopicName) + } + if topic.TopicName != nil { + _ = d.Set("topic_name", topic.TopicName) + } + if topic.Period != nil { + _ = d.Set("period", topic.Period) + } + if topic.Index != nil { + _ = d.Set("create_index", topic.Index) + } + } + } + + if respData.LogRegion != nil { + _ = d.Set("log_region", respData.LogRegion) + } + + _ = instanceId + return nil +} + +func resourceTencentCloudRedisLogDeliveryUpdate(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_redis_log_delivery.update")() + defer tccommon.InconsistentCheck(d, meta)() + + logId := tccommon.GetLogId(tccommon.ContextNil) + + ctx := tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta) + + instanceId := d.Id() + + needChange := false + mutableArgs := []string{"logset_id", "topic_id", "logset_name", "topic_name"} + for _, v := range mutableArgs { + if d.HasChange(v) { + needChange = true + break + } + } + + if needChange { + var ( + request = redis.NewModifyInstanceLogDeliveryRequest() + ) + + request.InstanceId = helper.String(instanceId) + request.LogType = helper.String("slowlog") + + request.Enabled = helper.Bool(true) + + if d.HasChange("topic_id") || d.HasChange("logset_id") { + if v, ok := d.GetOk("topic_id"); ok { + request.TopicId = helper.String(v.(string)) + } + + if v, ok := d.GetOk("logset_id"); ok { + request.LogsetId = helper.String(v.(string)) + } + + } + + if d.HasChange("logset_name") || d.HasChange("topic_name") { + + if v, ok := d.GetOk("logset_name"); ok { + request.LogsetName = helper.String(v.(string)) + } + + if v, ok := d.GetOk("topic_name"); ok { + request.TopicName = helper.String(v.(string)) + } + + if d.HasChange("topic_name") && !d.HasChange("logset_name") && !d.HasChange("logset_id") { + if v, ok := d.GetOk("logset_id"); ok { + request.LogsetId = helper.String(v.(string)) + } + } + + if v, ok := d.GetOk("log_region"); ok { + request.LogRegion = helper.String(v.(string)) + } + + if v, ok := d.GetOkExists("period"); ok { + request.Period = helper.IntInt64(v.(int)) + } + + if v, ok := d.GetOkExists("create_index"); ok { + request.CreateIndex = helper.Bool(v.(bool)) + } + } + + err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseRedisClient().ModifyInstanceLogDeliveryWithContext(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()) + } + _ = result + return nil + }) + if err != nil { + log.Printf("[CRITAL]%s create RedisLogDelivery failed, reason:%+v", logId, err) + return err + } + } + + _ = instanceId + return resourceTencentCloudRedisLogDeliveryRead(d, meta) +} + +func resourceTencentCloudRedisLogDeliveryDelete(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_redis_log_delivery.delete")() + defer tccommon.InconsistentCheck(d, meta)() + + logId := tccommon.GetLogId(tccommon.ContextNil) + ctx := tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta) + + instanceId := d.Id() + + var ( + request = redis.NewModifyInstanceLogDeliveryRequest() + response = redis.NewModifyInstanceLogDeliveryResponse() + ) + + request.InstanceId = helper.String(instanceId) + request.LogType = helper.String("slowlog") + request.Enabled = helper.Bool(false) + + err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseRedisClient().ModifyInstanceLogDeliveryWithContext(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()) + } + response = result + return nil + }) + if err != nil { + log.Printf("[CRITAL]%s delete RedisLogDelivery failed, reason:%+v", logId, err) + return err + } + + _ = response + _ = instanceId + return nil +} diff --git a/tencentcloud/services/crs/resource_tc_redis_log_delivery.md b/tencentcloud/services/crs/resource_tc_redis_log_delivery.md new file mode 100644 index 0000000000..cc11d5af7f --- /dev/null +++ b/tencentcloud/services/crs/resource_tc_redis_log_delivery.md @@ -0,0 +1,49 @@ +Provides a resource to create Redis instance log delivery land set its attributes. + +~> **NOTE:** When you use an existing cls logset and topic to enable logging, there is no need to set parameters such +as `period`, `create_index`, `log_region`, etc. + +Example Usage + +Use cls logset and topic which existed + +```hcl +resource "tencentcloud_redis_log_delivery" "delivery" { + instance_id = "crs-dmjj8en7" + logset_id = "cc31d9d6-74c0-4888-8b2f-b8148c3bcc5c" + topic_id = "5c2333e9-0bab-41fd-9f75-c602b3f9545f" +} +``` + +Use exist cls logset and create new topic + +```hcl +resource "tencentcloud_redis_log_delivery" "delivery" { + instance_id = "crs-dmjj8en7" + logset_id = "cc31d9d6-74c0-4888-8b2f-b8148c3bcc5c" + topic_name = "test13" + period = 20 + create_index = true +} +``` + +Create new cls logset and topic + +```hcl +resource "tencentcloud_redis_log_delivery" "delivery" { + instance_id = "crs-dmjj8en7" + log_region = "ap-guangzhou" + logset_name = "test" + topic_name = "test" + period = 20 + create_index = true +} +``` + +Import + +Redis log delivery can be imported, e.g. + +``` +$ terraform import tencentcloud_redis_log_delivery.delivery crs-dmjj8en7 +``` \ No newline at end of file diff --git a/tencentcloud/services/crs/resource_tc_redis_log_delivery_test.go b/tencentcloud/services/crs/resource_tc_redis_log_delivery_test.go new file mode 100644 index 0000000000..32cf9020e1 --- /dev/null +++ b/tencentcloud/services/crs/resource_tc_redis_log_delivery_test.go @@ -0,0 +1,38 @@ +package crs_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest" +) + +func TestAccTencentCloudRedisLogDeliveryResource_basic(t *testing.T) { + t.Parallel() + resource.Test(t, resource.TestCase{ + PreCheck: func() { + tcacctest.AccPreCheck(t) + }, + Providers: tcacctest.AccProviders, + Steps: []resource.TestStep{{ + Config: testAccRedisLogDelivery, + Check: resource.ComposeTestCheckFunc(resource.TestCheckResourceAttrSet("tencentcloud_redis_log_delivery.delivery", "id")), + }, { + ResourceName: "tencentcloud_redis_log_delivery.delivery", + ImportState: true, + ImportStateVerify: true, + }}, + }) +} + +const testAccRedisLogDelivery = ` + +resource "tencentcloud_redis_log_delivery" "delivery" { + instance_id = "crs-dmjj8en7" + log_region = "ap-guangzhou" + logset_name = "test" + topic_name = "test" + period = 20 + create_index = true +} +` diff --git a/tencentcloud/services/crs/service_tencentcloud_redis.go b/tencentcloud/services/crs/service_tencentcloud_redis.go index 549dc021c3..e8d36f853b 100644 --- a/tencentcloud/services/crs/service_tencentcloud_redis.go +++ b/tencentcloud/services/crs/service_tencentcloud_redis.go @@ -2000,3 +2000,32 @@ func (me *RedisService) DescribeRedisClustersByFilter(ctx context.Context, param Clusters = response.Response.Resources return } + +func (me *RedisService) DescribeRedisLogDeliveryById(ctx context.Context, instanceId string) (ret *redis.LogDeliveryInfo, errRet error) { + logId := tccommon.GetLogId(ctx) + + request := redis.NewDescribeInstanceLogDeliveryRequest() + request.InstanceId = helper.String(instanceId) + + 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()) + } + }() + + ratelimit.Check(request.GetAction()) + + response, err := me.client.UseRedisClient().DescribeInstanceLogDelivery(request) + if err != nil { + errRet = err + return + } + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString()) + + if response.Response == nil { + return + } + + ret = response.Response.SlowLog + return +} diff --git a/tencentcloud/services/monitor/data_source_tc_monitor_alarm_policy.go b/tencentcloud/services/monitor/data_source_tc_monitor_alarm_policy.go index 912ed84f1e..5f4f0b097e 100644 --- a/tencentcloud/services/monitor/data_source_tc_monitor_alarm_policy.go +++ b/tencentcloud/services/monitor/data_source_tc_monitor_alarm_policy.go @@ -426,8 +426,8 @@ func DataSourceTencentCloudMonitorAlarmPolicy() *schema.Resource { Description: "Statistical period in seconds. The valid values can be queried via DescribeAlarmMetricsNote: this field may return null, indicating that no valid value is obtained.", }, "operator": { - Type: schema.TypeString, - Computed: true, + Type: schema.TypeString, + Computed: true, Description: "Statistical period in seconds. The valid values can be queried via DescribeAlarmMetrics.Note: this field may return null, indicating that no valid value is obtained.Operator String No Operatorintelligent = intelligent detection without thresholdeq = equal toge = greater than or equal togt = greater thanle = less than or equal tolt = less thanne = not equal today_increase = day-on-day increaseday_decrease = day-on-day decreaseday_wave = day-on-day fluctuationweek_increase = week-on-week increaseweek_decrease = week-on-week decreaseweek_wave = week-on-week fluctuationcycle_increase = cyclical increasecycle_decrease = cyclical decreasecycle_wave = cyclical fluctuationre = regex matchThe valid values can be queried via DescribeAlarmMetrics.Note: this field may return null, indicating that no valid value is obtained.", }, "value": { diff --git a/tencentcloud/services/mps/data_source_tc_mps_schedules.go b/tencentcloud/services/mps/data_source_tc_mps_schedules.go index 60c2f7fbdc..e5148e812f 100644 --- a/tencentcloud/services/mps/data_source_tc_mps_schedules.go +++ b/tencentcloud/services/mps/data_source_tc_mps_schedules.go @@ -118,8 +118,8 @@ func DataSourceTencentCloudMpsSchedules() *schema.Resource { Description: "The region of the AWS S3 bucket.", }, "dir": { - Type: schema.TypeString, - Computed: true, + Type: schema.TypeString, + Computed: true, Description: "The bucket directory bound. It must be an absolute path that starts and ends with `/`, such as `/movie/201907/`. If you do not specify this, the root directory will be bound. .", }, "formats": { @@ -127,7 +127,7 @@ func DataSourceTencentCloudMpsSchedules() *schema.Resource { Elem: &schema.Schema{ Type: schema.TypeString, }, - Computed: true, + Computed: true, Description: "The file formats that will trigger the scheme, such as [mp4, flv, mov]. If you do not specify this, the upload of files in any format will trigger the scheme. .", }, "s3_secret_id": { diff --git a/tencentcloud/services/mps/resource_tc_mps_schedule.go b/tencentcloud/services/mps/resource_tc_mps_schedule.go index e4fe5f5179..1db11823b2 100644 --- a/tencentcloud/services/mps/resource_tc_mps_schedule.go +++ b/tencentcloud/services/mps/resource_tc_mps_schedule.go @@ -92,8 +92,8 @@ func ResourceTencentCloudMpsSchedule() *schema.Resource { Description: "The region of the AWS S3 bucket.", }, "dir": { - Type: schema.TypeString, - Optional: true, + Type: schema.TypeString, + Optional: true, Description: "The bucket directory bound. It must be an absolute path that starts and ends with `/`, such as `/movie/201907/`. If you do not specify this, the root directory will be bound. .", }, "formats": { @@ -101,7 +101,7 @@ func ResourceTencentCloudMpsSchedule() *schema.Resource { Elem: &schema.Schema{ Type: schema.TypeString, }, - Optional: true, + Optional: true, Description: "The file formats that will trigger the scheme, such as [mp4, flv, mov]. If you do not specify this, the upload of files in any format will trigger the scheme. .", }, "s3_secret_id": { diff --git a/tencentcloud/services/tco/resource_tc_organization_service_assign.go b/tencentcloud/services/tco/resource_tc_organization_service_assign.go index 599ae23b87..9af8f2b704 100644 --- a/tencentcloud/services/tco/resource_tc_organization_service_assign.go +++ b/tencentcloud/services/tco/resource_tc_organization_service_assign.go @@ -3,13 +3,14 @@ package tco import ( "context" "fmt" + "log" + "strconv" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" organization "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization/v20210331" tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common" "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper" - "log" - "strconv" ) func ResourceTencentCloudOrganizationServiceAssign() *schema.Resource { diff --git a/tencentcloud/services/tke/resource_tc_kubernetes_native_node_pool.go b/tencentcloud/services/tke/resource_tc_kubernetes_native_node_pool.go index 6ffd77162f..28ad0df07b 100644 --- a/tencentcloud/services/tke/resource_tc_kubernetes_native_node_pool.go +++ b/tencentcloud/services/tke/resource_tc_kubernetes_native_node_pool.go @@ -5,10 +5,11 @@ import ( "context" "encoding/base64" "fmt" - sdkErrors "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors" "log" "strings" + sdkErrors "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" tke2 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke/v20220501" diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis/v20180412/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis/v20180412/client.go index dd51e00194..0dd5a111de 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis/v20180412/client.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis/v20180412/client.go @@ -2092,6 +2092,57 @@ func (c *Client) DescribeInstanceEventsWithContext(ctx context.Context, request return } +func NewDescribeInstanceLogDeliveryRequest() (request *DescribeInstanceLogDeliveryRequest) { + request = &DescribeInstanceLogDeliveryRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("redis", APIVersion, "DescribeInstanceLogDelivery") + + + return +} + +func NewDescribeInstanceLogDeliveryResponse() (response *DescribeInstanceLogDeliveryResponse) { + response = &DescribeInstanceLogDeliveryResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// DescribeInstanceLogDelivery +// 本接口(DescribeInstanceLogDelivery)用于查询实例的日志投递配置。 +// +// 可能返回的错误码: +// INTERNALERROR_INTERNALERROR = "InternalError.InternalError" +// RESOURCENOTFOUND_INSTANCENOTEXISTS = "ResourceNotFound.InstanceNotExists" +func (c *Client) DescribeInstanceLogDelivery(request *DescribeInstanceLogDeliveryRequest) (response *DescribeInstanceLogDeliveryResponse, err error) { + return c.DescribeInstanceLogDeliveryWithContext(context.Background(), request) +} + +// DescribeInstanceLogDelivery +// 本接口(DescribeInstanceLogDelivery)用于查询实例的日志投递配置。 +// +// 可能返回的错误码: +// INTERNALERROR_INTERNALERROR = "InternalError.InternalError" +// RESOURCENOTFOUND_INSTANCENOTEXISTS = "ResourceNotFound.InstanceNotExists" +func (c *Client) DescribeInstanceLogDeliveryWithContext(ctx context.Context, request *DescribeInstanceLogDeliveryRequest) (response *DescribeInstanceLogDeliveryResponse, err error) { + if request == nil { + request = NewDescribeInstanceLogDeliveryRequest() + } + + if c.GetCredential() == nil { + return nil, errors.New("DescribeInstanceLogDelivery require credential") + } + + request.SetContext(ctx) + + response = NewDescribeInstanceLogDeliveryResponse() + err = c.Send(request, response) + return +} + func NewDescribeInstanceMonitorBigKeyRequest() (request *DescribeInstanceMonitorBigKeyRequest) { request = &DescribeInstanceMonitorBigKeyRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -2508,6 +2559,7 @@ func NewDescribeInstanceNodeInfoResponse() (response *DescribeInstanceNodeInfoRe // // 可能返回的错误码: // FAILEDOPERATION_SYSTEMERROR = "FailedOperation.SystemError" +// FAILEDOPERATION_UNSUPPORTERROR = "FailedOperation.UnSupportError" // INTERNALERROR_INTERNALERROR = "InternalError.InternalError" // INVALIDPARAMETER_PERMISSIONDENIED = "InvalidParameter.PermissionDenied" // RESOURCENOTFOUND_INSTANCENOTEXISTS = "ResourceNotFound.InstanceNotExists" @@ -2520,6 +2572,7 @@ func (c *Client) DescribeInstanceNodeInfo(request *DescribeInstanceNodeInfoReque // // 可能返回的错误码: // FAILEDOPERATION_SYSTEMERROR = "FailedOperation.SystemError" +// FAILEDOPERATION_UNSUPPORTERROR = "FailedOperation.UnSupportError" // INTERNALERROR_INTERNALERROR = "InternalError.InternalError" // INVALIDPARAMETER_PERMISSIONDENIED = "InvalidParameter.PermissionDenied" // RESOURCENOTFOUND_INSTANCENOTEXISTS = "ResourceNotFound.InstanceNotExists" @@ -5186,6 +5239,61 @@ func (c *Client) ModifyInstanceEventWithContext(ctx context.Context, request *Mo return } +func NewModifyInstanceLogDeliveryRequest() (request *ModifyInstanceLogDeliveryRequest) { + request = &ModifyInstanceLogDeliveryRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("redis", APIVersion, "ModifyInstanceLogDelivery") + + + return +} + +func NewModifyInstanceLogDeliveryResponse() (response *ModifyInstanceLogDeliveryResponse) { + response = &ModifyInstanceLogDeliveryResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// ModifyInstanceLogDelivery +// 本接口(ModifyInstanceLogDelivery)用于开启或关闭投递实例日志到CLS。 +// +// 可能返回的错误码: +// INTERNALERROR_INTERNALERROR = "InternalError.InternalError" +// INVALIDPARAMETER_INVALIDPARAMETER = "InvalidParameter.InvalidParameter" +// INVALIDPARAMETER_NOTSUPPORTED = "InvalidParameter.NotSupported" +// RESOURCENOTFOUND_INSTANCENOTEXISTS = "ResourceNotFound.InstanceNotExists" +func (c *Client) ModifyInstanceLogDelivery(request *ModifyInstanceLogDeliveryRequest) (response *ModifyInstanceLogDeliveryResponse, err error) { + return c.ModifyInstanceLogDeliveryWithContext(context.Background(), request) +} + +// ModifyInstanceLogDelivery +// 本接口(ModifyInstanceLogDelivery)用于开启或关闭投递实例日志到CLS。 +// +// 可能返回的错误码: +// INTERNALERROR_INTERNALERROR = "InternalError.InternalError" +// INVALIDPARAMETER_INVALIDPARAMETER = "InvalidParameter.InvalidParameter" +// INVALIDPARAMETER_NOTSUPPORTED = "InvalidParameter.NotSupported" +// RESOURCENOTFOUND_INSTANCENOTEXISTS = "ResourceNotFound.InstanceNotExists" +func (c *Client) ModifyInstanceLogDeliveryWithContext(ctx context.Context, request *ModifyInstanceLogDeliveryRequest) (response *ModifyInstanceLogDeliveryResponse, err error) { + if request == nil { + request = NewModifyInstanceLogDeliveryRequest() + } + + if c.GetCredential() == nil { + return nil, errors.New("ModifyInstanceLogDelivery require credential") + } + + request.SetContext(ctx) + + response = NewModifyInstanceLogDeliveryResponse() + err = c.Send(request, response) + return +} + func NewModifyInstanceParamsRequest() (request *ModifyInstanceParamsRequest) { request = &ModifyInstanceParamsRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -6230,7 +6338,7 @@ func NewUpgradeInstanceResponse() (response *UpgradeInstanceResponse) { } // UpgradeInstance -// 变更实例配置 +// 本接口(UpgradeInstance)用于变更实例的配置规格。 // // 可能返回的错误码: // FAILEDOPERATION_PAYFAILED = "FailedOperation.PayFailed" @@ -6255,7 +6363,7 @@ func (c *Client) UpgradeInstance(request *UpgradeInstanceRequest) (response *Upg } // UpgradeInstance -// 变更实例配置 +// 本接口(UpgradeInstance)用于变更实例的配置规格。 // // 可能返回的错误码: // FAILEDOPERATION_PAYFAILED = "FailedOperation.PayFailed" diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis/v20180412/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis/v20180412/models.go index 18894d5793..d07b7a1263 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis/v20180412/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis/v20180412/models.go @@ -2272,7 +2272,7 @@ type DescribeCommonDBInstancesRequestParams struct { // 计费类型过滤列表;0表示包年包月,1表示按量计费 PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"` - // 实例ID过滤信息列表 + // 实例ID过滤信息列表,数组最大长度限制为100 InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"` // 实例名称过滤信息列表 @@ -2315,7 +2315,7 @@ type DescribeCommonDBInstancesRequest struct { // 计费类型过滤列表;0表示包年包月,1表示按量计费 PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"` - // 实例ID过滤信息列表 + // 实例ID过滤信息列表,数组最大长度限制为100 InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"` // 实例名称过滤信息列表 @@ -2806,49 +2806,49 @@ func (r *DescribeInstanceDTSInfoResponse) FromJsonString(s string) error { } type DescribeInstanceDTSInstanceInfo struct { - // 地域ID + // 地域 ID。 // 注意:此字段可能返回 null,表示取不到有效值。 RegionId *int64 `json:"RegionId,omitnil,omitempty" name:"RegionId"` - // 实例ID + // 实例 ID。 // 注意:此字段可能返回 null,表示取不到有效值。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 仓库ID + // 仓库ID。 // 注意:此字段可能返回 null,表示取不到有效值。 SetId *int64 `json:"SetId,omitnil,omitempty" name:"SetId"` - // 可用区ID + // 可用区ID。 // 注意:此字段可能返回 null,表示取不到有效值。 ZoneId *int64 `json:"ZoneId,omitnil,omitempty" name:"ZoneId"` - // 实例类型 + // 实例类型。 // 注意:此字段可能返回 null,表示取不到有效值。 Type *int64 `json:"Type,omitnil,omitempty" name:"Type"` - // 实例名称 + // 实例名称。 // 注意:此字段可能返回 null,表示取不到有效值。 InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"` - // 实例访问地址 + // 实例访问地址。 // 注意:此字段可能返回 null,表示取不到有效值。 Vip *string `json:"Vip,omitnil,omitempty" name:"Vip"` - // 状态 + // 状态。 // 注意:此字段可能返回 null,表示取不到有效值。 Status *int64 `json:"Status,omitnil,omitempty" name:"Status"` } // Predefined struct for user type DescribeInstanceDealDetailRequestParams struct { - // 订单交易ID数组,即 [CreateInstances](https://cloud.tencent.com/document/api/239/20026) 的输出参数DealId。 + // 订单交易ID数组,即 [CreateInstances](https://cloud.tencent.com/document/api/239/20026) 的输出参数DealId。数组最大长度限制为10 DealIds []*string `json:"DealIds,omitnil,omitempty" name:"DealIds"` } type DescribeInstanceDealDetailRequest struct { *tchttp.BaseRequest - // 订单交易ID数组,即 [CreateInstances](https://cloud.tencent.com/document/api/239/20026) 的输出参数DealId。 + // 订单交易ID数组,即 [CreateInstances](https://cloud.tencent.com/document/api/239/20026) 的输出参数DealId。数组最大长度限制为10 DealIds []*string `json:"DealIds,omitnil,omitempty" name:"DealIds"` } @@ -3021,6 +3021,63 @@ func (r *DescribeInstanceEventsResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type DescribeInstanceLogDeliveryRequestParams struct { + // 实例ID。 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` +} + +type DescribeInstanceLogDeliveryRequest struct { + *tchttp.BaseRequest + + // 实例ID。 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` +} + +func (r *DescribeInstanceLogDeliveryRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeInstanceLogDeliveryRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "InstanceId") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeInstanceLogDeliveryRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeInstanceLogDeliveryResponseParams struct { + // 实例慢日志投递信息。 + SlowLog *LogDeliveryInfo `json:"SlowLog,omitnil,omitempty" name:"SlowLog"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DescribeInstanceLogDeliveryResponse struct { + *tchttp.BaseResponse + Response *DescribeInstanceLogDeliveryResponseParams `json:"Response"` +} + +func (r *DescribeInstanceLogDeliveryResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeInstanceLogDeliveryResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type DescribeInstanceMonitorBigKeyRequestParams struct { // 实例Id @@ -4542,16 +4599,18 @@ type DescribeParamTemplateInfoResponseParams struct { Name *string `json:"Name,omitnil,omitempty" name:"Name"` // 产品类型。 - // - 2:Redis 2.8内存版(标准架构)。 - // - 3:CKV 3.2内存版(标准架构)。 - // - 4:CKV 3.2内存版(集群架构)。 - // - 5:Redis 2.8内存版(单机)。 - // - 6:Redis 4.0内存版(标准架构)。 - // - 7:Redis 4.0内存版(集群架构)。 - // - 8:Redis 5.0内存版(标准架构)。 - // - 9:Redis 5.0内存版(集群架构)。 - // - 15:Redis 6.2内存版(标准架构)。 - // - 16:Redis 6.2内存版(集群架构)。 + // - 2:Redis 2.8 内存版(标准架构)。 + // - 3:CKV 3.2 内存版(标准架构)。 + // - 4:CKV 3.2 内存版(集群架构)。 + // - 5:Redis 2.8 内存版(单机)。 + // - 6:Redis 4.0 内存版(标准架构)。 + // - 7:Redis 4.0 内存版(集群架构)。 + // - 8:Redis 5.0 内存版(标准架构)。 + // - 9:Redis 5.0 内存版(集群架构)。 + // - 15:Redis 6.2 内存版(标准架构)。 + // - 16:Redis 6.2 内存版(集群架构)。 + // - 17:Redis 7.0 内存版(标准架构)。 + // - 18:Redis 7.0 内存版(集群架构)。 ProductType *uint64 `json:"ProductType,omitnil,omitempty" name:"ProductType"` // 参数模板描述。 @@ -4592,12 +4651,14 @@ type DescribeParamTemplatesRequestParams struct { // - 9:Redis 5.0 内存版(集群架构)。 // - 15:Redis 6.2 内存版(标准架构)。 // - 16:Redis 6.2 内存版(集群架构)。 + // - 17:Redis 7.0 内存版(标准架构)。 + // - 18:Redis 7.0 内存版(集群架构)。 ProductTypes []*int64 `json:"ProductTypes,omitnil,omitempty" name:"ProductTypes"` - // 模板名称数组。 + // 模板名称数组。数组最大长度限制为50 TemplateNames []*string `json:"TemplateNames,omitnil,omitempty" name:"TemplateNames"` - // 模板ID数组。 + // 模板ID数组。数组最大长度限制为50 TemplateIds []*string `json:"TemplateIds,omitnil,omitempty" name:"TemplateIds"` } @@ -4614,12 +4675,14 @@ type DescribeParamTemplatesRequest struct { // - 9:Redis 5.0 内存版(集群架构)。 // - 15:Redis 6.2 内存版(标准架构)。 // - 16:Redis 6.2 内存版(集群架构)。 + // - 17:Redis 7.0 内存版(标准架构)。 + // - 18:Redis 7.0 内存版(集群架构)。 ProductTypes []*int64 `json:"ProductTypes,omitnil,omitempty" name:"ProductTypes"` - // 模板名称数组。 + // 模板名称数组。数组最大长度限制为50 TemplateNames []*string `json:"TemplateNames,omitnil,omitempty" name:"TemplateNames"` - // 模板ID数组。 + // 模板ID数组。数组最大长度限制为50 TemplateIds []*string `json:"TemplateIds,omitnil,omitempty" name:"TemplateIds"` } @@ -7289,6 +7352,24 @@ func (r *KillMasterGroupResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +type LogDeliveryInfo struct { + // 日志投递开启状态,开启:true,关闭:false + // 注意:此字段可能返回 null,表示取不到有效值。 + Enabled *bool `json:"Enabled,omitnil,omitempty" name:"Enabled"` + + // 日志集ID。 + // 注意:此字段可能返回 null,表示取不到有效值。 + LogsetId *string `json:"LogsetId,omitnil,omitempty" name:"LogsetId"` + + // 日志主题ID。 + // 注意:此字段可能返回 null,表示取不到有效值。 + TopicId *string `json:"TopicId,omitnil,omitempty" name:"TopicId"` + + // 日志集所在地域 + // 注意:此字段可能返回 null,表示取不到有效值。 + LogRegion *string `json:"LogRegion,omitnil,omitempty" name:"LogRegion"` +} + // Predefined struct for user type ManualBackupInstanceRequestParams struct { // 指定实例 ID。例如:crs-xjhsdj****。请登录[Redis控制台](https://console.cloud.tencent.com/redis)在实例列表复制实例 ID。 @@ -8041,6 +8122,127 @@ func (r *ModifyInstanceEventResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type ModifyInstanceLogDeliveryRequestParams struct { + // 实例ID。 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 日志类型。当前仅支持设置为slowlog,指慢查询日志。 + LogType *string `json:"LogType,omitnil,omitempty" name:"LogType"` + + // 日志投递开启状态。 + // - true:开启。 + // - false:关闭。 + Enabled *bool `json:"Enabled,omitnil,omitempty" name:"Enabled"` + + // 投递的日志集ID。 + LogsetId *string `json:"LogsetId,omitnil,omitempty" name:"LogsetId"` + + // 投递的日志主题ID。 + TopicId *string `json:"TopicId,omitnil,omitempty" name:"TopicId"` + + // 日志集名称。若**LogsetId**未指定具体的日志集ID,请配置该参数,设置日志集名称,系统会以设置的日志集名称自动创建新的日志集。 + LogsetName *string `json:"LogsetName,omitnil,omitempty" name:"LogsetName"` + + // 日志主题名称,TopicId为空时必传,会自动创建新的日志主题。 + TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"` + + // 日志集所在地域,不传默认使用实例所在地域。 + LogRegion *string `json:"LogRegion,omitnil,omitempty" name:"LogRegion"` + + // 日志存储时间,默认为30天,可选范围1-3600天。 + Period *int64 `json:"Period,omitnil,omitempty" name:"Period"` + + // 创建日志主题时,是否创建索引。 + CreateIndex *bool `json:"CreateIndex,omitnil,omitempty" name:"CreateIndex"` +} + +type ModifyInstanceLogDeliveryRequest struct { + *tchttp.BaseRequest + + // 实例ID。 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 日志类型。当前仅支持设置为slowlog,指慢查询日志。 + LogType *string `json:"LogType,omitnil,omitempty" name:"LogType"` + + // 日志投递开启状态。 + // - true:开启。 + // - false:关闭。 + Enabled *bool `json:"Enabled,omitnil,omitempty" name:"Enabled"` + + // 投递的日志集ID。 + LogsetId *string `json:"LogsetId,omitnil,omitempty" name:"LogsetId"` + + // 投递的日志主题ID。 + TopicId *string `json:"TopicId,omitnil,omitempty" name:"TopicId"` + + // 日志集名称。若**LogsetId**未指定具体的日志集ID,请配置该参数,设置日志集名称,系统会以设置的日志集名称自动创建新的日志集。 + LogsetName *string `json:"LogsetName,omitnil,omitempty" name:"LogsetName"` + + // 日志主题名称,TopicId为空时必传,会自动创建新的日志主题。 + TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"` + + // 日志集所在地域,不传默认使用实例所在地域。 + LogRegion *string `json:"LogRegion,omitnil,omitempty" name:"LogRegion"` + + // 日志存储时间,默认为30天,可选范围1-3600天。 + Period *int64 `json:"Period,omitnil,omitempty" name:"Period"` + + // 创建日志主题时,是否创建索引。 + CreateIndex *bool `json:"CreateIndex,omitnil,omitempty" name:"CreateIndex"` +} + +func (r *ModifyInstanceLogDeliveryRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *ModifyInstanceLogDeliveryRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "InstanceId") + delete(f, "LogType") + delete(f, "Enabled") + delete(f, "LogsetId") + delete(f, "TopicId") + delete(f, "LogsetName") + delete(f, "TopicName") + delete(f, "LogRegion") + delete(f, "Period") + delete(f, "CreateIndex") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyInstanceLogDeliveryRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type ModifyInstanceLogDeliveryResponseParams struct { + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type ModifyInstanceLogDeliveryResponse struct { + *tchttp.BaseResponse + Response *ModifyInstanceLogDeliveryResponseParams `json:"Response"` +} + +func (r *ModifyInstanceLogDeliveryResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *ModifyInstanceLogDeliveryResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type ModifyInstanceParamsRequestParams struct { // 实例ID。 @@ -8082,7 +8284,7 @@ func (r *ModifyInstanceParamsRequest) FromJsonString(s string) error { // Predefined struct for user type ModifyInstanceParamsResponseParams struct { - // 说明修改参数配置是否成功。
  • true:指修改成功;
  • false:指修改失败。
    + // 说明修改参数配置是否成功。
  • true:指修改成功;
  • false:指修改失败。
  • Changed *bool `json:"Changed,omitnil,omitempty" name:"Changed"` // 任务ID。 @@ -8177,7 +8379,7 @@ type ModifyInstanceRequestParams struct { // 修改实例操作,如填写:rename-表示实例重命名;modifyProject-修改实例所属项目;modifyAutoRenew-修改实例续费标记 Operation *string `json:"Operation,omitnil,omitempty" name:"Operation"` - // 实例Id + // 实例Id,每次请求的实例的上限为10。 InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"` // 实例的新名称 @@ -8205,7 +8407,7 @@ type ModifyInstanceRequest struct { // 修改实例操作,如填写:rename-表示实例重命名;modifyProject-修改实例所属项目;modifyAutoRenew-修改实例续费标记 Operation *string `json:"Operation,omitnil,omitempty" name:"Operation"` - // 实例Id + // 实例Id,每次请求的实例的上限为10。 InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"` // 实例的新名称 @@ -9561,7 +9763,7 @@ func (r *StartupInstanceRequest) FromJsonString(s string) error { // Predefined struct for user type StartupInstanceResponseParams struct { - // 任务id + // 该字段已废弃,请通过查询实例接口获取到的状态来判断实例是否已解隔离 TaskId *int64 `json:"TaskId,omitnil,omitempty" name:"TaskId"` // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 @@ -9964,7 +10166,7 @@ type UpgradeInstanceRequestParams struct { // 指实例变更后的副本数量。 RedisReplicasNum *uint64 `json:"RedisReplicasNum,omitnil,omitempty" name:"RedisReplicasNum"` - // 多AZ实例,增加副本时的附带信息,包括副本的可用区和副本的类型(NodeType为1)。非多AZ实例不需要配置该参数。 + // 多AZ实例,增加副本时的节点信息,包括副本的 ID 编号及可用区信息。非多AZ实例不需要配置该参数。 NodeSet []*RedisNodeInfo `json:"NodeSet,omitnil,omitempty" name:"NodeSet"` } @@ -9983,7 +10185,7 @@ type UpgradeInstanceRequest struct { // 指实例变更后的副本数量。 RedisReplicasNum *uint64 `json:"RedisReplicasNum,omitnil,omitempty" name:"RedisReplicasNum"` - // 多AZ实例,增加副本时的附带信息,包括副本的可用区和副本的类型(NodeType为1)。非多AZ实例不需要配置该参数。 + // 多AZ实例,增加副本时的节点信息,包括副本的 ID 编号及可用区信息。非多AZ实例不需要配置该参数。 NodeSet []*RedisNodeInfo `json:"NodeSet,omitnil,omitempty" name:"NodeSet"` } diff --git a/vendor/modules.txt b/vendor/modules.txt index b223358506..6b27eabc95 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1261,7 +1261,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns/v20201028 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/pts v1.0.762 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/pts/v20210728 -# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.976 +# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.1008 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis/v20180412 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/region v1.0.920 diff --git a/website/docs/r/redis_log_delivery.html.markdown b/website/docs/r/redis_log_delivery.html.markdown new file mode 100644 index 0000000000..979f0e552c --- /dev/null +++ b/website/docs/r/redis_log_delivery.html.markdown @@ -0,0 +1,82 @@ +--- +subcategory: "TencentDB for Redis(crs)" +layout: "tencentcloud" +page_title: "TencentCloud: tencentcloud_redis_log_delivery" +sidebar_current: "docs-tencentcloud-resource-redis_log_delivery" +description: |- + Provides a resource to create Redis instance log delivery land set its attributes. +--- + +# tencentcloud_redis_log_delivery + +Provides a resource to create Redis instance log delivery land set its attributes. + +~> **NOTE:** When you use an existing cls logset and topic to enable logging, there is no need to set parameters such +as `period`, `create_index`, `log_region`, etc. + +## Example Usage + +### Use cls logset and topic which existed + +```hcl +resource "tencentcloud_redis_log_delivery" "delivery" { + instance_id = "crs-dmjj8en7" + logset_id = "cc31d9d6-74c0-4888-8b2f-b8148c3bcc5c" + topic_id = "5c2333e9-0bab-41fd-9f75-c602b3f9545f" +} +``` + +### Use exist cls logset and create new topic + +```hcl +resource "tencentcloud_redis_log_delivery" "delivery" { + instance_id = "crs-dmjj8en7" + logset_id = "cc31d9d6-74c0-4888-8b2f-b8148c3bcc5c" + topic_name = "test13" + period = 20 + create_index = true +} +``` + +### Create new cls logset and topic + +```hcl +resource "tencentcloud_redis_log_delivery" "delivery" { + instance_id = "crs-dmjj8en7" + log_region = "ap-guangzhou" + logset_name = "test" + topic_name = "test" + period = 20 + create_index = true +} +``` + +## Argument Reference + +The following arguments are supported: + +* `instance_id` - (Required, String, ForceNew) Instance ID. +* `create_index` - (Optional, Bool) Whether to create an index when creating a log topic. +* `log_region` - (Optional, String) The region where the log set is located; if not specified, the region where the instance is located will be used by default. +* `logset_id` - (Optional, String) The ID of the log set being delivered. +* `logset_name` - (Optional, String) Log set name. If LogsetId does not specify a specific log set ID, please configure this parameter to set the log set name, and the system will automatically create a new log set with the specified name. +* `period` - (Optional, Int) Log storage time, defaults to 30 days, with an optional range of 1-3600 days. +* `topic_id` - (Optional, String) The ID of the topic being delivered. +* `topic_name` - (Optional, String) Log topic name, required when TopicId is empty, a new log topic will be automatically created. + +## Attributes Reference + +In addition to all arguments above, the following attributes are exported: + +* `id` - ID of the resource. + + + +## Import + +Redis log delivery can be imported, e.g. + +``` +$ terraform import tencentcloud_redis_log_delivery.delivery crs-dmjj8en7 +``` + diff --git a/website/tencentcloud.erb b/website/tencentcloud.erb index cc05376045..a5bb3a93dc 100644 --- a/website/tencentcloud.erb +++ b/website/tencentcloud.erb @@ -5945,6 +5945,9 @@
  • tencentcloud_redis_instance
  • +
  • + tencentcloud_redis_log_delivery +
  • tencentcloud_redis_maintenance_window