Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changelog/3644.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
```release-note:new-data-source
tencentcloud_controlcenter_account_factory_baseline_items
```

```release-note:new-resource
tencentcloud_controlcenter_account_factory_baseline_config
```
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ require (
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdc v1.0.1149
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwdoris v1.0.993
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwpg v1.0.1126
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.1.51
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dasb v1.0.970
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gwlb v1.0.1127
Expand Down
10 changes: 8 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -827,8 +827,13 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apigateway v1.0.763 h1:
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apigateway v1.0.763/go.mod h1:OlRreot089Ec7bEYMUovUBSuCD/x0D0ONPZ0g3YA5hg=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.2.2 h1:/BlN5LD/rLm0WMM4Yyp2m4XQ8EVzlSV0uKt3SuT5+SE=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.2.2/go.mod h1:XIggn8QQknIzb+1lnsOiKbTQ0fjRe1uV6P+1N0L2ccI=
<<<<<<< HEAD
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.3.4 h1:hTOxj4qB+UX6MflqmIYT4cPbfEqtiJEfi9tR58DxkIw=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.3.4/go.mod h1:q7fZk23gy6BkZGcNw9NXFSj26R44tiJZKGxLFfOrMo0=
=======
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.1.48 h1:pBJSevHHm4vqF3gM7NcqSSPmzvgAlGRoHapUkbcJTzQ=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.1.48/go.mod h1:Qqv7rukVdZ8hZzIOQ02IxFgFbjOAWg+B7KNrYZG5MOA=
>>>>>>> 76dff8d0c (add)
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/bi v1.0.824 h1:DVKvZ6h+qd7tadUrCjVAkCCmE3TsbK2ZmwGd3AJcpWc=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/bi v1.0.824/go.mod h1:DvBpDX/qdJG4KKLeULmRvhAjPYiw8za0HeTSu2y/lFw=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/billing v1.1.31 h1:teA14cAcXuGxas6+5YANQ5KCoPaQBKIb2Q8+sk08Mu0=
Expand Down Expand Up @@ -933,13 +938,14 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.45/go.mod h
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.46/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.49/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.50/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.51/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.2.2/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.3/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.4/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.7 h1:MCrz0g4LDxoCdCgz6Dtas8b7HHLMfgTpIIF/tlor0Hw=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.7/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993 h1:WlPgXldQCxt7qi5Xrc6j6zTrsXWzN5BcOGs7Irq7fwQ=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993/go.mod h1:Z9U8zNtyuyKhjS0698wqsrG/kLx1TQ5CEixXBwVe7xY=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.1.51 h1:pGwrfCBBCt1u+EDHwfNj9NLQpvk5MVKVMcsE7SvwqM4=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.1.51/go.mod h1:aTEdZDUTIOTS0CMDMMpKIkoc0HqtQ5+dRlaZO1KF/gg=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860/go.mod h1:NZo1WplQcC314kMlCRUoy8NQju2BnolIJj7NAWgsuhY=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1206 h1:tx8L5srClwK2T5dte7yw3N8PfxqtuHbT8fWfUZMOUwk=
Expand Down
2 changes: 2 additions & 0 deletions tencentcloud/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -1291,6 +1291,7 @@ func Provider() *schema.Provider {
"tencentcloud_cdc_dedicated_cluster_orders": cdc.DataSourceTencentCloudCdcDedicatedClusterOrders(),
"tencentcloud_cdc_dedicated_clusters": cdc.DataSourceTencentCloudCdcDedicatedClusters(),
"tencentcloud_cdwdoris_instances": cdwdoris.DataSourceTencentCloudCdwdorisInstances(),
"tencentcloud_controlcenter_account_factory_baseline_items": controlcenter.DataSourceTencentCloudControlcenterAccountFactoryBaselineItems(),
"tencentcloud_lite_hbase_instances": emr.DataSourceTencentCloudLiteHbaseInstances(),
"tencentcloud_cdwpg_instances": cdwpg.DataSourceTencentCloudCdwpgInstances(),
"tencentcloud_cdwpg_log": cdwpg.DataSourceTencentCloudCdwpgLog(),
Expand Down Expand Up @@ -2462,6 +2463,7 @@ func Provider() *schema.Provider {
"tencentcloud_cdwdoris_instance": cdwdoris.ResourceTencentCloudCdwdorisInstance(),
"tencentcloud_cdwdoris_workload_group": cdwdoris.ResourceTencentCloudCdwdorisWorkloadGroup(),
"tencentcloud_batch_apply_account_baselines": controlcenter.ResourceTencentCloudBatchApplyAccountBaselines(),
"tencentcloud_controlcenter_account_factory_baseline_config": controlcenter.ResourceTencentCloudControlcenterAccountFactoryBaselineConfig(),
"tencentcloud_thpc_workspaces": thpc.ResourceTencentCloudThpcWorkspaces(),
"tencentcloud_kubernetes_health_check_policy": tke.ResourceTencentCloudKubernetesHealthCheckPolicy(),
"tencentcloud_lite_hbase_instance": emr.ResourceTencentCloudLiteHbaseInstance(),
Expand Down
3 changes: 3 additions & 0 deletions tencentcloud/provider.md
Original file line number Diff line number Diff line change
Expand Up @@ -2417,8 +2417,11 @@ tencentcloud_cdwdoris_instance
tencentcloud_cdwdoris_workload_group

ControlCenter
Data Source
tencentcloud_controlcenter_account_factory_baseline_items
Resource
tencentcloud_batch_apply_account_baselines
tencentcloud_controlcenter_account_factory_baseline_config

THPC
Resource
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,200 @@
package controlcenter

import (
"context"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
controlcenterv20230110 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter/v20230110"

tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
)

func DataSourceTencentCloudControlcenterAccountFactoryBaselineItems() *schema.Resource {
return &schema.Resource{
Read: dataSourceTencentCloudControlcenterAccountFactoryBaselineItemsRead,
Schema: map[string]*schema.Schema{
"baseline_items": {
Type: schema.TypeList,
Computed: true,
Description: "Account factory baseline list.",
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"identifier": {
Type: schema.TypeString,
Computed: true,
Description: "Specifies the unique identifier for account factory baseline item, can only contain `english letters`, `digits`, and `@,._[]-:()()[]+=.`, with a length of 2-128 characters.",
},
"name": {
Type: schema.TypeString,
Computed: true,
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.",
},
"name_en": {
Type: schema.TypeString,
Computed: true,
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.",
},
"weight": {
Type: schema.TypeInt,
Computed: true,
Description: "Baseline item weight. the smaller the value, the higher the weight. value range equal to or greater than 0.",
},
"required": {
Type: schema.TypeInt,
Computed: true,
Description: "Specifies whether the baseline item is required (1: required; 0: optional).",
},
"depends_on": {
Type: schema.TypeList,
Computed: true,
Description: "Baseline item dependency. value range of N depends on the count of other baseline items it relies on.",
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"type": {
Type: schema.TypeString,
Computed: true,
Description: "Dependency type. valid values: LandingZoneSetUp or AccountFactorySetUp. LandingZoneSetUp refers to the dependency of landingZone. AccountFactorySetUp refers to the dependency of account factory.",
},
"identifier": {
Type: schema.TypeString,
Computed: true,
Description: "Specifies the unique identifier for the feature item, can only contain `english letters`, `digits`, and `@,._[]-:()()[]+=.`, with a length of 2-128 characters.",
},
},
},
},
"description": {
Type: schema.TypeString,
Computed: true,
Description: "Baseline description, with a length of 2 to 256 english or chinese characters. it is empty by default.",
},
"description_en": {
Type: schema.TypeString,
Computed: true,
Description: "Baseline item english description, with a length of 2 to 1024 english characters. it is empty by default.",
},
"classify": {
Type: schema.TypeString,
Computed: true,
Description: "Baseline classification. length: 2-32 english or chinese characters. values cannot be empty.",
},
"classify_en": {
Type: schema.TypeString,
Computed: true,
Description: "Baseline english classification, with a length of 2-64 english characters. cannot be empty.",
},
},
},
},

"result_output_file": {
Type: schema.TypeString,
Optional: true,
Description: "Used to save results.",
},
},
}
}

