Skip to content

Commit 4e52257

Browse files
authored
add vpc data source (#1861)
* add vpc data source * add changelog
1 parent eba43ef commit 4e52257

File tree

46 files changed

+4113
-120
lines changed

Some content is hidden

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

46 files changed

+4113
-120
lines changed

.changelog/1861.txt

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
```release-note:new-data-source
2+
tencentcloud_vpc_account_attributes
3+
```
4+
5+
```release-note:new-data-source
6+
tencentcloud_vpc_classic_link_instances
7+
```
8+
9+
```release-note:new-data-source
10+
tencentcloud_vpc_gateway_flow_monitor_detail
11+
```
12+
13+
```release-note:new-data-source
14+
tencentcloud_vpc_gateway_flow_qos
15+
```
16+
17+
```release-note:new-data-source
18+
tencentcloud_vpc_cvm_instances
19+
```
20+
21+
```release-note:new-data-source
22+
tencentcloud_vpc_net_detect_states
23+
```
24+
25+
```release-note:new-data-source
26+
tencentcloud_vpc_network_interface_limit
27+
```
28+
29+
```release-note:new-data-source
30+
tencentcloud_vpc_private_ip_addresses
31+
```
32+
33+
```release-note:new-data-source
34+
tencentcloud_vpc_product_quota
35+
```
36+
37+
```release-note:new-data-source
38+
tencentcloud_vpc_resource_dashboard
39+
```
40+
41+
```release-note:new-data-source
42+
tencentcloud_vpc_route_conflicts
43+
```
44+
45+
```release-note:new-resource
46+
tencentcloud_vpc_enable_end_point_connect
47+
```

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ require (
8585
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.650
8686
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tsf v1.0.661
8787
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199
88-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.659
88+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.669
8989
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199
9090
github.com/tencentyun/cos-go-sdk-v5 v0.7.40
9191
github.com/yangwenmai/ratelimit v0.0.0-20180104140304-44221c2292e1

go.sum

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -792,12 +792,10 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfs v1.0.627 h1:nChNdoC
792792
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfs v1.0.627/go.mod h1:lr3IyWgJk4rLWr0vVd8J1Tfs5O+wNcwSZ9ciMhGUrlI=
793793
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/chdfs v1.0.600 h1:qSpp4rEgAzfXhi1rPxes+AJp2mwnsyRGPY/Km1FuYGs=
794794
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/chdfs v1.0.600/go.mod h1:xud1dQ7Rc23yC5kS00TYRrvZ/A+94EOkwquaI6xGVac=
795-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.666 h1:uYZFM32iY46rLtvKMMv+aLoGfAM9XgCq/4+h3xu9UPQ=
796-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.666/go.mod h1:GSkOVaAn5wPunmyOLCe9m9D1hNscI4lKfOnpeByAFlc=
797-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.659 h1:Hleh17bTIva3PWprkgA/qR1mkHlzV0TSBBOEzqxI500=
798-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.659/go.mod h1:fyVWBJDuBRQ1xd6EtyfCvGYc/NajNSu1Sa3lWrFYVNk=
799795
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.667 h1:cecrsRRZ5bvKC/3DHvngMkkHe52+Run+73kLy/I/xLU=
800796
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.667/go.mod h1:oMEFOM7AR1K/5pJyhQ9x+TXWX3AsxCqYACdqZLxH/kA=
797+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.659 h1:Hleh17bTIva3PWprkgA/qR1mkHlzV0TSBBOEzqxI500=
798+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.659/go.mod h1:fyVWBJDuBRQ1xd6EtyfCvGYc/NajNSu1Sa3lWrFYVNk=
801799
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544 h1:ApY6rS7I9otgujOdAFy0+Epno1PNVCQmsOoWQxx724Y=
802800
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544/go.mod h1:c37rIdL3LrJXYwrfp9c8L4MabTqKIZUe1xvnWhN75oc=
803801
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.663 h1:onri8SDXzJDoKdPLmHAlhJD5xSrsWU34QoOojETi2Q0=
@@ -820,7 +818,6 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.540/go.mod
820818
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.542/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
821819
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.544/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
822820
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.547/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
823-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.564/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
824821
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.571/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
825822
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.572/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
826823
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.578/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
@@ -847,9 +844,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.661/go.mod
847844
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.662/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
848845
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.663/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
849846
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.664/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
850-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.666/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
851-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.667 h1:jOkGU6JrL/Ywd5qRBwpP9jkKzYuxODgnAy0eN+sMZKw=
852847
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.667/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
848+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.669/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
853849
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.670 h1:R9CG671JplBwoVLbOHeSvgBC5tKeVp/dk7edwWqVEoA=
854850
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.670/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
855851
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8=
@@ -931,10 +927,6 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcr v1.0.593 h1:QCvxPWN
931927
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcr v1.0.593/go.mod h1:k8Rnd9/P14yKUCIQH84ScSyi5/bJ5N2WVpL8fC89xrU=
932928
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdcpg v1.0.533 h1:r6HQhmHzPp1oSGhwkNzUzIRlpnpb8Jhtcn1yKhg9ml4=
933929
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdcpg v1.0.533/go.mod h1:5sIIchyV9sXIVAqsD3UWts+qQJ0qoc55sL2WuiY8Ugs=
934-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.564 h1:YO2DCcZn+wRJmvfILBTe1KO4tZcFvmaKW4l/NhgZGoo=
935-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.564/go.mod h1:7ZZ31onSvtbcR8XJWMx2kAhgNDuX/TvyWpQgJW1NqlQ=
936-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.667 h1:ShEqXfoo1HnGJbla+KbOwAoy3r3oZUQ0lhN3PuAvfEA=
937-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.667/go.mod h1:n7nasKXwJ1N7XjYvZwwMZa5ikl+Ay72sV8DOc4f1XS0=
938930
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.670 h1:8HqKhy7wbSsgacBs0iYWh/A0/zvCPzKPS++olMaf9EQ=
939931
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.670/go.mod h1:2K+biNqsIm4z1q8Op13WPWw6J/SnvimIqEllSw+aUQ8=
940932
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.578 h1:vBpQhUroO+FAslUmsDWGi8nvczsqZBWVgQwlnyT0Aj8=
@@ -949,8 +941,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tsf v1.0.661 h1:HSmh+b8
949941
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tsf v1.0.661/go.mod h1:TuZbqKrmzJf1EmO+Rb3hE/9iUQBr/OUtMRhWxsYZ2gs=
950942
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199 h1:6Yt74l4pA5QtzhwMNIEUt0spXdSBKH744DDqTHJOCP0=
951943
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199/go.mod h1:Yw6OQ33z3s4k0HVYTNSffB12qOzEJ2Zf1Vj4+5S3sRs=
952-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.659 h1:3fX1qczT8HD8imwZIcmLfZWNm5u+CAriFCqmZzLFGSc=
953-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.659/go.mod h1:CWdZ52CRor08+sHKH5fxV/vQSLraU4qgoDWPtXOT87Y=
944+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.669 h1:KCU7jNan7oVcTbPElce0YSKr43eyBWpADJhXzzxoeH8=
945+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.669/go.mod h1:G09Hi7iUBxaXmKHUFqeI4FIPWTl4tNHEI9FlwZLElfQ=
954946
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199 h1:hMBLtiJPnZ9GvA677cTB6ELBR6B68wCR2QY1sNoGQc4=
955947
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199/go.mod h1:nnY91/H3j/Gu7V/oCA6Zeg8T5D3q36EUdBh4EjmHwqY=
956948
github.com/tencentyun/cos-go-sdk-v5 v0.7.40 h1:W6vDGKCHe4wBACI1d2UgE6+50sJFhRWU4O8IB2ozzxM=
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
/*
2+
Use this data source to query detailed information of vpc account_attributes
3+
4+
Example Usage
5+
6+
```hcl
7+
data "tencentcloud_vpc_account_attributes" "account_attributes" {}
8+
```
9+
*/
10+
package tencentcloud
11+
12+
import (
13+
"context"
14+
15+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
16+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
17+
vpc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312"
18+
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
19+
)
20+
21+
func dataSourceTencentCloudVpcAccountAttributes() *schema.Resource {
22+
return &schema.Resource{
23+
Read: dataSourceTencentCloudVpcAccountAttributesRead,
24+
Schema: map[string]*schema.Schema{
25+
"account_attribute_set": {
26+
Computed: true,
27+
Type: schema.TypeList,
28+
Description: "User account attribute object.",
29+
Elem: &schema.Resource{
30+
Schema: map[string]*schema.Schema{
31+
"attribute_name": {
32+
Type: schema.TypeString,
33+
Computed: true,
34+
Description: "Attribute name.",
35+
},
36+
"attribute_values": {
37+
Type: schema.TypeSet,
38+
Elem: &schema.Schema{
39+
Type: schema.TypeString,
40+
},
41+
Computed: true,
42+
Description: "Attribute values.",
43+
},
44+
},
45+
},
46+
},
47+
48+
"result_output_file": {
49+
Type: schema.TypeString,
50+
Optional: true,
51+
Description: "Used to save results.",
52+
},
53+
},
54+
}
55+
}
56+
57+
func dataSourceTencentCloudVpcAccountAttributesRead(d *schema.ResourceData, meta interface{}) error {
58+
defer logElapsed("data_source.tencentcloud_vpc_account_attributes.read")()
59+
defer inconsistentCheck(d, meta)()
60+
61+
logId := getLogId(contextNil)
62+
63+
ctx := context.WithValue(context.TODO(), logIdKey, logId)
64+
65+
service := VpcService{client: meta.(*TencentCloudClient).apiV3Conn}
66+
67+
var accountAttributeSet []*vpc.AccountAttribute
68+
69+
err := resource.Retry(readRetryTimeout, func() *resource.RetryError {
70+
result, e := service.DescribeVpcAccountAttributes(ctx)
71+
if e != nil {
72+
return retryError(e)
73+
}
74+
accountAttributeSet = result
75+
return nil
76+
})
77+
if err != nil {
78+
return err
79+
}
80+
81+
ids := make([]string, 0, len(accountAttributeSet))
82+
tmpList := make([]map[string]interface{}, 0, len(accountAttributeSet))
83+
84+
if accountAttributeSet != nil {
85+
for _, accountAttribute := range accountAttributeSet {
86+
accountAttributeMap := map[string]interface{}{}
87+
88+
if accountAttribute.AttributeName != nil {
89+
accountAttributeMap["attribute_name"] = accountAttribute.AttributeName
90+
}
91+
92+
if accountAttribute.AttributeValues != nil {
93+
accountAttributeMap["attribute_values"] = accountAttribute.AttributeValues
94+
}
95+
96+
ids = append(ids, *accountAttribute.AttributeName)
97+
tmpList = append(tmpList, accountAttributeMap)
98+
}
99+
100+
_ = d.Set("account_attribute_set", tmpList)
101+
}
102+
103+
d.SetId(helper.DataResourceIdsHash(ids))
104+
output, ok := d.GetOk("result_output_file")
105+
if ok && output.(string) != "" {
106+
if e := writeToFile(output.(string), tmpList); e != nil {
107+
return e
108+
}
109+
}
110+
return nil
111+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package tencentcloud
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
)
8+
9+
func TestAccTencentCloudVpcAccountAttributesDataSource_basic(t *testing.T) {
10+
t.Parallel()
11+
resource.Test(t, resource.TestCase{
12+
PreCheck: func() {
13+
testAccPreCheck(t)
14+
},
15+
Providers: testAccProviders,
16+
Steps: []resource.TestStep{
17+
{
18+
Config: testAccVpcAccountAttributesDataSource,
19+
Check: resource.ComposeTestCheckFunc(testAccCheckTencentCloudDataSourceID("data.tencentcloud_vpc_account_attributes.account_attributes")),
20+
},
21+
},
22+
})
23+
}
24+
25+
const testAccVpcAccountAttributesDataSource = `
26+
27+
data "tencentcloud_vpc_account_attributes" "account_attributes" {}
28+
29+
`

0 commit comments

Comments
 (0)