Skip to content

Commit e61d8e1

Browse files
authored
feat: support black list (#2131)
* feat: support black list * feat: add changelog * fix: rename
1 parent c66424f commit e61d8e1

File tree

7 files changed

+222
-0
lines changed

7 files changed

+222
-0
lines changed

.changelog/2131.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:new-resource
2+
tencentcloud_ses_black_list_delete
3+
```

tencentcloud/provider.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1211,6 +1211,7 @@ Simple Email Service(SES)
12111211
tencentcloud_ses_send_email
12121212
tencentcloud_ses_batch_send_email
12131213
tencentcloud_ses_verify_domain
1214+
tencentcloud_ses_black_list_delete
12141215
12151216
Security Token Service(STS)
12161217
Data Source
@@ -2816,6 +2817,7 @@ func Provider() *schema.Provider {
28162817
"tencentcloud_ses_send_email": resourceTencentCloudSesSendEmail(),
28172818
"tencentcloud_ses_batch_send_email": resourceTencentCloudSesBatchSendEmail(),
28182819
"tencentcloud_ses_verify_domain": resourceTencentCloudSesVerifyDomain(),
2820+
"tencentcloud_ses_black_list_delete": resourceTencentCloudSesBlackListDelete(),
28192821
"tencentcloud_sms_sign": resourceTencentCloudSmsSign(),
28202822
"tencentcloud_sms_template": resourceTencentCloudSmsTemplate(),
28212823
"tencentcloud_dcdb_account": resourceTencentCloudDcdbAccount(),
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
/*
2+
Provides a resource to create a ses black_list
3+
4+
~> **NOTE:** Used to remove email addresses from blacklists.
5+
6+
Example Usage
7+
8+
```hcl
9+
resource "tencentcloud_ses_black_list_delete" "black_list" {
10+
email_address = "terraform-tf@gmail.com"
11+
}
12+
```
13+
*/
14+
package tencentcloud
15+
16+
import (
17+
"log"
18+
19+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
20+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
21+
ses "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ses/v20201002"
22+
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
23+
)
24+
25+
func resourceTencentCloudSesBlackListDelete() *schema.Resource {
26+
return &schema.Resource{
27+
Create: resourceTencentCloudSesBlackListDeleteCreate,
28+
Read: resourceTencentCloudSesBlackListDeleteRead,
29+
Delete: resourceTencentCloudSesBlackListDeleteDelete,
30+
Importer: &schema.ResourceImporter{
31+
State: schema.ImportStatePassthrough,
32+
},
33+
Schema: map[string]*schema.Schema{
34+
"email_address": {
35+
Required: true,
36+
ForceNew: true,
37+
Type: schema.TypeString,
38+
Description: "Email addresses to be unblocklisted.",
39+
},
40+
},
41+
}
42+
}
43+
44+
func resourceTencentCloudSesBlackListDeleteCreate(d *schema.ResourceData, meta interface{}) error {
45+
defer logElapsed("resource.tencentcloud_ses_black_list_delete.create")()
46+
defer inconsistentCheck(d, meta)()
47+
48+
logId := getLogId(contextNil)
49+
50+
var (
51+
request = ses.NewDeleteBlackListRequest()
52+
emailAddress string
53+
)
54+
if v, ok := d.GetOk("email_address"); ok {
55+
emailAddress = v.(string)
56+
request.EmailAddressList = append(request.EmailAddressList, helper.String(v.(string)))
57+
}
58+
59+
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
60+
result, e := meta.(*TencentCloudClient).apiV3Conn.UseSesClient().DeleteBlackList(request)
61+
if e != nil {
62+
return retryError(e)
63+
} else {
64+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
65+
}
66+
return nil
67+
})
68+
if err != nil {
69+
log.Printf("[CRITAL]%s operate ses BlackList failed, reason:%+v", logId, err)
70+
return err
71+
}
72+
73+
d.SetId(emailAddress)
74+
75+
return resourceTencentCloudSesBlackListDeleteRead(d, meta)
76+
}
77+
78+
func resourceTencentCloudSesBlackListDeleteRead(d *schema.ResourceData, meta interface{}) error {
79+
defer logElapsed("resource.tencentcloud_ses_black_list_delete.read")()
80+
defer inconsistentCheck(d, meta)()
81+
82+
return nil
83+
}
84+
85+
func resourceTencentCloudSesBlackListDeleteDelete(d *schema.ResourceData, meta interface{}) error {
86+
defer logElapsed("resource.tencentcloud_ses_black_list_delete.delete")()
87+
defer inconsistentCheck(d, meta)()
88+
89+
return nil
90+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package tencentcloud
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
)
8+
9+
func TestAccTencentNeedFixCloudSesBlackListResource_basic(t *testing.T) {
10+
t.Parallel()
11+
resource.Test(t, resource.TestCase{
12+
PreCheck: func() {
13+
testAccStepSetRegion(t, "ap-hongkong")
14+
testAccPreCheckBusiness(t, ACCOUNT_TYPE_SES)
15+
},
16+
Providers: testAccProviders,
17+
Steps: []resource.TestStep{
18+
{
19+
Config: testAccSesBlackList,
20+
Check: resource.ComposeTestCheckFunc(
21+
resource.TestCheckResourceAttrSet("tencentcloud_ses_black_list_delete.black_list", "id"),
22+
),
23+
},
24+
},
25+
})
26+
}
27+
28+
const testAccSesBlackList = `
29+
30+
resource "tencentcloud_ses_send_email" "send_email" {
31+
from_email_address = "aaa@iac-tf.cloud"
32+
destination = ["terraform-tf@gmail.com"]
33+
subject = "test subject"
34+
reply_to_addresses = "aaa@iac-tf.cloud"
35+
36+
template {
37+
template_id = 99629
38+
template_data = "{\"name\":\"xxx\",\"age\":\"xx\"}"
39+
}
40+
41+
unsubscribe = "1"
42+
trigger_type = 1
43+
}
44+
45+
resource "tencentcloud_ses_black_list_delete" "black_list" {
46+
email_address = "terraform-tf@gmail.com"
47+
depends_on = [ tencentcloud_ses_send_email.send_email ]
48+
}
49+
50+
`
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
subcategory: "Simple Email Service(SES)"
3+
layout: "tencentcloud"
4+
page_title: "TencentCloud: tencentcloud_ses_black_list"
5+
sidebar_current: "docs-tencentcloud-resource-ses_black_list"
6+
description: |-
7+
Provides a resource to create a ses black_list
8+
---
9+
10+
# tencentcloud_ses_black_list
11+
12+
Provides a resource to create a ses black_list
13+
14+
~> **NOTE:** Used to remove email addresses from blacklists.
15+
16+
## Example Usage
17+
18+
```hcl
19+
resource "tencentcloud_ses_black_list" "black_list" {
20+
email_address = "terraform-tf@gmail.com"
21+
}
22+
```
23+
24+
## Argument Reference
25+
26+
The following arguments are supported:
27+
28+
* `email_address` - (Required, String, ForceNew) Email addresses to be unblocklisted.
29+
30+
## Attributes Reference
31+
32+
In addition to all arguments above, the following attributes are exported:
33+
34+
* `id` - ID of the resource.
35+
36+
37+
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
subcategory: "Simple Email Service(SES)"
3+
layout: "tencentcloud"
4+
page_title: "TencentCloud: tencentcloud_ses_black_list_delete"
5+
sidebar_current: "docs-tencentcloud-resource-ses_black_list_delete"
6+
description: |-
7+
Provides a resource to create a ses black_list
8+
---
9+
10+
# tencentcloud_ses_black_list_delete
11+
12+
Provides a resource to create a ses black_list
13+
14+
~> **NOTE:** Used to remove email addresses from blacklists.
15+
16+
## Example Usage
17+
18+
```hcl
19+
resource "tencentcloud_ses_black_list_delete" "black_list" {
20+
email_address = "terraform-tf@gmail.com"
21+
}
22+
```
23+
24+
## Argument Reference
25+
26+
The following arguments are supported:
27+
28+
* `email_address` - (Required, String, ForceNew) Email addresses to be unblocklisted.
29+
30+
## Attributes Reference
31+
32+
In addition to all arguments above, the following attributes are exported:
33+
34+
* `id` - ID of the resource.
35+
36+
37+

website/tencentcloud.erb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2581,6 +2581,9 @@
25812581
<li>
25822582
<a href="/docs/providers/tencentcloud/r/ses_batch_send_email.html">tencentcloud_ses_batch_send_email</a>
25832583
</li>
2584+
<li>
2585+
<a href="/docs/providers/tencentcloud/r/ses_black_list_delete.html">tencentcloud_ses_black_list_delete</a>
2586+
</li>
25842587
<li>
25852588
<a href="/docs/providers/tencentcloud/r/ses_domain.html">tencentcloud_ses_domain</a>
25862589
</li>

0 commit comments

Comments
 (0)