func dataSourceTencentCloudControlcenterAccountFactoryBaselineItemsRead(d *schema.ResourceData, meta interface{}) error {
defer tccommon.LogElapsed("data_source.tencentcloud_controlcenter_account_factory_baseline_items.read")()
defer tccommon.InconsistentCheck(d, meta)()

var (
logId = tccommon.GetLogId(nil)
ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
service = ControlcenterService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
)

paramMap := make(map[string]interface{})
var respData []*controlcenterv20230110.AccountFactoryItem
reqErr := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
result, e := service.DescribeControlcenterAccountFactoryBaselineItemsByFilter(ctx, paramMap)
if e != nil {
return tccommon.RetryError(e)
}

respData = result
return nil
})

if reqErr != nil {
return reqErr
}

baselineItemsList := make([]map[string]interface{}, 0, len(respData))
if respData != nil {
for _, baselineItems := range respData {
baselineItemsMap := map[string]interface{}{}
if baselineItems.Identifier != nil {
baselineItemsMap["identifier"] = baselineItems.Identifier
}

if baselineItems.Name != nil {
baselineItemsMap["name"] = baselineItems.Name
}

if baselineItems.NameEn != nil {
baselineItemsMap["name_en"] = baselineItems.NameEn
}

if baselineItems.Weight != nil {
baselineItemsMap["weight"] = baselineItems.Weight
}

if baselineItems.Required != nil {
baselineItemsMap["required"] = baselineItems.Required
}

dependsOnList := make([]map[string]interface{}, 0, len(baselineItems.DependsOn))
if baselineItems.DependsOn != nil {
for _, dependsOn := range baselineItems.DependsOn {
dependsOnMap := map[string]interface{}{}
if dependsOn.Type != nil {
dependsOnMap["type"] = dependsOn.Type
}

if dependsOn.Identifier != nil {
dependsOnMap["identifier"] = dependsOn.Identifier
}

dependsOnList = append(dependsOnList, dependsOnMap)
}

baselineItemsMap["depends_on"] = dependsOnList
}

if baselineItems.Description != nil {
baselineItemsMap["description"] = baselineItems.Description
}

if baselineItems.DescriptionEn != nil {
baselineItemsMap["description_en"] = baselineItems.DescriptionEn
}

if baselineItems.Classify != nil {
baselineItemsMap["classify"] = baselineItems.Classify
}

if baselineItems.ClassifyEn != nil {
baselineItemsMap["classify_en"] = baselineItems.ClassifyEn
}

baselineItemsList = append(baselineItemsList, baselineItemsMap)
}

_ = d.Set("baseline_items", baselineItemsList)
}

