Skip to content

Commit 85d9524

Browse files
committed
add
1 parent cce4fd1 commit 85d9524

File tree

3 files changed

+105
-14
lines changed

3 files changed

+105
-14
lines changed

tencentcloud/services/ses/resource_tc_ses_email_address.go

Lines changed: 68 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@ import (
1616

1717
func ResourceTencentCloudSesEmailAddress() *schema.Resource {
1818
return &schema.Resource{
19-
Read: resourceTencentCloudSesEmailAddressRead,
2019
Create: resourceTencentCloudSesEmailAddressCreate,
20+
Read: resourceTencentCloudSesEmailAddressRead,
21+
Update: resourceTencentCloudSesEmailAddressUpdate,
2122
Delete: resourceTencentCloudSesEmailAddressDelete,
2223
Importer: &schema.ResourceImporter{
2324
State: schema.ImportStatePassthrough,
@@ -27,7 +28,7 @@ func ResourceTencentCloudSesEmailAddress() *schema.Resource {
2728
Type: schema.TypeString,
2829
Required: true,
2930
ForceNew: true,
30-
Description: "Your sender address. (You can create up to 10 sender addresses for each domain.).",
31+
Description: "Your sender address(You can create up to 10 sender addresses for each domain).",
3132
},
3233

3334
"email_sender_name": {
@@ -36,6 +37,13 @@ func ResourceTencentCloudSesEmailAddress() *schema.Resource {
3637
ForceNew: true,
3738
Description: "Sender name.",
3839
},
40+
41+
"smtp_password": {
42+
Type: schema.TypeString,
43+
Optional: true,
44+
Sensitive: true,
45+
Description: "Password for SMTP, Length limit 64.",
46+
},
3947
},
4048
}
4149
}
@@ -77,6 +85,29 @@ func resourceTencentCloudSesEmailAddressCreate(d *schema.ResourceData, meta inte
7785
}
7886

7987
d.SetId(emailAddress)
88+
89+
// set pwd
90+
if v, ok := d.GetOk("smtp_password"); ok {
91+
pwdRequest := ses.NewUpdateEmailSmtpPassWordRequest()
92+
pwdRequest.EmailAddress = &emailAddress
93+
pwdRequest.Password = helper.String(v.(string))
94+
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
95+
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseSesClient().UpdateEmailSmtpPassWord(pwdRequest)
96+
if e != nil {
97+
return tccommon.RetryError(e)
98+
} else {
99+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, pwdRequest.GetAction(), pwdRequest.ToJsonString(), result.ToJsonString())
100+
}
101+
102+
return nil
103+
})
104+
105+
if err != nil {
106+
log.Printf("[CRITAL]%s update ses email address smtp password failed, reason:%+v", logId, err)
107+
return err
108+
}
109+
}
110+
80111
return resourceTencentCloudSesEmailAddressRead(d, meta)
81112
}
82113

@@ -113,6 +144,41 @@ func resourceTencentCloudSesEmailAddressRead(d *schema.ResourceData, meta interf
113144
return nil
114145
}
115146

