diff --git a/.changelog/3178.txt b/.changelog/3178.txt new file mode 100644 index 0000000000..7b91b81c2b --- /dev/null +++ b/.changelog/3178.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +resource/tencentcloud_dc_gateway_ccn_routes: add new params +``` \ No newline at end of file diff --git a/tencentcloud/services/dcg/data_source_tc_dc_gateway_ccn_routes.go b/tencentcloud/services/dcg/data_source_tc_dc_gateway_ccn_routes.go index 4e644c344f..e31c1cb880 100644 --- a/tencentcloud/services/dcg/data_source_tc_dc_gateway_ccn_routes.go +++ b/tencentcloud/services/dcg/data_source_tc_dc_gateway_ccn_routes.go @@ -18,6 +18,16 @@ func DataSourceTencentCloudDcGatewayCCNRoutes() *schema.Resource { Required: true, Description: "ID of the DCG to be queried.", }, + "ccn_route_type": { + Type: schema.TypeString, + Optional: true, + Description: "Cloud networking routing learning type, optional values: BGP - Automatic Learning; STATIC - User configured. Default is STATIC.", + }, + "address_type": { + Type: schema.TypeString, + Optional: true, + Description: "Address type, supports: IPv4, IPv6. Default is IPv4.", + }, "result_output_file": { Type: schema.TypeString, Optional: true, @@ -69,10 +79,24 @@ func dataSourceTencentCloudDcGatewayCCNRoutesRead(d *schema.ResourceData, meta i service := VpcService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()} var ( - id = d.Get("dcg_id").(string) + id string + ccnRouteType string + addressType string ) - var infos, err = service.DescribeDirectConnectGatewayCcnRoutes(ctx, id) + if v, ok := d.GetOk("dcg_id"); ok { + id = v.(string) + } + + if v, ok := d.GetOk("ccn_route_type"); ok { + ccnRouteType = v.(string) + } + + if v, ok := d.GetOk("address_type"); ok { + addressType = v.(string) + } + + var infos, err = service.DescribeDirectConnectGatewayCcnRoutes(ctx, id, ccnRouteType, addressType) if err != nil { return err } diff --git a/tencentcloud/services/dcg/data_source_tc_dc_gateway_ccn_routes.md b/tencentcloud/services/dcg/data_source_tc_dc_gateway_ccn_routes.md index 8a2752709e..8f160b7f48 100644 --- a/tencentcloud/services/dcg/data_source_tc_dc_gateway_ccn_routes.md +++ b/tencentcloud/services/dcg/data_source_tc_dc_gateway_ccn_routes.md @@ -2,6 +2,8 @@ Use this data source to query detailed information of direct connect gateway rou Example Usage +Complete example + ```hcl resource "tencentcloud_ccn" "main" { name = "ci-temp-test-ccn" @@ -26,8 +28,18 @@ resource "tencentcloud_dc_gateway_ccn_route" "route2" { cidr_block = "192.1.1.0/32" } -#You need to sleep for a few seconds because there is a cache on the server +# You need to sleep for a few seconds because there is a cache on the server data "tencentcloud_dc_gateway_ccn_routes" "test" { dcg_id = tencentcloud_dc_gateway.ccn_main.id } +``` + +Query routes by filters + +```hcl +data "tencentcloud_dc_gateway_ccn_routes" "test" { + dcg_id = tencentcloud_dc_gateway.ccn_main.id + ccn_route_type = "STATIC" + address_type = "IPv4" +} ``` \ No newline at end of file diff --git a/tencentcloud/services/dcg/service_tencentcloud_dcg.go b/tencentcloud/services/dcg/service_tencentcloud_dcg.go index 502c244ac0..e7d540fe0f 100644 --- a/tencentcloud/services/dcg/service_tencentcloud_dcg.go +++ b/tencentcloud/services/dcg/service_tencentcloud_dcg.go @@ -182,7 +182,7 @@ getMoreData: func (me *VpcService) GetCcnRouteId(ctx context.Context, dcgId, cidr string, asPaths []string) (routeId string, has int, errRet error) { - infos, err := me.DescribeDirectConnectGatewayCcnRoutes(ctx, dcgId) + infos, err := me.DescribeDirectConnectGatewayCcnRoutes(ctx, dcgId, "", "") if err != nil { errRet = err return @@ -208,7 +208,7 @@ func (me *VpcService) GetCcnRouteId(ctx context.Context, dcgId, cidr string, asP func (me *VpcService) DescribeDirectConnectGatewayCcnRoute(ctx context.Context, dcgId, routeId string) (infoRet DcgRouteInfo, has int, errRet error) { - infos, err := me.DescribeDirectConnectGatewayCcnRoutes(ctx, dcgId) + infos, err := me.DescribeDirectConnectGatewayCcnRoutes(ctx, dcgId, "", "") if err != nil { errRet = err return @@ -232,7 +232,7 @@ func (me *VpcService) DescribeDirectConnectGatewayCcnRoute(ctx context.Context, } -func (me *VpcService) DescribeDirectConnectGatewayCcnRoutes(ctx context.Context, dcgId string) (infos []DcgRouteInfo, errRet error) { +func (me *VpcService) DescribeDirectConnectGatewayCcnRoutes(ctx context.Context, dcgId, ccnRouteType, addressType string) (infos []DcgRouteInfo, errRet error) { logId := tccommon.GetLogId(ctx) request := vpc.NewDescribeDirectConnectGatewayCcnRoutesRequest() @@ -246,6 +246,13 @@ func (me *VpcService) DescribeDirectConnectGatewayCcnRoutes(ctx context.Context, }() request.DirectConnectGatewayId = &dcgId + if ccnRouteType != "" { + request.CcnRouteType = &ccnRouteType + } + + if addressType != "" { + request.AddressType = &addressType + } infos = make([]DcgRouteInfo, 0, 100) var offset uint64 = 0 diff --git a/website/docs/d/dc_gateway_ccn_routes.html.markdown b/website/docs/d/dc_gateway_ccn_routes.html.markdown index 1dc5b201bd..e5e05856d2 100644 --- a/website/docs/d/dc_gateway_ccn_routes.html.markdown +++ b/website/docs/d/dc_gateway_ccn_routes.html.markdown @@ -13,6 +13,8 @@ Use this data source to query detailed information of direct connect gateway rou ## Example Usage +### Complete example + ```hcl resource "tencentcloud_ccn" "main" { name = "ci-temp-test-ccn" @@ -37,17 +39,29 @@ resource "tencentcloud_dc_gateway_ccn_route" "route2" { cidr_block = "192.1.1.0/32" } -#You need to sleep for a few seconds because there is a cache on the server +# You need to sleep for a few seconds because there is a cache on the server data "tencentcloud_dc_gateway_ccn_routes" "test" { dcg_id = tencentcloud_dc_gateway.ccn_main.id } ``` +### Query routes by filters + +```hcl +data "tencentcloud_dc_gateway_ccn_routes" "test" { + dcg_id = tencentcloud_dc_gateway.ccn_main.id + ccn_route_type = "STATIC" + address_type = "IPv4" +} +``` + ## Argument Reference The following arguments are supported: * `dcg_id` - (Required, String) ID of the DCG to be queried. +* `address_type` - (Optional, String) Address type, supports: IPv4, IPv6. Default is IPv4. +* `ccn_route_type` - (Optional, String) Cloud networking routing learning type, optional values: BGP - Automatic Learning; STATIC - User configured. Default is STATIC. * `result_output_file` - (Optional, String) Used to save results. ## Attributes Reference