d.SetId(helper.BuildToken())
output, ok := d.GetOk("result_output_file")
if ok && output.(string) != "" {
if e := tccommon.WriteToFile(output.(string), baselineItemsList); e != nil {
return e
}
}

return nil
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Use this data source to query detailed information of Controlcenter account factory baseline items

Example Usage

```hcl
data "tencentcloud_controlcenter_account_factory_baseline_items" "example" {}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package controlcenter_test

import (
"testing"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"

tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest"
)

func TestAccTencentCloudControlcenterAccountFactoryBaselineItemsDataSource_basic(t *testing.T) {
t.Parallel()
resource.Test(t, resource.TestCase{
PreCheck: func() {
tcacctest.AccPreCheck(t)
},
Providers: tcacctest.AccProviders,
Steps: []resource.TestStep{{
Config: testAccControlcenterAccountFactoryBaselineItemsDataSource,
Check: resource.ComposeTestCheckFunc(
tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_controlcenter_account_factory_baseline_items.example")),
}},
})
}

const testAccControlcenterAccountFactoryBaselineItemsDataSource = `
data "tencentcloud_controlcenter_account_factory_baseline_items" "example" {}
`
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Provides a resource to create a controlcenter batch apply account baselines
Provides a resource to create a Controlcenter batch apply account baselines

Example Usage

Expand Down
Loading
Loading