diff --git a/.changelog/2746.txt b/.changelog/2746.txt new file mode 100644 index 0000000000..2adfe4a68b --- /dev/null +++ b/.changelog/2746.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +resource/tencentcloud_ccn: support route_ecmp_flag and route_overlap_flag +``` diff --git a/go.mod b/go.mod index f4151f94df..562c30c6e8 100644 --- a/go.mod +++ b/go.mod @@ -46,7 +46,7 @@ require ( github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.961 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.970 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.971 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.964 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.971 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 6e2cad99cb..1c4514e560 100644 --- a/go.sum +++ b/go.sum @@ -956,20 +956,20 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.955 h1:kr5K github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.955/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.958 h1:WoN2lhvQVTFnY4woYvpQKRzdHeEiB+m9lsHC3TOFdXQ= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.958/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.960 h1:hde8uWA3624nGUvC8QPf9njcyBZ7A9weqscRrqyM1Rk= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.960/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.963 h1:lUVCMP5eiSHc2HGfSVc07Tytn4p6DklJkKldObRvJrU= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.963/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.964 h1:ET3EulYQvWrdD5FNwOP+196w5Vbniy/uRGucM5ILExQ= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.964/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.959 h1:GZUqSDQkttkhH2hxWNj5apDo1/YhQwML0Q68wW60LSA= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.959/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.960 h1:hde8uWA3624nGUvC8QPf9njcyBZ7A9weqscRrqyM1Rk= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.960/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.961 h1:UqinjIsO+Y48BQYSxrD6aHQe8SD+Wsbvj+jU9V9VvWM= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.961/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.963 h1:lUVCMP5eiSHc2HGfSVc07Tytn4p6DklJkKldObRvJrU= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.963/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.964 h1:ET3EulYQvWrdD5FNwOP+196w5Vbniy/uRGucM5ILExQ= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.964/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.970 h1:IsF+IWWOfzhbyxP1jFYU3w4kZXWfDH4QaNLXgIy3Sgg= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.970/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.971 h1:T5zEH1QM1XX+hJoAe4krnSjrnsTgHv1KfGC4Sos0Y4M= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.971/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860/go.mod h1:NZo1WplQcC314kMlCRUoy8NQju2BnolIJj7NAWgsuhY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8= @@ -1116,6 +1116,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.963 h1:6Hl5u9j github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.963/go.mod h1:I/v4TeM6kXoYesJ67MpDqJMRLDEypA4c0QjZBYwaka8= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.964 h1:+HsB7iMFYfDAYD0Xoj1tBsqLT1R6h/94DiooYJnorr8= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.964/go.mod h1:ohfNiTUrMTR50FAUe4wALZVYa1404YQvYB57pvVVADM= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.971 h1:eQsRAk1n6z4du93ebKe1XyQpTELY0YIJ4Y7jvMLdNNg= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.971/go.mod h1:QpI0wEhuqhVI3jZbakGNzsJlt7YJdB8rqY9b/SI+NMM= 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/ccn/resource_tc_ccn.go b/tencentcloud/services/ccn/resource_tc_ccn.go index 8d4ac38383..dcbf38cb23 100644 --- a/tencentcloud/services/ccn/resource_tc_ccn.go +++ b/tencentcloud/services/ccn/resource_tc_ccn.go @@ -3,8 +3,11 @@ package ccn import ( "context" "fmt" + "log" "strings" + vpc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312" + tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common" svctag "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/services/tag" @@ -67,6 +70,18 @@ func ResourceTencentCloudCcn() *schema.Resource { "`INTER_REGION_LIMIT` is the inter-regional speed limit. " + "The default is `OUTER_REGION_LIMIT`.", }, + "route_ecmp_flag": { + Type: schema.TypeBool, + Optional: true, + Default: false, + Description: "Whether to enable the equivalent routing function. `true`: enabled, `false`: disabled.", + }, + "route_overlap_flag": { + Type: schema.TypeBool, + Optional: true, + Default: false, + Description: "Whether to enable the routing overlap function. `true`: enabled, `false`: disabled.", + }, "tags": { Type: schema.TypeMap, Optional: true, @@ -142,6 +157,39 @@ func resourceTencentCloudCcnCreate(d *schema.ResourceData, meta interface{}) err } } + // set ECMP/Overlap + request := vpc.NewModifyCcnAttributeRequest() + request.CcnId = &info.ccnId + if temp, ok := d.GetOkExists("route_ecmp_flag"); ok { + request.RouteECMPFlag = helper.Bool(temp.(bool)) + } + + if temp, ok := d.GetOkExists("route_overlap_flag"); ok { + request.RouteOverlapFlag = helper.Bool(temp.(bool)) + } + + err = resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseVpcClient().ModifyCcnAttribute(request) + if e != nil { + return tccommon.RetryError(e) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) + } + + if result == nil { + e = fmt.Errorf("update ModifyCcnAttribute failed") + return resource.NonRetryableError(e) + } + + _ = result + return nil + }) + + if err != nil { + log.Printf("[CRITAL]%s update ModifyCcnAttribute failed, reason:%s\n", logId, err.Error()) + return err + } + return resourceTencentCloudCcnRead(d, meta) } @@ -174,6 +222,8 @@ func resourceTencentCloudCcnRead(d *schema.ResourceData, meta interface{}) error _ = d.Set("create_time", info.createTime) _ = d.Set("charge_type", info.chargeType) _ = d.Set("bandwidth_limit_type", info.bandWithLimitType) + _ = d.Set("route_ecmp_flag", info.ecmpFlag) + _ = d.Set("route_overlap_flag", info.overlapFlag) return nil }) @@ -197,26 +247,42 @@ func resourceTencentCloudCcnUpdate(d *schema.ResourceData, meta interface{}) err defer tccommon.LogElapsed("resource.tencentcloud_ccn.update")() var ( - logId = tccommon.GetLogId(tccommon.ContextNil) - ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId) - service = VpcService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()} - name string - description string - change bool + logId = tccommon.GetLogId(tccommon.ContextNil) + ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId) + service = VpcService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()} + change bool ) + request := vpc.NewModifyCcnAttributeRequest() + request.CcnId = helper.String(d.Id()) + if d.HasChange("name") { - name = d.Get("name").(string) + if temp, ok := d.GetOk("name"); ok { + request.CcnName = helper.String(temp.(string)) + } + change = true } if d.HasChange("description") { if temp, ok := d.GetOk("description"); ok { - description = temp.(string) + request.CcnName = helper.String(temp.(string)) } - if description == "" { - return fmt.Errorf("can not set description='' ") + change = true + } + + if d.HasChange("route_ecmp_flag") { + if temp, ok := d.GetOkExists("route_ecmp_flag"); ok { + request.RouteECMPFlag = helper.Bool(temp.(bool)) + } + + change = true + } + + if d.HasChange("route_overlap_flag") { + if temp, ok := d.GetOkExists("route_overlap_flag"); ok { + request.RouteOverlapFlag = helper.Bool(temp.(bool)) } change = true @@ -224,7 +290,25 @@ func resourceTencentCloudCcnUpdate(d *schema.ResourceData, meta interface{}) err d.Partial(true) if change { - if err := service.ModifyCcnAttribute(ctx, d.Id(), name, description); err != nil { + err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseVpcClient().ModifyCcnAttribute(request) + if e != nil { + return tccommon.RetryError(e) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) + } + + if result == nil { + e = fmt.Errorf("update ModifyCcnAttribute failed") + return resource.NonRetryableError(e) + } + + _ = result + return nil + }) + + if err != nil { + log.Printf("[CRITAL]%s update ModifyCcnAttribute failed, reason:%s\n", logId, err.Error()) return err } } diff --git a/tencentcloud/services/ccn/resource_tc_ccn.md b/tencentcloud/services/ccn/resource_tc_ccn.md index 0bc252167b..13a65c5b51 100644 --- a/tencentcloud/services/ccn/resource_tc_ccn.md +++ b/tencentcloud/services/ccn/resource_tc_ccn.md @@ -11,6 +11,8 @@ resource "tencentcloud_ccn" "example" { qos = "AG" charge_type = "PREPAID" bandwidth_limit_type = "INTER_REGION_LIMIT" + route_ecmp_flag = true + route_overlap_flag = true tags = { createBy = "terraform" } @@ -26,6 +28,8 @@ resource "tencentcloud_ccn" "example" { qos = "AG" charge_type = "POSTPAID" bandwidth_limit_type = "OUTER_REGION_LIMIT" + route_ecmp_flag = false + route_overlap_flag = false tags = { createBy = "terraform" } diff --git a/tencentcloud/services/ccn/service_tencentcloud_ccn.go b/tencentcloud/services/ccn/service_tencentcloud_ccn.go index 6bbbc45bc2..72892e5915 100644 --- a/tencentcloud/services/ccn/service_tencentcloud_ccn.go +++ b/tencentcloud/services/ccn/service_tencentcloud_ccn.go @@ -28,6 +28,8 @@ type CcnBasicInfo struct { bandWithLimitType string instanceCount int64 createTime string + ecmpFlag bool + overlapFlag bool } type CcnInstanceBind struct { @@ -205,6 +207,8 @@ getMoreData: basicInfo.state = *item.State basicInfo.chargeType = *item.InstanceChargeType basicInfo.bandWithLimitType = *item.BandwidthLimitType + basicInfo.ecmpFlag = *item.RouteECMPFlag + basicInfo.overlapFlag = *item.RouteOverlapFlag if has[basicInfo.ccnId] { errRet = fmt.Errorf("get repeated ccn_id[%s] when doing DescribeCcns", basicInfo.ccnId) @@ -354,7 +358,7 @@ func (me *VpcService) DeleteCcn(ctx context.Context, ccnId string) (errRet error return } -func (me *VpcService) ModifyCcnAttribute(ctx context.Context, ccnId, name, description string) (errRet error) { +func (me *VpcService) ModifyCcnAttribute(ctx context.Context, ccnId, name, description string, ecmpFlag, overlapFlag bool) (errRet error) { logId := tccommon.GetLogId(ctx) request := vpc.NewModifyCcnAttributeRequest() @@ -363,9 +367,14 @@ func (me *VpcService) ModifyCcnAttribute(ctx context.Context, ccnId, name, descr if name != "" { request.CcnName = &name } + if description != "" { request.CcnDescription = &description } + + request.RouteECMPFlag = &ecmpFlag + request.RouteOverlapFlag = &overlapFlag + ratelimit.Check(request.GetAction()) response, err := me.client.UseVpcClient().ModifyCcnAttribute(request) 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 5d9d3b9fdf..6f638426d3 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.970" + params["RequestClient"] = "SDK_GO_1.0.971" 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 c6085da4da..89de3dab48 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 @@ -3111,6 +3111,7 @@ func NewCreateDefaultVpcResponse() (response *CreateDefaultVpcResponse) { // INVALIDPARAMETERVALUE_EMPTY = "InvalidParameterValue.Empty" // INVALIDPARAMETERVALUE_SUBNETOVERLAP = "InvalidParameterValue.SubnetOverlap" // LIMITEXCEEDED = "LimitExceeded" +// LIMITEXCEEDED_DEFAULTVPCLIMITEXCEEDED = "LimitExceeded.DefaultVpcLimitExceeded" // RESOURCEINSUFFICIENT_CIDRBLOCK = "ResourceInsufficient.CidrBlock" // RESOURCENOTFOUND = "ResourceNotFound" // UNSUPPORTEDOPERATION_RECORDEXISTS = "UnsupportedOperation.RecordExists" @@ -3141,6 +3142,7 @@ func (c *Client) CreateDefaultVpc(request *CreateDefaultVpcRequest) (response *C // INVALIDPARAMETERVALUE_EMPTY = "InvalidParameterValue.Empty" // INVALIDPARAMETERVALUE_SUBNETOVERLAP = "InvalidParameterValue.SubnetOverlap" // LIMITEXCEEDED = "LimitExceeded" +// LIMITEXCEEDED_DEFAULTVPCLIMITEXCEEDED = "LimitExceeded.DefaultVpcLimitExceeded" // RESOURCEINSUFFICIENT_CIDRBLOCK = "ResourceInsufficient.CidrBlock" // RESOURCENOTFOUND = "ResourceNotFound" // UNSUPPORTEDOPERATION_RECORDEXISTS = "UnsupportedOperation.RecordExists" 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 332768fe72..3b92a86f30 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 @@ -563,6 +563,9 @@ const ( // 超过每日更换IP配额。 LIMITEXCEEDED_DAILYCHANGEADDRESSQUOTA = "LimitExceeded.DailyChangeAddressQuota" + // 默认VPC数量已达到上限。 + LIMITEXCEEDED_DEFAULTVPCLIMITEXCEEDED = "LimitExceeded.DefaultVpcLimitExceeded" + // 实例绑定的弹性IP超过配额。 LIMITEXCEEDED_INSTANCEADDRESSQUOTA = "LimitExceeded.InstanceAddressQuota" 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 5190bcc3a9..b414784cd3 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 @@ -2167,6 +2167,26 @@ type CCN struct { // 是否开启云联网路由传播策略。`False` 未开启,`True` 开启。 // 注意:此字段可能返回 null,表示取不到有效值。 RouteBroadcastPolicyFlag *bool `json:"RouteBroadcastPolicyFlag,omitnil,omitempty" name:"RouteBroadcastPolicyFlag"` + + // 是否开启等价路由功能。`False` 未开启,`True` 开启。 + // 注意:此字段可能返回 null,表示取不到有效值。 + RouteECMPFlag *bool `json:"RouteECMPFlag,omitnil,omitempty" name:"RouteECMPFlag"` + + // 是否开启路由重叠功能。`False` 未开启,`True` 开启。 + // 注意:此字段可能返回 null,表示取不到有效值。 + RouteOverlapFlag *bool `json:"RouteOverlapFlag,omitnil,omitempty" name:"RouteOverlapFlag"` + + // 是否开启QOS。 + // 注意:此字段可能返回 null,表示取不到有效值。 + TrafficMarkingPolicyFlag *bool `json:"TrafficMarkingPolicyFlag,omitnil,omitempty" name:"TrafficMarkingPolicyFlag"` + + // 是否开启路由表选择策略。 + // 注意:此字段可能返回 null,表示取不到有效值。 + RouteSelectPolicyFlag *bool `json:"RouteSelectPolicyFlag,omitnil,omitempty" name:"RouteSelectPolicyFlag"` + + // 是否开启二层云联网通道。 + // 注意:此字段可能返回 null,表示取不到有效值。 + DirectConnectAccelerateChannelFlag *bool `json:"DirectConnectAccelerateChannelFlag,omitnil,omitempty" name:"DirectConnectAccelerateChannelFlag"` } type CcnAttachedInstance struct { @@ -2352,6 +2372,10 @@ type CcnInstance struct { // 实例关联的路由表ID。 // 注意:此字段可能返回 null,表示取不到有效值。 RouteTableId *string `json:"RouteTableId,omitnil,omitempty" name:"RouteTableId"` + + // 实例付费方式 + // 注意:此字段可能返回 null,表示取不到有效值。 + OrderType *string `json:"OrderType,omitnil,omitempty" name:"OrderType"` } type CcnInstanceInfo struct { @@ -4181,17 +4205,20 @@ type CreateHaVipRequestParams struct { // `HAVIP`所在私有网络`ID`。 VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"` - // `HAVIP`所在子网`ID`。 - SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"` - // `HAVIP`名称。 HaVipName *string `json:"HaVipName,omitnil,omitempty" name:"HaVipName"` + // `HAVIP`所在子网`ID`。 + SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"` + // 指定虚拟IP地址,必须在`VPC`网段内且未被占用。不指定则自动分配。 Vip *string `json:"Vip,omitnil,omitempty" name:"Vip"` // `HAVIP`所在弹性网卡`ID`。 NetworkInterfaceId *string `json:"NetworkInterfaceId,omitnil,omitempty" name:"NetworkInterfaceId"` + + // 是否开启`HAVIP`漂移时子机或网卡范围的校验。默认不开启。 + CheckAssociate *bool `json:"CheckAssociate,omitnil,omitempty" name:"CheckAssociate"` } type CreateHaVipRequest struct { @@ -4200,17 +4227,20 @@ type CreateHaVipRequest struct { // `HAVIP`所在私有网络`ID`。 VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"` - // `HAVIP`所在子网`ID`。 - SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"` - // `HAVIP`名称。 HaVipName *string `json:"HaVipName,omitnil,omitempty" name:"HaVipName"` + // `HAVIP`所在子网`ID`。 + SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"` + // 指定虚拟IP地址,必须在`VPC`网段内且未被占用。不指定则自动分配。 Vip *string `json:"Vip,omitnil,omitempty" name:"Vip"` // `HAVIP`所在弹性网卡`ID`。 NetworkInterfaceId *string `json:"NetworkInterfaceId,omitnil,omitempty" name:"NetworkInterfaceId"` + + // 是否开启`HAVIP`漂移时子机或网卡范围的校验。默认不开启。 + CheckAssociate *bool `json:"CheckAssociate,omitnil,omitempty" name:"CheckAssociate"` } func (r *CreateHaVipRequest) ToJsonString() string { @@ -4226,10 +4256,11 @@ func (r *CreateHaVipRequest) FromJsonString(s string) error { return err } delete(f, "VpcId") - delete(f, "SubnetId") delete(f, "HaVipName") + delete(f, "SubnetId") delete(f, "Vip") delete(f, "NetworkInterfaceId") + delete(f, "CheckAssociate") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateHaVipRequest has unknown keys!", "") } @@ -7367,6 +7398,14 @@ type CrossBorderCompliance struct { // 审批单创建时间。 CreatedTime *string `json:"CreatedTime,omitnil,omitempty" name:"CreatedTime"` + + // 法定代表人身份证号。 + // 注意:此字段可能返回 null,表示取不到有效值。 + LegalPersonId *string `json:"LegalPersonId,omitnil,omitempty" name:"LegalPersonId"` + + // 法定代表人身份证。 + // 注意:此字段可能返回 null,表示取不到有效值。 + LegalPersonIdCard *string `json:"LegalPersonIdCard,omitnil,omitempty" name:"LegalPersonIdCard"` } type CrossBorderFlowMonitorData struct { @@ -12776,13 +12815,7 @@ type DescribeHaVipsRequestParams struct { // `HAVIP`唯一`ID`,形如:`havip-9o233uri`。 HaVipIds []*string `json:"HaVipIds,omitnil,omitempty" name:"HaVipIds"` - // 过滤条件,参数不支持同时指定`HaVipIds`和`Filters`。 - //