diff --git a/.changelog/3644.txt b/.changelog/3644.txt new file mode 100644 index 0000000000..75df8ae05c --- /dev/null +++ b/.changelog/3644.txt @@ -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 +``` \ No newline at end of file diff --git a/go.mod b/go.mod index 1321d3480b..450eed24ea 100644 --- a/go.mod +++ b/go.mod @@ -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 diff --git a/go.sum b/go.sum index 42aab78b9c..73a7779747 100644 --- a/go.sum +++ b/go.sum @@ -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= @@ -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= diff --git a/tencentcloud/provider.go b/tencentcloud/provider.go index 41165a1c84..0cac0e5305 100644 --- a/tencentcloud/provider.go +++ b/tencentcloud/provider.go @@ -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(), @@ -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(), diff --git a/tencentcloud/provider.md b/tencentcloud/provider.md index ff5bd2b9ca..4a169580b9 100644 --- a/tencentcloud/provider.md +++ b/tencentcloud/provider.md @@ -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 diff --git a/tencentcloud/services/controlcenter/data_source_tc_controlcenter_account_factory_baseline_items.go b/tencentcloud/services/controlcenter/data_source_tc_controlcenter_account_factory_baseline_items.go new file mode 100644 index 0000000000..c818f1a096 --- /dev/null +++ b/tencentcloud/services/controlcenter/data_source_tc_controlcenter_account_factory_baseline_items.go @@ -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 +} diff --git a/tencentcloud/services/controlcenter/data_source_tc_controlcenter_account_factory_baseline_items.md b/tencentcloud/services/controlcenter/data_source_tc_controlcenter_account_factory_baseline_items.md new file mode 100644 index 0000000000..045305647b --- /dev/null +++ b/tencentcloud/services/controlcenter/data_source_tc_controlcenter_account_factory_baseline_items.md @@ -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" {} +``` diff --git a/tencentcloud/services/controlcenter/data_source_tc_controlcenter_account_factory_baseline_items_test.go b/tencentcloud/services/controlcenter/data_source_tc_controlcenter_account_factory_baseline_items_test.go new file mode 100644 index 0000000000..02fd917441 --- /dev/null +++ b/tencentcloud/services/controlcenter/data_source_tc_controlcenter_account_factory_baseline_items_test.go @@ -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" {} +` diff --git a/tencentcloud/services/controlcenter/resource_tc_batch_apply_account_baselines.md b/tencentcloud/services/controlcenter/resource_tc_batch_apply_account_baselines.md index 1933fb76ea..6fc9953219 100644 --- a/tencentcloud/services/controlcenter/resource_tc_batch_apply_account_baselines.md +++ b/tencentcloud/services/controlcenter/resource_tc_batch_apply_account_baselines.md @@ -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 diff --git a/tencentcloud/services/controlcenter/resource_tc_controlcenter_account_factory_baseline_config.go b/tencentcloud/services/controlcenter/resource_tc_controlcenter_account_factory_baseline_config.go new file mode 100644 index 0000000000..e78ef00beb --- /dev/null +++ b/tencentcloud/services/controlcenter/resource_tc_controlcenter_account_factory_baseline_config.go @@ -0,0 +1,193 @@ +package controlcenter + +import ( + "context" + "log" + + "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 ResourceTencentCloudControlcenterAccountFactoryBaselineConfig() *schema.Resource { + return &schema.Resource{ + Create: resourceTencentCloudControlcenterAccountFactoryBaselineConfigCreate, + Read: resourceTencentCloudControlcenterAccountFactoryBaselineConfigRead, + Update: resourceTencentCloudControlcenterAccountFactoryBaselineConfigUpdate, + Delete: resourceTencentCloudControlcenterAccountFactoryBaselineConfigDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Schema: map[string]*schema.Schema{ + "name": { + Type: schema.TypeString, + Required: true, + Description: "Baseline name, which must be unique. Supports only English letters, numbers, Chinese characters, and symbols @, &, _, [], -. Combination of 1-25 Chinese or English characters.", + }, + + "baseline_config_items": { + Type: schema.TypeSet, + Optional: true, + Description: "Baseline configuration, overwrite update. You can query existing baseline configurations via controlcenter:GetAccountFactoryBaseline. You can query supported baseline lists via controlcenter:ListAccountFactoryBaselineItems.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "identifier": { + Type: schema.TypeString, + Optional: 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.", + }, + "configuration": { + Type: schema.TypeString, + Optional: true, + Description: "Account factory baseline item configuration, different baseline items have different configuration parameters.", + }, + "apply_count": { + Type: schema.TypeInt, + Computed: true, + Description: "Specifies the number of accounts for baseline applications.", + }, + }, + }, + }, + + // computed + "create_time": { + Type: schema.TypeString, + Computed: true, + Description: "Creation time.", + }, + + "update_time": { + Type: schema.TypeString, + Computed: true, + Description: "Update time.", + }, + }, + } +} + +func resourceTencentCloudControlcenterAccountFactoryBaselineConfigCreate(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_controlcenter_account_factory_baseline_config.create")() + defer tccommon.InconsistentCheck(d, meta)() + + d.SetId(helper.BuildToken()) + + return resourceTencentCloudControlcenterAccountFactoryBaselineConfigUpdate(d, meta) +} + +func resourceTencentCloudControlcenterAccountFactoryBaselineConfigRead(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_controlcenter_account_factory_baseline_config.read")() + defer tccommon.InconsistentCheck(d, meta)() + + var ( + logId = tccommon.GetLogId(tccommon.ContextNil) + ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta) + service = ControlcenterService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()} + ) + + respData, err := service.DescribeControlcenterAccountFactoryBaselineConfigById(ctx) + if err != nil { + return err + } + + if respData == nil { + log.Printf("[WARN]%s resource `tencentcloud_controlcenter_account_factory_baseline_config` [%s] not found, please check if it has been deleted.\n", logId, d.Id()) + d.SetId("") + return nil + } + + if respData.Name != nil { + _ = d.Set("name", respData.Name) + } + + if respData.BaselineConfigItems != nil && len(respData.BaselineConfigItems) > 0 { + baselineConfigItemsList := make([]map[string]interface{}, 0, len(respData.BaselineConfigItems)) + for _, baselineConfigItems := range respData.BaselineConfigItems { + baselineConfigItemsMap := map[string]interface{}{} + if baselineConfigItems.Identifier != nil { + baselineConfigItemsMap["identifier"] = baselineConfigItems.Identifier + } + + if baselineConfigItems.Configuration != nil { + baselineConfigItemsMap["configuration"] = baselineConfigItems.Configuration + } + + if baselineConfigItems.ApplyCount != nil { + baselineConfigItemsMap["apply_count"] = baselineConfigItems.ApplyCount + } + + baselineConfigItemsList = append(baselineConfigItemsList, baselineConfigItemsMap) + } + + _ = d.Set("baseline_config_items", baselineConfigItemsList) + } + + if respData.CreateTime != nil { + _ = d.Set("create_time", respData.CreateTime) + } + + if respData.UpdateTime != nil { + _ = d.Set("update_time", respData.UpdateTime) + } + + return nil +} + +func resourceTencentCloudControlcenterAccountFactoryBaselineConfigUpdate(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_controlcenter_account_factory_baseline_config.update")() + defer tccommon.InconsistentCheck(d, meta)() + + var ( + logId = tccommon.GetLogId(tccommon.ContextNil) + ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta) + request = controlcenterv20230110.NewUpdateAccountFactoryBaselineRequest() + ) + + if v, ok := d.GetOk("name"); ok { + request.Name = helper.String(v.(string)) + } + + if v, ok := d.GetOk("baseline_config_items"); ok { + for _, item := range v.(*schema.Set).List() { + baselineConfigItemsMap := item.(map[string]interface{}) + baselineConfigItem := controlcenterv20230110.BaselineConfigItem{} + if v, ok := baselineConfigItemsMap["identifier"].(string); ok && v != "" { + baselineConfigItem.Identifier = helper.String(v) + } + + if v, ok := baselineConfigItemsMap["configuration"].(string); ok && v != "" { + baselineConfigItem.Configuration = helper.String(v) + } + + request.BaselineConfigItems = append(request.BaselineConfigItems, &baselineConfigItem) + } + } + + reqErr := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseControlcenterV20230110Client().UpdateAccountFactoryBaselineWithContext(ctx, request) + if e != nil { + return tccommon.RetryError(e) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) + } + + return nil + }) + + if reqErr != nil { + log.Printf("[CRITAL]%s update controlcenter account factory baseline config failed, reason:%+v", logId, reqErr) + return reqErr + } + + return resourceTencentCloudControlcenterAccountFactoryBaselineConfigRead(d, meta) +} + +func resourceTencentCloudControlcenterAccountFactoryBaselineConfigDelete(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_controlcenter_account_factory_baseline_config.delete")() + defer tccommon.InconsistentCheck(d, meta)() + + return nil +} diff --git a/tencentcloud/services/controlcenter/resource_tc_controlcenter_account_factory_baseline_config.md b/tencentcloud/services/controlcenter/resource_tc_controlcenter_account_factory_baseline_config.md new file mode 100644 index 0000000000..d11ffd4573 --- /dev/null +++ b/tencentcloud/services/controlcenter/resource_tc_controlcenter_account_factory_baseline_config.md @@ -0,0 +1,38 @@ +Provides a resource to create a Controlcenter account factory baseline config + +Example Usage + +```hcl +resource "tencentcloud_controlcenter_account_factory_baseline_config" "example" { + name = "default" + baseline_config_items { + identifier = "TCC-AF_VPC_SUBNET" + configuration = jsonencode({ + "VpcName" : "tf-example", + "CidrBlock" : "10.0.0.0/16", + "Region" : "1", + "RegionName" : "ap-guangzhou", + "Subnets" : [ + { + "CidrBlock" : "10.0.0.0/24", + "SubnetName" : "abc", + "Zone" : "ap-guangzhou-6" + } + ] + }) + } + + baseline_config_items { + identifier = "TCC-AF_PRESET_TAG" + configuration = "{\"TagValuePairs\":[{\"Key\":\"key\",\"Values\":[\"value\"]}]}" + } +} +``` + +Import + +Controlcenter account factory baseline config can be imported using the customId(like uuid or base64 string), e.g. + +``` +terraform import tencentcloud_controlcenter_account_factory_baseline_config.example nMtrLC9IuQq27wyiICj9bA== +``` diff --git a/tencentcloud/services/controlcenter/resource_tc_controlcenter_account_factory_baseline_config_test.go b/tencentcloud/services/controlcenter/resource_tc_controlcenter_account_factory_baseline_config_test.go new file mode 100644 index 0000000000..1a75a716a8 --- /dev/null +++ b/tencentcloud/services/controlcenter/resource_tc_controlcenter_account_factory_baseline_config_test.go @@ -0,0 +1,59 @@ +package controlcenter_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + + tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest" +) + +func TestAccTencentCloudControlcenterAccountFactoryBaselineConfigResource_basic(t *testing.T) { + t.Parallel() + resource.Test(t, resource.TestCase{ + PreCheck: func() { + tcacctest.AccPreCheck(t) + }, + Providers: tcacctest.AccProviders, + Steps: []resource.TestStep{ + { + Config: testAccControlcenterAccountFactoryBaselineConfig, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("tencentcloud_controlcenter_account_factory_baseline_config.example", "id"), + ), + }, + { + ResourceName: "tencentcloud_controlcenter_account_factory_baseline_config.example", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +const testAccControlcenterAccountFactoryBaselineConfig = ` +resource "tencentcloud_controlcenter_account_factory_baseline_config" "example" { + name = "default" + baseline_config_items { + identifier = "TCC-AF_VPC_SUBNET" + configuration = jsonencode({ + "VpcName" : "tf-example", + "CidrBlock" : "10.0.0.0/16", + "Region" : "1", + "RegionName" : "ap-guangzhou", + "Subnets" : [ + { + "CidrBlock" : "10.0.0.0/24", + "SubnetName" : "abc", + "Zone" : "ap-guangzhou-6" + } + ] + }) + } + + baseline_config_items { + identifier = "TCC-AF_PRESET_TAG" + configuration = "{\"TagValuePairs\":[{\"Key\":\"key\",\"Values\":[\"value\"]}]}" + } +} +` diff --git a/tencentcloud/services/controlcenter/service_tencentcloud_controlcenter.go b/tencentcloud/services/controlcenter/service_tencentcloud_controlcenter.go index cc48e4a309..413df9aa7a 100644 --- a/tencentcloud/services/controlcenter/service_tencentcloud_controlcenter.go +++ b/tencentcloud/services/controlcenter/service_tencentcloud_controlcenter.go @@ -1,7 +1,17 @@ -// Code generated by iacg; DO NOT EDIT. package controlcenter -import "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/connectivity" +import ( + "context" + "fmt" + "log" + + controlcenterv20230110 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter/v20230110" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common" + "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/connectivity" + "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/ratelimit" +) func NewControlcenterService(client *connectivity.TencentCloudClient) ControlcenterService { return ControlcenterService{client: client} @@ -10,3 +20,99 @@ func NewControlcenterService(client *connectivity.TencentCloudClient) Controlcen type ControlcenterService struct { client *connectivity.TencentCloudClient } + +func (me *ControlcenterService) DescribeControlcenterAccountFactoryBaselineConfigById(ctx context.Context) (ret *controlcenterv20230110.GetAccountFactoryBaselineResponseParams, errRet error) { + logId := tccommon.GetLogId(ctx) + request := controlcenterv20230110.NewGetAccountFactoryBaselineRequest() + response := controlcenterv20230110.NewGetAccountFactoryBaselineResponse() + + defer func() { + if errRet != nil { + log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error()) + } + }() + + err := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError { + ratelimit.Check(request.GetAction()) + result, err := me.client.UseControlcenterV20230110Client().GetAccountFactoryBaseline(request) + if err != nil { + return tccommon.RetryError(err) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) + } + + if result == nil || result.Response == nil { + return resource.NonRetryableError(fmt.Errorf("Get account factory baseline failed, Response is nil.")) + } + + response = result + return nil + }) + + if err != nil { + errRet = err + return + } + + ret = response.Response + return +} + +func (me *ControlcenterService) DescribeControlcenterAccountFactoryBaselineItemsByFilter(ctx context.Context, param map[string]interface{}) (ret []*controlcenterv20230110.AccountFactoryItem, errRet error) { + var ( + logId = tccommon.GetLogId(ctx) + request = controlcenterv20230110.NewListAccountFactoryBaselineItemsRequest() + response = controlcenterv20230110.NewListAccountFactoryBaselineItemsResponse() + ) + + 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()) + } + }() + + var ( + offset int64 = 0 + limit int64 = 20 + ) + + for { + request.Offset = &offset + request.Limit = &limit + + err := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError { + ratelimit.Check(request.GetAction()) + result, err := me.client.UseControlcenterV20230110Client().ListAccountFactoryBaselineItems(request) + if err != nil { + return tccommon.RetryError(err) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) + } + + if result == nil || result.Response == nil { + return resource.NonRetryableError(fmt.Errorf("List account factory baseline items failed, Response is nil.")) + } + + response = result + return nil + }) + + if err != nil { + errRet = err + return + } + + if len(response.Response.BaselineItems) < 1 { + break + } + + ret = append(ret, response.Response.BaselineItems...) + if len(response.Response.BaselineItems) < int(limit) { + break + } + + offset += limit + } + + return +} diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter/v20230110/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter/v20230110/client.go index 77dcdf5dc1..bb746db32a 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter/v20230110/client.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter/v20230110/client.go @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2018 THL A29 Limited, a Tencent company. All Rights Reserved. +// Copyright (c) 2017-2025 Tencent. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -69,6 +69,8 @@ func NewBatchApplyAccountBaselinesResponse() (response *BatchApplyAccountBaselin // // 可能返回的错误码: // FAILEDOPERATION_AFREQUIREDITEMNOTSELECT = "FailedOperation.AFRequiredItemNotSelect" +// FAILEDOPERATION_ACCOUNTFACTORYCONTACTEMAILNOTVERIFY = "FailedOperation.AccountFactoryContactEmailNotVerify" +// FAILEDOPERATION_ACCOUNTFACTORYCONTACTPHONENOTVERIFY = "FailedOperation.AccountFactoryContactPhoneNotVerify" // FAILEDOPERATION_ACCOUNTFACTORYMEMBERUINNUMEXCEED = "FailedOperation.AccountFactoryMemberUinNumExceed" // FAILEDOPERATION_ACCOUNTFACTORYTASKISDEPLOYING = "FailedOperation.AccountFactoryTaskIsDeploying" // FAILEDOPERATION_CONTROLCENTERNOTOPEN = "FailedOperation.ControlCenterNotOpen" @@ -87,6 +89,8 @@ func (c *Client) BatchApplyAccountBaselines(request *BatchApplyAccountBaselinesR // // 可能返回的错误码: // FAILEDOPERATION_AFREQUIREDITEMNOTSELECT = "FailedOperation.AFRequiredItemNotSelect" +// FAILEDOPERATION_ACCOUNTFACTORYCONTACTEMAILNOTVERIFY = "FailedOperation.AccountFactoryContactEmailNotVerify" +// FAILEDOPERATION_ACCOUNTFACTORYCONTACTPHONENOTVERIFY = "FailedOperation.AccountFactoryContactPhoneNotVerify" // FAILEDOPERATION_ACCOUNTFACTORYMEMBERUINNUMEXCEED = "FailedOperation.AccountFactoryMemberUinNumExceed" // FAILEDOPERATION_ACCOUNTFACTORYTASKISDEPLOYING = "FailedOperation.AccountFactoryTaskIsDeploying" // FAILEDOPERATION_CONTROLCENTERNOTOPEN = "FailedOperation.ControlCenterNotOpen" @@ -100,6 +104,7 @@ func (c *Client) BatchApplyAccountBaselinesWithContext(ctx context.Context, requ if request == nil { request = NewBatchApplyAccountBaselinesRequest() } + c.InitBaseRequest(&request.BaseRequest, "controlcenter", APIVersion, "BatchApplyAccountBaselines") if c.GetCredential() == nil { return nil, errors.New("BatchApplyAccountBaselines require credential") @@ -111,3 +116,223 @@ func (c *Client) BatchApplyAccountBaselinesWithContext(ctx context.Context, requ err = c.Send(request, response) return } + +func NewGetAccountFactoryBaselineRequest() (request *GetAccountFactoryBaselineRequest) { + request = &GetAccountFactoryBaselineRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("controlcenter", APIVersion, "GetAccountFactoryBaseline") + + + return +} + +func NewGetAccountFactoryBaselineResponse() (response *GetAccountFactoryBaselineResponse) { + response = &GetAccountFactoryBaselineResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// GetAccountFactoryBaseline +// 获取用户基线配置数据 +// +// 可能返回的错误码: +// FAILEDOPERATION_CONTROLCENTERNOTOPEN = "FailedOperation.ControlCenterNotOpen" +// FAILEDOPERATION_DBOPERATIONERROR = "FailedOperation.DBOperationError" +// RESOURCENOTFOUND_ACCOUNTFACTORYBASELINENOTEXIST = "ResourceNotFound.AccountFactoryBaselineNotExist" +func (c *Client) GetAccountFactoryBaseline(request *GetAccountFactoryBaselineRequest) (response *GetAccountFactoryBaselineResponse, err error) { + return c.GetAccountFactoryBaselineWithContext(context.Background(), request) +} + +// GetAccountFactoryBaseline +// 获取用户基线配置数据 +// +// 可能返回的错误码: +// FAILEDOPERATION_CONTROLCENTERNOTOPEN = "FailedOperation.ControlCenterNotOpen" +// FAILEDOPERATION_DBOPERATIONERROR = "FailedOperation.DBOperationError" +// RESOURCENOTFOUND_ACCOUNTFACTORYBASELINENOTEXIST = "ResourceNotFound.AccountFactoryBaselineNotExist" +func (c *Client) GetAccountFactoryBaselineWithContext(ctx context.Context, request *GetAccountFactoryBaselineRequest) (response *GetAccountFactoryBaselineResponse, err error) { + if request == nil { + request = NewGetAccountFactoryBaselineRequest() + } + c.InitBaseRequest(&request.BaseRequest, "controlcenter", APIVersion, "GetAccountFactoryBaseline") + + if c.GetCredential() == nil { + return nil, errors.New("GetAccountFactoryBaseline require credential") + } + + request.SetContext(ctx) + + response = NewGetAccountFactoryBaselineResponse() + err = c.Send(request, response) + return +} + +func NewListAccountFactoryBaselineItemsRequest() (request *ListAccountFactoryBaselineItemsRequest) { + request = &ListAccountFactoryBaselineItemsRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("controlcenter", APIVersion, "ListAccountFactoryBaselineItems") + + + return +} + +func NewListAccountFactoryBaselineItemsResponse() (response *ListAccountFactoryBaselineItemsResponse) { + response = &ListAccountFactoryBaselineItemsResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// ListAccountFactoryBaselineItems +// 获取账号工厂系统基线项 +// +// 可能返回的错误码: +// FAILEDOPERATION_CONTROLCENTERNOTOPEN = "FailedOperation.ControlCenterNotOpen" +// FAILEDOPERATION_DBOPERATIONERROR = "FailedOperation.DBOperationError" +func (c *Client) ListAccountFactoryBaselineItems(request *ListAccountFactoryBaselineItemsRequest) (response *ListAccountFactoryBaselineItemsResponse, err error) { + return c.ListAccountFactoryBaselineItemsWithContext(context.Background(), request) +} + +// ListAccountFactoryBaselineItems +// 获取账号工厂系统基线项 +// +// 可能返回的错误码: +// FAILEDOPERATION_CONTROLCENTERNOTOPEN = "FailedOperation.ControlCenterNotOpen" +// FAILEDOPERATION_DBOPERATIONERROR = "FailedOperation.DBOperationError" +func (c *Client) ListAccountFactoryBaselineItemsWithContext(ctx context.Context, request *ListAccountFactoryBaselineItemsRequest) (response *ListAccountFactoryBaselineItemsResponse, err error) { + if request == nil { + request = NewListAccountFactoryBaselineItemsRequest() + } + c.InitBaseRequest(&request.BaseRequest, "controlcenter", APIVersion, "ListAccountFactoryBaselineItems") + + if c.GetCredential() == nil { + return nil, errors.New("ListAccountFactoryBaselineItems require credential") + } + + request.SetContext(ctx) + + response = NewListAccountFactoryBaselineItemsResponse() + err = c.Send(request, response) + return +} + +func NewListDeployStepTasksRequest() (request *ListDeployStepTasksRequest) { + request = &ListDeployStepTasksRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("controlcenter", APIVersion, "ListDeployStepTasks") + + + return +} + +func NewListDeployStepTasksResponse() (response *ListDeployStepTasksResponse) { + response = &ListDeployStepTasksResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// ListDeployStepTasks +// 获取某个基线项历史应用信息 +// +// 可能返回的错误码: +// FAILEDOPERATION_CONTROLCENTERNOTOPEN = "FailedOperation.ControlCenterNotOpen" +// FAILEDOPERATION_DBOPERATIONERROR = "FailedOperation.DBOperationError" +// RESOURCENOTFOUND_ACCOUNTFACTORYITEMNOTEXIST = "ResourceNotFound.AccountFactoryItemNotExist" +func (c *Client) ListDeployStepTasks(request *ListDeployStepTasksRequest) (response *ListDeployStepTasksResponse, err error) { + return c.ListDeployStepTasksWithContext(context.Background(), request) +} + +// ListDeployStepTasks +// 获取某个基线项历史应用信息 +// +// 可能返回的错误码: +// FAILEDOPERATION_CONTROLCENTERNOTOPEN = "FailedOperation.ControlCenterNotOpen" +// FAILEDOPERATION_DBOPERATIONERROR = "FailedOperation.DBOperationError" +// RESOURCENOTFOUND_ACCOUNTFACTORYITEMNOTEXIST = "ResourceNotFound.AccountFactoryItemNotExist" +func (c *Client) ListDeployStepTasksWithContext(ctx context.Context, request *ListDeployStepTasksRequest) (response *ListDeployStepTasksResponse, err error) { + if request == nil { + request = NewListDeployStepTasksRequest() + } + c.InitBaseRequest(&request.BaseRequest, "controlcenter", APIVersion, "ListDeployStepTasks") + + if c.GetCredential() == nil { + return nil, errors.New("ListDeployStepTasks require credential") + } + + request.SetContext(ctx) + + response = NewListDeployStepTasksResponse() + err = c.Send(request, response) + return +} + +func NewUpdateAccountFactoryBaselineRequest() (request *UpdateAccountFactoryBaselineRequest) { + request = &UpdateAccountFactoryBaselineRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("controlcenter", APIVersion, "UpdateAccountFactoryBaseline") + + + return +} + +func NewUpdateAccountFactoryBaselineResponse() (response *UpdateAccountFactoryBaselineResponse) { + response = &UpdateAccountFactoryBaselineResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// UpdateAccountFactoryBaseline +// 更新用户当前基线项配置,基线配置会覆盖更新为当前配置。新增基线项时需要将新增的基线配置加到现有配置,删除基线项时需要将删除的基线配置从现有配置移除,然后保存最新基线配置。 +// +// 可能返回的错误码: +// FAILEDOPERATION_AFREQUIREDITEMNOTSELECT = "FailedOperation.AFRequiredItemNotSelect" +// FAILEDOPERATION_ACCOUNTFACTORYDEPENDONITEMNOTCONFIG = "FailedOperation.AccountFactoryDependOnItemNotConfig" +// FAILEDOPERATION_CONTROLCENTERNOTOPEN = "FailedOperation.ControlCenterNotOpen" +// FAILEDOPERATION_DBOPERATIONERROR = "FailedOperation.DBOperationError" +// INVALIDPARAMETER_ACCOUNTFACTORYTAGEXCEEDMAXNUM = "InvalidParameter.AccountFactoryTagExceedMaxNum" +// INVALIDPARAMETER_PARAMERROR = "InvalidParameter.ParamError" +func (c *Client) UpdateAccountFactoryBaseline(request *UpdateAccountFactoryBaselineRequest) (response *UpdateAccountFactoryBaselineResponse, err error) { + return c.UpdateAccountFactoryBaselineWithContext(context.Background(), request) +} + +// UpdateAccountFactoryBaseline +// 更新用户当前基线项配置,基线配置会覆盖更新为当前配置。新增基线项时需要将新增的基线配置加到现有配置,删除基线项时需要将删除的基线配置从现有配置移除,然后保存最新基线配置。 +// +// 可能返回的错误码: +// FAILEDOPERATION_AFREQUIREDITEMNOTSELECT = "FailedOperation.AFRequiredItemNotSelect" +// FAILEDOPERATION_ACCOUNTFACTORYDEPENDONITEMNOTCONFIG = "FailedOperation.AccountFactoryDependOnItemNotConfig" +// FAILEDOPERATION_CONTROLCENTERNOTOPEN = "FailedOperation.ControlCenterNotOpen" +// FAILEDOPERATION_DBOPERATIONERROR = "FailedOperation.DBOperationError" +// INVALIDPARAMETER_ACCOUNTFACTORYTAGEXCEEDMAXNUM = "InvalidParameter.AccountFactoryTagExceedMaxNum" +// INVALIDPARAMETER_PARAMERROR = "InvalidParameter.ParamError" +func (c *Client) UpdateAccountFactoryBaselineWithContext(ctx context.Context, request *UpdateAccountFactoryBaselineRequest) (response *UpdateAccountFactoryBaselineResponse, err error) { + if request == nil { + request = NewUpdateAccountFactoryBaselineRequest() + } + c.InitBaseRequest(&request.BaseRequest, "controlcenter", APIVersion, "UpdateAccountFactoryBaseline") + + if c.GetCredential() == nil { + return nil, errors.New("UpdateAccountFactoryBaseline require credential") + } + + request.SetContext(ctx) + + response = NewUpdateAccountFactoryBaselineResponse() + err = c.Send(request, response) + return +} diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter/v20230110/errors.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter/v20230110/errors.go index 4ce67527a8..fc91b62414 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter/v20230110/errors.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter/v20230110/errors.go @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2018 THL A29 Limited, a Tencent company. All Rights Reserved. +// Copyright (c) 2017-2025 Tencent. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,6 +20,15 @@ const ( // 账号工厂必选基线项未配置 FAILEDOPERATION_AFREQUIREDITEMNOTSELECT = "FailedOperation.AFRequiredItemNotSelect" + // 联系人邮箱未验证。 + FAILEDOPERATION_ACCOUNTFACTORYCONTACTEMAILNOTVERIFY = "FailedOperation.AccountFactoryContactEmailNotVerify" + + // 联系人手机未验证。 + FAILEDOPERATION_ACCOUNTFACTORYCONTACTPHONENOTVERIFY = "FailedOperation.AccountFactoryContactPhoneNotVerify" + + // 账号工厂基线项的依赖项未配置 + FAILEDOPERATION_ACCOUNTFACTORYDEPENDONITEMNOTCONFIG = "FailedOperation.AccountFactoryDependOnItemNotConfig" + // 账号工厂批量应用基线的账号数量超过限制 FAILEDOPERATION_ACCOUNTFACTORYMEMBERUINNUMEXCEED = "FailedOperation.AccountFactoryMemberUinNumExceed" @@ -38,6 +47,12 @@ const ( // 远程调用失败 FAILEDOPERATION_REMOTECALLERROR = "FailedOperation.RemoteCallError" + // 基线项预设标签数量超过最大数量 + INVALIDPARAMETER_ACCOUNTFACTORYTAGEXCEEDMAXNUM = "InvalidParameter.AccountFactoryTagExceedMaxNum" + + // 入参校验错误 + INVALIDPARAMETER_PARAMERROR = "InvalidParameter.ParamError" + // 用户基线配置数据不存在 RESOURCENOTFOUND_ACCOUNTFACTORYBASELINENOTEXIST = "ResourceNotFound.AccountFactoryBaselineNotExist" diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter/v20230110/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter/v20230110/models.go index d1f306cf0c..160785748d 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter/v20230110/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter/v20230110/models.go @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2018 THL A29 Limited, a Tencent company. All Rights Reserved. +// Copyright (c) 2017-2025 Tencent. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,16 +20,86 @@ import ( "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/json" ) +type AccountFactoryItem struct { + // 账号工厂基线项唯一标识,只能包含英文字母、数字和@、,._[]-:()()【】+=,。,长度2-128个字符。 + Identifier *string `json:"Identifier,omitnil,omitempty" name:"Identifier"` + + // 基线项名称,功能项名字唯一,仅支持英文字母、数宇、汉字、符号@、&_[]-的组合,1-25个中文或英文字符。 + Name *string `json:"Name,omitnil,omitempty" name:"Name"` + + // 基线项英文名称,基线项名字唯一,仅支持英文字母、数字、空格、符号@、&_[]-的组合,1-64个英文字符。 + NameEn *string `json:"NameEn,omitnil,omitempty" name:"NameEn"` + + // 基线项权重,数值小权重越高,取值范围大于等于0。 + Weight *int64 `json:"Weight,omitnil,omitempty" name:"Weight"` + + // 基线项是否必填,1必填,0非必填 + Required *int64 `json:"Required,omitnil,omitempty" name:"Required"` + + // 基线项依赖项,N的取值范围与该基线项依赖的其它基线项个数有关。 + DependsOn []*DependsOnItem `json:"DependsOn,omitnil,omitempty" name:"DependsOn"` + + // 基线描述,长度为2~256个英文或中文字符,默认值为空。 + Description *string `json:"Description,omitnil,omitempty" name:"Description"` + + // 基线项英文描述,长度为2~1024个英文字符,默认值为空。 + DescriptionEn *string `json:"DescriptionEn,omitnil,omitempty" name:"DescriptionEn"` + + // 基线分类,长度为2~32个英文或中文字符,不能为空。 + Classify *string `json:"Classify,omitnil,omitempty" name:"Classify"` + + // 基线英文分类,长度为2~64个英文字符,不能为空。 + ClassifyEn *string `json:"ClassifyEn,omitnil,omitempty" name:"ClassifyEn"` +} + type BaselineConfigItem struct { // 账号工厂基线项唯一标识,只能包含英文字母、数字和@、,._[]-:()()【】+=,。,长度2-128个字符。 - // 注意:此字段可能返回 null,表示取不到有效值。 Identifier *string `json:"Identifier,omitnil,omitempty" name:"Identifier"` // 账号工厂基线项配置,不同基线项配置参数不同。 - // 注意:此字段可能返回 null,表示取不到有效值。 Configuration *string `json:"Configuration,omitnil,omitempty" name:"Configuration"` } +type BaselineInfoItem struct { + // 账号工厂基线项唯一标识,只能包含英文字母、数字和@、,._[]-:()()【】+=,。,长度2-128个字符。 + Identifier *string `json:"Identifier,omitnil,omitempty" name:"Identifier"` + + // 账号工厂基线项配置,不同的基线项配置参数不同。 + Configuration *string `json:"Configuration,omitnil,omitempty" name:"Configuration"` + + // 基线应用的账号数量。 + ApplyCount *int64 `json:"ApplyCount,omitnil,omitempty" name:"ApplyCount"` +} + +type BaselineStepTaskInfo struct { + // 任务唯一Id,只能包含英文字母、数字,是16个字符的随机字符串。 + TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"` + + // 基线功能项唯一标识,只能包含英文字母、数字和@、,._[]-:()()【】+=,。,长度2-128个字符。 + Identifier *string `json:"Identifier,omitnil,omitempty" name:"Identifier"` + + // 被应用基线项的成员账号uin + MemberUin *int64 `json:"MemberUin,omitnil,omitempty" name:"MemberUin"` + + // 基线项应用的状态,Running表示基线项应用中,Success表示基线项应用成功,Failed表示基线项应用失败,Pending表示基线项待应用,Skipped表示基线项被跳过 + Status *string `json:"Status,omitnil,omitempty" name:"Status"` + + // 错误码 + ErrCode *string `json:"ErrCode,omitnil,omitempty" name:"ErrCode"` + + // 错误信息 + ErrMessage *string `json:"ErrMessage,omitnil,omitempty" name:"ErrMessage"` + + // 基线项部署输出 + Output *string `json:"Output,omitnil,omitempty" name:"Output"` + + // 创建时间,按照ISO8601标准表示,格式为yyyy-MM-dd hh:mm:ss。 + CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"` + + // 更新时间,按照ISO8601标准表示,格式为yyyy-MM-dd hh:mm:ss。 + UpdateTime *string `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"` +} + // Predefined struct for user type BatchApplyAccountBaselinesRequestParams struct { // 成员账号uin,也是被应用基线的账号uin。 @@ -89,4 +159,280 @@ func (r *BatchApplyAccountBaselinesResponse) ToJsonString() string { // because it has no param check, nor strict type check func (r *BatchApplyAccountBaselinesResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) +} + +type DependsOnItem struct { + // 依赖项类型,只有LandingZoneSetUp或AccountFactorySetUp。LandingZoneSetUp表示landingZone的依赖项;AccountFactorySetUp表示账号工厂的依赖项 + Type *string `json:"Type,omitnil,omitempty" name:"Type"` + + // 功能项唯一标识,只能包含英文字母、数字和@、,._[]-:()()【】+=,。,长度2-128个字符。 + Identifier *string `json:"Identifier,omitnil,omitempty" name:"Identifier"` +} + +// Predefined struct for user +type GetAccountFactoryBaselineRequestParams struct { + +} + +type GetAccountFactoryBaselineRequest struct { + *tchttp.BaseRequest + +} + +func (r *GetAccountFactoryBaselineRequest) 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 *GetAccountFactoryBaselineRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "GetAccountFactoryBaselineRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type GetAccountFactoryBaselineResponseParams struct { + // 资源所属主账号uin。 + OwnerUin *int64 `json:"OwnerUin,omitnil,omitempty" name:"OwnerUin"` + + // 基线项名称,基线项名字唯一,仅支持英文字母、数宇、汉字、符号@、&_[]-的组合,1-25个中文或英文字符。 + Name *string `json:"Name,omitnil,omitempty" name:"Name"` + + // 基线项配置列表。 + BaselineConfigItems []*BaselineInfoItem `json:"BaselineConfigItems,omitnil,omitempty" name:"BaselineConfigItems"` + + // 创建时间,按照ISO8601标准表示,格式为yyyy-MM-dd hh:mm:ss。 + CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"` + + // 更新时间,按照ISO8601标准表示,格式为yyyy-MM-dd hh:mm:ss。 + UpdateTime *string `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type GetAccountFactoryBaselineResponse struct { + *tchttp.BaseResponse + Response *GetAccountFactoryBaselineResponseParams `json:"Response"` +} + +func (r *GetAccountFactoryBaselineResponse) 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 *GetAccountFactoryBaselineResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type ListAccountFactoryBaselineItemsRequestParams struct { + // 返回记录最大数目,取值范围0~200。 + Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` + + // 偏移量,取值范围大于等于0。 + Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` +} + +type ListAccountFactoryBaselineItemsRequest struct { + *tchttp.BaseRequest + + // 返回记录最大数目,取值范围0~200。 + Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` + + // 偏移量,取值范围大于等于0。 + Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` +} + +func (r *ListAccountFactoryBaselineItemsRequest) 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 *ListAccountFactoryBaselineItemsRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "Limit") + delete(f, "Offset") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ListAccountFactoryBaselineItemsRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type ListAccountFactoryBaselineItemsResponseParams struct { + // 账号工厂基线列表。 + BaselineItems []*AccountFactoryItem `json:"BaselineItems,omitnil,omitempty" name:"BaselineItems"` + + // 总数。 + Total *int64 `json:"Total,omitnil,omitempty" name:"Total"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type ListAccountFactoryBaselineItemsResponse struct { + *tchttp.BaseResponse + Response *ListAccountFactoryBaselineItemsResponseParams `json:"Response"` +} + +func (r *ListAccountFactoryBaselineItemsResponse) 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 *ListAccountFactoryBaselineItemsResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type ListDeployStepTasksRequestParams struct { + // 功能项唯一标识,只能包含英文字母、数字和@、,._[]-:()()【】+=,。,长度2-128个字符。 + Identifier *string `json:"Identifier,omitnil,omitempty" name:"Identifier"` + + // 返回记录最大数目,取值范围0~200。 + Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` + + // 偏移量,取值范围大于等于0。 + Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` +} + +type ListDeployStepTasksRequest struct { + *tchttp.BaseRequest + + // 功能项唯一标识,只能包含英文字母、数字和@、,._[]-:()()【】+=,。,长度2-128个字符。 + Identifier *string `json:"Identifier,omitnil,omitempty" name:"Identifier"` + + // 返回记录最大数目,取值范围0~200。 + Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` + + // 偏移量,取值范围大于等于0。 + Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` +} + +func (r *ListDeployStepTasksRequest) 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 *ListDeployStepTasksRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "Identifier") + delete(f, "Limit") + delete(f, "Offset") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ListDeployStepTasksRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type ListDeployStepTasksResponseParams struct { + // 账号工厂基线功能项应用信息列表。 + BaselineDeployStepTaskList []*BaselineStepTaskInfo `json:"BaselineDeployStepTaskList,omitnil,omitempty" name:"BaselineDeployStepTaskList"` + + // 总数。 + Total *int64 `json:"Total,omitnil,omitempty" name:"Total"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type ListDeployStepTasksResponse struct { + *tchttp.BaseResponse + Response *ListDeployStepTasksResponseParams `json:"Response"` +} + +func (r *ListDeployStepTasksResponse) 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 *ListDeployStepTasksResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type UpdateAccountFactoryBaselineRequestParams struct { + // 基线名称,基线名字唯一,仅支持英文字母、数宇、汉字、符号@、&_[]-的组合,1-25个中文或英文字符。 + Name *string `json:"Name,omitnil,omitempty" name:"Name"` + + // 基线配置,覆盖更新。可以通过controlcenter:GetAccountFactoryBaseline查询现有基线配置。可以通过controlcenter:ListAccountFactoryBaselineItems查询支持的基线列表。 + BaselineConfigItems []*BaselineConfigItem `json:"BaselineConfigItems,omitnil,omitempty" name:"BaselineConfigItems"` +} + +type UpdateAccountFactoryBaselineRequest struct { + *tchttp.BaseRequest + + // 基线名称,基线名字唯一,仅支持英文字母、数宇、汉字、符号@、&_[]-的组合,1-25个中文或英文字符。 + Name *string `json:"Name,omitnil,omitempty" name:"Name"` + + // 基线配置,覆盖更新。可以通过controlcenter:GetAccountFactoryBaseline查询现有基线配置。可以通过controlcenter:ListAccountFactoryBaselineItems查询支持的基线列表。 + BaselineConfigItems []*BaselineConfigItem `json:"BaselineConfigItems,omitnil,omitempty" name:"BaselineConfigItems"` +} + +func (r *UpdateAccountFactoryBaselineRequest) 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 *UpdateAccountFactoryBaselineRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "Name") + delete(f, "BaselineConfigItems") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "UpdateAccountFactoryBaselineRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type UpdateAccountFactoryBaselineResponseParams struct { + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type UpdateAccountFactoryBaselineResponse struct { + *tchttp.BaseResponse + Response *UpdateAccountFactoryBaselineResponseParams `json:"Response"` +} + +func (r *UpdateAccountFactoryBaselineResponse) 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 *UpdateAccountFactoryBaselineResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) } \ No newline at end of file diff --git a/vendor/modules.txt b/vendor/modules.txt index 14df6facf7..2a7cf40306 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1178,7 +1178,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/json github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/regions -# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993 +# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.1.51 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter/v20230110 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 diff --git a/website/docs/d/controlcenter_account_factory_baseline_items.html.markdown b/website/docs/d/controlcenter_account_factory_baseline_items.html.markdown new file mode 100644 index 0000000000..3846de9e45 --- /dev/null +++ b/website/docs/d/controlcenter_account_factory_baseline_items.html.markdown @@ -0,0 +1,44 @@ +--- +subcategory: "ControlCenter" +layout: "tencentcloud" +page_title: "TencentCloud: tencentcloud_controlcenter_account_factory_baseline_items" +sidebar_current: "docs-tencentcloud-datasource-controlcenter_account_factory_baseline_items" +description: |- + Use this data source to query detailed information of Controlcenter account factory baseline items +--- + +# tencentcloud_controlcenter_account_factory_baseline_items + +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" {} +``` + +## Argument Reference + +The following arguments are supported: + +* `result_output_file` - (Optional, String) Used to save results. + +## Attributes Reference + +In addition to all arguments above, the following attributes are exported: + +* `baseline_items` - Account factory baseline list. + * `classify_en` - Baseline english classification, with a length of 2-64 english characters. cannot be empty. + * `classify` - Baseline classification. length: 2-32 english or chinese characters. values cannot be empty. + * `depends_on` - Baseline item dependency. value range of N depends on the count of other baseline items it relies on. + * `identifier` - Specifies the unique identifier for the feature item, can only contain `english letters`, `digits`, and `@,._[]-:()()[]+=.`, with a length of 2-128 characters. + * `type` - Dependency type. valid values: LandingZoneSetUp or AccountFactorySetUp. LandingZoneSetUp refers to the dependency of landingZone. AccountFactorySetUp refers to the dependency of account factory. + * `description_en` - Baseline item english description, with a length of 2 to 1024 english characters. it is empty by default. + * `description` - Baseline description, with a length of 2 to 256 english or chinese characters. it is empty by default. + * `identifier` - Specifies the unique identifier for account factory baseline item, can only contain `english letters`, `digits`, and `@,._[]-:()()[]+=.`, with a length of 2-128 characters. + * `name_en` - 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. + * `name` - 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. + * `required` - Specifies whether the baseline item is required (1: required; 0: optional). + * `weight` - Baseline item weight. the smaller the value, the higher the weight. value range equal to or greater than 0. + + diff --git a/website/docs/r/batch_apply_account_baselines.html.markdown b/website/docs/r/batch_apply_account_baselines.html.markdown index 606dfedfc7..63b3f76fa1 100644 --- a/website/docs/r/batch_apply_account_baselines.html.markdown +++ b/website/docs/r/batch_apply_account_baselines.html.markdown @@ -4,12 +4,12 @@ layout: "tencentcloud" page_title: "TencentCloud: tencentcloud_batch_apply_account_baselines" sidebar_current: "docs-tencentcloud-resource-batch_apply_account_baselines" description: |- - Provides a resource to create a controlcenter batch apply account baselines + Provides a resource to create a Controlcenter batch apply account baselines --- # tencentcloud_batch_apply_account_baselines -Provides a resource to create a controlcenter batch apply account baselines +Provides a resource to create a Controlcenter batch apply account baselines ## Example Usage diff --git a/website/docs/r/controlcenter_account_factory_baseline_config.html.markdown b/website/docs/r/controlcenter_account_factory_baseline_config.html.markdown new file mode 100644 index 0000000000..958fd98aff --- /dev/null +++ b/website/docs/r/controlcenter_account_factory_baseline_config.html.markdown @@ -0,0 +1,71 @@ +--- +subcategory: "ControlCenter" +layout: "tencentcloud" +page_title: "TencentCloud: tencentcloud_controlcenter_account_factory_baseline_config" +sidebar_current: "docs-tencentcloud-resource-controlcenter_account_factory_baseline_config" +description: |- + Provides a resource to create a Controlcenter account factory baseline config +--- + +# tencentcloud_controlcenter_account_factory_baseline_config + +Provides a resource to create a Controlcenter account factory baseline config + +## Example Usage + +```hcl +resource "tencentcloud_controlcenter_account_factory_baseline_config" "example" { + name = "default" + baseline_config_items { + identifier = "TCC-AF_VPC_SUBNET" + configuration = jsonencode({ + "VpcName" : "tf-example", + "CidrBlock" : "10.0.0.0/16", + "Region" : "1", + "RegionName" : "ap-guangzhou", + "Subnets" : [ + { + "CidrBlock" : "10.0.0.0/24", + "SubnetName" : "abc", + "Zone" : "ap-guangzhou-6" + } + ] + }) + } + + baseline_config_items { + identifier = "TCC-AF_PRESET_TAG" + configuration = "{\"TagValuePairs\":[{\"Key\":\"key\",\"Values\":[\"value\"]}]}" + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `name` - (Required, String) Baseline name, which must be unique. Supports only English letters, numbers, Chinese characters, and symbols @, &, _, [], -. Combination of 1-25 Chinese or English characters. +* `baseline_config_items` - (Optional, Set) Baseline configuration, overwrite update. You can query existing baseline configurations via controlcenter:GetAccountFactoryBaseline. You can query supported baseline lists via controlcenter:ListAccountFactoryBaselineItems. + +The `baseline_config_items` object supports the following: + +* `configuration` - (Optional, String) Account factory baseline item configuration, different baseline items have different configuration parameters. +* `identifier` - (Optional, String) Specifies the unique identifier for account factory baseline item, can only contain `english letters`, `digits`, and `@,._[]-:()()[]+=.`, with a length of 2-128 characters. + +## Attributes Reference + +In addition to all arguments above, the following attributes are exported: + +* `id` - ID of the resource. +* `create_time` - Creation time. +* `update_time` - Update time. + + +## Import + +Controlcenter account factory baseline config can be imported using the customId(like uuid or base64 string), e.g. + +``` +terraform import tencentcloud_controlcenter_account_factory_baseline_config.example nMtrLC9IuQq27wyiICj9bA== +``` + diff --git a/website/tencentcloud.erb b/website/tencentcloud.erb index 99fd6af9f2..853d019fee 100644 --- a/website/tencentcloud.erb +++ b/website/tencentcloud.erb @@ -2129,13 +2129,23 @@
  • ControlCenter