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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ require (
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.283
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.199
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.377
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.389
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.391
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.385
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.359
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dayu v1.0.335
Expand All @@ -43,7 +43,7 @@ require (
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.199
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb v1.0.199
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.329
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.332
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.391
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.290
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.199
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf v1.0.275
Expand Down
30 changes: 30 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -523,8 +523,11 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.383 h1:1TFC
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.383/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.385 h1:bwgb0FZJRlPcDn3uRJfA7rI7dZejg7LZS0b8rUBE2CQ=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.385/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.386/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.389 h1:Ndw52BGqx09zNotV8hFkEw8kHbWa2MG+1Txwqwv3URY=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.389/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.391 h1:aygYrFPSM5eFw2ysGJH4eAV4UXxl+zbPNaQWOHPlS3o=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.391/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.199 h1:ajgJogYSIQ5u1PIbiV5nsvr5K0fYpm1/T7Dy+mxEM6U=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.199/go.mod h1:AqyM/ZZMD7q5mHBqNY9YImbSpEpoEe7E/vrTbUWX+po=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.351 h1:zqJsH5pxGT57La7NAOOyMQxsuM11pupNBwV1dzXcT24=
Expand Down Expand Up @@ -570,6 +573,10 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.306 h1:R/
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.306/go.mod h1:Rh/4NXBd0aqmaRGDYcW4gL2Zi8JShGZiB23zrfVaS90=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.332 h1:SVk3UU8oGyAMJOlyYvJW1luD8GqLnfnBLg0BEzUyH6k=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.332/go.mod h1:Rh/4NXBd0aqmaRGDYcW4gL2Zi8JShGZiB23zrfVaS90=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.386 h1:AQdMq4sHZ0xucFnH5irRbvmBgD6COgW0GqAYIwo7gLA=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.386/go.mod h1:51M3XBtzN29uP0rxKs7+cdEidtPlSm+oGMj2gXBqXcg=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.391 h1:1yZh5MrlFqawVGhLdd38hi5HoaKc4LgB+8cEgLT2Qo4=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.391/go.mod h1:BZSQiBjNQ+6/gL1fFXBr/0BOuPTdHmSYoIg4/AkmZB4=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.290 h1:osYZxh9ApEc8UpvIMwjAUfdl7ytRcWUpcnnqLIpiJ/U=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.290/go.mod h1:En+pdagcHkAASorHT1l8R6tUtieRNNxaQ7nfyqWPefk=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.199 h1:lXCng7HQqvubF7uwa7x5COsDZlJEjEJ/RBpaeYGc0+I=
Expand Down Expand Up @@ -646,6 +653,7 @@ github.com/yangwenmai/ratelimit v0.0.0-20180104140304-44221c2292e1 h1:q6c//IMJug
github.com/yangwenmai/ratelimit v0.0.0-20180104140304-44221c2292e1/go.mod h1:Rl8MvKI/yVRGN91gMEZAIf/92QtFQBSG/QFRHWQZtmo=
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/zclconf/go-cty v1.0.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s=
github.com/zclconf/go-cty v1.1.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s=
github.com/zclconf/go-cty v1.2.0/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8=
Expand All @@ -670,6 +678,8 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq69pTHfNouLtWZG7j9rPN8=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
Expand All @@ -683,6 +693,8 @@ golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKG
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 h1:kQgndtyPBW/JIYERgdxfwMYh3AVStj88WQTlNDi2a+o=
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
golang.org/x/net v0.0.0-20180530234432-1e491301e022/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
Expand All @@ -706,6 +718,9 @@ golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLL
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200301022130-244492dfa37a h1:GuSPYbZzB5/dcLNCwLQLsg3obCJtX9IJhpXkvY7kzk0=
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f h1:OfiFi4JbukWwe3lzw+xunroH1mnC1e2Gy5cxNJApiSY=
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0=
Expand All @@ -716,6 +731,7 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
Expand All @@ -742,10 +758,20 @@ golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200523222454-059865788121 h1:rITEj+UZHYC927n8GT97eC3zrpzXdb/voyeOuVKS46o=
golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654 h1:id054HUawV2/6IGm2IV8KZQjqtwAOo2CYlOToYqa0d0=
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
Expand Down Expand Up @@ -781,10 +807,14 @@ golang.org/x/tools v0.0.0-20200414032229-332987a829c3/go.mod h1:EkVYQZoAsY45+roY
golang.org/x/tools v0.0.0-20200422022333-3d57cf2e726e/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200502202811-ed308ab3e770 h1:M9Fif0OxNji8w+HvmhVQ8KJtiZOsjU9RgslJGhn95XE=
golang.org/x/tools v0.0.0-20200502202811-ed308ab3e770/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.1.10 h1:QjFRCZxdOhBJ/UNgnBZLbNV13DlbnK0quyivTnXJM20=
golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
Expand Down
116 changes: 116 additions & 0 deletions tencentcloud/resource_tc_postgresql_instance.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,39 @@ resource "tencentcloud_postgresql_instance" "foo" {
}
```

create pgsql with kms key
```
resource "tencentcloud_postgresql_instance" "pg" {
name = "tf_postsql_instance"
availability_zone = "ap-guangzhou-6"
charge_type = "POSTPAID_BY_HOUR"
vpc_id = "vpc-86v957zb"
subnet_id = "subnet-enm92y0m"
engine_version = "11.12"
# db_major_vesion = "11"
db_kernel_version = "v11.12_r1.3"
need_support_tde = 1
kms_key_id = "788c606a-c7b7-11ec-82d1-5254001e5c4e"
kms_region = "ap-guangzhou"
root_password = "xxxxxxxxxx"
charset = "LATIN1"
project_id = 0
memory = 4
storage = 100

backup_plan {
min_backup_start_time = "00:10:11"
max_backup_start_time = "01:10:11"
base_backup_retention_period = 7
backup_period = ["tuesday", "wednesday"]
}

tags = {
tf = "test"
}
}
```

Import

postgresql instance can be imported using the id, e.g.
Expand Down Expand Up @@ -159,6 +192,21 @@ func resourceTencentCloudPostgresqlInstance() *schema.Resource {
Default: "10.4",
Description: "Version of the postgresql database engine. Valid values: `10.4`, `11.8`, `12.4`.",
},
"db_major_vesion": {
Type: schema.TypeString,
Optional: true,
Computed: true,
Description: "PostgreSQL major version number. Valid values: 10, 11, 12, 13. " +
"If it is specified, an instance running the latest kernel of PostgreSQL DBMajorVersion will be created.",
},
"db_kernel_version": {
Type: schema.TypeString,
Optional: true,
Computed: true,
Description: "PostgreSQL kernel version number. " +
"If it is specified, an instance running kernel DBKernelVersion will be created.",
},

"vpc_id": {
Type: schema.TypeString,
ForceNew: true,
Expand Down Expand Up @@ -241,6 +289,24 @@ func resourceTencentCloudPostgresqlInstance() *schema.Resource {
ValidateFunc: validateAllowedStringValue(POSTGRESQL_DB_CHARSET),
Description: "Charset of the root account. Valid values are `UTF8`,`LATIN1`.",
},
"need_support_tde": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
Description: "Whether to support data transparent encryption, 1: yes, 0: no (default).",
},
"kms_key_id": {
Type: schema.TypeString,
Optional: true,
Computed: true,
Description: "KeyId of the custom key.",
},
"kms_region": {
Type: schema.TypeString,
Optional: true,
Computed: true,
Description: "Region of the custom key.",
},
"public_access_switch": {
Type: schema.TypeBool,
Optional: true,
Expand Down Expand Up @@ -382,6 +448,29 @@ func resourceTencentCloudPostgresqlInstanceCreate(d *schema.ResourceData, meta i
var outErr, inErr error
var allowVersion, allowMemory []string

var (
dbMajorVersion = ""
dbKernelVersion = ""
needSupportTde = 0
kmsKeyId = ""
kmsRegion = ""
)

if v, ok := d.GetOk("db_major_vesion"); ok {
dbMajorVersion = v.(string)
}
if v, ok := d.GetOk("db_kernel_version"); ok {
dbKernelVersion = v.(string)
}
if v, ok := d.GetOk("need_support_tde"); ok {
needSupportTde = v.(int)
}
if v, ok := d.GetOk("kms_key_id"); ok {
kmsKeyId = v.(string)
}
if v, ok := d.GetOk("kms_region"); ok {
kmsRegion = v.(string)
}
requestSecurityGroup := make([]string, 0, len(securityGroups))

for _, v := range securityGroups {
Expand Down Expand Up @@ -450,6 +539,8 @@ func resourceTencentCloudPostgresqlInstanceCreate(d *schema.ResourceData, meta i
instanceId, inErr = postgresqlService.CreatePostgresqlInstance(ctx,
name,
dbVersion,
dbMajorVersion,
dbKernelVersion,
payType, specCode,
0,
projectId,
Expand All @@ -463,6 +554,9 @@ func resourceTencentCloudPostgresqlInstanceCreate(d *schema.ResourceData, meta i
password,
charset,
dbNodeSet,
needSupportTde,
kmsKeyId,
kmsRegion,
)
if inErr != nil {
return retryError(inErr)
Expand Down Expand Up @@ -841,6 +935,13 @@ func resourceTencentCloudPostgresqlInstanceUpdate(d *schema.ResourceData, meta i
paramEntrys["max_standby_streaming_delay"] = strconv.Itoa(v.(int))
}
}
if d.HasChange("db_major_vesion") || d.HasChange("db_kernel_version") {
return fmt.Errorf("Not support change db major version or kernel version.")
}

if d.HasChange("need_support_tde") || d.HasChange("kms_key_id") || d.HasChange("kms_region") {
return fmt.Errorf("Not support change params contact with data transparent encryption.")
}
if len(paramEntrys) != 0 {
outErr = resource.Retry(writeRetryTimeout, func() *resource.RetryError {
inErr := postgresqlService.ModifyPgParams(ctx, instanceId, paramEntrys)
Expand Down Expand Up @@ -917,6 +1018,8 @@ func resourceTencentCloudPostgresqlInstanceRead(d *schema.ResourceData, meta int
_ = d.Set("vpc_id", instance.VpcId)
_ = d.Set("subnet_id", instance.SubnetId)
_ = d.Set("engine_version", instance.DBVersion)
_ = d.Set("db_major_vesion", instance.DBMajorVersion)
_ = d.Set("db_kernel_version", instance.DBKernelVersion)
_ = d.Set("name", instance.DBInstanceName)
_ = d.Set("charset", instance.DBCharset)
if rootUser != "" {
Expand Down Expand Up @@ -997,6 +1100,19 @@ func resourceTencentCloudPostgresqlInstanceRead(d *schema.ResourceData, meta int
_ = d.Set("memory", instance.DBInstanceMemory)
_ = d.Set("storage", instance.DBInstanceStorage)

// kms
kmsRequest := postgresql.NewDescribeEncryptionKeysRequest()
kmsRequest.DBInstanceId = helper.String(d.Id())
_ = d.Set("need_support_tde", instance.IsSupportTDE)
has, kms, err := postgresqlService.DescribeDBEncryptionKeys(ctx, kmsRequest)
if err != nil {
return err
}
if has {
_ = d.Set("kms_key_id", kms.KeyId)
_ = d.Set("kms_region", kms.KeyRegion)
}

// Uid, must use
var filters = make([]*postgresql.Filter, 0, 10)
idFilter := &postgresql.Filter{
Expand Down
Loading