Skip to content

Commit 5fb143b

Browse files
hellertanggitmkn
andauthored
Feat/support teo (#1232)
* support teo * support teo * update go.sum * support teo * support teo * update go.sum * update doc * update origin_group * add teo rule * add teo proxy * add teo proxy rule * update teo zone * add zone settings * add security policy * add host certificate * tencentcloud_teo_dns_sec * add tencentcloud_teo_default_certificate * fix: update type * feat: support ddos policy * fix: support and update * fix: update paused * fix: add zone area * fix: Cancel ddos policy support * fix: Cancel ddos policy support * feat: add ddos policy data resource * fix: Modify experience problems * fix: make fmt、make doc、support import * fix: Revise test questions and revise doc * fix: Modify test questions * fix: add available plans data source * fix: Modify test questions * fix: modify price type * fix: date source set id * fix: update ip * fix: modify error fields * fix: id set default value * fix: modify test * fix: delete unit test * fix: skip unit tests * update teo doc * update teo doc Co-authored-by: arunma <arunma@tencent.com>
1 parent ec5a6f8 commit 5fb143b

File tree

57 files changed

+29359
-18
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+29359
-18
lines changed

go.mod

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ require (
3333
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.445
3434
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.199
3535
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.412
36-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.480
36+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.486
3737
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.445
3838
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.359
3939
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dayu v1.0.335
@@ -60,6 +60,7 @@ require (
6060
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcr v1.0.267
6161
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.268
6262
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.472
63+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.486
6364
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.480
6465
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199
6566
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.479

go.sum

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -489,11 +489,16 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.413/go.mod
489489
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.414/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
490490
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.443/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
491491
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.445/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
492+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.463/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
492493
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.466/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
493494
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.472/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
494495
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.479/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
495496
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.480 h1:Dwnfdrk3KXpYRH9Kwrk9sHpZSOmrE7P9LBoNsYUJKR4=
496497
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.480/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
498+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.484 h1:x37ASMnNHHh7X0JpEhJmUz4OQL9DCIoXB0wv8u1TKic=
499+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.484/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
500+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.486 h1:MUO3Gp/jo/t0NBJ2TLH2sDjy+b/eJUCGgBT+7BfN2yE=
501+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.486/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
497502
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.445 h1:Bh7XD0ypNMHYyBOM8hhKsSu+y0VVKUnJVS+YKKhfpGg=
498503
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.445/go.mod h1:jMDD351efCFpT1+KVFbcpu6SbmP4TYmp4qkoCfr63nQ=
499504
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.359 h1:cNKqelPgUxrJkLY0Azd2QHr/UMYOPPnmqs88clt2akk=
@@ -547,6 +552,14 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.268 h1:ez5lvK
547552
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.268/go.mod h1:fchXZhmqaYaG2c4wTCBTdnW6TFAtxl3D/P/yuuuLMfA=
548553
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.472 h1:9Jzrgx78+5XnZ8myNYjCYZn5ZF+tbSIpF6KWGgWr0uY=
549554
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.472/go.mod h1:ayIL2FNqk7HH5fPQrkWtYjgU4jL7if63f7x+yRwb4a0=
555+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.463 h1:QA9uGf9PjzitWIRFtf/NjsB4HjeuJdFi43RvTXNJQ5M=
556+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.463/go.mod h1:D8kkDqqTJQe/qYhXsQkwD3ACxXPoAXwNR4JWe1rOQIs=
557+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.480 h1:sP9z+Q7acbqElkzRfWbESLWycmpQHFKM+qIbeFyW24I=
558+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.480/go.mod h1:XC6UD5UnzncR6O48Ya/FsIdkiPJT/jSKlUjolzpfayg=
559+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.484 h1:7+1ltleuaAz/jI3NIapvOsl7wzu8UcJYjnh+d4UWAtc=
560+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.484/go.mod h1:o3AyKFiYfjK7U/DsDzz1XmTRmXrTsemx/gx/630d+DE=
561+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.486 h1:JRtQYtJB9sErV9tXY6xbrC3RmXNepBKd7aV3inxkUPs=
562+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.486/go.mod h1:wtPJIKxQUR3KoL2KWAt/Qi8KMR4ayKHiOeVJ6sTSC4U=
550563
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.480 h1:oZptW2Fo1pW8fKz/dv+RJLr2q8UC1qkqDqWs3rDgvQ8=
551564
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.480/go.mod h1:rs+BUoY53xfiE5sRsVk2RpsjgzODtq52xiBTc6WTWWM=
552565
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199 h1:6Yt74l4pA5QtzhwMNIEUt0spXdSBKH744DDqTHJOCP0=

tencentcloud/connectivity/client.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ import (
5656
tcr "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcr/v20190924"
5757
tdmq "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq/v20200217"
5858
tem "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem/v20210701"
59+
teo "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo/v20220106"
5960
tke "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke/v20180525"
6061
vod "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod/v20180717"
6162
vpc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312"
@@ -119,6 +120,7 @@ type TencentCloudClient struct {
119120
domainConn *domain.Client
120121
lighthouseConn *lighthouse.Client
121122
temConn *tem.Client
123+
teoConn *teo.Client
122124
}
123125

124126
// NewClientProfile returns a new ClientProfile
@@ -746,6 +748,19 @@ func (me *TencentCloudClient) UseTemClient() *tem.Client {
746748
return me.temConn
747749
}
748750

751+
// UseTeoClient returns teo client for service
752+
func (me *TencentCloudClient) UseTeoClient() *teo.Client {
753+
if me.teoConn != nil {
754+
return me.teoConn
755+
}
756+
757+
cpf := me.NewClientProfile(300)
758+
me.teoConn, _ = teo.NewClient(me.Credential, me.Region, cpf)
759+
me.teoConn.WithHttpTransport(&LogRoundTripper{})
760+
761+
return me.teoConn
762+
}
763+
749764
func getEnvDefault(key string, defVal int) int {
750765
val, ex := os.LookupEnv(key)
751766
if !ex {
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
/*
2+
Use this data source to query zone available plans.
3+
4+
Example Usage
5+
6+
```hcl
7+
data "tencentcloud_teo_zone_available_plans" "available_plans" {}
8+
```
9+
*/
10+
package tencentcloud
11+
12+
import (
13+
"context"
14+
"log"
15+
16+
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
17+
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
18+
teo "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo/v20220106"
19+
)
20+
21+
func dataSourceTencentCloudTeoZoneAvailablePlans() *schema.Resource {
22+
return &schema.Resource{
23+
Read: dataSourceTencentCloudTeoZoneAvailablePlansRead,
24+
25+
Schema: map[string]*schema.Schema{
26+
"plan_info_list": {
27+
Type: schema.TypeList,
28+
Computed: true,
29+
Description: "Available plans for a zone.",
30+
Elem: &schema.Resource{
31+
Schema: map[string]*schema.Schema{
32+
"plan_type": {
33+
Type: schema.TypeString,
34+
Computed: true,
35+
Description: "Plan type.",
36+
},
37+
"currency": {
38+
Type: schema.TypeString,
39+
Computed: true,
40+
Description: "Currency type. Valid values: `CNY`, `USD`.",
41+
},
42+
"flux": {
43+
Type: schema.TypeInt,
44+
Computed: true,
45+
Description: "The number of fluxes included in the zone plan. Unit: Byte.",
46+
},
47+
"frequency": {
48+
Type: schema.TypeString,
49+
Computed: true,
50+
Description: "Billing cycle. Valid values: `y`: Billed by the year; `m`: Billed by the month; `h`: Billed by the hour; `M`: Billed by the minute; `s`: Billed by the second.",
51+
},
52+
"price": {
53+
Type: schema.TypeInt,
54+
Computed: true,
55+
Description: "Price of the plan. Unit: cent.",
56+
},
57+
"request": {
58+
Type: schema.TypeInt,
59+
Computed: true,
60+
Description: "The number of requests included in the zone plan.",
61+
},
62+
"site_number": {
63+
Type: schema.TypeInt,
64+
Computed: true,
65+
Description: "The number of zones this zone plan can bind.",
66+
},
67+
},
68+
},
69+
},
70+
"result_output_file": {
71+
Type: schema.TypeString,
72+
Optional: true,
73+
Description: "Used for save results.",
74+
},
75+
},
76+
}
77+
}
78+
79+
func dataSourceTencentCloudTeoZoneAvailablePlansRead(d *schema.ResourceData, meta interface{}) error {
80+
defer logElapsed("data_source.tencentcloud_teo_zone_available_plans.read")()
81+
82+
var (
83+
logId = getLogId(contextNil)
84+
ctx = context.WithValue(context.TODO(), logIdKey, logId)
85+
service = TeoService{client: meta.(*TencentCloudClient).apiV3Conn}
86+
availablePlans *teo.DescribeAvailablePlansResponseParams
87+
err error
88+
)
89+
90+
var outErr, inErr error
91+
availablePlans, outErr = service.DescribeAvailablePlans(ctx)
92+
if outErr != nil {
93+
outErr = resource.Retry(readRetryTimeout, func() *resource.RetryError {
94+
availablePlans, inErr = service.DescribeAvailablePlans(ctx)
95+
if inErr != nil {
96+
return retryError(inErr)
97+
}
98+
return nil
99+
})
100+
}
101+
102+
planInfos := availablePlans.PlanInfoList
103+
planInfoList := make([]map[string]interface{}, 0, len(planInfos))
104+
for _, v := range planInfos {
105+
planInfo := map[string]interface{}{
106+
"plan_type": v.PlanType,
107+
"currency": v.Currency,
108+
"flux": v.Flux,
109+
"frequency": v.Frequency,
110+
"price": v.Price,
111+
"request": v.Request,
112+
"site_number": v.SiteNumber,
113+
}
114+
planInfoList = append(planInfoList, planInfo)
115+
}
116+
if err = d.Set("plan_info_list", planInfoList); err != nil {
117+
log.Printf("[CRITAL]%s provider set list fail, reason:%s", logId, err.Error())
118+
return err
119+
}
120+
121+
d.SetId("zone_available_plans")
122+
123+
output, ok := d.GetOk("result_output_file")
124+
if ok && output.(string) != "" {
125+
if e := writeToFile(output.(string), planInfoList); e != nil {
126+
return e
127+
}
128+
}
129+
return nil
130+
}

0 commit comments

Comments
 (0)