Skip to content

Commit c2d5f24

Browse files
committed
add
1 parent a7ef214 commit c2d5f24

20 files changed

+35446
-13652
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ require (
4646
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1107
4747
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033
4848
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1148
49-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.50
49+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.52
5050
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1206
5151
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762
5252
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.1161
@@ -90,7 +90,7 @@ require (
9090
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdcpg v1.0.533
9191
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.955
9292
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.578
93-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.1.36
93+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.1.52
9494
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.1.14
9595
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/trocket v1.1.0
9696
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.857

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -979,6 +979,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.48 h1:aoRUr
979979
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.48/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
980980
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.50 h1:wZGiUXmzr4L0S1coFhnjddkyNrO5ZTtfxBDrbeR+1d8=
981981
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.50/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
982+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.52 h1:GtExKpiqbmmOq9ojeBYR6M1vgVL27s14GIDkjmgAX8A=
983+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.52/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
982984
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993 h1:WlPgXldQCxt7qi5Xrc6j6zTrsXWzN5BcOGs7Irq7fwQ=
983985
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993/go.mod h1:Z9U8zNtyuyKhjS0698wqsrG/kLx1TQ5CEixXBwVe7xY=
984986
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU=
@@ -1098,6 +1100,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.1.27 h1:vcQitUad
10981100
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.1.27/go.mod h1:2+6+xYfcJa8mO8tMljGjGCvhluPGjhRhlIv1jZK6y6c=
10991101
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.1.36 h1:BTtKtN6YumpmOinUGQQI0o51VHucvszxbV7NRzeNUFs=
11001102
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.1.36/go.mod h1:eGP3bdq20leDIC2Wrv+EpDDNRxHnGI16jPr6uRZvwDE=
1103+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.1.52 h1:U+hI6GXlLkbvsjXohwm2bISAE1tyo9bwaCnCvTSeszQ=
1104+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.1.52/go.mod h1:FHaE/Z/HZWFDSgjb1CJQ/Xe1ENNvaclvzkO9Yfz4XDw=
11011105
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/thpc v1.0.998 h1:f4/n0dVKQTD06xJ84B5asHViNJHrZmGojdAWEPIsITM=
11021106
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/thpc v1.0.998/go.mod h1:fyi/HUwCwVe2NCCCjz8k/C5GwPu3QazCZO+OBJ3MhLk=
11031107
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.1.14 h1:Us7MGqMmPdyAQL5jSQPuS4t3Yq5rbVdLP+/rtgEJnRs=

tencentcloud/provider.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -915,6 +915,7 @@ func Provider() *schema.Provider {
915915
"tencentcloud_teo_zones": teo.DataSourceTencentCloudTeoZones(),
916916
"tencentcloud_teo_plans": teo.DataSourceTencentCloudTeoPlans(),
917917
"tencentcloud_teo_origin_acl": teo.DataSourceTencentCloudTeoOriginAcl(),
918+
"tencentcloud_teo_web_security_templates": teo.DataSourceTencentCloudTeoWebSecurityTemplates(),
918919
"tencentcloud_sts_caller_identity": sts.DataSourceTencentCloudStsCallerIdentity(),
919920
"tencentcloud_dcdb_instances": dcdb.DataSourceTencentCloudDcdbInstances(),
920921
"tencentcloud_dcdb_accounts": dcdb.DataSourceTencentCloudDcdbAccounts(),
@@ -1955,6 +1956,7 @@ func Provider() *schema.Provider {
19551956
"tencentcloud_teo_customize_error_page": teo.ResourceTencentCloudTeoCustomizeErrorPage(),
19561957
"tencentcloud_teo_origin_acl": teo.ResourceTencentCloudTeoOriginAcl(),
19571958
"tencentcloud_teo_ddos_protection_config": teo.ResourceTencentCloudTeoDdosProtectionConfig(),
1959+
"tencentcloud_teo_web_security_template": teo.ResourceTencentCloudTeoWebSecurityTemplate(),
19581960
"tencentcloud_tcm_mesh": tcm.ResourceTencentCloudTcmMesh(),
19591961
"tencentcloud_tcm_cluster_attachment": tcm.ResourceTencentCloudTcmClusterAttachment(),
19601962
"tencentcloud_tcm_prometheus_attachment": tcm.ResourceTencentCloudTcmPrometheusAttachment(),

tencentcloud/provider.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1494,6 +1494,7 @@ tencentcloud_teo_rule_engine_settings
14941494
tencentcloud_teo_zones
14951495
tencentcloud_teo_plans
14961496
tencentcloud_teo_origin_acl
1497+
tencentcloud_teo_web_security_templates
14971498

14981499
Resource
14991500
tencentcloud_teo_zone
@@ -1523,6 +1524,7 @@ tencentcloud_teo_content_identifier
15231524
tencentcloud_teo_customize_error_page
15241525
tencentcloud_teo_origin_acl
15251526
tencentcloud_teo_ddos_protection_config
1527+
tencentcloud_teo_web_security_template
15261528

15271529
TencentCloud ServiceMesh(TCM)
15281530
Data Source
Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
package teo
2+
3+
import (
4+
"context"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
8+
teov20220901 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo/v20220901"
9+
10+
tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
11+
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
12+
)
13+
14+
func DataSourceTencentCloudTeoWebSecurityTemplates() *schema.Resource {
15+
return &schema.Resource{
16+
Read: dataSourceTencentCloudTeoWebSecurityTemplatesRead,
17+
Schema: map[string]*schema.Schema{
18+
"zone_ids": {
19+
Type: schema.TypeSet,
20+
Required: true,
21+
Description: "List of zone IDs. A maximum of 100 zones can be queried in a single request.",
22+
Elem: &schema.Schema{
23+
Type: schema.TypeString,
24+
},
25+
},
26+
27+
"security_policy_templates": {
28+
Type: schema.TypeList,
29+
Computed: true,
30+
Description: "List of policy templates.",
31+
Elem: &schema.Resource{
32+
Schema: map[string]*schema.Schema{
33+
"zone_id": {
34+
Type: schema.TypeString,
35+
Computed: true,
36+
Description: "The zone ID to which the policy template belongs.",
37+
},
38+
"template_id": {
39+
Type: schema.TypeString,
40+
Computed: true,
41+
Description: "Policy template ID.",
42+
},
43+
"template_name": {
44+
Type: schema.TypeString,
45+
Computed: true,
46+
Description: "The name of the policy template.",
47+
},
48+
"bind_domains": {
49+
Type: schema.TypeList,
50+
Computed: true,
51+
Description: "Information about domains bound to the policy template.",
52+
Elem: &schema.Resource{
53+
Schema: map[string]*schema.Schema{
54+
"domain": {
55+
Type: schema.TypeString,
56+
Computed: true,
57+
Description: "Domain name.",
58+
},
59+
"zone_id": {
60+
Type: schema.TypeString,
61+
Computed: true,
62+
Description: "Zone ID to which the domain belongs.",
63+
},
64+
"status": {
65+
Type: schema.TypeString,
66+
Computed: true,
67+
Description: "Binding status. valid values:. \n<li>`process`: binding in progress</li>\n<li>`online`: binding succeeded.</li>\n<Li>`fail`: binding failed.</li>.",
68+
},
69+
},
70+
},
71+
},
72+
},
73+
},
74+
},
75+
76+
"result_output_file": {
77+
Type: schema.TypeString,
78+
Optional: true,
79+
Description: "Used to save results.",
80+
},
81+
},
82+
}
83+
}
84+
85+
func dataSourceTencentCloudTeoWebSecurityTemplatesRead(d *schema.ResourceData, meta interface{}) error {
86+
defer tccommon.LogElapsed("data_source.tencentcloud_teo_web_security_templates.read")()
87+
defer tccommon.InconsistentCheck(d, meta)()
88+
89+
var (
90+
logId = tccommon.GetLogId(nil)
91+
ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
92+
service = TeoService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
93+
)
94+
95+
paramMap := make(map[string]interface{})
96+
if v, ok := d.GetOk("zone_ids"); ok {
97+
zoneIdsList := []*string{}
98+
zoneIdsSet := v.(*schema.Set).List()
99+
for i := range zoneIdsSet {
100+
zoneIds := zoneIdsSet[i].(string)
101+
zoneIdsList = append(zoneIdsList, helper.String(zoneIds))
102+
}
103+
104+
paramMap["ZoneIds"] = zoneIdsList
105+
}
106+
107+
var respData []*teov20220901.SecurityPolicyTemplateInfo
108+
reqErr := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
109+
result, e := service.DescribeTeoWebSecurityTemplatesByFilter(ctx, paramMap)
110+
if e != nil {
111+
return tccommon.RetryError(e)
112+
}
113+
114+
respData = result
115+
return nil
116+
})
117+
118+
if reqErr != nil {
119+
return reqErr
120+
}
121+
122+
securityPolicyTemplatesList := make([]map[string]interface{}, 0, len(respData))
123+
if respData != nil {
124+
for _, securityPolicyTemplates := range respData {
125+
securityPolicyTemplatesMap := map[string]interface{}{}
126+
if securityPolicyTemplates.ZoneId != nil {
127+
securityPolicyTemplatesMap["zone_id"] = securityPolicyTemplates.ZoneId
128+
}
129+
130+
if securityPolicyTemplates.TemplateId != nil {
131+
securityPolicyTemplatesMap["template_id"] = securityPolicyTemplates.TemplateId
132+
}
133+
134+
if securityPolicyTemplates.TemplateName != nil {
135+
securityPolicyTemplatesMap["template_name"] = securityPolicyTemplates.TemplateName
136+
}
137+
138+
bindDomainsList := make([]map[string]interface{}, 0, len(securityPolicyTemplates.BindDomains))
139+
if securityPolicyTemplates.BindDomains != nil {
140+
for _, bindDomains := range securityPolicyTemplates.BindDomains {
141+
bindDomainsMap := map[string]interface{}{}
142+
143+
if bindDomains.Domain != nil {
144+
bindDomainsMap["domain"] = bindDomains.Domain
145+
}
146+
147+
if bindDomains.ZoneId != nil {
148+
bindDomainsMap["zone_id"] = bindDomains.ZoneId
149+
}
150+
151+
if bindDomains.Status != nil {
152+
bindDomainsMap["status"] = bindDomains.Status
153+
}
154+
155+
bindDomainsList = append(bindDomainsList, bindDomainsMap)
156+
}
157+
158+
securityPolicyTemplatesMap["bind_domains"] = bindDomainsList
159+
}
160+
161+
securityPolicyTemplatesList = append(securityPolicyTemplatesList, securityPolicyTemplatesMap)
162+
}
163+
164+
_ = d.Set("security_policy_templates", securityPolicyTemplatesList)
165+
}
166+
167+
d.SetId(helper.BuildToken())
168+
output, ok := d.GetOk("result_output_file")
169+
if ok && output.(string) != "" {
170+
if e := tccommon.WriteToFile(output.(string), securityPolicyTemplatesList); e != nil {
171+
return e
172+
}
173+
}
174+
175+
return nil
176+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Use this data source to query detailed information of TEO web security templates
2+
3+
Example Usage
4+
5+
```hcl
6+
data "tencentcloud_teo_web_security_templates" "example" {
7+
zone_ids = [
8+
"zone-3fkff38fyw8s",
9+
]
10+
}
11+
```
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package teo_test
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
8+
tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest"
9+
)
10+
11+
func TestAccTencentCloudTeoWebSecurityTemplatesDataSource_basic(t *testing.T) {
12+
t.Parallel()
13+
resource.Test(t, resource.TestCase{
14+
PreCheck: func() {
15+
tcacctest.AccPreCheck(t)
16+
},
17+
Providers: tcacctest.AccProviders,
18+
Steps: []resource.TestStep{{
19+
Config: testAccTeoWebSecurityTemplatesDataSource,
20+
Check: resource.ComposeTestCheckFunc(
21+
tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_teo_web_security_templates.example"),
22+
),
23+
}},
24+
})
25+
}
26+
27+
const testAccTeoWebSecurityTemplatesDataSource = `
28+
data "tencentcloud_teo_web_security_templates" "example" {
29+
zone_ids = [
30+
"zone-3fkff38fyw8s",
31+
]
32+
}
33+
`

0 commit comments

Comments
 (0)