Skip to content

Commit 7d0a949

Browse files
authored
Feat/eb support (#2039)
* feat: support eb * feat: add test * fix: modify test * fix: update example * fix: support putEvent * feat: add changelog * fix: merge master * fix: update test
1 parent 8d071cd commit 7d0a949

35 files changed

+9777
-3
lines changed

.changelog/2039.txt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
```release-note:new-data-source
2+
tencentcloud_eb_search
3+
```
4+
5+
```release-note:new-resource
6+
tencentcloud_eb_event_transform
7+
```
8+
9+
```release-note:new-resource
10+
tencentcloud_eb_event_bus
11+
```
12+
13+
```release-note:new-resource
14+
tencentcloud_eb_event_rule
15+
```
16+
17+
```release-note:new-resource
18+
tencentcloud_eb_event_target
19+
```

examples/tencentcloud-eb/main.tf

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
resource "tencentcloud_eb_event_bus" "foo" {
2+
event_bus_name = "tf-event_bus"
3+
description = "event bus desc"
4+
enable_store = false
5+
save_days = 1
6+
tags = {
7+
"createdBy" = "terraform"
8+
}
9+
}
10+
11+
resource "tencentcloud_eb_event_rule" "foo" {
12+
event_bus_id = tencentcloud_eb_event_bus.foo.id
13+
rule_name = "tf-event_rule"
14+
description = "event rule desc"
15+
enable = true
16+
event_pattern = jsonencode(
17+
{
18+
source = "apigw.cloud.tencent"
19+
type = [
20+
"connector:apigw",
21+
]
22+
}
23+
)
24+
tags = {
25+
"createdBy" = "terraform"
26+
}
27+
}
28+
29+
resource "tencentcloud_eb_event_transform" "foo" {
30+
event_bus_id = tencentcloud_eb_event_bus.foo.id
31+
rule_id = tencentcloud_eb_event_rule.foo.rule_id
32+
33+
transformations {
34+
35+
extraction {
36+
extraction_input_path = "$"
37+
format = "JSON"
38+
}
39+
40+
transform {
41+
output_structs {
42+
key = "type"
43+
value = "connector:ckafka"
44+
value_type = "STRING"
45+
}
46+
output_structs {
47+
key = "source"
48+
value = "ckafka.cloud.tencent"
49+
value_type = "STRING"
50+
}
51+
output_structs {
52+
key = "region"
53+
value = "ap-guangzhou"
54+
value_type = "STRING"
55+
}
56+
output_structs {
57+
key = "datacontenttype"
58+
value = "application/json;charset=utf-8"
59+
value_type = "STRING"
60+
}
61+
output_structs {
62+
key = "status"
63+
value = "-"
64+
value_type = "STRING"
65+
}
66+
output_structs {
67+
key = "data"
68+
value = jsonencode(
69+
{
70+
Partition = 1
71+
msgBody = "Hello from Ckafka again!"
72+
msgKey = "test"
73+
offset = 37
74+
topic = "test-topic"
75+
}
76+
)
77+
value_type = "STRING"
78+
}
79+
}
80+
}
81+
}
82+
83+
resource "tencentcloud_eb_event_target" "scf_target" {
84+
event_bus_id = tencentcloud_eb_event_bus.foo.id
85+
rule_id = tencentcloud_eb_event_rule.foo.rule_id
86+
type = "scf"
87+
88+
target_description {
89+
resource_description = "qcs::scf:${var.zone}:uin/${data.tencentcloud_cam_users.foo.user_list.0.uin}:namespace/${var.namespace}/function/${var.function}/${var.function_version}"
90+
91+
scf_params {
92+
batch_event_count = 1
93+
batch_timeout = 1
94+
enable_batch_delivery = true
95+
}
96+
}
97+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
terraform {
2+
required_version = ">= 0.12"
3+
}

go.mod

Lines changed: 2 additions & 1 deletion
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.713
45+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.715
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
@@ -53,6 +53,7 @@ require (
5353
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.539
5454
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/domain v1.0.414
5555
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dts v1.0.628
56+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/eb v1.0.715
5657
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/emr v1.0.287
5758
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/es v1.0.699
5859
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gaap v1.0.514

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -870,6 +870,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.709/go.mod
870870
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.711/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
871871
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.713 h1:PpuFzN1NwyrCt5ioFwLIPHHlRmRdK3bEFhKbF7X1KlI=
872872
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.713/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
873+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.715 h1:LVdI8azMdf5rM0+ycoiIc+odPoo/SgECQCCRAricPtI=
874+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.715/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
873875
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8=
874876
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624/go.mod h1:+TXSVyeKwt1IhZRqKPbTREteBcP+K07Q846/ilNzLWA=
875877
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.589 h1:LZihgirMH0vsaGScYexxwY0fTss9vHaSZs/YOQUVESg=
@@ -890,6 +892,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/domain v1.0.414 h1:egwj
890892
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/domain v1.0.414/go.mod h1:LRWnBUNRxs/Ee8MzJJd3eHzydlqyB5qmia975Ca/Ox0=
891893
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dts v1.0.628 h1:cnhe9uh8tSyBfiPUckfqNI6t51YNZG9POupTrqWG9lM=
892894
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dts v1.0.628/go.mod h1:JxTXEld643DHk5HeQe4xIvuuoxsCmbTjgmE64Mtrdxw=
895+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/eb v1.0.715 h1:k9wDdxbFD29m2T6B1j5qnpWjVUUVP02vmTZB/m4AVaI=
896+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/eb v1.0.715/go.mod h1:JoFrUxweQaDBzl5jvphkz8uIxvm+pugI25kY8aUdIAo=
893897
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/emr v1.0.287 h1:+9COBXAbQmL7aJ39Q/mF50Ykxq4m5kq/y6vbO+u3zgI=
894898
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/emr v1.0.287/go.mod h1:xRvd0xsyCoviCiMRfJMh5lODPnLx+bnTfENNx6GHzFA=
895899
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/es v1.0.699 h1:7lFObucmWErYOh+5/AzpgerUAFoO72XqhXrAzFltTIo=

tencentcloud/connectivity/client.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ import (
4848
dnspod "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod/v20210323"
4949
domain "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/domain/v20180808"
5050
dts "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dts/v20211206"
51+
eb "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/eb/v20210416"
5152
emr "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/emr/v20190103"
5253
es "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/es/v20180416"
5354
gaap "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gaap/v20180529"
@@ -171,6 +172,7 @@ type TencentCloudClient struct {
171172
ciamConn *ciam.Client
172173
tseConn *tse.Client
173174
cdwchConn *cdwch.Client
175+
ebConn *eb.Client
174176
}
175177

176178
// NewClientProfile returns a new ClientProfile
@@ -1210,6 +1212,20 @@ func (me *TencentCloudClient) UseCdwchClient() *cdwch.Client {
12101212
return me.cdwchConn
12111213
}
12121214

1215+
// UseEbClient returns eb client for service
1216+
func (me *TencentCloudClient) UseEbClient() *eb.Client {
1217+
if me.ebConn != nil {
1218+
return me.ebConn
1219+
}
1220+
1221+
cpf := me.NewClientProfile(300)
1222+
cpf.Language = "zh-CN"
1223+
me.ebConn, _ = eb.NewClient(me.Credential, me.Region, cpf)
1224+
me.ebConn.WithHttpTransport(&LogRoundTripper{})
1225+
1226+
return me.ebConn
1227+
}
1228+
12131229
func getEnvDefault(key string, defVal int) int {
12141230
val, ex := os.LookupEnv(key)
12151231
if !ex {

0 commit comments

Comments
 (0)