Skip to content

Commit d14bcf7

Browse files
author
WeiMengXS
committed
feat: del
1 parent 0964ecc commit d14bcf7

File tree

11 files changed

+7591
-1070
lines changed

11 files changed

+7591
-1070
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ require (
4242
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.693
4343
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544
4444
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.711
45-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.736
45+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.737
4646
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624
4747
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.589
4848
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.692
@@ -75,7 +75,7 @@ require (
7575
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ses v1.0.529
7676
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sms v1.0.486
7777
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver v1.0.689
78-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.0.199
78+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.0.737
7979
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssm v1.0.691
8080
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sts v1.0.524
8181
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tag v1.0.677

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -881,6 +881,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.735 h1:LJF4
881881
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.735/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
882882
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.736 h1:kDxUSuxipDOYAgssgXVf33WT2g6UyY+67yVMsVHPGiU=
883883
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.736/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
884+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.737 h1:Y/mD9PJbMkjzJiuZsJnzUk31OPCXvch7WSFbs9kKRyw=
885+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.737/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
884886
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8=
885887
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624/go.mod h1:+TXSVyeKwt1IhZRqKPbTREteBcP+K07Q846/ilNzLWA=
886888
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.589 h1:LZihgirMH0vsaGScYexxwY0fTss9vHaSZs/YOQUVESg=
@@ -955,6 +957,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver v1.0.689 h1:S
955957
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver v1.0.689/go.mod h1:nRLv9M2dJm5gH5xlwg8KSJ30g5qOO07mkAePzXoEGVM=
956958
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.0.199 h1:UkF3qBxMbpOf2VjxgzMgqvBCS+Hqr8XXSrtRd+rABMk=
957959
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.0.199/go.mod h1:Ofo7/s0NJLXV7rX/Yfx0OPq8NaPie07JwoEGZpxTeJY=
960+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.0.737 h1:jwXNUvSfYkSMMqdNtpXvWBxRFG6Vo2Zq55pT0pmUEb4=
961+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.0.737/go.mod h1:8GgTEIpk5TW0mDB/FVV/vNSzijtEMiF42AcHf/NpfRA=
958962
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssm v1.0.691 h1:UE55TqueOP889MDcJ+cBW+MBjtzvWUw5fuOBWGCBIjs=
959963
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssm v1.0.691/go.mod h1:IRaYO5mSpBMPX8ydImTcL3jyuEkALEu/55Myb0a+GMs=
960964
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sts v1.0.524 h1:Hda8mBEoQVwkRAaZqztUAWn/n4HCYHZYEwzFBwYKaaM=

tencentcloud/provider.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -882,6 +882,7 @@ SSL Certificates
882882
tencentcloud_ssl_certificate
883883
tencentcloud_ssl_pay_certificate
884884
tencentcloud_ssl_free_certificate
885+
tencentcloud_ssl_commit_certificate_information
885886
886887
Secrets Manager(SSM)
887888
Data Source
@@ -2999,6 +3000,7 @@ func Provider() *schema.Provider {
29993000
"tencentcloud_dlc_work_group": resourceTencentCloudDlcWorkGroup(),
30003001
"tencentcloud_dlc_user": resourceTencentCloudDlcUser(),
30013002
"tencentcloud_wedata_rule_template": resourceTencentCloudWedataRuleTemplate(),
3003+
"tencentcloud_ssl_commit_certificate_information": resourceTencentCloudSslCommitCertificateInformation(),
30023004
},
30033005

30043006
ConfigureFunc: providerConfigure,
Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
/*
2+
Provides a resource to create a ssl commit_certificate_information
3+
4+
Example Usage
5+
6+
```hcl
7+
resource "tencentcloud_ssl_commit_certificate_information" "commit_certificate_information" {
8+
certificate_id = "abcb1234"
9+
verify_type = "type"
10+
}
11+
```
12+
13+
Import
14+
15+
ssl commit_certificate_information can be imported using the id, e.g.
16+
17+
*/
18+
package tencentcloud
19+
20+
import (
21+
"context"
22+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
23+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
24+
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
25+
ssl "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl/v20191205"
26+
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
27+
"log"
28+
)
29+
30+
func resourceTencentCloudSslCommitCertificateInformation() *schema.Resource {
31+
return &schema.Resource{
32+
Create: resourceTencentCloudSslCommitCertificateInformationCreate,
33+
Read: resourceTencentCloudSslCommitCertificateInformationRead,
34+
Delete: resourceTencentCloudSslCommitCertificateInformationDelete,
35+
Schema: map[string]*schema.Schema{
36+
"product_id": {
37+
Type: schema.TypeInt,
38+
Required: true,
39+
ForceNew: true,
40+
ValidateFunc: validateIntegerInRange(3, 56),
41+
Description: "Certificate commodity ID. Valid value ranges: (3~42). `3` means SecureSite enhanced Enterprise Edition (EV Pro), " +
42+
"`4` means SecureSite enhanced (EV), `5` means SecureSite Enterprise Professional Edition (OV Pro), " +
43+
"`6` means SecureSite Enterprise (OV), `7` means SecureSite Enterprise Type (OV) wildcard, " +
44+
"`8` means Geotrust enhanced (EV), `9` means Geotrust enterprise (OV), " +
45+
"`10` means Geotrust enterprise (OV) wildcard, `11` means TrustAsia domain type multi-domain SSL certificate, " +
46+
"`12` means TrustAsia domain type ( DV) wildcard, `13` means TrustAsia enterprise wildcard (OV) SSL certificate (D3), " +
47+
"`14` means TrustAsia enterprise (OV) SSL certificate (D3), `15` means TrustAsia enterprise multi-domain (OV) SSL certificate (D3), " +
48+
"`16` means TrustAsia Enhanced (EV) SSL Certificate (D3), `17` means TrustAsia Enhanced Multiple Domain (EV) SSL Certificate (D3), " +
49+
"`18` means GlobalSign Enterprise (OV) SSL Certificate, `19` means GlobalSign Enterprise Wildcard (OV) SSL Certificate, " +
50+
"`20` means GlobalSign Enhanced (EV) SSL Certificate, `21` means TrustAsia Enterprise Wildcard Multiple Domain (OV) SSL Certificate (D3), " +
51+
"`22` means GlobalSign Enterprise Multiple Domain (OV) SSL Certificate, `23` means GlobalSign Enterprise Multiple Wildcard Domain name (OV) SSL certificate, " +
52+
"`24` means GlobalSign enhanced multi-domain (EV) SSL certificate, `25` means Wotrus domain type certificate, " +
53+
"`26` means Wotrus domain type multi-domain certificate, `27` means Wotrus domain type wildcard certificate, " +
54+
"`28` means Wotrus enterprise type certificate, `29` means Wotrus enterprise multi-domain certificate, " +
55+
"`30` means Wotrus enterprise wildcard certificate, `31` means Wotrus enhanced certificate, " +
56+
"`32` means Wotrus enhanced multi-domain certificate, `33` means WoTrus National Secret Domain name Certificate, " +
57+
"`34` means WoTrus National Secret Domain name Certificate (multiple domain names), `35` WoTrus National Secret Domain name Certificate (wildcard), " +
58+
"`37` means WoTrus State Secret Enterprise Certificate, `38` means WoTrus State Secret Enterprise Certificate (multiple domain names), " +
59+
"`39` means WoTrus State Secret Enterprise Certificate (wildcard), `40` means WoTrus National secret enhanced certificate, " +
60+
"`41` means WoTrus National Secret enhanced Certificate (multiple domain names), `42` means TrustAsia- Domain name Certificate (wildcard multiple domain names), " +
61+
"`43` means DNSPod Enterprise (OV) SSL Certificate, `44` means DNSPod- Enterprise (OV) wildcard SSL certificate, " +
62+
"`45` means DNSPod Enterprise (OV) Multi-domain name SSL Certificate, `46` means DNSPod enhanced (EV) SSL certificate, " +
63+
"`47` means DNSPod enhanced (EV) multi-domain name SSL certificate, `48` means DNSPod Domain name Type (DV) SSL Certificate, " +
64+
"`49` means DNSPod Domain name Type (DV) wildcard SSL certificate, `50` means DNSPod domain name type (DV) multi-domain name SSL certificate, " +
65+
"`51` means DNSPod (State Secret) Enterprise (OV) SSL certificate, `52` DNSPod (National Secret) Enterprise (OV) wildcard SSL certificate, " +
66+
"`53` means DNSPod (National Secret) Enterprise (OV) multi-domain SSL certificate, `54` means DNSPod (National Secret) Domain Name (DV) SSL certificate, " +
67+
"`55` means DNSPod (National Secret) Domain Name Type (DV) wildcard SSL certificate, `56` means DNSPod (National Secret) Domain Name Type (DV) multi-domain SSL certificate.",
68+
},
69+
"certificate_id": {
70+
Required: true,
71+
ForceNew: true,
72+
Type: schema.TypeString,
73+
Description: "Certificate Id.",
74+
},
75+
76+
"verify_type": {
77+
Optional: true,
78+
ForceNew: true,
79+
Type: schema.TypeString,
80+
Description: "Domain name verification method.",
81+
},
82+
"confirm_letter": {
83+
Type: schema.TypeString,
84+
Optional: true,
85+
ForceNew: true,
86+
Description: "The base64-encoded certificate confirmation file should be in jpg, jpeg, png, pdf, and the size should be between 1kb and 1.4M. Note: it only works when product_id is set to 8, 9 or 10.",
87+
},
88+
},
89+
}
90+
}
91+
92+
func resourceTencentCloudSslCommitCertificateInformationCreate(d *schema.ResourceData, meta interface{}) error {
93+
defer logElapsed("resource.tencentcloud_ssl_commit_certificate_information.create")()
94+
defer inconsistentCheck(d, meta)()
95+
96+
logId := getLogId(contextNil)
97+
ctx := context.WithValue(context.TODO(), logIdKey, logId)
98+
sslService := SSLService{client: meta.(*TencentCloudClient).apiV3Conn}
99+
100+
var (
101+
request = ssl.NewCommitCertificateInformationRequest()
102+
productId = int64(d.Get("product_id").(int))
103+
certificateId string
104+
)
105+
if v, ok := d.GetOk("certificate_id"); ok {
106+
certificateId = v.(string)
107+
request.CertificateId = helper.String(v.(string))
108+
}
109+
110+
if v, ok := d.GetOk("verify_type"); ok {
111+
request.VerifyType = helper.String(v.(string))
112+
}
113+
114+
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
115+
result, e := meta.(*TencentCloudClient).apiV3Conn.UseSSLCertificateClient().CommitCertificateInformation(request)
116+
if e != nil {
117+
return retryError(e)
118+
} else {
119+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
120+
}
121+
return nil
122+
})
123+
if err != nil {
124+
log.Printf("[CRITAL]%s create ssl commitCertificateInformation failed, reason:%+v", logId, err)
125+
return err
126+
}
127+
128+
if IsContainProductId(productId, GEOTRUST_OV_EV_TYPE) {
129+
confirmLetter := d.Get("confirm_letter").(string)
130+
uploadConfirmLetterRequest := ssl.NewUploadConfirmLetterRequest()
131+
uploadConfirmLetterRequest.CertificateId = helper.String(certificateId)
132+
uploadConfirmLetterRequest.ConfirmLetter = helper.String(confirmLetter)
133+
if err = resource.Retry(writeRetryTimeout, func() *resource.RetryError {
134+
if err = sslService.UploadConfirmLetter(ctx, uploadConfirmLetterRequest); err != nil {
135+
if sdkError, ok := err.(*errors.TencentCloudSDKError); ok {
136+
code := sdkError.GetCode()
137+
if code == InvalidParam || code == CertificateNotFound {
138+
return resource.NonRetryableError(sdkError)
139+
}
140+
}
141+
return retryError(err)
142+
}
143+
return nil
144+
}); err != nil {
145+
return err
146+
}
147+
}
148+
149+
d.SetId(certificateId)
150+
151+
return nil
152+
}
153+
func resourceTencentCloudSslCommitCertificateInformationRead(d *schema.ResourceData, meta interface{}) error {
154+
defer logElapsed("resource.tencentcloud_ssl_pay_certificate.read")()
155+
defer inconsistentCheck(d, meta)()
156+
return nil
157+
}
158+
func resourceTencentCloudSslCommitCertificateInformationDelete(d *schema.ResourceData, meta interface{}) error {
159+
defer logElapsed("resource.tencentcloud_ssl_commit_certificate_information.delete")()
160+
defer inconsistentCheck(d, meta)()
161+
162+
return nil
163+
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package tencentcloud
2+
3+
import (
4+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
5+
"testing"
6+
)
7+
8+
func TestAccTencentCloudSslCommitCertificateInformationResource_basic(t *testing.T) {
9+
t.Parallel()
10+
resource.Test(t, resource.TestCase{
11+
PreCheck: func() {
12+
testAccPreCheck(t)
13+
},
14+
Providers: testAccProviders,
15+
Steps: []resource.TestStep{
16+
{
17+
Config: testAccSslCommitCertificateInformation,
18+
Check: resource.ComposeTestCheckFunc(resource.TestCheckResourceAttrSet("tencentcloud_ssl_commit_certificate_information.commit_certificate_information", "id")),
19+
},
20+
},
21+
})
22+
}
23+
24+
const testAccSslCommitCertificateInformation = `
25+
26+
resource "tencentcloud_ssl_pay_certificate" "ssl" {
27+
product_id = 33
28+
domain_num = 1
29+
alias = "test-ssl-update"
30+
project_id = 0
31+
wait_commit_flag = true
32+
information {
33+
csr_type = "online"
34+
certificate_domain = "www.domain.com"
35+
organization_name = "test-update"
36+
organization_division = "test"
37+
organization_address = "test"
38+
organization_country = "CN"
39+
organization_city = "test"
40+
organization_region = "test"
41+
postal_code = "0755"
42+
phone_area_code = "0755"
43+
phone_number = "12345678901"
44+
verify_type = "DNS"
45+
admin_first_name = "test"
46+
admin_last_name = "test"
47+
admin_phone_num = "12345678901"
48+
admin_email = "test@tencent.com"
49+
admin_position = "dev"
50+
contact_first_name = "test"
51+
contact_last_name = "test"
52+
contact_email = "test@tencent.com"
53+
contact_number = "12345678901"
54+
contact_position = "dev"
55+
}
56+
}
57+
resource "tencentcloud_ssl_commit_certificate_information" "commit_certificate_information" {
58+
product_id = 33
59+
certificate_id = tencentcloud_ssl_pay_certificate.ssl.certificate_id
60+
}
61+
62+
`

tencentcloud/resource_tc_ssl_pay_certificate.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ func resourceTencentCloudSSLInstance() *schema.Resource {
144144
"wait_commit_flag": {
145145
Type: schema.TypeBool,
146146
Optional: true,
147-
Description: "No information submitted yet.",
147+
Description: "If `wait_commit_flag` is set to true, info will not be submitted temporarily, false opposite.",
148148
},
149149
// ssl information
150150
"information": {
@@ -640,7 +640,7 @@ func resourceTencentCloudSSLInstanceUpdate(d *schema.ResourceData, meta interfac
640640
}
641641

642642
if *describeResponse.Response.Status != SSL_STATUS_TO_BE_COMMIT {
643-
err := fmt.Errorf("certificate is not available, status is %d", *describeResponse.Response.Status)
643+
err := fmt.Errorf("the certificate cannot be modified, status is %d", *describeResponse.Response.Status)
644644
return resource.RetryableError(err)
645645
}
646646
return nil

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)