@@ -16,8 +16,9 @@ import (
1616
1717func 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 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+
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+
116182func resourceTencentCloudSesEmailAddressDelete (d * schema.ResourceData , meta interface {}) error {
117183 defer tccommon .LogElapsed ("resource.tencentcloud_ses_email_address.delete" )()
118184 defer tccommon .InconsistentCheck (d , meta )()
0 commit comments