Skip to content

Commit b090d23

Browse files
authored
feat(controlcenter): [129144564] add new resource (#3644)
* add * add * add
1 parent 1006c4c commit b090d23

21 files changed

+1375
-15
lines changed

.changelog/3644.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
```release-note:new-data-source
2+
tencentcloud_controlcenter_account_factory_baseline_items
3+
```
4+
5+
```release-note:new-resource
6+
tencentcloud_controlcenter_account_factory_baseline_config
7+
```

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ require (
111111
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdc v1.0.1149
112112
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwdoris v1.0.993
113113
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwpg v1.0.1126
114-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993
114+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.1.51
115115
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860
116116
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dasb v1.0.970
117117
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gwlb v1.0.1127

go.sum

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -827,8 +827,13 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apigateway v1.0.763 h1:
827827
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apigateway v1.0.763/go.mod h1:OlRreot089Ec7bEYMUovUBSuCD/x0D0ONPZ0g3YA5hg=
828828
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.2.2 h1:/BlN5LD/rLm0WMM4Yyp2m4XQ8EVzlSV0uKt3SuT5+SE=
829829
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.2.2/go.mod h1:XIggn8QQknIzb+1lnsOiKbTQ0fjRe1uV6P+1N0L2ccI=
830+
<<<<<<< HEAD
830831
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.3.4 h1:hTOxj4qB+UX6MflqmIYT4cPbfEqtiJEfi9tR58DxkIw=
831832
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.3.4/go.mod h1:q7fZk23gy6BkZGcNw9NXFSj26R44tiJZKGxLFfOrMo0=
833+
=======
834+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.1.48 h1:pBJSevHHm4vqF3gM7NcqSSPmzvgAlGRoHapUkbcJTzQ=
835+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.1.48/go.mod h1:Qqv7rukVdZ8hZzIOQ02IxFgFbjOAWg+B7KNrYZG5MOA=
836+
>>>>>>> 76dff8d0c (add)
832837
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/bi v1.0.824 h1:DVKvZ6h+qd7tadUrCjVAkCCmE3TsbK2ZmwGd3AJcpWc=
833838
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/bi v1.0.824/go.mod h1:DvBpDX/qdJG4KKLeULmRvhAjPYiw8za0HeTSu2y/lFw=
834839
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/billing v1.1.31 h1:teA14cAcXuGxas6+5YANQ5KCoPaQBKIb2Q8+sk08Mu0=
@@ -933,13 +938,14 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.45/go.mod h
933938
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.46/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
934939
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.49/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
935940
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.50/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
941+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.51/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
936942
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.2.2/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
937943
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.3/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
938944
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.4/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
939945
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.7 h1:MCrz0g4LDxoCdCgz6Dtas8b7HHLMfgTpIIF/tlor0Hw=
940946
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.7/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
941-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993 h1:WlPgXldQCxt7qi5Xrc6j6zTrsXWzN5BcOGs7Irq7fwQ=
942-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993/go.mod h1:Z9U8zNtyuyKhjS0698wqsrG/kLx1TQ5CEixXBwVe7xY=
947+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.1.51 h1:pGwrfCBBCt1u+EDHwfNj9NLQpvk5MVKVMcsE7SvwqM4=
948+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.1.51/go.mod h1:aTEdZDUTIOTS0CMDMMpKIkoc0HqtQ5+dRlaZO1KF/gg=
943949
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU=
944950
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860/go.mod h1:NZo1WplQcC314kMlCRUoy8NQju2BnolIJj7NAWgsuhY=
945951
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1206 h1:tx8L5srClwK2T5dte7yw3N8PfxqtuHbT8fWfUZMOUwk=

tencentcloud/provider.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1291,6 +1291,7 @@ func Provider() *schema.Provider {
12911291
"tencentcloud_cdc_dedicated_cluster_orders": cdc.DataSourceTencentCloudCdcDedicatedClusterOrders(),
12921292
"tencentcloud_cdc_dedicated_clusters": cdc.DataSourceTencentCloudCdcDedicatedClusters(),
12931293
"tencentcloud_cdwdoris_instances": cdwdoris.DataSourceTencentCloudCdwdorisInstances(),
1294+
"tencentcloud_controlcenter_account_factory_baseline_items": controlcenter.DataSourceTencentCloudControlcenterAccountFactoryBaselineItems(),
12941295
"tencentcloud_lite_hbase_instances": emr.DataSourceTencentCloudLiteHbaseInstances(),
12951296
"tencentcloud_cdwpg_instances": cdwpg.DataSourceTencentCloudCdwpgInstances(),
12961297
"tencentcloud_cdwpg_log": cdwpg.DataSourceTencentCloudCdwpgLog(),
@@ -2462,6 +2463,7 @@ func Provider() *schema.Provider {
24622463
"tencentcloud_cdwdoris_instance": cdwdoris.ResourceTencentCloudCdwdorisInstance(),
24632464
"tencentcloud_cdwdoris_workload_group": cdwdoris.ResourceTencentCloudCdwdorisWorkloadGroup(),
24642465
"tencentcloud_batch_apply_account_baselines": controlcenter.ResourceTencentCloudBatchApplyAccountBaselines(),
2466+
"tencentcloud_controlcenter_account_factory_baseline_config": controlcenter.ResourceTencentCloudControlcenterAccountFactoryBaselineConfig(),
24652467
"tencentcloud_thpc_workspaces": thpc.ResourceTencentCloudThpcWorkspaces(),
24662468
"tencentcloud_kubernetes_health_check_policy": tke.ResourceTencentCloudKubernetesHealthCheckPolicy(),
24672469
"tencentcloud_lite_hbase_instance": emr.ResourceTencentCloudLiteHbaseInstance(),

tencentcloud/provider.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2417,8 +2417,11 @@ tencentcloud_cdwdoris_instance
24172417
tencentcloud_cdwdoris_workload_group
24182418

24192419
ControlCenter
2420+
Data Source
2421+
tencentcloud_controlcenter_account_factory_baseline_items
24202422
Resource
24212423
tencentcloud_batch_apply_account_baselines
2424+
tencentcloud_controlcenter_account_factory_baseline_config
24222425

24232426
THPC
24242427
Resource
Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
package controlcenter
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+
controlcenterv20230110 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter/v20230110"
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 DataSourceTencentCloudControlcenterAccountFactoryBaselineItems() *schema.Resource {
15+
return &schema.Resource{
16+
Read: dataSourceTencentCloudControlcenterAccountFactoryBaselineItemsRead,
17+
Schema: map[string]*schema.Schema{
18+
"baseline_items": {
19+
Type: schema.TypeList,
20+
Computed: true,
21+
Description: "Account factory baseline list.",
22+
Elem: &schema.Resource{
23+
Schema: map[string]*schema.Schema{
24+
"identifier": {
25+
Type: schema.TypeString,
26+
Computed: true,
27+
Description: "Specifies the unique identifier for account factory baseline item, can only contain `english letters`, `digits`, and `@,._[]-:()()[]+=.`, with a length of 2-128 characters.",
28+
},
29+
"name": {
30+
Type: schema.TypeString,
31+
Computed: true,
32+
Description: "Baseline item name. specifies a unique name for the feature item. supports a combination of english letters, numbers, chinese characters, and symbols @, &, _, [, ], -. valid values: 1-25 chinese or english characters.",
33+
},
34+
"name_en": {
35+
Type: schema.TypeString,
36+
Computed: true,
37+
Description: "Baseline item english name. specifies a unique name for the baseline item. supports a combination of english letters, digits, spaces, and symbols @, &, _, [], -. valid values: 1-64 english characters.",
38+
},
39+
"weight": {
40+
Type: schema.TypeInt,
41+
Computed: true,
42+
Description: "Baseline item weight. the smaller the value, the higher the weight. value range equal to or greater than 0.",
43+
},
44+
"required": {
45+
Type: schema.TypeInt,
46+
Computed: true,
47+
Description: "Specifies whether the baseline item is required (1: required; 0: optional).",
48+
},
49+
"depends_on": {
50+
Type: schema.TypeList,
51+
Computed: true,
52+
Description: "Baseline item dependency. value range of N depends on the count of other baseline items it relies on.",
53+
Elem: &schema.Resource{
54+
Schema: map[string]*schema.Schema{
55+
"type": {
56+
Type: schema.TypeString,
57+
Computed: true,
58+
Description: "Dependency type. valid values: LandingZoneSetUp or AccountFactorySetUp. LandingZoneSetUp refers to the dependency of landingZone. AccountFactorySetUp refers to the dependency of account factory.",
59+
},
60+
"identifier": {
61+
Type: schema.TypeString,
62+
Computed: true,
63+
Description: "Specifies the unique identifier for the feature item, can only contain `english letters`, `digits`, and `@,._[]-:()()[]+=.`, with a length of 2-128 characters.",
64+
},
65+
},
66+
},
67+
},
68+
"description": {
69+
Type: schema.TypeString,
70+
Computed: true,
71+
Description: "Baseline description, with a length of 2 to 256 english or chinese characters. it is empty by default.",
72+
},
73+
"description_en": {
74+
Type: schema.TypeString,
75+
Computed: true,
76+
Description: "Baseline item english description, with a length of 2 to 1024 english characters. it is empty by default.",
77+
},
78+
"classify": {
79+
Type: schema.TypeString,
80+
Computed: true,
81+
Description: "Baseline classification. length: 2-32 english or chinese characters. values cannot be empty.",
82+
},
83+
"classify_en": {
84+
Type: schema.TypeString,
85+
Computed: true,
86+
Description: "Baseline english classification, with a length of 2-64 english characters. cannot be empty.",
87+
},
88+
},
89+
},
90+
},
91+
92+
"result_output_file": {
93+
Type: schema.TypeString,
94+
Optional: true,
95+
Description: "Used to save results.",
96+
},
97+
},
98+
}
99+
}
100+
101+
func dataSourceTencentCloudControlcenterAccountFactoryBaselineItemsRead(d *schema.ResourceData, meta interface{}) error {
102+
defer tccommon.LogElapsed("data_source.tencentcloud_controlcenter_account_factory_baseline_items.read")()
103+
defer tccommon.InconsistentCheck(d, meta)()
104+
105+
var (
106+
logId = tccommon.GetLogId(nil)
107+
ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
108+
service = ControlcenterService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
109+
)
110+
111+
paramMap := make(map[string]interface{})
112+
var respData []*controlcenterv20230110.AccountFactoryItem
113+
reqErr := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
114+
result, e := service.DescribeControlcenterAccountFactoryBaselineItemsByFilter(ctx, paramMap)
115+
if e != nil {
116+
return tccommon.RetryError(e)
117+
}
118+
119+
respData = result
120+
return nil
121+
})
122+
123+
if reqErr != nil {
124+
return reqErr
125+
}
126+
127+
baselineItemsList := make([]map[string]interface{}, 0, len(respData))
128+
if respData != nil {
129+
for _, baselineItems := range respData {
130+
baselineItemsMap := map[string]interface{}{}
131+
if baselineItems.Identifier != nil {
132+
baselineItemsMap["identifier"] = baselineItems.Identifier
133+
}
134+
135+
if baselineItems.Name != nil {
136+
baselineItemsMap["name"] = baselineItems.Name
137+
}
138+
139+
if baselineItems.NameEn != nil {
140+
baselineItemsMap["name_en"] = baselineItems.NameEn
141+
}
142+
143+
if baselineItems.Weight != nil {
144+
baselineItemsMap["weight"] = baselineItems.Weight
145+
}
146+
147+
if baselineItems.Required != nil {
148+
baselineItemsMap["required"] = baselineItems.Required
149+
}
150+
151+
dependsOnList := make([]map[string]interface{}, 0, len(baselineItems.DependsOn))
152+
if baselineItems.DependsOn != nil {
153+
for _, dependsOn := range baselineItems.DependsOn {
154+
dependsOnMap := map[string]interface{}{}
155+
if dependsOn.Type != nil {
156+
dependsOnMap["type"] = dependsOn.Type
157+
}
158+
159+
if dependsOn.Identifier != nil {
160+
dependsOnMap["identifier"] = dependsOn.Identifier
161+
}
162+
163+
dependsOnList = append(dependsOnList, dependsOnMap)
164+
}
165+
166+
baselineItemsMap["depends_on"] = dependsOnList
167+
}
168+
169+
if baselineItems.Description != nil {
170+
baselineItemsMap["description"] = baselineItems.Description
171+
}
172+
173+
if baselineItems.DescriptionEn != nil {
174+
baselineItemsMap["description_en"] = baselineItems.DescriptionEn
175+
}
176+
177+
if baselineItems.Classify != nil {
178+
baselineItemsMap["classify"] = baselineItems.Classify
179+
}
180+
181+
if baselineItems.ClassifyEn != nil {
182+
baselineItemsMap["classify_en"] = baselineItems.ClassifyEn
183+
}
184+
185+
baselineItemsList = append(baselineItemsList, baselineItemsMap)
186+
}
187+
188+
_ = d.Set("baseline_items", baselineItemsList)
189+
}
190+
191+
d.SetId(helper.BuildToken())
192+
output, ok := d.GetOk("result_output_file")
193+
if ok && output.(string) != "" {
194+
if e := tccommon.WriteToFile(output.(string), baselineItemsList); e != nil {
195+
return e
196+
}
197+
}
198+
199+
return nil
200+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Use this data source to query detailed information of Controlcenter account factory baseline items
2+
3+
Example Usage
4+
5+
```hcl
6+
data "tencentcloud_controlcenter_account_factory_baseline_items" "example" {}
7+
```
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package controlcenter_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 TestAccTencentCloudControlcenterAccountFactoryBaselineItemsDataSource_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: testAccControlcenterAccountFactoryBaselineItemsDataSource,
20+
Check: resource.ComposeTestCheckFunc(
21+
tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_controlcenter_account_factory_baseline_items.example")),
22+
}},
23+
})
24+
}
25+
26+
const testAccControlcenterAccountFactoryBaselineItemsDataSource = `
27+
data "tencentcloud_controlcenter_account_factory_baseline_items" "example" {}
28+
`

tencentcloud/services/controlcenter/resource_tc_batch_apply_account_baselines.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Provides a resource to create a controlcenter batch apply account baselines
1+
Provides a resource to create a Controlcenter batch apply account baselines
22

33
Example Usage
44

0 commit comments

Comments
 (0)