147+
func resourceTencentCloudSesEmailAddressUpdate(d *schema.ResourceData, meta interface{}) error {
148+
defer tccommon.LogElapsed("resource.tencentcloud_ses_email_address.update")()
149+
defer tccommon.InconsistentCheck(d, meta)()
150+
151+
var (
152+
logId = tccommon.GetLogId(tccommon.ContextNil)
153+
emailAddress = d.Id()
154+
)
155+
156+
if d.HasChange("smtp_password") {
157+
if v, ok := d.GetOk("smtp_password"); ok {
158+
pwdRequest := ses.NewUpdateEmailSmtpPassWordRequest()
159+
pwdRequest.EmailAddress = &emailAddress
160+
pwdRequest.Password = helper.String(v.(string))
161+
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
162+
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseSesClient().UpdateEmailSmtpPassWord(pwdRequest)
163+
if e != nil {
164+
return tccommon.RetryError(e)
165+
} else {
166+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, pwdRequest.GetAction(), pwdRequest.ToJsonString(), result.ToJsonString())
167+
}
168+
169+
return nil
170+
})
171+
172+
if err != nil {
173+
log.Printf("[CRITAL]%s update ses email address smtp password failed, reason:%+v", logId, err)
174+
return err
175+
}
176+
}
177+
}
178+
179+
return resourceTencentCloudSesEmailAddressRead(d, meta)
180+
}
181+
116182
func resourceTencentCloudSesEmailAddressDelete(d *schema.ResourceData, meta interface{}) error {
117183
defer tccommon.LogElapsed("resource.tencentcloud_ses_email_address.delete")()
118184
defer tccommon.InconsistentCheck(d, meta)()
Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,29 @@
1-
Provides a resource to create a ses email_address
1+
Provides a resource to create a ses email address
22

33
Example Usage
44

5+
Create ses email address
6+
57
```hcl
6-
resource "tencentcloud_ses_email_address" "email_address" {
7-
email_address = "aaa@iac-tf.cloud"
8-
email_sender_name = "aaa"
8+
resource "tencentcloud_ses_email_address" "example" {
9+
email_address = "demo@iac-terraform.cloud"
10+
email_sender_name = "root"
911
}
12+
```
13+
14+
Set smtp password
1015

16+
```hcl
17+
resource "tencentcloud_ses_email_address" "example" {
18+
email_address = "[email protected]"
19+
email_sender_name = "root"
20+
smtp_password = "Password@123"
21+
}
1122
```
23+
1224
Import
1325

1426
ses email_address can be imported using the id, e.g.
1527
```
16-
$ terraform import tencentcloud_ses_email_address.email_address aaa@iac-tf.cloud
28+
$ terraform import tencentcloud_ses_email_address.example demo@iac-terraform.cloud
1729
```

website/docs/r/ses_email_address.html.markdown

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,41 @@ layout: "tencentcloud"
44
page_title: "TencentCloud: tencentcloud_ses_email_address"
55
sidebar_current: "docs-tencentcloud-resource-ses_email_address"
66
description: |-
7-
Provides a resource to create a ses email_address
7+
Provides a resource to create a ses email address
88
---
99

1010
# tencentcloud_ses_email_address
1111

12-
Provides a resource to create a ses email_address
12+
Provides a resource to create a ses email address
1313

1414
## Example Usage
1515

16+
### Create ses email address
17+
18+
```hcl
19+
resource "tencentcloud_ses_email_address" "example" {
20+
email_address = "[email protected]"
21+
email_sender_name = "root"
22+
}
23+
```
24+
25+
### Set smtp password
26+
1627
```hcl
17-
resource "tencentcloud_ses_email_address" "email_address" {
18-
email_address = "[email protected]"
19-
email_sender_name = "aaa"
28+
resource "tencentcloud_ses_email_address" "example" {
29+
email_address = "[email protected]"
30+
email_sender_name = "root"
31+
smtp_password = "Password@123"
2032
}
2133
```
2234

2335
## Argument Reference
2436

2537
The following arguments are supported:
2638

27-
* `email_address` - (Required, String, ForceNew) Your sender address. (You can create up to 10 sender addresses for each domain.).
39+
* `email_address` - (Required, String, ForceNew) Your sender address(You can create up to 10 sender addresses for each domain).
2840
* `email_sender_name` - (Optional, String, ForceNew) Sender name.
41+
* `smtp_password` - (Optional, String) Password for SMTP, Length limit 64.
2942

3043
## Attributes Reference
3144

@@ -39,6 +52,6 @@ In addition to all arguments above, the following attributes are exported:
3952

4053
ses email_address can be imported using the id, e.g.
4154
```
42-
$ terraform import tencentcloud_ses_email_address.email_address aaa@iac-tf.cloud
55+
$ terraform import tencentcloud_ses_email_address.example demo@iac-terraform.cloud
4356
```
4457

0 commit comments

Comments
 (0)