From d30b00a256732c21bd676b76d36bc8ad8078ab9d Mon Sep 17 00:00:00 2001 From: arunma Date: Thu, 9 Jan 2025 15:21:49 +0800 Subject: [PATCH 1/6] feat(postgresql): [120953562]support pgsql time window --- go.mod | 4 +- go.sum | 4 + tencentcloud/provider.go | 1 + tencentcloud/provider.md | 1 + .../resource_tc_postgresql_time_window.go | 177 ++++++++++++++++++ .../resource_tc_postgresql_time_window.md | 28 +++ ...rce_tc_postgresql_time_window_extension.go | 1 + ...resource_tc_postgresql_time_window_test.go | 79 ++++++++ .../service_tencentcloud_postgresql.go | 31 +++ .../tencentcloud/common/http/request.go | 2 +- .../tencentcloud/postgres/v20170312/client.go | 136 ++++++++++++++ .../tencentcloud/postgres/v20170312/models.go | 145 +++++++++++++- vendor/modules.txt | 4 +- .../r/postgresql_time_window.html.markdown | 57 ++++++ website/tencentcloud.erb | 3 + 15 files changed, 666 insertions(+), 7 deletions(-) create mode 100644 tencentcloud/services/postgresql/resource_tc_postgresql_time_window.go create mode 100644 tencentcloud/services/postgresql/resource_tc_postgresql_time_window.md create mode 100644 tencentcloud/services/postgresql/resource_tc_postgresql_time_window_extension.go create mode 100644 tencentcloud/services/postgresql/resource_tc_postgresql_time_window_test.go create mode 100644 website/docs/r/postgresql_time_window.html.markdown diff --git a/go.mod b/go.mod index ba65f87edf..f160b2d13a 100644 --- a/go.mod +++ b/go.mod @@ -46,7 +46,7 @@ require ( github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1034 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1046 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1073 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1078 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1053 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.1058 @@ -70,7 +70,7 @@ require ( github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.1066 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.853 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.1038 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1010 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1078 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.1038 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/pts v1.0.762 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.1008 diff --git a/go.sum b/go.sum index 8c31b6a4d8..828386d9fe 100644 --- a/go.sum +++ b/go.sum @@ -953,6 +953,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1072 h1:zoo github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1072/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1073 h1:AWEtNWRQwIh9xJVarhhTB3h1CglBV5a0pMI9pvQvZ60= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1073/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1078 h1:6dDx6ePLVKl39noLeqVO22A1xPoTRXcVkQ3rW9WlnXA= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1078/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/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU= @@ -1019,6 +1021,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.1038 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.1038/go.mod h1:ZcauOIKWXstNwe6IlD3iBBxzljEWdQjZbTc6PfwsPxQ= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1010 h1:lx554ZfB++mge+/Gk7LnDUI5Dwm9r+DgGNN9C/DqhE4= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1010/go.mod h1:GGhAf2ehV2/jwKf3Sezr2x/soJ3nDuefJFlcoZnlflA= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1078 h1:kTV4aJ8RcA7fv1vrxSw4wCcGJeur5ZFm+TZr/LB8kkI= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1078/go.mod h1:jssFHFM6jTndhOiW0bGKJ8J6QymvWbKKSTCfuOaZw18= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.1038 h1:4rzyVxkDB27v73jDXPr5eGAwjN859R7SsqniCt+46XE= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.1038/go.mod h1:TAHhxxDVV36Pe4P4Gel3dgX4kHUfQO7f27GzRf8DAro= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/pts v1.0.762 h1:rZDKucVVtTnmnbZFDyh6t47dHswkb2oSuOxOHTTkygA= diff --git a/tencentcloud/provider.go b/tencentcloud/provider.go index b669f8f273..aaf32a0204 100644 --- a/tencentcloud/provider.go +++ b/tencentcloud/provider.go @@ -1548,6 +1548,7 @@ func Provider() *schema.Provider { "tencentcloud_postgresql_account_privileges_operation": postgresql.ResourceTencentCloudPostgresqlAccountPrivilegesOperation(), "tencentcloud_postgresql_apply_parameter_template_operation": postgresql.ResourceTencentCloudPostgresqlApplyParameterTemplateOperation(), "tencentcloud_postgresql_clone_db_instance": postgresql.ResourceTencentCloudPostgresqlCloneDbInstance(), + "tencentcloud_postgresql_time_window": postgresql.ResourceTencentCloudPostgresqlTimeWindow(), "tencentcloud_sqlserver_instance": sqlserver.ResourceTencentCloudSqlserverInstance(), "tencentcloud_sqlserver_db": sqlserver.ResourceTencentCloudSqlserverDB(), "tencentcloud_sqlserver_account": sqlserver.ResourceTencentCloudSqlserverAccount(), diff --git a/tencentcloud/provider.md b/tencentcloud/provider.md index 2a3c3d9aeb..fdabb3f486 100644 --- a/tencentcloud/provider.md +++ b/tencentcloud/provider.md @@ -909,6 +909,7 @@ TencentDB for PostgreSQL(PostgreSQL) tencentcloud_postgresql_account tencentcloud_postgresql_apply_parameter_template_operation tencentcloud_postgresql_clone_db_instance + tencentcloud_postgresql_time_window TencentDB for Redis(crs) Data Source diff --git a/tencentcloud/services/postgresql/resource_tc_postgresql_time_window.go b/tencentcloud/services/postgresql/resource_tc_postgresql_time_window.go new file mode 100644 index 0000000000..f0ba8ba898 --- /dev/null +++ b/tencentcloud/services/postgresql/resource_tc_postgresql_time_window.go @@ -0,0 +1,177 @@ +// Code generated by iacg; DO NOT EDIT. +package postgresql + +import ( + "context" + "log" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + postgresv20170312 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres/v20170312" + tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common" + "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper" +) + +func ResourceTencentCloudPostgresqlTimeWindow() *schema.Resource { + return &schema.Resource{ + Create: resourceTencentCloudPostgresqlTimeWindowCreate, + Read: resourceTencentCloudPostgresqlTimeWindowRead, + Update: resourceTencentCloudPostgresqlTimeWindowUpdate, + Delete: resourceTencentCloudPostgresqlTimeWindowDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Schema: map[string]*schema.Schema{ + "db_instance_id": { + Type: schema.TypeString, + Required: true, + Description: "Instance id.", + }, + + "maintain_start_time": { + Type: schema.TypeString, + Optional: true, + Description: "Maintenance start time. Time zone is UTC+8.", + }, + + "maintain_duration": { + Type: schema.TypeInt, + Optional: true, + Description: "Maintenance duration, Unit: hours.", + }, + + "maintain_week_days": { + Type: schema.TypeSet, + Optional: true, + Description: "Maintenance cycle.", + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + }, + } +} + +func resourceTencentCloudPostgresqlTimeWindowCreate(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_postgresql_time_window.create")() + defer tccommon.InconsistentCheck(d, meta)() + + var ( + dBInstanceId string + ) + if v, ok := d.GetOk("db_instance_id"); ok { + dBInstanceId = v.(string) + } + + d.SetId(dBInstanceId) + + return resourceTencentCloudPostgresqlTimeWindowUpdate(d, meta) +} + +func resourceTencentCloudPostgresqlTimeWindowRead(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_postgresql_time_window.read")() + defer tccommon.InconsistentCheck(d, meta)() + + logId := tccommon.GetLogId(tccommon.ContextNil) + + ctx := tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta) + + service := PostgresqlService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()} + + dBInstanceId := d.Id() + + _ = d.Set("db_instance_id", dBInstanceId) + + respData, err := service.DescribePostgresqlTimeWindowById(ctx, dBInstanceId) + if err != nil { + return err + } + + if respData == nil { + d.SetId("") + log.Printf("[WARN]%s resource `postgresql_time_window` [%s] not found, please check if it has been deleted.\n", logId, d.Id()) + return nil + } + if respData.DBInstanceId != nil { + _ = d.Set("db_instance_id", respData.DBInstanceId) + } + + if respData.MaintainStartTime != nil { + _ = d.Set("maintain_start_time", respData.MaintainStartTime) + } + + if respData.MaintainDuration != nil { + _ = d.Set("maintain_duration", respData.MaintainDuration) + } + + if respData.MaintainWeekDays != nil { + _ = d.Set("maintain_week_days", respData.MaintainWeekDays) + } + + return nil +} + +func resourceTencentCloudPostgresqlTimeWindowUpdate(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_postgresql_time_window.update")() + defer tccommon.InconsistentCheck(d, meta)() + + logId := tccommon.GetLogId(tccommon.ContextNil) + + ctx := tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta) + + dBInstanceId := d.Id() + + needChange := false + mutableArgs := []string{"maintain_start_time", "maintain_duration", "maintain_week_days"} + for _, v := range mutableArgs { + if d.HasChange(v) { + needChange = true + break + } + } + + if needChange { + request := postgresv20170312.NewModifyMaintainTimeWindowRequest() + + request.DBInstanceId = helper.String(dBInstanceId) + + if v, ok := d.GetOk("maintain_start_time"); ok { + request.MaintainStartTime = helper.String(v.(string)) + } + + if v, ok := d.GetOkExists("maintain_duration"); ok { + request.MaintainDuration = helper.IntUint64(v.(int)) + } + + if v, ok := d.GetOk("maintain_week_days"); ok { + maintainWeekDaysSet := v.(*schema.Set).List() + for i := range maintainWeekDaysSet { + maintainWeekDays := maintainWeekDaysSet[i].(string) + request.MaintainWeekDays = append(request.MaintainWeekDays, helper.String(maintainWeekDays)) + } + } + + reqErr := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UsePostgresV20170312Client().ModifyMaintainTimeWindowWithContext(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 postgresql time window failed, reason:%+v", logId, reqErr) + return reqErr + } + } + + return resourceTencentCloudPostgresqlTimeWindowRead(d, meta) +} + +func resourceTencentCloudPostgresqlTimeWindowDelete(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_postgresql_time_window.delete")() + defer tccommon.InconsistentCheck(d, meta)() + + return nil +} diff --git a/tencentcloud/services/postgresql/resource_tc_postgresql_time_window.md b/tencentcloud/services/postgresql/resource_tc_postgresql_time_window.md new file mode 100644 index 0000000000..bcf42f7f98 --- /dev/null +++ b/tencentcloud/services/postgresql/resource_tc_postgresql_time_window.md @@ -0,0 +1,28 @@ +Provides a resource to create a postgres postgresql_time_window + +Example Usage + +```hcl +resource "tencentcloud_postgresql_time_window" "postgresql_time_window" { + db_instance_id = "postgres-45b0vlmr" + maintain_duration = 2 + maintain_start_time = "04:00" + maintain_week_days = [ + "friday", + "monday", + "saturday", + "sunday", + "thursday", + "tuesday", + "wednesday", + ] +} +``` + +Import + +postgres postgresql_time_window can be imported using the id, e.g. + +``` +terraform import tencentcloud_postgresql_time_window.postgresql_time_window instance_id +``` diff --git a/tencentcloud/services/postgresql/resource_tc_postgresql_time_window_extension.go b/tencentcloud/services/postgresql/resource_tc_postgresql_time_window_extension.go new file mode 100644 index 0000000000..4e9a54a3ce --- /dev/null +++ b/tencentcloud/services/postgresql/resource_tc_postgresql_time_window_extension.go @@ -0,0 +1 @@ +package postgresql diff --git a/tencentcloud/services/postgresql/resource_tc_postgresql_time_window_test.go b/tencentcloud/services/postgresql/resource_tc_postgresql_time_window_test.go new file mode 100644 index 0000000000..39d2e9346e --- /dev/null +++ b/tencentcloud/services/postgresql/resource_tc_postgresql_time_window_test.go @@ -0,0 +1,79 @@ +package postgresql_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest" +) + +func TestAccTencentCloudPostgresqlTimeWindowResource_basic(t *testing.T) { + t.Parallel() + resource.Test(t, resource.TestCase{ + PreCheck: func() { + tcacctest.AccPreCheck(t) + }, + Providers: tcacctest.AccProviders, + Steps: []resource.TestStep{ + { + Config: testAccPostgresqlTimeWindow, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("tencentcloud_postgresql_time_window.postgresql_time_window", "id"), + resource.TestCheckResourceAttr("tencentcloud_postgresql_time_window.postgresql_time_window", "maintain_duration", "2"), + resource.TestCheckResourceAttr("tencentcloud_postgresql_time_window.postgresql_time_window", "maintain_start_time", "04:00"), + resource.TestCheckResourceAttr("tencentcloud_postgresql_time_window.postgresql_time_window", "maintain_week_days.#", "7"), + ), + }, + { + ResourceName: "tencentcloud_postgresql_time_window.postgresql_time_window", + ImportState: true, + ImportStateVerify: true, + }, + + { + Config: testAccPostgresqlTimeWindowUp, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("tencentcloud_postgresql_time_window.postgresql_time_window", "id"), + resource.TestCheckResourceAttr("tencentcloud_postgresql_time_window.postgresql_time_window", "maintain_duration", "3"), + resource.TestCheckResourceAttr("tencentcloud_postgresql_time_window.postgresql_time_window", "maintain_start_time", "05:00"), + resource.TestCheckResourceAttr("tencentcloud_postgresql_time_window.postgresql_time_window", "maintain_week_days.#", "6"), + ), + }, + }, + }) +} + +const testAccPostgresqlTimeWindow = testAccPostgresqlInstance + ` + +resource "tencentcloud_postgresql_time_window" "postgresql_time_window" { + db_instance_id = tencentcloud_postgresql_instance.test.id + maintain_duration = 2 + maintain_start_time = "04:00" + maintain_week_days = [ + "friday", + "monday", + "saturday", + "sunday", + "thursday", + "tuesday", + "wednesday", + ] +} +` + +const testAccPostgresqlTimeWindowUp = testAccPostgresqlInstance + ` + +resource "tencentcloud_postgresql_time_window" "postgresql_time_window" { + db_instance_id = tencentcloud_postgresql_instance.test.id + maintain_duration = 3 + maintain_start_time = "05:00" + maintain_week_days = [ + "friday", + "monday", + "saturday", + "sunday", + "thursday", + "tuesday", + ] +} +` diff --git a/tencentcloud/services/postgresql/service_tencentcloud_postgresql.go b/tencentcloud/services/postgresql/service_tencentcloud_postgresql.go index 38b6d4e2b9..3a7b19a4c2 100644 --- a/tencentcloud/services/postgresql/service_tencentcloud_postgresql.go +++ b/tencentcloud/services/postgresql/service_tencentcloud_postgresql.go @@ -13,6 +13,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" sdkErrors "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors" postgresql "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres/v20170312" + postgresv20170312 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres/v20170312" "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/connectivity" "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper" @@ -2186,3 +2187,33 @@ func (me *PostgresqlService) DescribePostgresqlDedicatedClustersByFilter(ctx con ret = response.Response.DedicatedClusterSet return } + +func (me *PostgresqlService) DescribePostgresqlTimeWindowById(ctx context.Context, dBInstanceId string) (ret *postgresv20170312.DescribeMaintainTimeWindowResponseParams, errRet error) { + logId := tccommon.GetLogId(ctx) + + request := postgresv20170312.NewDescribeMaintainTimeWindowRequest() + response := postgresv20170312.NewDescribeMaintainTimeWindowResponse() + request.DBInstanceId = helper.String(dBInstanceId) + + defer func() { + if errRet != nil { + log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error()) + } + }() + + ratelimit.Check(request.GetAction()) + + errRet = resource.Retry(3*tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := me.client.UsePostgresV20170312Client().DescribeMaintainTimeWindow(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(), response.ToJsonString()) + } + response = result + return nil + }) + + ret = response.Response + return +} diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go index 87b5d14530..a3935141ca 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go @@ -265,7 +265,7 @@ func CompleteCommonParams(request Request, region string, requestClient string) params["Action"] = request.GetAction() params["Timestamp"] = strconv.FormatInt(time.Now().Unix(), 10) params["Nonce"] = strconv.Itoa(rand.Int()) - params["RequestClient"] = "SDK_GO_1.0.1073" + params["RequestClient"] = "SDK_GO_1.0.1078" if requestClient != "" { params["RequestClient"] += ": " + requestClient } diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres/v20170312/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres/v20170312/client.go index 90f0aeee57..e6517ed1cf 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres/v20170312/client.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres/v20170312/client.go @@ -167,6 +167,7 @@ func NewCloneDBInstanceResponse() (response *CloneDBInstanceResponse) { // FAILEDOPERATION_CAMSIGANDAUTHERROR = "FailedOperation.CamSigAndAuthError" // FAILEDOPERATION_CDBCGWCONNECTERROR = "FailedOperation.CdbCgwConnectError" // FAILEDOPERATION_DATABASEACCESSERROR = "FailedOperation.DatabaseAccessError" +// FAILEDOPERATION_DATABASEAFFECTEDERROR = "FailedOperation.DatabaseAffectedError" // FAILEDOPERATION_FAILEDOPERATIONERROR = "FailedOperation.FailedOperationError" // FAILEDOPERATION_GETSUBNETERROR = "FailedOperation.GetSubnetError" // FAILEDOPERATION_GETVPCINFOERROR = "FailedOperation.GetVpcInfoError" @@ -174,6 +175,7 @@ func NewCloneDBInstanceResponse() (response *CloneDBInstanceResponse) { // FAILEDOPERATION_QUERYVPCFAILED = "FailedOperation.QueryVpcFailed" // FAILEDOPERATION_QUERYVPCFALIED = "FailedOperation.QueryVpcFalied" // INTERNALERROR_INTERNALHTTPSERVERERROR = "InternalError.InternalHttpServerError" +// INTERNALERROR_JSONPARSEERROR = "InternalError.JsonParseError" // INVALIDPARAMETER_PARAMETERCHECKERROR = "InvalidParameter.ParameterCheckError" // INVALIDPARAMETERVALUE_ILLEGALPROJECTID = "InvalidParameterValue.IllegalProjectId" // INVALIDPARAMETERVALUE_ILLEGALREGION = "InvalidParameterValue.IllegalRegion" @@ -197,6 +199,7 @@ func (c *Client) CloneDBInstance(request *CloneDBInstanceRequest) (response *Clo // FAILEDOPERATION_CAMSIGANDAUTHERROR = "FailedOperation.CamSigAndAuthError" // FAILEDOPERATION_CDBCGWCONNECTERROR = "FailedOperation.CdbCgwConnectError" // FAILEDOPERATION_DATABASEACCESSERROR = "FailedOperation.DatabaseAccessError" +// FAILEDOPERATION_DATABASEAFFECTEDERROR = "FailedOperation.DatabaseAffectedError" // FAILEDOPERATION_FAILEDOPERATIONERROR = "FailedOperation.FailedOperationError" // FAILEDOPERATION_GETSUBNETERROR = "FailedOperation.GetSubnetError" // FAILEDOPERATION_GETVPCINFOERROR = "FailedOperation.GetVpcInfoError" @@ -204,6 +207,7 @@ func (c *Client) CloneDBInstance(request *CloneDBInstanceRequest) (response *Clo // FAILEDOPERATION_QUERYVPCFAILED = "FailedOperation.QueryVpcFailed" // FAILEDOPERATION_QUERYVPCFALIED = "FailedOperation.QueryVpcFalied" // INTERNALERROR_INTERNALHTTPSERVERERROR = "InternalError.InternalHttpServerError" +// INTERNALERROR_JSONPARSEERROR = "InternalError.JsonParseError" // INVALIDPARAMETER_PARAMETERCHECKERROR = "InvalidParameter.ParameterCheckError" // INVALIDPARAMETERVALUE_ILLEGALPROJECTID = "InvalidParameterValue.IllegalProjectId" // INVALIDPARAMETERVALUE_ILLEGALREGION = "InvalidParameterValue.IllegalRegion" @@ -4113,6 +4117,75 @@ func (c *Client) DescribeLogBackupsWithContext(ctx context.Context, request *Des return } +func NewDescribeMaintainTimeWindowRequest() (request *DescribeMaintainTimeWindowRequest) { + request = &DescribeMaintainTimeWindowRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("postgres", APIVersion, "DescribeMaintainTimeWindow") + + + return +} + +func NewDescribeMaintainTimeWindowResponse() (response *DescribeMaintainTimeWindowResponse) { + response = &DescribeMaintainTimeWindowResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// DescribeMaintainTimeWindow +// 本接口 (DescribeMaintainTimeWindow) 用于查询实例的维护时间窗口 +// +// 可能返回的错误码: +// FAILEDOPERATION_CAMSIGANDAUTHERROR = "FailedOperation.CamSigAndAuthError" +// FAILEDOPERATION_DATABASEACCESSERROR = "FailedOperation.DatabaseAccessError" +// FAILEDOPERATION_DATABASEAFFECTEDERROR = "FailedOperation.DatabaseAffectedError" +// FAILEDOPERATION_FAILEDOPERATIONERROR = "FailedOperation.FailedOperationError" +// INTERNALERROR_INTERNALHTTPSERVERERROR = "InternalError.InternalHttpServerError" +// INVALIDPARAMETER_PARAMETERCHECKERROR = "InvalidParameter.ParameterCheckError" +// INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUEERROR = "InvalidParameterValue.InvalidParameterValueError" +// OPERATIONDENIED_CAMDENIEDERROR = "OperationDenied.CamDeniedError" +// OPERATIONDENIED_INSTANCEACCESSDENIEDERROR = "OperationDenied.InstanceAccessDeniedError" +// OPERATIONDENIED_INSTANCESTATUSLIMITOPERROR = "OperationDenied.InstanceStatusLimitOpError" +// RESOURCENOTFOUND_INSTANCENOTFOUNDERROR = "ResourceNotFound.InstanceNotFoundError" +func (c *Client) DescribeMaintainTimeWindow(request *DescribeMaintainTimeWindowRequest) (response *DescribeMaintainTimeWindowResponse, err error) { + return c.DescribeMaintainTimeWindowWithContext(context.Background(), request) +} + +// DescribeMaintainTimeWindow +// 本接口 (DescribeMaintainTimeWindow) 用于查询实例的维护时间窗口 +// +// 可能返回的错误码: +// FAILEDOPERATION_CAMSIGANDAUTHERROR = "FailedOperation.CamSigAndAuthError" +// FAILEDOPERATION_DATABASEACCESSERROR = "FailedOperation.DatabaseAccessError" +// FAILEDOPERATION_DATABASEAFFECTEDERROR = "FailedOperation.DatabaseAffectedError" +// FAILEDOPERATION_FAILEDOPERATIONERROR = "FailedOperation.FailedOperationError" +// INTERNALERROR_INTERNALHTTPSERVERERROR = "InternalError.InternalHttpServerError" +// INVALIDPARAMETER_PARAMETERCHECKERROR = "InvalidParameter.ParameterCheckError" +// INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUEERROR = "InvalidParameterValue.InvalidParameterValueError" +// OPERATIONDENIED_CAMDENIEDERROR = "OperationDenied.CamDeniedError" +// OPERATIONDENIED_INSTANCEACCESSDENIEDERROR = "OperationDenied.InstanceAccessDeniedError" +// OPERATIONDENIED_INSTANCESTATUSLIMITOPERROR = "OperationDenied.InstanceStatusLimitOpError" +// RESOURCENOTFOUND_INSTANCENOTFOUNDERROR = "ResourceNotFound.InstanceNotFoundError" +func (c *Client) DescribeMaintainTimeWindowWithContext(ctx context.Context, request *DescribeMaintainTimeWindowRequest) (response *DescribeMaintainTimeWindowResponse, err error) { + if request == nil { + request = NewDescribeMaintainTimeWindowRequest() + } + + if c.GetCredential() == nil { + return nil, errors.New("DescribeMaintainTimeWindow require credential") + } + + request.SetContext(ctx) + + response = NewDescribeMaintainTimeWindowResponse() + err = c.Send(request, response) + return +} + func NewDescribeOrdersRequest() (request *DescribeOrdersRequest) { request = &DescribeOrdersRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -6775,6 +6848,69 @@ func (c *Client) ModifyDatabaseOwnerWithContext(ctx context.Context, request *Mo return } +func NewModifyMaintainTimeWindowRequest() (request *ModifyMaintainTimeWindowRequest) { + request = &ModifyMaintainTimeWindowRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("postgres", APIVersion, "ModifyMaintainTimeWindow") + + + return +} + +func NewModifyMaintainTimeWindowResponse() (response *ModifyMaintainTimeWindowResponse) { + response = &ModifyMaintainTimeWindowResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// ModifyMaintainTimeWindow +// 本接口 (ModifyMaintainTimeWindow) 用于实例维护时间窗口的修改。 +// +// 可能返回的错误码: +// FAILEDOPERATION_CAMSIGANDAUTHERROR = "FailedOperation.CamSigAndAuthError" +// FAILEDOPERATION_DATABASEACCESSERROR = "FailedOperation.DatabaseAccessError" +// FAILEDOPERATION_FAILEDOPERATIONERROR = "FailedOperation.FailedOperationError" +// INTERNALERROR_INTERNALHTTPSERVERERROR = "InternalError.InternalHttpServerError" +// INVALIDPARAMETER_PARAMETERCHECKERROR = "InvalidParameter.ParameterCheckError" +// INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUEERROR = "InvalidParameterValue.InvalidParameterValueError" +// OPERATIONDENIED_CAMDENIEDERROR = "OperationDenied.CamDeniedError" +// RESOURCENOTFOUND_INSTANCENOTFOUNDERROR = "ResourceNotFound.InstanceNotFoundError" +func (c *Client) ModifyMaintainTimeWindow(request *ModifyMaintainTimeWindowRequest) (response *ModifyMaintainTimeWindowResponse, err error) { + return c.ModifyMaintainTimeWindowWithContext(context.Background(), request) +} + +// ModifyMaintainTimeWindow +// 本接口 (ModifyMaintainTimeWindow) 用于实例维护时间窗口的修改。 +// +// 可能返回的错误码: +// FAILEDOPERATION_CAMSIGANDAUTHERROR = "FailedOperation.CamSigAndAuthError" +// FAILEDOPERATION_DATABASEACCESSERROR = "FailedOperation.DatabaseAccessError" +// FAILEDOPERATION_FAILEDOPERATIONERROR = "FailedOperation.FailedOperationError" +// INTERNALERROR_INTERNALHTTPSERVERERROR = "InternalError.InternalHttpServerError" +// INVALIDPARAMETER_PARAMETERCHECKERROR = "InvalidParameter.ParameterCheckError" +// INVALIDPARAMETERVALUE_INVALIDPARAMETERVALUEERROR = "InvalidParameterValue.InvalidParameterValueError" +// OPERATIONDENIED_CAMDENIEDERROR = "OperationDenied.CamDeniedError" +// RESOURCENOTFOUND_INSTANCENOTFOUNDERROR = "ResourceNotFound.InstanceNotFoundError" +func (c *Client) ModifyMaintainTimeWindowWithContext(ctx context.Context, request *ModifyMaintainTimeWindowRequest) (response *ModifyMaintainTimeWindowResponse, err error) { + if request == nil { + request = NewModifyMaintainTimeWindowRequest() + } + + if c.GetCredential() == nil { + return nil, errors.New("ModifyMaintainTimeWindow require credential") + } + + request.SetContext(ctx) + + response = NewModifyMaintainTimeWindowResponse() + err = c.Send(request, response) + return +} + func NewModifyParameterTemplateRequest() (request *ModifyParameterTemplateRequest) { request = &ModifyParameterTemplateRequest{ BaseRequest: &tchttp.BaseRequest{}, diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres/v20170312/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres/v20170312/models.go index 639525cc7d..afc970e476 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres/v20170312/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres/v20170312/models.go @@ -5172,6 +5172,72 @@ func (r *DescribeLogBackupsResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type DescribeMaintainTimeWindowRequestParams struct { + // 实例ID + DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"` +} + +type DescribeMaintainTimeWindowRequest struct { + *tchttp.BaseRequest + + // 实例ID + DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"` +} + +func (r *DescribeMaintainTimeWindowRequest) 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 *DescribeMaintainTimeWindowRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "DBInstanceId") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMaintainTimeWindowRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeMaintainTimeWindowResponseParams struct { + // 实例ID + DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"` + + // 维护开始时间。时区为东八区(UTC+8) + MaintainStartTime *string `json:"MaintainStartTime,omitnil,omitempty" name:"MaintainStartTime"` + + // 维护持续时间。单位:小时 + MaintainDuration *uint64 `json:"MaintainDuration,omitnil,omitempty" name:"MaintainDuration"` + + // 维护周期 + MaintainWeekDays []*string `json:"MaintainWeekDays,omitnil,omitempty" name:"MaintainWeekDays"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DescribeMaintainTimeWindowResponse struct { + *tchttp.BaseResponse + Response *DescribeMaintainTimeWindowResponseParams `json:"Response"` +} + +func (r *DescribeMaintainTimeWindowResponse) 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 *DescribeMaintainTimeWindowResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type DescribeOrdersRequestParams struct { // 订单名集合 @@ -8046,6 +8112,81 @@ func (r *ModifyDatabaseOwnerResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type ModifyMaintainTimeWindowRequestParams struct { + // 实例ID + DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"` + + // 维护开始时间。时区为东八区(UTC+8) + MaintainStartTime *string `json:"MaintainStartTime,omitnil,omitempty" name:"MaintainStartTime"` + + // 维护持续时间。单位:小时 + MaintainDuration *uint64 `json:"MaintainDuration,omitnil,omitempty" name:"MaintainDuration"` + + // 维护周期 + MaintainWeekDays []*string `json:"MaintainWeekDays,omitnil,omitempty" name:"MaintainWeekDays"` +} + +type ModifyMaintainTimeWindowRequest struct { + *tchttp.BaseRequest + + // 实例ID + DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"` + + // 维护开始时间。时区为东八区(UTC+8) + MaintainStartTime *string `json:"MaintainStartTime,omitnil,omitempty" name:"MaintainStartTime"` + + // 维护持续时间。单位:小时 + MaintainDuration *uint64 `json:"MaintainDuration,omitnil,omitempty" name:"MaintainDuration"` + + // 维护周期 + MaintainWeekDays []*string `json:"MaintainWeekDays,omitnil,omitempty" name:"MaintainWeekDays"` +} + +func (r *ModifyMaintainTimeWindowRequest) 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 *ModifyMaintainTimeWindowRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "DBInstanceId") + delete(f, "MaintainStartTime") + delete(f, "MaintainDuration") + delete(f, "MaintainWeekDays") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyMaintainTimeWindowRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type ModifyMaintainTimeWindowResponseParams struct { + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type ModifyMaintainTimeWindowResponse struct { + *tchttp.BaseResponse + Response *ModifyMaintainTimeWindowResponseParams `json:"Response"` +} + +func (r *ModifyMaintainTimeWindowResponse) 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 *ModifyMaintainTimeWindowResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type ModifyParameterTemplateRequestParams struct { // 参数模板ID,用于唯一确认参数模板,不可修改 @@ -9146,7 +9287,7 @@ type RestoreDBInstanceObjectsRequestParams struct { // 实例ID。 DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"` - // 需要恢复的对象列表。假设需要恢复的对象名为test,则恢复后的名称为test_bak_${LinuxTime}。${LinuxTime}无法指定,由系统根据任务发起的linux时间设定。 + // 需要恢复的对象列表。假设需要恢复的对象名为user,则恢复后的名称为user_bak_${LinuxTime}。${LinuxTime}无法指定,由系统根据任务发起的linux时间设定。 RestoreObjects []*string `json:"RestoreObjects,omitnil,omitempty" name:"RestoreObjects"` // 恢复所用备份集。BackupSetId与RestoreTargetTime有且只能传一个。 @@ -9162,7 +9303,7 @@ type RestoreDBInstanceObjectsRequest struct { // 实例ID。 DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"` - // 需要恢复的对象列表。假设需要恢复的对象名为test,则恢复后的名称为test_bak_${LinuxTime}。${LinuxTime}无法指定,由系统根据任务发起的linux时间设定。 + // 需要恢复的对象列表。假设需要恢复的对象名为user,则恢复后的名称为user_bak_${LinuxTime}。${LinuxTime}无法指定,由系统根据任务发起的linux时间设定。 RestoreObjects []*string `json:"RestoreObjects,omitnil,omitempty" name:"RestoreObjects"` // 恢复所用备份集。BackupSetId与RestoreTargetTime有且只能传一个。 diff --git a/vendor/modules.txt b/vendor/modules.txt index e78a3374c3..47e6d754a5 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1163,7 +1163,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit/v20190319 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1046 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls/v20201016 -# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1073 +# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1078 ## explicit; go 1.11 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors @@ -1252,7 +1252,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus/v20190422 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.1038 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization/v20210331 -# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1010 +# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1078 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres/v20170312 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.1038 diff --git a/website/docs/r/postgresql_time_window.html.markdown b/website/docs/r/postgresql_time_window.html.markdown new file mode 100644 index 0000000000..6f3800b6cd --- /dev/null +++ b/website/docs/r/postgresql_time_window.html.markdown @@ -0,0 +1,57 @@ +--- +subcategory: "TencentDB for PostgreSQL(PostgreSQL)" +layout: "tencentcloud" +page_title: "TencentCloud: tencentcloud_postgresql_time_window" +sidebar_current: "docs-tencentcloud-resource-postgresql_time_window" +description: |- + Provides a resource to create a postgres postgresql_time_window +--- + +# tencentcloud_postgresql_time_window + +Provides a resource to create a postgres postgresql_time_window + +## Example Usage + +```hcl +resource "tencentcloud_postgresql_time_window" "postgresql_time_window" { + db_instance_id = "postgres-45b0vlmr" + maintain_duration = 2 + maintain_start_time = "04:00" + maintain_week_days = [ + "friday", + "monday", + "saturday", + "sunday", + "thursday", + "tuesday", + "wednesday", + ] +} +``` + +## Argument Reference + +The following arguments are supported: + +* `db_instance_id` - (Required, String) Instance id. +* `maintain_duration` - (Optional, Int) Maintenance duration, Unit: hours. +* `maintain_start_time` - (Optional, String) Maintenance start time. Time zone is UTC+8. +* `maintain_week_days` - (Optional, Set: [`String`]) Maintenance cycle. + +## Attributes Reference + +In addition to all arguments above, the following attributes are exported: + +* `id` - ID of the resource. + + + +## Import + +postgres postgresql_time_window can be imported using the id, e.g. + +``` +terraform import tencentcloud_postgresql_time_window.postgresql_time_window instance_id +``` + diff --git a/website/tencentcloud.erb b/website/tencentcloud.erb index b8f597b1a0..f6ea894b69 100644 --- a/website/tencentcloud.erb +++ b/website/tencentcloud.erb @@ -6028,6 +6028,9 @@
  • tencentcloud_postgresql_security_group_config
  • +
  • + tencentcloud_postgresql_time_window +
  • From 42df0271d44f82cb9a3fc3983c6ebf6ec4bfafc5 Mon Sep 17 00:00:00 2001 From: arunma Date: Thu, 9 Jan 2025 15:23:09 +0800 Subject: [PATCH 2/6] feat: add changelog --- .changelog/3065.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .changelog/3065.txt diff --git a/.changelog/3065.txt b/.changelog/3065.txt new file mode 100644 index 0000000000..c1458d01af --- /dev/null +++ b/.changelog/3065.txt @@ -0,0 +1,3 @@ +```release-note:new-resource +tencentcloud_postgresql_time_window +``` \ No newline at end of file From 3a62910623f47dcb46131be9c74377da782b51ad Mon Sep 17 00:00:00 2001 From: arunma Date: Thu, 9 Jan 2025 15:25:13 +0800 Subject: [PATCH 3/6] fix: fmt --- .../services/postgresql/resource_tc_postgresql_time_window.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tencentcloud/services/postgresql/resource_tc_postgresql_time_window.go b/tencentcloud/services/postgresql/resource_tc_postgresql_time_window.go index f0ba8ba898..2d49558f96 100644 --- a/tencentcloud/services/postgresql/resource_tc_postgresql_time_window.go +++ b/tencentcloud/services/postgresql/resource_tc_postgresql_time_window.go @@ -4,7 +4,7 @@ package postgresql import ( "context" "log" - + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" postgresv20170312 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres/v20170312" From ae70333ed33e02b06f2e6290448d1eea1b3b500d Mon Sep 17 00:00:00 2001 From: arunma Date: Wed, 26 Mar 2025 16:33:18 +0800 Subject: [PATCH 4/6] fix: Merge branch 'master' into feat/pgsql-time-window --- go.mod | 2 +- .../tencentcloud-sdk-go/tencentcloud/common/http/request.go | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/go.mod b/go.mod index dd5caf5cec..0777c3944b 100644 --- a/go.mod +++ b/go.mod @@ -70,7 +70,7 @@ require ( github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.1066 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mps v1.0.853 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.0.1038 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1078 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1103 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.1038 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/pts v1.0.762 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.1008 diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go index f56ae1ed36..fccc640040 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go @@ -3,7 +3,6 @@ package common import ( "context" "io" - //"log" "math/rand" "net/url" From 9db2a8fef6ed224a714169b8167a949427d48217 Mon Sep 17 00:00:00 2001 From: arunma Date: Fri, 11 Apr 2025 17:57:24 +0800 Subject: [PATCH 5/6] fix: modify config --- .../services/postgresql/resource_tc_postgresql_time_window.go | 1 + website/docs/r/postgresql_time_window.html.markdown | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/tencentcloud/services/postgresql/resource_tc_postgresql_time_window.go b/tencentcloud/services/postgresql/resource_tc_postgresql_time_window.go index 2d49558f96..2766a269f3 100644 --- a/tencentcloud/services/postgresql/resource_tc_postgresql_time_window.go +++ b/tencentcloud/services/postgresql/resource_tc_postgresql_time_window.go @@ -25,6 +25,7 @@ func ResourceTencentCloudPostgresqlTimeWindow() *schema.Resource { "db_instance_id": { Type: schema.TypeString, Required: true, + ForceNew: true, Description: "Instance id.", }, diff --git a/website/docs/r/postgresql_time_window.html.markdown b/website/docs/r/postgresql_time_window.html.markdown index 6f3800b6cd..0a817daf55 100644 --- a/website/docs/r/postgresql_time_window.html.markdown +++ b/website/docs/r/postgresql_time_window.html.markdown @@ -34,7 +34,7 @@ resource "tencentcloud_postgresql_time_window" "postgresql_time_window" { The following arguments are supported: -* `db_instance_id` - (Required, String) Instance id. +* `db_instance_id` - (Required, String, ForceNew) Instance id. * `maintain_duration` - (Optional, Int) Maintenance duration, Unit: hours. * `maintain_start_time` - (Optional, String) Maintenance start time. Time zone is UTC+8. * `maintain_week_days` - (Optional, Set: [`String`]) Maintenance cycle. From 5919efb9e5ec89db39aba5c70a772e600e0868db Mon Sep 17 00:00:00 2001 From: arunma Date: Fri, 11 Apr 2025 18:00:22 +0800 Subject: [PATCH 6/6] fix: fmt --- .../services/postgresql/resource_tc_postgresql_time_window.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tencentcloud/services/postgresql/resource_tc_postgresql_time_window.go b/tencentcloud/services/postgresql/resource_tc_postgresql_time_window.go index 2766a269f3..cff4010d0f 100644 --- a/tencentcloud/services/postgresql/resource_tc_postgresql_time_window.go +++ b/tencentcloud/services/postgresql/resource_tc_postgresql_time_window.go @@ -25,7 +25,7 @@ func ResourceTencentCloudPostgresqlTimeWindow() *schema.Resource { "db_instance_id": { Type: schema.TypeString, Required: true, - ForceNew: true, + ForceNew: true, Description: "Instance id.", },