@@ -16,8 +16,9 @@ import (
16
16
17
17
func ResourceTencentCloudSesEmailAddress () * schema.Resource {
18
18
return & schema.Resource {
19
- Read : resourceTencentCloudSesEmailAddressRead ,
20
19
Create : resourceTencentCloudSesEmailAddressCreate ,
20
+ Read : resourceTencentCloudSesEmailAddressRead ,
21
+ Update : resourceTencentCloudSesEmailAddressUpdate ,
21
22
Delete : resourceTencentCloudSesEmailAddressDelete ,
22
23
Importer : & schema.ResourceImporter {
23
24
State : schema .ImportStatePassthrough ,
@@ -27,7 +28,7 @@ func ResourceTencentCloudSesEmailAddress() *schema.Resource {
27
28
Type : schema .TypeString ,
28
29
Required : true ,
29
30
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)." ,
31
32
},
32
33
33
34
"email_sender_name" : {
@@ -36,6 +37,13 @@ func ResourceTencentCloudSesEmailAddress() *schema.Resource {
36
37
ForceNew : true ,
37
38
Description : "Sender name." ,
38
39
},
40
+
41
+ "smtp_password" : {
42
+ Type : schema .TypeString ,
43
+ Optional : true ,
44
+ Sensitive : true ,
45
+ Description : "Password for SMTP, Length limit 64." ,
46
+ },
39
47
},
40
48
}
41
49
}
@@ -77,6 +85,29 @@ func resourceTencentCloudSesEmailAddressCreate(d *schema.ResourceData, meta inte
77
85
}
78
86
79
87
d .SetId (emailAddress )
88
+
89
+ // set smtp 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
+
80
111
return resourceTencentCloudSesEmailAddressRead (d , meta )
81
112
}
82
113
@@ -113,6 +144,41 @@ func resourceTencentCloudSesEmailAddressRead(d *schema.ResourceData, meta interf
113
144
return nil
114
145
}
115
146
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
+
116
182
func resourceTencentCloudSesEmailAddressDelete (d * schema.ResourceData , meta interface {}) error {
117
183
defer tccommon .LogElapsed ("resource.tencentcloud_ses_email_address.delete" )()
118
184
defer tccommon .InconsistentCheck (d , meta )()
0 commit comments