Skip to content

Commit 95cfab6

Browse files
authored
feat: support eb plateform_event_template (#2181)
* feat: support eb plateform_event_template * feat: add changelog * fix: modify service
1 parent 042e9b7 commit 95cfab6

7 files changed

+203
-0
lines changed

.changelog/2181.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:new-data-source
2+
tencentcloud_eb_plateform_event_template
3+
```
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
/*
2+
Use this data source to query detailed information of eb plateform_event_template
3+
4+
Example Usage
5+
6+
```hcl
7+
data "tencentcloud_eb_plateform_event_template" "plateform_event_template" {
8+
event_type = "eb_platform_test:TEST:ALL"
9+
}
10+
```
11+
*/
12+
package tencentcloud
13+
14+
import (
15+
"context"
16+
17+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
18+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
19+
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
20+
)
21+
22+
func dataSourceTencentCloudEbPlateformEventTemplate() *schema.Resource {
23+
return &schema.Resource{
24+
Read: dataSourceTencentCloudEbPlateformEventTemplateRead,
25+
Schema: map[string]*schema.Schema{
26+
"event_type": {
27+
Required: true,
28+
Type: schema.TypeString,
29+
Description: "Platform product event type.",
30+
},
31+
32+
"event_template": {
33+
Computed: true,
34+
Type: schema.TypeString,
35+
Description: "Platform product event template.",
36+
},
37+
38+
"result_output_file": {
39+
Type: schema.TypeString,
40+
Optional: true,
41+
Description: "Used to save results.",
42+
},
43+
},
44+
}
45+
}
46+
47+
func dataSourceTencentCloudEbPlateformEventTemplateRead(d *schema.ResourceData, meta interface{}) error {
48+
defer logElapsed("data_source.tencentcloud_eb_plateform_event_template.read")()
49+
defer inconsistentCheck(d, meta)()
50+
51+
logId := getLogId(contextNil)
52+
53+
ctx := context.WithValue(context.TODO(), logIdKey, logId)
54+
55+
var eventType string
56+
paramMap := make(map[string]interface{})
57+
if v, ok := d.GetOk("event_type"); ok {
58+
eventType = v.(string)
59+
paramMap["EventType"] = helper.String(v.(string))
60+
}
61+
62+
service := EbService{client: meta.(*TencentCloudClient).apiV3Conn}
63+
64+
var eventTemplate *string
65+
err := resource.Retry(readRetryTimeout, func() *resource.RetryError {
66+
result, e := service.DescribeEbPlateformEventTemplateByFilter(ctx, paramMap)
67+
if e != nil {
68+
return retryError(e)
69+
}
70+
eventTemplate = result
71+
return nil
72+
})
73+
if err != nil {
74+
return err
75+
}
76+
77+
if eventTemplate != nil {
78+
_ = d.Set("event_template", eventTemplate)
79+
}
80+
81+
d.SetId(helper.DataResourceIdsHash([]string{eventType, *eventTemplate}))
82+
output, ok := d.GetOk("result_output_file")
83+
if ok && output.(string) != "" {
84+
if e := writeToFile(output.(string), eventTemplate); e != nil {
85+
return e
86+
}
87+
}
88+
return nil
89+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package tencentcloud
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
)
8+
9+
// go test -test.run TestAccTencentCloudEbPlateformEventTemplateDataSource_basic -v
10+
func TestAccTencentCloudEbPlateformEventTemplateDataSource_basic(t *testing.T) {
11+
t.Parallel()
12+
resource.Test(t, resource.TestCase{
13+
PreCheck: func() {
14+
testAccStepSetRegion(t, "ap-chongqing")
15+
testAccPreCheck(t)
16+
},
17+
Providers: testAccProviders,
18+
Steps: []resource.TestStep{
19+
{
20+
Config: testAccEbPlateformEventTemplateDataSource,
21+
Check: resource.ComposeTestCheckFunc(
22+
testAccCheckTencentCloudDataSourceID("data.tencentcloud_eb_plateform_event_template.plateform_event_template"),
23+
resource.TestCheckResourceAttrSet("data.tencentcloud_eb_plateform_event_template.plateform_event_template", "event_template"),
24+
),
25+
},
26+
},
27+
})
28+
}
29+
30+
const testAccEbPlateformEventTemplateDataSource = `
31+
32+
data "tencentcloud_eb_plateform_event_template" "plateform_event_template" {
33+
event_type = "eb_platform_test:TEST:ALL"
34+
}
35+
36+
`

tencentcloud/provider.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1659,6 +1659,7 @@ EventBridge(EB)
16591659
tencentcloud_eb_platform_event_names
16601660
tencentcloud_eb_platform_event_patterns
16611661
tencentcloud_eb_platform_products
1662+
tencentcloud_eb_plateform_event_template
16621663
16631664
Resource
16641665
tencentcloud_eb_event_transform
@@ -2381,6 +2382,7 @@ func Provider() *schema.Provider {
23812382
"tencentcloud_eb_platform_event_names": dataSourceTencentCloudEbPlatformEventNames(),
23822383
"tencentcloud_eb_platform_event_patterns": dataSourceTencentCloudEbPlatformEventPatterns(),
23832384
"tencentcloud_eb_platform_products": dataSourceTencentCloudEbPlatformProducts(),
2385+
"tencentcloud_eb_plateform_event_template": dataSourceTencentCloudEbPlateformEventTemplate(),
23842386
"tencentcloud_wedata_rule_templates": dataSourceTencentCloudWedataRuleTemplates(),
23852387
"tencentcloud_private_dns_records": dataSourceTencentCloudPrivateDnsRecords(),
23862388
"tencentcloud_waf_ciphers": dataSourceTencentCloudWafCiphers(),

tencentcloud/service_tencentcloud_eb.go

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -628,3 +628,38 @@ func (me *EbService) DescribeEbPlatformProductsByFilter(ctx context.Context, par
628628

629629
return
630630
}
631+
632+
func (me *EbService) DescribeEbPlateformEventTemplateByFilter(ctx context.Context, param map[string]interface{}) (plateformEventTemplate *string, errRet error) {
633+
var (
634+
logId = getLogId(ctx)
635+
request = eb.NewGetPlatformEventTemplateRequest()
636+
)
637+
638+
defer func() {
639+
if errRet != nil {
640+
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error())
641+
}
642+
}()
643+
644+
for k, v := range param {
645+
if k == "EventType" {
646+
request.EventType = v.(*string)
647+
}
648+
}
649+
650+
ratelimit.Check(request.GetAction())
651+
response, err := me.client.UseEbClient().GetPlatformEventTemplate(request)
652+
if err != nil {
653+
errRet = err
654+
return
655+
}
656+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
657+
658+
if response == nil || response.Response == nil || response.Response.EventTemplate == nil {
659+
return
660+
}
661+
662+
plateformEventTemplate = response.Response.EventTemplate
663+
664+
return
665+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
subcategory: "EventBridge(EB)"
3+
layout: "tencentcloud"
4+
page_title: "TencentCloud: tencentcloud_eb_plateform_event_template"
5+
sidebar_current: "docs-tencentcloud-datasource-eb_plateform_event_template"
6+
description: |-
7+
Use this data source to query detailed information of eb plateform_event_template
8+
---
9+
10+
# tencentcloud_eb_plateform_event_template
11+
12+
Use this data source to query detailed information of eb plateform_event_template
13+
14+
## Example Usage
15+
16+
```hcl
17+
data "tencentcloud_eb_plateform_event_template" "plateform_event_template" {
18+
event_type = "eb_platform_test:TEST:ALL"
19+
}
20+
```
21+
22+
## Argument Reference
23+
24+
The following arguments are supported:
25+
26+
* `event_type` - (Required, String) Platform product event type.
27+
* `result_output_file` - (Optional, String) Used to save results.
28+
29+
## Attributes Reference
30+
31+
In addition to all arguments above, the following attributes are exported:
32+
33+
* `event_template` - Platform product event template.
34+
35+

website/tencentcloud.erb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1856,6 +1856,9 @@
18561856
<li>
18571857
<a href="/docs/providers/tencentcloud/d/eb_event_rules.html">tencentcloud_eb_event_rules</a>
18581858
</li>
1859+
<li>
1860+
<a href="/docs/providers/tencentcloud/d/eb_plateform_event_template.html">tencentcloud_eb_plateform_event_template</a>
1861+
</li>
18591862
<li>
18601863
<a href="/docs/providers/tencentcloud/d/eb_platform_event_names.html">tencentcloud_eb_platform_event_names</a>
18611864
</li>

0 commit comments

Comments
 (0)