diff --git a/.changelog/2849.txt b/.changelog/2849.txt
new file mode 100644
index 0000000000..ffc3e8a766
--- /dev/null
+++ b/.changelog/2849.txt
@@ -0,0 +1,3 @@
+```release-note:enhancement
+resource/tencentcloud_eip: support `cdc_id` params
+```
\ No newline at end of file
diff --git a/go.mod b/go.mod
index 3c619781dc..687e00b279 100644
--- a/go.mod
+++ b/go.mod
@@ -46,7 +46,7 @@ require (
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.984
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.970
- github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1010
+ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1011
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.960
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.692
@@ -96,7 +96,7 @@ require (
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tse v1.0.857
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tsf v1.0.674
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.860
- github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.978
+ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.1011
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.833
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.792
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199
diff --git a/go.sum b/go.sum
index f5e17abfb6..1546b6c9b6 100644
--- a/go.sum
+++ b/go.sum
@@ -936,6 +936,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1008 h1:BQJ
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1008/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1010 h1:HwhKTg+VcQd5M9AyaEZaqKmpKuWxbf5kni23g1KRmOk=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1010/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1011 h1:cjqeXTwKKtGVqrf6luwunUnA77buzmzbk+G42US1Sns=
+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1011/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993 h1:WlPgXldQCxt7qi5Xrc6j6zTrsXWzN5BcOGs7Irq7fwQ=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993/go.mod h1:Z9U8zNtyuyKhjS0698wqsrG/kLx1TQ5CEixXBwVe7xY=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU=
@@ -1054,6 +1056,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.860 h1:vW2NgAH
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.860/go.mod h1:uCkDh/AW/tb8JGq5b2kqLjqZuhCFR+6oTsq1SrrvT44=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.978 h1:EZlxS90zY799+zYB7dmbMqU8XyWT0lesPTPkCtibC54=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.978/go.mod h1:+8DNFolL3rl8vlN1hiY8HhJG0SchGhzLbCN0K0TA0vU=
+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.1011 h1:QRtuN3T5bF0LWVllUB5ZTxe42P2ZFUB2PmyeWCd1ySs=
+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.1011/go.mod h1:7I7JGx2pVizVaXEte38bGHtyD/P1JwbVrBLbtTl2Rrs=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.833 h1:avaBlZ+Qqv7bfMg/u0jlRsbEBbE18CfqKWbfGc84PLg=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.833/go.mod h1:fUWG217b//46Oa3VXxC5mgeYeewVAbF+lc81uET89EM=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.792 h1:NLgKNOIHWa38AmW7dyfI9Jlcp2Kr9VRD94f48pPNmxM=
diff --git a/tencentcloud/services/cvm/resource_tc_eip.go b/tencentcloud/services/cvm/resource_tc_eip.go
index e7ba5bbee4..c274680abc 100644
--- a/tencentcloud/services/cvm/resource_tc_eip.go
+++ b/tencentcloud/services/cvm/resource_tc_eip.go
@@ -2,8 +2,10 @@ package cvm
import (
"context"
+ "errors"
"fmt"
"log"
+ "strconv"
tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
svctag "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/services/tag"
@@ -108,6 +110,12 @@ func ResourceTencentCloudEip() *schema.Resource {
Computed: true,
Description: "ID of anti DDos package, it must set when `type` is `AntiDDoSEIP`.",
},
+ "cdc_id": {
+ Type: schema.TypeString,
+ Optional: true,
+ Description: "CDC Unique ID.",
+ },
+
// computed
"public_ip": {
Type: schema.TypeString,
@@ -131,8 +139,6 @@ func resourceTencentCloudEipCreate(d *schema.ResourceData, meta interface{}) err
client := meta.(tccommon.ProviderMeta).GetAPIV3Conn()
vpcService := svcvpc.NewVpcService(client)
- tagService := svctag.NewTagService(client)
- region := client.Region
var internetChargeType string
@@ -184,8 +190,12 @@ func resourceTencentCloudEipCreate(d *schema.ResourceData, meta interface{}) err
if v, ok := d.GetOk("anti_ddos_package_id"); ok {
request.AntiDDoSPackageId = helper.String(v.(string))
}
+ if v, ok := d.GetOk("cdc_id"); ok {
+ request.DedicatedClusterId = helper.String(v.(string))
+ }
eipId := ""
+ taskId := ""
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
ratelimit.Check(request.GetAction())
response, err := client.UseVpcClient().AllocateAddresses(request)
@@ -201,6 +211,7 @@ func resourceTencentCloudEipCreate(d *schema.ResourceData, meta interface{}) err
return resource.RetryableError(fmt.Errorf("eip id is nil"))
}
eipId = *response.Response.AddressSet[0]
+ taskId = *response.Response.TaskId
return nil
})
if err != nil {
@@ -208,20 +219,39 @@ func resourceTencentCloudEipCreate(d *schema.ResourceData, meta interface{}) err
}
d.SetId(eipId)
- if tags := helper.GetTags(d, "tags"); len(tags) > 0 {
- resourceName := tccommon.BuildTagResourceName(svcvpc.VPC_SERVICE_TYPE, svcvpc.EIP_RESOURCE_TYPE, region, eipId)
- if err := tagService.ModifyTags(ctx, resourceName, tags, nil); err != nil {
- log.Printf("[CRITAL]%s set eip tags failed: %+v", logId, err)
- return err
+ // wait for status
+ taskIdUint64, err := strconv.ParseUint(taskId, 10, 64)
+ if err != nil {
+ return err
+ }
+ taskRequest := vpc.NewDescribeTaskResultRequest()
+ taskRequest.TaskId = &taskIdUint64
+ err = resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
+ ratelimit.Check(taskRequest.GetAction())
+ taskResponse, err := client.UseVpcClient().DescribeTaskResult(taskRequest)
+ if err != nil {
+ return tccommon.RetryError(err)
+ }
+ if taskResponse.Response.Result != nil && *taskResponse.Response.Result == svcvpc.VPN_TASK_STATUS_RUNNING {
+ return resource.RetryableError(errors.New("eip task is running"))
}
+ if taskResponse.Response.Result != nil && *taskResponse.Response.Result == svcvpc.VPN_TASK_STATUS_FAILED {
+ return resource.NonRetryableError(errors.New("eip task is failed"))
+ }
+ return nil
+ })
+ if err != nil {
+ return err
}
- // wait for status
err = resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
eip, errRet := vpcService.DescribeEipById(ctx, eipId)
if errRet != nil {
return tccommon.RetryError(errRet)
}
+ if eip == nil {
+ return resource.NonRetryableError(errors.New("eip is nil"))
+ }
if eip != nil && *eip.AddressStatus == svcvpc.EIP_STATUS_CREATING {
return resource.RetryableError(fmt.Errorf("eip is still creating"))
}
@@ -294,6 +324,10 @@ func resourceTencentCloudEipRead(d *schema.ResourceData, meta interface{}) error
_ = d.Set("anti_ddos_package_id", eip.AntiDDoSPackageId)
}
+ if eip.DedicatedClusterId != nil {
+ _ = d.Set("cdc_id", eip.DedicatedClusterId)
+ }
+
if bgp != nil {
_ = d.Set("bandwidth_package_id", bgp.BandwidthPackageId)
}
diff --git a/tencentcloud/services/cvm/resource_tc_eip_association.go b/tencentcloud/services/cvm/resource_tc_eip_association.go
index 0cee54ffbf..0f981692ae 100644
--- a/tencentcloud/services/cvm/resource_tc_eip_association.go
+++ b/tencentcloud/services/cvm/resource_tc_eip_association.go
@@ -219,6 +219,7 @@ func resourceTencentCloudEipAssociationRead(d *schema.ResourceData, meta interfa
ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
vpcService = svcvpc.NewVpcService(meta.(tccommon.ProviderMeta).GetAPIV3Conn())
id = d.Id()
+ eipAddress *vpc.Address
)
association, err := ParseEipAssociationId(id)
@@ -235,6 +236,7 @@ func resourceTencentCloudEipAssociationRead(d *schema.ResourceData, meta interfa
if eip == nil {
d.SetId("")
}
+ eipAddress = eip
return nil
})
@@ -252,6 +254,9 @@ func resourceTencentCloudEipAssociationRead(d *schema.ResourceData, meta interfa
_ = d.Set("network_interface_id", association.NetworkInterfaceId)
_ = d.Set("private_ip", association.PrivateIp)
+ if eipAddress.DedicatedClusterId != nil {
+ _ = d.Set("cdc_id", eipAddress.DedicatedClusterId)
+ }
return nil
}
diff --git a/tencentcloud/services/vpc/service_tencentcloud_vpc.go b/tencentcloud/services/vpc/service_tencentcloud_vpc.go
index 5edd5c0e69..84c7f5eccc 100644
--- a/tencentcloud/services/vpc/service_tencentcloud_vpc.go
+++ b/tencentcloud/services/vpc/service_tencentcloud_vpc.go
@@ -2372,6 +2372,37 @@ func (me *VpcService) DescribeEipById(ctx context.Context, eipId string) (eip *v
var specArgs connectivity.IacExtInfo
specArgs.InstanceId = eipId
+ response, err := me.client.UseVpcClient(specArgs).DescribeAddresses(request)
+ if err != nil {
+ log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",
+ logId, request.GetAction(), request.ToJsonString(), err.Error())
+ errRet = err
+ return
+ }
+ log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
+ logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
+
+ if len(response.Response.AddressSet) < 1 {
+ return me.DescribeEipByIdCdc(ctx, eipId)
+ }
+ eip = response.Response.AddressSet[0]
+ return
+}
+
+func (me *VpcService) DescribeEipByIdCdc(ctx context.Context, eipId string) (eip *vpc.Address, errRet error) {
+ logId := tccommon.GetLogId(ctx)
+ request := vpc.NewDescribeAddressesRequest()
+ request.AddressIds = []*string{&eipId}
+ request.Filters = append(request.Filters, &vpc.Filter{
+ Name: helper.String("business-type"),
+ Values: []*string{helper.String("CDC")},
+ })
+
+ ratelimit.Check(request.GetAction())
+
+ var specArgs connectivity.IacExtInfo
+ specArgs.InstanceId = eipId
+
response, err := me.client.UseVpcClient(specArgs).DescribeAddresses(request)
if err != nil {
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",
diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go
index e0e41703d0..4abdf2acc4 100644
--- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go
+++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http/request.go
@@ -265,7 +265,7 @@ func CompleteCommonParams(request Request, region string, requestClient string)
params["Action"] = request.GetAction()
params["Timestamp"] = strconv.FormatInt(time.Now().Unix(), 10)
params["Nonce"] = strconv.Itoa(rand.Int())
- params["RequestClient"] = "SDK_GO_1.0.1010"
+ params["RequestClient"] = "SDK_GO_1.0.1011"
if requestClient != "" {
params["RequestClient"] += ": " + requestClient
}
diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/client.go
index 569a2d55f3..1d720fa450 100644
--- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/client.go
+++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/client.go
@@ -531,6 +531,7 @@ func NewAllocateAddressesResponse() (response *AllocateAddressesResponse) {
// UNSUPPORTEDOPERATION_ACCOUNTNOTSUPPORTED = "UnsupportedOperation.AccountNotSupported"
// UNSUPPORTEDOPERATION_ACTIONNOTFOUND = "UnsupportedOperation.ActionNotFound"
// UNSUPPORTEDOPERATION_BANDWIDTHPACKAGEIDNOTSUPPORTED = "UnsupportedOperation.BandwidthPackageIdNotSupported"
+// UNSUPPORTEDOPERATION_DELIVERYFAILED = "UnsupportedOperation.DeliveryFailed"
// UNSUPPORTEDOPERATION_INSTANCESTATENOTSUPPORTED = "UnsupportedOperation.InstanceStateNotSupported"
// UNSUPPORTEDOPERATION_INVALIDACTION = "UnsupportedOperation.InvalidAction"
// UNSUPPORTEDOPERATION_NOTSUPPORTEDPURCHASECENTEREGRESSRESOURCE = "UnsupportedOperation.NotSupportedPurchaseCenterEgressResource"
@@ -583,6 +584,7 @@ func (c *Client) AllocateAddresses(request *AllocateAddressesRequest) (response
// UNSUPPORTEDOPERATION_ACCOUNTNOTSUPPORTED = "UnsupportedOperation.AccountNotSupported"
// UNSUPPORTEDOPERATION_ACTIONNOTFOUND = "UnsupportedOperation.ActionNotFound"
// UNSUPPORTEDOPERATION_BANDWIDTHPACKAGEIDNOTSUPPORTED = "UnsupportedOperation.BandwidthPackageIdNotSupported"
+// UNSUPPORTEDOPERATION_DELIVERYFAILED = "UnsupportedOperation.DeliveryFailed"
// UNSUPPORTEDOPERATION_INSTANCESTATENOTSUPPORTED = "UnsupportedOperation.InstanceStateNotSupported"
// UNSUPPORTEDOPERATION_INVALIDACTION = "UnsupportedOperation.InvalidAction"
// UNSUPPORTEDOPERATION_NOTSUPPORTEDPURCHASECENTEREGRESSRESOURCE = "UnsupportedOperation.NotSupportedPurchaseCenterEgressResource"
@@ -1049,11 +1051,11 @@ func NewAssociateAddressResponse() (response *AssociateAddressResponse) {
//
// * 将 EIP 绑定到实例(CVM)上,其本质是将 EIP 绑定到实例上主网卡的主内网 IP 上。
//
-// * 将 EIP 绑定到主网卡的主内网IP上,绑定过程会把其上绑定的普通公网 IP 自动解绑并释放。
+// * 将 EIP 绑定到主网卡的主内网IP时,如主内网IP已绑定普通公网IP,必须先退还才能绑定EIP。
//
// * 将 EIP 绑定到指定网卡的内网 IP上(非主网卡的主内网IP),则必须先解绑该 EIP,才能再绑定新的。
//
-// * 将 EIP 绑定到内网型CLB实例的功能处于内测阶段,如需使用,请提交内测申请。
+// * 将 EIP 绑定到内网型CLB实例的功能处于内测阶段,如需使用,请提交[内测申请](https://cloud.tencent.com/apply/p/4kxj7picqci)。
//
// * 将 EIP 绑定到NAT网关,请使用接口[AssociateNatGatewayAddress](https://cloud.tencent.com/document/product/215/36722)
//
@@ -1110,11 +1112,11 @@ func (c *Client) AssociateAddress(request *AssociateAddressRequest) (response *A
//
// * 将 EIP 绑定到实例(CVM)上,其本质是将 EIP 绑定到实例上主网卡的主内网 IP 上。
//
-// * 将 EIP 绑定到主网卡的主内网IP上,绑定过程会把其上绑定的普通公网 IP 自动解绑并释放。
+// * 将 EIP 绑定到主网卡的主内网IP时,如主内网IP已绑定普通公网IP,必须先退还才能绑定EIP。
//
// * 将 EIP 绑定到指定网卡的内网 IP上(非主网卡的主内网IP),则必须先解绑该 EIP,才能再绑定新的。
//
-// * 将 EIP 绑定到内网型CLB实例的功能处于内测阶段,如需使用,请提交内测申请。
+// * 将 EIP 绑定到内网型CLB实例的功能处于内测阶段,如需使用,请提交[内测申请](https://cloud.tencent.com/apply/p/4kxj7picqci)。
//
// * 将 EIP 绑定到NAT网关,请使用接口[AssociateNatGatewayAddress](https://cloud.tencent.com/document/product/215/36722)
//
diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/errors.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/errors.go
index 3b92a86f30..6c1cc48d38 100644
--- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/errors.go
+++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/errors.go
@@ -812,6 +812,9 @@ const (
// VPN通道状态为更新中/销毁中/创建中,不支持此操作。
UNSUPPORTEDOPERATION_DELETEVPNCONNINVALIDSTATE = "UnsupportedOperation.DeleteVpnConnInvalidState"
+ // 发货失败。
+ UNSUPPORTEDOPERATION_DELIVERYFAILED = "UnsupportedOperation.DeliveryFailed"
+
// 专线网关正在更新BGP Community属性。
UNSUPPORTEDOPERATION_DIRECTCONNECTGATEWAYISUPDATINGCOMMUNITY = "UnsupportedOperation.DirectConnectGatewayIsUpdatingCommunity"
diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/models.go
index 95b748474e..ff97d21411 100644
--- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/models.go
+++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312/models.go
@@ -471,6 +471,14 @@ type Address struct {
// 当前公网IP所关联的带宽包ID,如果该公网IP未使用带宽包计费,则返回为空
// 注意:此字段可能返回 null,表示取不到有效值。
BandwidthPackageId *string `json:"BandwidthPackageId,omitnil,omitempty" name:"BandwidthPackageId"`
+
+ // 传统弹性公网IPv6所属vpc唯一ID
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ UnVpcId *string `json:"UnVpcId,omitnil,omitempty" name:"UnVpcId"`
+
+ // CDC唯一ID
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`
}
type AddressChargePrepaid struct {
@@ -505,6 +513,10 @@ type AddressTemplate struct {
// 带备注的IP地址信息。
AddressExtraSet []*AddressInfo `json:"AddressExtraSet,omitnil,omitempty" name:"AddressExtraSet"`
+
+ // 标签键值对。
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ TagSet []*Tag `json:"TagSet,omitnil,omitempty" name:"TagSet"`
}
type AddressTemplateGroup struct {
@@ -522,6 +534,10 @@ type AddressTemplateGroup struct {
// IP地址模板实例。
AddressTemplateSet []*AddressTemplateItem `json:"AddressTemplateSet,omitnil,omitempty" name:"AddressTemplateSet"`
+
+ // 标签键值对。
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ TagSet []*Tag `json:"TagSet,omitnil,omitempty" name:"TagSet"`
}
type AddressTemplateItem struct {
@@ -673,6 +689,9 @@ type AllocateAddressesRequestParams struct {
// EIP名称,用于申请EIP时用户自定义该EIP的个性化名称,默认值:未命名
AddressName *string `json:"AddressName,omitnil,omitempty" name:"AddressName"`
+ // CDC唯一ID
+ DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`
+
// 网络出口,当前仅支持精品BGP、静态单线,这2种IP 地址类型的指定出口传入,默认值:center_egress1,其它可选值:center_egress2、center_egress3
Egress *string `json:"Egress,omitnil,omitempty" name:"Egress"`
@@ -739,6 +758,9 @@ type AllocateAddressesRequest struct {
// EIP名称,用于申请EIP时用户自定义该EIP的个性化名称,默认值:未命名
AddressName *string `json:"AddressName,omitnil,omitempty" name:"AddressName"`
+ // CDC唯一ID
+ DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`
+
// 网络出口,当前仅支持精品BGP、静态单线,这2种IP 地址类型的指定出口传入,默认值:center_egress1,其它可选值:center_egress2、center_egress3
Egress *string `json:"Egress,omitnil,omitempty" name:"Egress"`
@@ -772,6 +794,7 @@ func (r *AllocateAddressesRequest) FromJsonString(s string) error {
delete(f, "Tags")
delete(f, "BandwidthPackageId")
delete(f, "AddressName")
+ delete(f, "DedicatedClusterId")
delete(f, "Egress")
delete(f, "AntiDDoSPackageId")
delete(f, "ClientToken")
@@ -1637,7 +1660,7 @@ func (r *AssociateNetworkAclSubnetsResponse) FromJsonString(s string) error {
// Predefined struct for user
type AssociateNetworkInterfaceSecurityGroupsRequestParams struct {
- // 弹性网卡实例ID。形如:eni-pxir56ns。每次请求的实例的上限为100。
+ // 弹性网卡实例ID。形如:eni-pxir56ns。每次请求的实例的上限为100。本接口不支持主网卡绑定安全组。
NetworkInterfaceIds []*string `json:"NetworkInterfaceIds,omitnil,omitempty" name:"NetworkInterfaceIds"`
// 安全组实例ID,例如:sg-33ocnj9n,可通过DescribeSecurityGroups获取。每次请求的实例的上限为100。
@@ -1647,7 +1670,7 @@ type AssociateNetworkInterfaceSecurityGroupsRequestParams struct {
type AssociateNetworkInterfaceSecurityGroupsRequest struct {
*tchttp.BaseRequest
- // 弹性网卡实例ID。形如:eni-pxir56ns。每次请求的实例的上限为100。
+ // 弹性网卡实例ID。形如:eni-pxir56ns。每次请求的实例的上限为100。本接口不支持主网卡绑定安全组。
NetworkInterfaceIds []*string `json:"NetworkInterfaceIds,omitnil,omitempty" name:"NetworkInterfaceIds"`
// 安全组实例ID,例如:sg-33ocnj9n,可通过DescribeSecurityGroups获取。每次请求的实例的上限为100。
@@ -2194,6 +2217,18 @@ type CCN struct {
// 是否开启二层云联网通道。
// 注意:此字段可能返回 null,表示取不到有效值。
DirectConnectAccelerateChannelFlag *bool `json:"DirectConnectAccelerateChannelFlag,omitnil,omitempty" name:"DirectConnectAccelerateChannelFlag"`
+
+ // 是否支持ipv6路由表
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ Ipv6Flag *string `json:"Ipv6Flag,omitnil,omitempty" name:"Ipv6Flag"`
+
+ // 是否支持路由表聚合策略
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ MrtbAggregatePolicyFlag *bool `json:"MrtbAggregatePolicyFlag,omitnil,omitempty" name:"MrtbAggregatePolicyFlag"`
+
+ // 是否支持策略值
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ MrtbPolicyValueFlag *bool `json:"MrtbPolicyValueFlag,omitnil,omitempty" name:"MrtbPolicyValueFlag"`
}
type CcnAttachedInstance struct {
@@ -2475,6 +2510,14 @@ type CcnRoute struct {
// 下一跳扩展名称(关联实例的扩展名称)
InstanceExtraName *string `json:"InstanceExtraName,omitnil,omitempty" name:"InstanceExtraName"`
+
+ // 实例类型
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ AliasType *string `json:"AliasType,omitnil,omitempty" name:"AliasType"`
+
+ // 实例id
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ AliasInstanceId *string `json:"AliasInstanceId,omitnil,omitempty" name:"AliasInstanceId"`
}
type CcnRouteBroadcastPolicyRouteCondition struct {
@@ -2520,6 +2563,22 @@ type CcnRouteTableBroadcastPolicy struct {
// 策略描述
Description *string `json:"Description,omitnil,omitempty" name:"Description"`
+
+ // as-path操作
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ OperateAsPath *string `json:"OperateAsPath,omitnil,omitempty" name:"OperateAsPath"`
+
+ // as-path操作模式
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ AsPathOperateMode *string `json:"AsPathOperateMode,omitnil,omitempty" name:"AsPathOperateMode"`
+
+ // community操作
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ OperateCommunitySet []*string `json:"OperateCommunitySet,omitnil,omitempty" name:"OperateCommunitySet"`
+
+ // community操作模式
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ CommunityOperateMode *string `json:"CommunityOperateMode,omitnil,omitempty" name:"CommunityOperateMode"`
}
type CcnRouteTableBroadcastPolicys struct {
@@ -2542,6 +2601,14 @@ type CcnRouteTableInputPolicy struct {
// 策略描述。
Description *string `json:"Description,omitnil,omitempty" name:"Description"`
+
+ // as-path操作
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ OperateAsPath *string `json:"OperateAsPath,omitnil,omitempty" name:"OperateAsPath"`
+
+ // as-path操作模式
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ AsPathOperateMode *string `json:"AsPathOperateMode,omitnil,omitempty" name:"AsPathOperateMode"`
}
type CcnRouteTableInputPolicys struct {
@@ -5769,6 +5836,9 @@ type CreateSecurityGroupWithPoliciesRequestParams struct {
// 安全组规则集合。
SecurityGroupPolicySet *SecurityGroupPolicySet `json:"SecurityGroupPolicySet,omitnil,omitempty" name:"SecurityGroupPolicySet"`
+
+ // 指定绑定的标签列表,例如:[{"Key": "city", "Value": "shanghai"}]。
+ Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`
}
type CreateSecurityGroupWithPoliciesRequest struct {
@@ -5785,6 +5855,9 @@ type CreateSecurityGroupWithPoliciesRequest struct {
// 安全组规则集合。
SecurityGroupPolicySet *SecurityGroupPolicySet `json:"SecurityGroupPolicySet,omitnil,omitempty" name:"SecurityGroupPolicySet"`
+
+ // 指定绑定的标签列表,例如:[{"Key": "city", "Value": "shanghai"}]。
+ Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`
}
func (r *CreateSecurityGroupWithPoliciesRequest) ToJsonString() string {
@@ -5803,6 +5876,7 @@ func (r *CreateSecurityGroupWithPoliciesRequest) FromJsonString(s string) error
delete(f, "GroupDescription")
delete(f, "ProjectId")
delete(f, "SecurityGroupPolicySet")
+ delete(f, "Tags")
if len(f) > 0 {
return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateSecurityGroupWithPoliciesRequest has unknown keys!", "")
}
@@ -6307,6 +6381,9 @@ type CreateVpcEndPointRequestParams struct {
// 安全组ID。
SecurityGroupId *string `json:"SecurityGroupId,omitnil,omitempty" name:"SecurityGroupId"`
+
+ // 指定绑定的标签列表,例如:[{"Key": "city", "Value": "shanghai"}]。
+ Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`
}
type CreateVpcEndPointRequest struct {
@@ -6329,6 +6406,9 @@ type CreateVpcEndPointRequest struct {
// 安全组ID。
SecurityGroupId *string `json:"SecurityGroupId,omitnil,omitempty" name:"SecurityGroupId"`
+
+ // 指定绑定的标签列表,例如:[{"Key": "city", "Value": "shanghai"}]。
+ Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`
}
func (r *CreateVpcEndPointRequest) ToJsonString() string {
@@ -6349,6 +6429,7 @@ func (r *CreateVpcEndPointRequest) FromJsonString(s string) error {
delete(f, "EndPointServiceId")
delete(f, "EndPointVip")
delete(f, "SecurityGroupId")
+ delete(f, "Tags")
if len(f) > 0 {
return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateVpcEndPointRequest has unknown keys!", "")
}
@@ -7140,6 +7221,9 @@ type CreateVpnGatewaySslClientRequestParams struct {
// SSL-VPN-CLIENT实例Name数字。批量创建时使用。不可和SslVpnClientName同时使用。
SslVpnClientNames []*string `json:"SslVpnClientNames,omitnil,omitempty" name:"SslVpnClientNames"`
+
+ // 指定绑定的标签列表
+ Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`
}
type CreateVpnGatewaySslClientRequest struct {
@@ -7153,6 +7237,9 @@ type CreateVpnGatewaySslClientRequest struct {
// SSL-VPN-CLIENT实例Name数字。批量创建时使用。不可和SslVpnClientName同时使用。
SslVpnClientNames []*string `json:"SslVpnClientNames,omitnil,omitempty" name:"SslVpnClientNames"`
+
+ // 指定绑定的标签列表
+ Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`
}
func (r *CreateVpnGatewaySslClientRequest) ToJsonString() string {
@@ -7170,6 +7257,7 @@ func (r *CreateVpnGatewaySslClientRequest) FromJsonString(s string) error {
delete(f, "SslVpnServerId")
delete(f, "SslVpnClientName")
delete(f, "SslVpnClientNames")
+ delete(f, "Tags")
if len(f) > 0 {
return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateVpnGatewaySslClientRequest has unknown keys!", "")
}
@@ -7241,6 +7329,9 @@ type CreateVpnGatewaySslServerRequestParams struct {
// SAML-DATA,开启SSO时传。
SamlData *string `json:"SamlData,omitnil,omitempty" name:"SamlData"`
+
+ // 指定绑定的标签列表
+ Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`
}
type CreateVpnGatewaySslServerRequest struct {
@@ -7281,6 +7372,9 @@ type CreateVpnGatewaySslServerRequest struct {
// SAML-DATA,开启SSO时传。
SamlData *string `json:"SamlData,omitnil,omitempty" name:"SamlData"`
+
+ // 指定绑定的标签列表
+ Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`
}
func (r *CreateVpnGatewaySslServerRequest) ToJsonString() string {
@@ -7307,6 +7401,7 @@ func (r *CreateVpnGatewaySslServerRequest) FromJsonString(s string) error {
delete(f, "SsoEnabled")
delete(f, "AccessPolicyEnabled")
delete(f, "SamlData")
+ delete(f, "Tags")
if len(f) > 0 {
return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateVpnGatewaySslServerRequest has unknown keys!", "")
}
@@ -19803,10 +19898,10 @@ type EnableRoutesRequestParams struct {
// 路由表唯一ID。
RouteTableId *string `json:"RouteTableId,omitnil,omitempty" name:"RouteTableId"`
- // 路由策略ID。不能和RouteItemIds同时使用,但至少输入一个。该参数取值可通过查询路由列表([DescribeRouteTables](https://cloud.tencent.com/document/product/215/15763))获取。
+ // 路由策略ID。不能和RouteItemIds同时使用,但至少输入一个。单次处理上限100个。该参数取值可通过查询路由列表([DescribeRouteTables](https://cloud.tencent.com/document/product/215/15763))获取。
RouteIds []*uint64 `json:"RouteIds,omitnil,omitempty" name:"RouteIds"`
- // 路由策略唯一ID。不能和RouteIds同时使用,但至少输入一个。该参数取值可通过查询路由列表([DescribeRouteTables](https://cloud.tencent.com/document/product/215/15763))获取。
+ // 路由策略唯一ID。不能和RouteIds同时使用,但至少输入一个。单次处理上限100个。该参数取值可通过查询路由列表([DescribeRouteTables](https://cloud.tencent.com/document/product/215/15763))获取。
RouteItemIds []*string `json:"RouteItemIds,omitnil,omitempty" name:"RouteItemIds"`
}
@@ -19816,10 +19911,10 @@ type EnableRoutesRequest struct {
// 路由表唯一ID。
RouteTableId *string `json:"RouteTableId,omitnil,omitempty" name:"RouteTableId"`
- // 路由策略ID。不能和RouteItemIds同时使用,但至少输入一个。该参数取值可通过查询路由列表([DescribeRouteTables](https://cloud.tencent.com/document/product/215/15763))获取。
+ // 路由策略ID。不能和RouteItemIds同时使用,但至少输入一个。单次处理上限100个。该参数取值可通过查询路由列表([DescribeRouteTables](https://cloud.tencent.com/document/product/215/15763))获取。
RouteIds []*uint64 `json:"RouteIds,omitnil,omitempty" name:"RouteIds"`
- // 路由策略唯一ID。不能和RouteIds同时使用,但至少输入一个。该参数取值可通过查询路由列表([DescribeRouteTables](https://cloud.tencent.com/document/product/215/15763))获取。
+ // 路由策略唯一ID。不能和RouteIds同时使用,但至少输入一个。单次处理上限100个。该参数取值可通过查询路由列表([DescribeRouteTables](https://cloud.tencent.com/document/product/215/15763))获取。
RouteItemIds []*string `json:"RouteItemIds,omitnil,omitempty" name:"RouteItemIds"`
}
@@ -20094,6 +20189,10 @@ type EndPoint struct {
// 终端节点服务名称。
// 注意:此字段可能返回 null,表示取不到有效值。
ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"`
+
+ // 标签键值对。
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ TagSet []*Tag `json:"TagSet,omitnil,omitempty" name:"TagSet"`
}
type EndPointService struct {
@@ -20139,6 +20238,10 @@ type EndPointService struct {
// 服务IP类型
// 注意:此字段可能返回 null,表示取不到有效值。
BusinessIpType *int64 `json:"BusinessIpType,omitnil,omitempty" name:"BusinessIpType"`
+
+ // 标签键值对。
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ TagSet []*Tag `json:"TagSet,omitnil,omitempty" name:"TagSet"`
}
type Filter struct {
@@ -20461,6 +20564,10 @@ type HaVip struct {
// HAVIP 刷新时间。该参数只作为出参数。以下场景会触发 FlushTime 被刷新:1)子机发出免费 ARP 触发 HAVIP 漂移;2)手动HAVIP解绑网卡; 没有更新时默认值:0000-00-00 00:00:00
// 注意:此字段可能返回 null,表示取不到有效值。
FlushedTime *string `json:"FlushedTime,omitnil,omitempty" name:"FlushedTime"`
+
+ // 标签键值对。
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ TagSet []*Tag `json:"TagSet,omitnil,omitempty" name:"TagSet"`
}
// Predefined struct for user
@@ -21237,7 +21344,7 @@ type LocalGateway struct {
// VPC实例ID
VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`
- // 本地网关实例ID
+ // 本地网关实例ID(计划弃用)
UniqLocalGwId *string `json:"UniqLocalGwId,omitnil,omitempty" name:"UniqLocalGwId"`
// 本地网关名称
@@ -21248,6 +21355,13 @@ type LocalGateway struct {
// 本地网关创建时间
CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`
+
+ // 标签键值对。
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ TagSet []*Tag `json:"TagSet,omitnil,omitempty" name:"TagSet"`
+
+ // 本地网关实例ID(计划起用)
+ LocalGatewayId *string `json:"LocalGatewayId,omitnil,omitempty" name:"LocalGatewayId"`
}
// Predefined struct for user
@@ -25781,6 +25895,10 @@ type NetDetect struct {
// 创建时间。
// 注意:此字段可能返回 null,表示取不到有效值。
CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`
+
+ // 标签键值对。
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ TagSet []*Tag `json:"TagSet,omitnil,omitempty" name:"TagSet"`
}
type NetDetectIpState struct {
@@ -26307,7 +26425,13 @@ type ProductQuota struct {
}
type Quota struct {
- // 配额名称,取值范围: