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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .changelog/3065.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:new-resource
tencentcloud_postgresql_time_window
```
1 change: 1 addition & 0 deletions tencentcloud/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -1577,6 +1577,7 @@ func Provider() *schema.Provider {
"tencentcloud_postgresql_instance_network_access": postgresql.ResourceTencentCloudPostgresqlInstanceNetworkAccess(),
"tencentcloud_postgresql_parameters": postgresql.ResourceTencentCloudPostgresqlParameters(),
"tencentcloud_postgresql_instance_ssl_config": postgresql.ResourceTencentCloudPostgresqlInstanceSslConfig(),
"tencentcloud_postgresql_time_window": postgresql.ResourceTencentCloudPostgresqlTimeWindow(),
"tencentcloud_sqlserver_instance": sqlserver.ResourceTencentCloudSqlserverInstance(),
"tencentcloud_sqlserver_db": sqlserver.ResourceTencentCloudSqlserverDB(),
"tencentcloud_sqlserver_account": sqlserver.ResourceTencentCloudSqlserverAccount(),
Expand Down
1 change: 1 addition & 0 deletions tencentcloud/provider.md
Original file line number Diff line number Diff line change
Expand Up @@ -921,6 +921,7 @@ tencentcloud_postgresql_clone_db_instance
tencentcloud_postgresql_instance_network_access
tencentcloud_postgresql_parameters
tencentcloud_postgresql_instance_ssl_config
tencentcloud_postgresql_time_window

TencentDB for Redis(crs)
Data Source
Expand Down
177 changes: 177 additions & 0 deletions tencentcloud/services/postgresql/resource_tc_postgresql_time_window.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -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
```
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
package postgresql
Original file line number Diff line number Diff line change
@@ -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",
]
}
`
Original file line number Diff line number Diff line change
Expand Up @@ -2393,3 +2393,33 @@ func (me *PostgresqlService) DescribePostgresqlDbVersionsByFilter(ctx context.Co

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
}
Loading
Loading