Skip to content

Commit 543feb5

Browse files
authored
Merge pull request #2124 from tencentcloudstack/feat/ses-receiver-import
feat: support receiver import
2 parents f1f977c + b11214f commit 543feb5

File tree

11 files changed

+251
-27
lines changed

11 files changed

+251
-27
lines changed

.changelog/2124.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
resource/tencentcloud_ses_receiver: Support import.
3+
```

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.746
45+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.748
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
@@ -72,7 +72,7 @@ require (
7272
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis v1.0.657
7373
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/rum v1.0.542
7474
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf v1.0.729
75-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ses v1.0.743
75+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ses v1.0.748
7676
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sms v1.0.486
7777
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver v1.0.689
7878
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.0.737

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -863,6 +863,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.743/go.mod
863863
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.745/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
864864
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.746 h1:HR4eaIyJhb4sDK8G9W/EuX+ZTgV7mKsd4t4/y5I3mtU=
865865
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.746/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
866+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.748 h1:QKUyqL7RO9fy20Bk/D0jzbcLboyweT6HGVmWlK6Cgqg=
867+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.748/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
866868
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8=
867869
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624/go.mod h1:+TXSVyeKwt1IhZRqKPbTREteBcP+K07Q846/ilNzLWA=
868870
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.589 h1:LZihgirMH0vsaGScYexxwY0fTss9vHaSZs/YOQUVESg=
@@ -923,6 +925,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf v1.0.729 h1:UWTpLpN
923925
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf v1.0.729/go.mod h1:P5cLcaPdmOiRhv79OAvAKf+9JTg/64N7ZxwZHBW2mZA=
924926
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ses v1.0.743 h1:loQWl2qSlclwPrgAyvkIODDXbwy3ZPynAxiMf+TJdjY=
925927
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ses v1.0.743/go.mod h1:oqFIxpm3Pu3cT9qAALFw2VqcC4g/tVyWGOkjVkpJakA=
928+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ses v1.0.748 h1:pG2i5MHLmDkn8RC5wGjqRUx2db4L79JmV7qJyFzK5cs=
929+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ses v1.0.748/go.mod h1:ZADb5YPBRKNvhdQVl74jPKf9gMCDX8rxtDkBsYMSDfU=
926930
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sms v1.0.486 h1:eHLaL+hl5X5f8Apuf2SGVclO3MRev/E3AfA/0aZQGUA=
927931
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sms v1.0.486/go.mod h1:MSsho0YlAsoPCOMqdBfwqGd/SMQ0FTGh0a6emBy2X+g=
928932
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sqlserver v1.0.689 h1:SWmtQo+FO+QneHfwcl7u/4YnSwgxVjXNyJMn9+WlzmI=

tencentcloud/resource_tc_ses_receiver.go

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,12 @@ resource "tencentcloud_ses_receiver" "receiver" {
3535
}
3636
}
3737
```
38+
Import
39+
40+
ses email_address can be imported using the id, e.g.
41+
```
42+
$ terraform import tencentcloud_ses_receiver.receiver receiverId
43+
```
3844
*/
3945
package tencentcloud
4046

@@ -232,24 +238,28 @@ func resourceTencentCloudSesReceiverRead(d *schema.ResourceData, meta interface{
232238
_ = d.Set("desc", receiver.Desc)
233239
}
234240

235-
// if receiver.Data != nil {
236-
// dataList := []interface{}{}
237-
// for _, data := range receiver.Data {
238-
// dataMap := map[string]interface{}{}
241+
receiverData, err := service.DescribeSesReceiverDetailById(ctx, receiverId)
242+
if err != nil {
243+
return err
244+
}
245+
if receiverData != nil {
246+
dataList := []interface{}{}
247+
for _, data := range receiverData {
248+
dataMap := map[string]interface{}{}
239249

240-
// if data.Email != nil {
241-
// dataMap["email"] = data.Email
242-
// }
250+
if data.Email != nil {
251+
dataMap["email"] = data.Email
252+
}
243253

244-
// if data.TemplateData != nil {
245-
// dataMap["template_data"] = data.TemplateData
246-
// }
254+
if data.TemplateData != nil {
255+
dataMap["template_data"] = data.TemplateData
256+
}
247257

248-
// dataList = append(dataList, dataMap)
249-
// }
258+
dataList = append(dataList, dataMap)
259+
}
250260

251-
// _ = d.Set("data", dataList)
252-
// }
261+
_ = d.Set("data", dataList)
262+
}
253263

254264
return nil
255265
}

