Skip to content

Commit 0ab62a4

Browse files
author
hellertang
authored
support pgsql kms key (#1020)
1 parent 84675e4 commit 0ab62a4

File tree

10 files changed

+1332
-418
lines changed

10 files changed

+1332
-418
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ require (
3131
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.283
3232
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.199
3333
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.377
34-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.389
34+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.391
3535
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.385
3636
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.359
3737
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dayu v1.0.335
@@ -43,7 +43,7 @@ require (
4343
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.199
4444
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb v1.0.199
4545
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/monitor v1.0.329
46-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.332
46+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.391
4747
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.290
4848
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.199
4949
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf v1.0.275

go.sum

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -523,8 +523,11 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.383 h1:1TFC
523523
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.383/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
524524
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.385 h1:bwgb0FZJRlPcDn3uRJfA7rI7dZejg7LZS0b8rUBE2CQ=
525525
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.385/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
526+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.386/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
526527
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.389 h1:Ndw52BGqx09zNotV8hFkEw8kHbWa2MG+1Txwqwv3URY=
527528
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.389/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
529+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.391 h1:aygYrFPSM5eFw2ysGJH4eAV4UXxl+zbPNaQWOHPlS3o=
530+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.391/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
528531
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.199 h1:ajgJogYSIQ5u1PIbiV5nsvr5K0fYpm1/T7Dy+mxEM6U=
529532
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.199/go.mod h1:AqyM/ZZMD7q5mHBqNY9YImbSpEpoEe7E/vrTbUWX+po=
530533
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.351 h1:zqJsH5pxGT57La7NAOOyMQxsuM11pupNBwV1dzXcT24=
@@ -570,6 +573,10 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.306 h1:R/
570573
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.306/go.mod h1:Rh/4NXBd0aqmaRGDYcW4gL2Zi8JShGZiB23zrfVaS90=
571574
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.332 h1:SVk3UU8oGyAMJOlyYvJW1luD8GqLnfnBLg0BEzUyH6k=
572575
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.332/go.mod h1:Rh/4NXBd0aqmaRGDYcW4gL2Zi8JShGZiB23zrfVaS90=
576+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.386 h1:AQdMq4sHZ0xucFnH5irRbvmBgD6COgW0GqAYIwo7gLA=
577+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.386/go.mod h1:51M3XBtzN29uP0rxKs7+cdEidtPlSm+oGMj2gXBqXcg=
578+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.391 h1:1yZh5MrlFqawVGhLdd38hi5HoaKc4LgB+8cEgLT2Qo4=
579+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.391/go.mod h1:BZSQiBjNQ+6/gL1fFXBr/0BOuPTdHmSYoIg4/AkmZB4=
573580
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.290 h1:osYZxh9ApEc8UpvIMwjAUfdl7ytRcWUpcnnqLIpiJ/U=
574581
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.290/go.mod h1:En+pdagcHkAASorHT1l8R6tUtieRNNxaQ7nfyqWPefk=
575582
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.199 h1:lXCng7HQqvubF7uwa7x5COsDZlJEjEJ/RBpaeYGc0+I=
@@ -646,6 +653,7 @@ github.com/yangwenmai/ratelimit v0.0.0-20180104140304-44221c2292e1 h1:q6c//IMJug
646653
github.com/yangwenmai/ratelimit v0.0.0-20180104140304-44221c2292e1/go.mod h1:Rl8MvKI/yVRGN91gMEZAIf/92QtFQBSG/QFRHWQZtmo=
647654
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
648655
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
656+
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
649657
github.com/zclconf/go-cty v1.0.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s=
650658
github.com/zclconf/go-cty v1.1.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s=
651659
github.com/zclconf/go-cty v1.2.0/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8=
@@ -670,6 +678,8 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U
670678
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
671679
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq69pTHfNouLtWZG7j9rPN8=
672680
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
681+
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg=
682+
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
673683
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
674684
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
675685
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
@@ -683,6 +693,8 @@ golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKG
683693
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
684694
golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ=
685695
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
696+
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 h1:kQgndtyPBW/JIYERgdxfwMYh3AVStj88WQTlNDi2a+o=
697+
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
686698
golang.org/x/net v0.0.0-20180530234432-1e491301e022/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
687699
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
688700
golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -706,6 +718,9 @@ golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLL
706718
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
707719
golang.org/x/net v0.0.0-20200301022130-244492dfa37a h1:GuSPYbZzB5/dcLNCwLQLsg3obCJtX9IJhpXkvY7kzk0=
708720
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
721+
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
722+
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f h1:OfiFi4JbukWwe3lzw+xunroH1mnC1e2Gy5cxNJApiSY=
723+
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
709724
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
710725
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
711726
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0=
@@ -716,6 +731,7 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ
716731
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
717732
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
718733
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
734+
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
719735
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
720736
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
721737
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -742,10 +758,20 @@ golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7w
742758
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
743759
golang.org/x/sys v0.0.0-20200523222454-059865788121 h1:rITEj+UZHYC927n8GT97eC3zrpzXdb/voyeOuVKS46o=
744760
golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
761+
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
762+
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
763+
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
764+
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654 h1:id054HUawV2/6IGm2IV8KZQjqtwAOo2CYlOToYqa0d0=
765+
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
766+
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
745767
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
746768
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
747769
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
748770
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
771+
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
772+
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
773+
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
774+
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
749775
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
750776
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
751777
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -781,10 +807,14 @@ golang.org/x/tools v0.0.0-20200414032229-332987a829c3/go.mod h1:EkVYQZoAsY45+roY
781807
golang.org/x/tools v0.0.0-20200422022333-3d57cf2e726e/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
782808
golang.org/x/tools v0.0.0-20200502202811-ed308ab3e770 h1:M9Fif0OxNji8w+HvmhVQ8KJtiZOsjU9RgslJGhn95XE=
783809
golang.org/x/tools v0.0.0-20200502202811-ed308ab3e770/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
810+
golang.org/x/tools v0.1.10 h1:QjFRCZxdOhBJ/UNgnBZLbNV13DlbnK0quyivTnXJM20=
811+
golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=
784812
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
785813
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
786814
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
787815
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
816+
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
817+
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
788818
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
789819
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
790820
google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=

tencentcloud/resource_tc_postgresql_instance.go

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,39 @@ resource "tencentcloud_postgresql_instance" "foo" {
9999
}
100100
```
101101
102+
create pgsql with kms key
103+
```
104+
resource "tencentcloud_postgresql_instance" "pg" {
105+
name = "tf_postsql_instance"
106+
availability_zone = "ap-guangzhou-6"
107+
charge_type = "POSTPAID_BY_HOUR"
108+
vpc_id = "vpc-86v957zb"
109+
subnet_id = "subnet-enm92y0m"
110+
engine_version = "11.12"
111+
# db_major_vesion = "11"
112+
db_kernel_version = "v11.12_r1.3"
113+
need_support_tde = 1
114+
kms_key_id = "788c606a-c7b7-11ec-82d1-5254001e5c4e"
115+
kms_region = "ap-guangzhou"
116+
root_password = "xxxxxxxxxx"
117+
charset = "LATIN1"
118+
project_id = 0
119+
memory = 4
120+
storage = 100
121+
122+
backup_plan {
123+
min_backup_start_time = "00:10:11"
124+
max_backup_start_time = "01:10:11"
125+
base_backup_retention_period = 7
126+
backup_period = ["tuesday", "wednesday"]
127+
}
128+
129+
tags = {
130+
tf = "test"
131+
}
132+
}
133+
```
134+
102135
Import
103136
104137
postgresql instance can be imported using the id, e.g.
@@ -159,6 +192,21 @@ func resourceTencentCloudPostgresqlInstance() *schema.Resource {
159192
Default: "10.4",
160193
Description: "Version of the postgresql database engine. Valid values: `10.4`, `11.8`, `12.4`.",
161194
},
195+
"db_major_vesion": {
196+
Type: schema.TypeString,
197+
Optional: true,
198+
Computed: true,
199+
Description: "PostgreSQL major version number. Valid values: 10, 11, 12, 13. " +
200+
"If it is specified, an instance running the latest kernel of PostgreSQL DBMajorVersion will be created.",
201+
},
202+
"db_kernel_version": {
203+
Type: schema.TypeString,
204+
Optional: true,
205+
Computed: true,
206+
Description: "PostgreSQL kernel version number. " +
207+
"If it is specified, an instance running kernel DBKernelVersion will be created.",
208+
},
209+
162210
"vpc_id": {
163211
Type: schema.TypeString,
164212
ForceNew: true,
@@ -241,6 +289,24 @@ func resourceTencentCloudPostgresqlInstance() *schema.Resource {
241289
ValidateFunc: validateAllowedStringValue(POSTGRESQL_DB_CHARSET),
242290
Description: "Charset of the root account. Valid values are `UTF8`,`LATIN1`.",
243291
},
292+
"need_support_tde": {
293+
Type: schema.TypeInt,
294+
Optional: true,
295+
Computed: true,
296+
Description: "Whether to support data transparent encryption, 1: yes, 0: no (default).",
297+
},
298+
"kms_key_id": {
299+
Type: schema.TypeString,
300+
Optional: true,
301+
Computed: true,
302+
Description: "KeyId of the custom key.",
303+
},
304+
"kms_region": {
305+
Type: schema.TypeString,
306+
Optional: true,
307+
Computed: true,
308+
Description: "Region of the custom key.",
309+
},
244310
"public_access_switch": {
245311
Type: schema.TypeBool,
246312
Optional: true,
@@ -382,6 +448,29 @@ func resourceTencentCloudPostgresqlInstanceCreate(d *schema.ResourceData, meta i
382448
var outErr, inErr error
383449
var allowVersion, allowMemory []string
384450

451+
var (
452+
dbMajorVersion = ""
453+
dbKernelVersion = ""
454+
needSupportTde = 0
455+
kmsKeyId = ""
456+
kmsRegion = ""
457+
)
458+
459+
if v, ok := d.GetOk("db_major_vesion"); ok {
460+
dbMajorVersion = v.(string)
461+
}
462+
if v, ok := d.GetOk("db_kernel_version"); ok {
463+
dbKernelVersion = v.(string)
464+
}
465+
if v, ok := d.GetOk("need_support_tde"); ok {
466+
needSupportTde = v.(int)
467+
}
468+
if v, ok := d.GetOk("kms_key_id"); ok {
469+
kmsKeyId = v.(string)
470+
}
471+
if v, ok := d.GetOk("kms_region"); ok {
472+
kmsRegion = v.(string)
473+
}
385474
requestSecurityGroup := make([]string, 0, len(securityGroups))
386475

387476
for _, v := range securityGroups {
@@ -450,6 +539,8 @@ func resourceTencentCloudPostgresqlInstanceCreate(d *schema.ResourceData, meta i
450539
instanceId, inErr = postgresqlService.CreatePostgresqlInstance(ctx,
451540
name,
452541
dbVersion,
542+
dbMajorVersion,
543+
dbKernelVersion,
453544
payType, specCode,
454545
0,
455546
projectId,
@@ -463,6 +554,9 @@ func resourceTencentCloudPostgresqlInstanceCreate(d *schema.ResourceData, meta i
463554
password,
464555
charset,
465556
dbNodeSet,
557+
needSupportTde,
558+
kmsKeyId,
559+
kmsRegion,
466560
)
467561
if inErr != nil {
468562
return retryError(inErr)
@@ -841,6 +935,13 @@ func resourceTencentCloudPostgresqlInstanceUpdate(d *schema.ResourceData, meta i
841935
paramEntrys["max_standby_streaming_delay"] = strconv.Itoa(v.(int))
842936
}
843937
}
938+
if d.HasChange("db_major_vesion") || d.HasChange("db_kernel_version") {
939+
return fmt.Errorf("Not support change db major version or kernel version.")
940+
}
941+
942+
if d.HasChange("need_support_tde") || d.HasChange("kms_key_id") || d.HasChange("kms_region") {
943+
return fmt.Errorf("Not support change params contact with data transparent encryption.")
944+
}
844945
if len(paramEntrys) != 0 {
845946
outErr = resource.Retry(writeRetryTimeout, func() *resource.RetryError {
846947
inErr := postgresqlService.ModifyPgParams(ctx, instanceId, paramEntrys)
@@ -917,6 +1018,8 @@ func resourceTencentCloudPostgresqlInstanceRead(d *schema.ResourceData, meta int
9171018
_ = d.Set("vpc_id", instance.VpcId)
9181019
_ = d.Set("subnet_id", instance.SubnetId)
9191020
_ = d.Set("engine_version", instance.DBVersion)
1021+
_ = d.Set("db_major_vesion", instance.DBMajorVersion)
1022+
_ = d.Set("db_kernel_version", instance.DBKernelVersion)
9201023
_ = d.Set("name", instance.DBInstanceName)
9211024
_ = d.Set("charset", instance.DBCharset)
9221025
if rootUser != "" {
@@ -997,6 +1100,19 @@ func resourceTencentCloudPostgresqlInstanceRead(d *schema.ResourceData, meta int
9971100
_ = d.Set("memory", instance.DBInstanceMemory)
9981101
_ = d.Set("storage", instance.DBInstanceStorage)
9991102

1103+
// kms
1104+
kmsRequest := postgresql.NewDescribeEncryptionKeysRequest()
1105+
kmsRequest.DBInstanceId = helper.String(d.Id())
1106+
_ = d.Set("need_support_tde", instance.IsSupportTDE)
1107+
has, kms, err := postgresqlService.DescribeDBEncryptionKeys(ctx, kmsRequest)
1108+
if err != nil {
1109+
return err
1110+
}
1111+
if has {
1112+
_ = d.Set("kms_key_id", kms.KeyId)
1113+
_ = d.Set("kms_region", kms.KeyRegion)
1114+
}
1115+
10001116
// Uid, must use
10011117
var filters = make([]*postgresql.Filter, 0, 10)
10021118
idFilter := &postgresql.Filter{

0 commit comments

Comments
 (0)