tencentcloud/resource_tc_ses_receiver_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@ func TestAccTencentCloudSesReceiverResource_basic(t *testing.T) {
3333
resource.TestCheckResourceAttr("tencentcloud_ses_receiver.receiver", "data.0.template_data", "{\"name\":\"xxx\",\"age\":\"xx\"}"),
3434
),
3535
},
36-
// {
37-
// ResourceName: "tencentcloud_ses_receiver.receiver",
38-
// ImportState: true,
39-
// ImportStateVerify: true,
40-
// },
36+
{
37+
ResourceName: "tencentcloud_ses_receiver.receiver",
38+
ImportState: true,
39+
ImportStateVerify: true,
40+
},
4141
},
4242
})
4343
}

tencentcloud/service_tencentcloud_ses.go

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -536,7 +536,11 @@ func (me *SesService) DescribeSesSendEmailStatusByFilter(ctx context.Context, pa
536536
func (me *SesService) DescribeSesReceiverById(ctx context.Context, receiverId string) (Receiver *ses.ReceiverData, errRet error) {
537537
logId := getLogId(ctx)
538538

539-
id, _ := strconv.Atoi(receiverId)
539+
id, err := strconv.Atoi(receiverId)
540+
if err != nil {
541+
errRet = fmt.Errorf("[ERROR]%s id data type error: %v", logId, receiverId)
542+
return
543+
}
540544

541545
request := ses.NewListReceiversRequest()
542546

@@ -582,6 +586,54 @@ func (me *SesService) DescribeSesReceiverById(ctx context.Context, receiverId st
582586
return
583587
}
584588

589+
func (me *SesService) DescribeSesReceiverDetailById(ctx context.Context, receiverId string) (receiverDetail []*ses.ReceiverDetail, errRet error) {
590+
logId := getLogId(ctx)
591+
592+
id, err := strconv.Atoi(receiverId)
593+
if err != nil {
594+
errRet = fmt.Errorf("[ERROR]%s id data type error: %v", logId, receiverId)
595+
return
596+
}
597+
598+
request := ses.NewListReceiverDetailsRequest()
599+
request.ReceiverId = helper.IntUint64(id)
600+
601+
defer func() {
602+
if errRet != nil {
603+
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error())
604+
}
605+
}()
606+
607+
ratelimit.Check(request.GetAction())
608+
609+
var (
610+
offset uint64 = 0
611+
limit uint64 = 20
612+
)
613+
for {
614+
request.Offset = &offset
615+
request.Limit = &limit
616+
response, err := me.client.UseSesClient().ListReceiverDetails(request)
617+
if err != nil {
618+
errRet = err
619+
return
620+
}
621+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
622+
623+
if response == nil || len(response.Response.Data) < 1 {
624+
break
625+
}
626+
receiverDetail = append(receiverDetail, response.Response.Data...)
627+
if len(response.Response.Data) < int(limit) {
628+
break
629+
}
630+
631+
offset += limit
632+
}
633+
634+
return
635+
}
636+
585637
func (me *SesService) DeleteSesReceiverById(ctx context.Context, receiverId string) (errRet error) {
586638
logId := getLogId(ctx)
587639

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.

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ses/v20201002/client.go

Lines changed: 52 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ses/v20201002/models.go

Lines changed: 98 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)