From 3b44e99de2ec6a87d5b82120eafd6fb952897a1c Mon Sep 17 00:00:00 2001
From: SevenEarth <391613297@qq.com>
Date: Wed, 6 Nov 2024 14:20:47 +0800
Subject: [PATCH 1/4] add
---
go.mod | 4 +-
go.sum | 4 +
.../services/clb/resource_tc_clb_listener.go | 17 +++
.../tencentcloud/clb/v20180317/client.go | 6 +
.../tencentcloud/clb/v20180317/models.go | 134 ++++++++++++++----
.../tencentcloud/common/http/request.go | 2 +-
vendor/modules.txt | 4 +-
website/docs/r/clb_listener.html.markdown | 1 +
8 files changed, 141 insertions(+), 31 deletions(-)
diff --git a/go.mod b/go.mod
index a55c78aa7b..5e3dad796d 100644
--- a/go.mod
+++ b/go.mod
@@ -43,10 +43,10 @@ require (
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/chdfs v1.0.600
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ciam v1.0.695
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.748
- github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.984
+ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1034
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.970
- github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1033
+ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1034
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1014
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.692
diff --git a/go.sum b/go.sum
index c0807bea7f..9d66017ea3 100644
--- a/go.sum
+++ b/go.sum
@@ -862,6 +862,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.748 h1:rVvR
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.748/go.mod h1:nvb4W+PgsAe8NFG1ZevZa9ZLfto3aeBcJqxzYCRI9V4=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.984 h1:uvDvC8ip75yBSUiCOIu4dGv10AKkH7M3qnmOShLZZPQ=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.984/go.mod h1:mqn4vGnC39CHBaniEgnGQqSoVXBnIH8F+O1F5KXhbec=
+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1034 h1:nZBr0eJI2iTLSm26QZXNgk4VT3Fxtt+zgXCiCH6avmo=
+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1034/go.mod h1:q8fxlV0OQPmG3Zqq4f06m+EOqfU8BvZPnVsPCkCdv6E=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544 h1:ApY6rS7I9otgujOdAFy0+Epno1PNVCQmsOoWQxx724Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544/go.mod h1:c37rIdL3LrJXYwrfp9c8L4MabTqKIZUe1xvnWhN75oc=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033 h1:dIr+MVsZeUBiKZELfJh5HRJdI+BI6lCp5pv/2oXekuk=
@@ -949,6 +951,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1031 h1:3ou
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1031/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1033 h1:g263/dapUpOAZJa1Y9x07WgfOl7Yy+FM5Mrf4WyttS8=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1033/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1034 h1:T7ewuO2DD+5R2LRpD2kTRy25aCkVDVdYkmmyUS63i08=
+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1034/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=
diff --git a/tencentcloud/services/clb/resource_tc_clb_listener.go b/tencentcloud/services/clb/resource_tc_clb_listener.go
index 340b142937..5adda1616c 100644
--- a/tencentcloud/services/clb/resource_tc_clb_listener.go
+++ b/tencentcloud/services/clb/resource_tc_clb_listener.go
@@ -242,6 +242,13 @@ func ResourceTencentCloudClbListener() *schema.Resource {
Optional: true,
Description: "This parameter is used to specify the end port and is required when creating a port range listener. Only one member can be passed in when inputting the `Ports` parameter, which is used to specify the start port. If you want to try the port range feature, please [submit a ticket](https://console.cloud.tencent.com/workorder/category).",
},
+ "h2c_switch": {
+ Type: schema.TypeBool,
+ ForceNew: true,
+ Computed: true,
+ Optional: true,
+ Description: "Enable H2C switch for intranet HTTP listener.",
+ },
//computed
"listener_id": {
Type: schema.TypeString,
@@ -350,6 +357,10 @@ func resourceTencentCloudClbListenerCreate(d *schema.ResourceData, meta interfac
request.EndPort = helper.IntUint64(v.(int))
}
+ if v, ok := d.GetOkExists("h2c_switch"); ok {
+ request.H2cSwitch = helper.Bool(v.(bool))
+ }
+
var response *clb.CreateListenerResponse
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseClbClient().CreateListener(request)
@@ -518,6 +529,12 @@ func resourceTencentCloudClbListenerRead(d *schema.ResourceData, meta interface{
_ = d.Set("end_port", instance.EndPort)
}
+ if instance.AttrFlags != nil || len(instance.AttrFlags) != 0 {
+ _ = d.Set("h2c_switch", true)
+ } else {
+ _ = d.Set("h2c_switch", false)
+ }
+
return nil
}
diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb/v20180317/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb/v20180317/client.go
index 7a304cff41..e339e8f323 100644
--- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb/v20180317/client.go
+++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb/v20180317/client.go
@@ -1656,6 +1656,7 @@ func NewDeregisterFunctionTargetsResponse() (response *DeregisterFunctionTargets
//
// 可能返回的错误码:
// FAILEDOPERATION = "FailedOperation"
+// FAILEDOPERATION_RESOURCEINOPERATING = "FailedOperation.ResourceInOperating"
// INTERNALERROR = "InternalError"
// INVALIDPARAMETER = "InvalidParameter"
// INVALIDPARAMETER_FORMATERROR = "InvalidParameter.FormatError"
@@ -1696,6 +1697,7 @@ func (c *Client) DeregisterFunctionTargets(request *DeregisterFunctionTargetsReq
//
// 可能返回的错误码:
// FAILEDOPERATION = "FailedOperation"
+// FAILEDOPERATION_RESOURCEINOPERATING = "FailedOperation.ResourceInOperating"
// INTERNALERROR = "InternalError"
// INVALIDPARAMETER = "InvalidParameter"
// INVALIDPARAMETER_FORMATERROR = "InvalidParameter.FormatError"
@@ -4422,6 +4424,7 @@ func NewModifyFunctionTargetsResponse() (response *ModifyFunctionTargetsResponse
// 可能返回的错误码:
// AUTHFAILURE = "AuthFailure"
// FAILEDOPERATION = "FailedOperation"
+// FAILEDOPERATION_RESOURCEINOPERATING = "FailedOperation.ResourceInOperating"
// INTERNALERROR = "InternalError"
// INVALIDPARAMETER = "InvalidParameter"
// INVALIDPARAMETER_FORMATERROR = "InvalidParameter.FormatError"
@@ -4439,6 +4442,7 @@ func (c *Client) ModifyFunctionTargets(request *ModifyFunctionTargetsRequest) (r
// 可能返回的错误码:
// AUTHFAILURE = "AuthFailure"
// FAILEDOPERATION = "FailedOperation"
+// FAILEDOPERATION_RESOURCEINOPERATING = "FailedOperation.ResourceInOperating"
// INTERNALERROR = "InternalError"
// INVALIDPARAMETER = "InvalidParameter"
// INVALIDPARAMETER_FORMATERROR = "InvalidParameter.FormatError"
@@ -5259,6 +5263,7 @@ func NewRegisterFunctionTargetsResponse() (response *RegisterFunctionTargetsResp
//
// 可能返回的错误码:
// FAILEDOPERATION = "FailedOperation"
+// FAILEDOPERATION_RESOURCEINOPERATING = "FailedOperation.ResourceInOperating"
// INTERNALERROR = "InternalError"
// INVALIDPARAMETER = "InvalidParameter"
// INVALIDPARAMETER_FORMATERROR = "InvalidParameter.FormatError"
@@ -5302,6 +5307,7 @@ func (c *Client) RegisterFunctionTargets(request *RegisterFunctionTargetsRequest
//
// 可能返回的错误码:
// FAILEDOPERATION = "FailedOperation"
+// FAILEDOPERATION_RESOURCEINOPERATING = "FailedOperation.ResourceInOperating"
// INTERNALERROR = "InternalError"
// INVALIDPARAMETER = "InvalidParameter"
// INVALIDPARAMETER_FORMATERROR = "InvalidParameter.FormatError"
diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb/v20180317/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb/v20180317/models.go
index 1ac23d7035..383b9cbca6 100644
--- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb/v20180317/models.go
+++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb/v20180317/models.go
@@ -769,7 +769,6 @@ type CloneLoadBalancerRequestParams struct {
InternetAccessible *InternetAccessible `json:"InternetAccessible,omitnil,omitempty" name:"InternetAccessible"`
// 仅适用于公网负载均衡。目前仅广州、上海、南京、济南、杭州、福州、北京、石家庄、武汉、长沙、成都、重庆地域支持静态单线 IP 线路类型,如需体验,请联系商务经理申请。申请通过后,即可选择中国移动(CMCC)、中国联通(CUCC)或中国电信(CTCC)的运营商类型,网络计费模式只能使用按带宽包计费(BANDWIDTH_PACKAGE)。 如果不指定本参数,则默认使用BGP。可通过 DescribeResources 接口查询一个地域所支持的Isp。
- // 示例值:CMCC
VipIsp *string `json:"VipIsp,omitnil,omitempty" name:"VipIsp"`
// 指定Vip申请负载均衡。
@@ -793,8 +792,7 @@ type CloneLoadBalancerRequestParams struct {
// 公网独占集群ID或者CDCId。
ClusterIds []*string `json:"ClusterIds,omitnil,omitempty" name:"ClusterIds"`
- // 性能容量型规格。
clb.c2.medium(标准型)clb.c3.small(高阶型1)clb.c3.medium(高阶型2)
- // clb.c4.small(超强型1)clb.c4.medium(超强型2)clb.c4.large(超强型3)clb.c4.xlarge(超强型4)
+ // 性能容量型规格。clb.c2.medium(标准型)clb.c3.small(高阶型1)clb.c3.medium(高阶型2)clb.c4.small(超强型1)clb.c4.medium(超强型2)clb.c4.large(超强型3)clb.c4.xlarge(超强型4)
SlaType *string `json:"SlaType,omitnil,omitempty" name:"SlaType"`
// Stgw独占集群的标签。
@@ -835,7 +833,6 @@ type CloneLoadBalancerRequest struct {
InternetAccessible *InternetAccessible `json:"InternetAccessible,omitnil,omitempty" name:"InternetAccessible"`
// 仅适用于公网负载均衡。目前仅广州、上海、南京、济南、杭州、福州、北京、石家庄、武汉、长沙、成都、重庆地域支持静态单线 IP 线路类型,如需体验,请联系商务经理申请。申请通过后,即可选择中国移动(CMCC)、中国联通(CUCC)或中国电信(CTCC)的运营商类型,网络计费模式只能使用按带宽包计费(BANDWIDTH_PACKAGE)。 如果不指定本参数,则默认使用BGP。可通过 DescribeResources 接口查询一个地域所支持的Isp。
- // 示例值:CMCC
VipIsp *string `json:"VipIsp,omitnil,omitempty" name:"VipIsp"`
// 指定Vip申请负载均衡。
@@ -859,8 +856,7 @@ type CloneLoadBalancerRequest struct {
// 公网独占集群ID或者CDCId。
ClusterIds []*string `json:"ClusterIds,omitnil,omitempty" name:"ClusterIds"`
- // 性能容量型规格。clb.c2.medium(标准型)clb.c3.small(高阶型1)clb.c3.medium(高阶型2)
- // clb.c4.small(超强型1)clb.c4.medium(超强型2)clb.c4.large(超强型3)clb.c4.xlarge(超强型4)
+ // 性能容量型规格。clb.c2.medium(标准型)clb.c3.small(高阶型1)clb.c3.medium(高阶型2)clb.c4.small(超强型1)clb.c4.medium(超强型2)clb.c4.large(超强型3)clb.c4.xlarge(超强型4)
SlaType *string `json:"SlaType,omitnil,omitempty" name:"SlaType"`
// Stgw独占集群的标签。
@@ -1199,7 +1195,7 @@ type CreateListenerRequestParams struct {
// 分别表示按权重轮询、最小连接数, 默认为 WRR。此参数仅适用于TCP/UDP/TCP_SSL/QUIC监听器。
Scheduler *string `json:"Scheduler,omitnil,omitempty" name:"Scheduler"`
- // 是否开启SNI特性,此参数仅适用于HTTPS监听器。0表示开启,1表示未开启。
+ // 是否开启SNI特性,此参数仅适用于HTTPS监听器。0表示未开启,1表示开启。
SniSwitch *int64 `json:"SniSwitch,omitnil,omitempty" name:"SniSwitch"`
// 后端目标类型,NODE表示绑定普通节点,TARGETGROUP表示绑定目标组。此参数仅适用于TCP/UDP监听器。七层监听器应在转发规则中设置。
@@ -1226,11 +1222,20 @@ type CreateListenerRequestParams struct {
// 监听器最大新增连接数,当前仅性能容量型实例且仅TCP/UDP/TCP_SSL/QUIC监听器支持,不传或者传-1表示监听器维度不限速。基础网络实例不支持该参数。
MaxCps *int64 `json:"MaxCps,omitnil,omitempty" name:"MaxCps"`
- // 空闲连接超时时间,此参数仅适用于TCP监听器,单位:秒。默认值:900,取值范围:共享型实例和独占型实例支持:300~900,性能容量型实例支持:300~2000。如需设置超过2000s,请通过 [工单申请](https://console.cloud.tencent.com/workorder/category),最大可设置到3600s。
+ // 空闲连接超时时间,此参数仅适用于TCP监听器,单位:秒。取值范围:共享型实例和独占型实例支持:300-900,性能容量型实例支持:300-2000。如需设置请通过 [工单申请](https://console.cloud.tencent.com/workorder/category)。
IdleConnectTimeout *int64 `json:"IdleConnectTimeout,omitnil,omitempty" name:"IdleConnectTimeout"`
// 是否开启SNAT。
SnatEnable *bool `json:"SnatEnable,omitnil,omitempty" name:"SnatEnable"`
+
+ // 全端口段监听器的结束端口
+ FullEndPorts []*int64 `json:"FullEndPorts,omitnil,omitempty" name:"FullEndPorts"`
+
+ // 内网http监听器开启h2c开关
+ H2cSwitch *bool `json:"H2cSwitch,omitnil,omitempty" name:"H2cSwitch"`
+
+ // TCP_SSL监听器支持关闭SSL后仍然支持混绑,此参数为关闭开关
+ SslCloseSwitch *bool `json:"SslCloseSwitch,omitnil,omitempty" name:"SslCloseSwitch"`
}
type CreateListenerRequest struct {
@@ -1261,7 +1266,7 @@ type CreateListenerRequest struct {
// 分别表示按权重轮询、最小连接数, 默认为 WRR。此参数仅适用于TCP/UDP/TCP_SSL/QUIC监听器。
Scheduler *string `json:"Scheduler,omitnil,omitempty" name:"Scheduler"`
- // 是否开启SNI特性,此参数仅适用于HTTPS监听器。0表示开启,1表示未开启。
+ // 是否开启SNI特性,此参数仅适用于HTTPS监听器。0表示未开启,1表示开启。
SniSwitch *int64 `json:"SniSwitch,omitnil,omitempty" name:"SniSwitch"`
// 后端目标类型,NODE表示绑定普通节点,TARGETGROUP表示绑定目标组。此参数仅适用于TCP/UDP监听器。七层监听器应在转发规则中设置。
@@ -1288,11 +1293,20 @@ type CreateListenerRequest struct {
// 监听器最大新增连接数,当前仅性能容量型实例且仅TCP/UDP/TCP_SSL/QUIC监听器支持,不传或者传-1表示监听器维度不限速。基础网络实例不支持该参数。
MaxCps *int64 `json:"MaxCps,omitnil,omitempty" name:"MaxCps"`
- // 空闲连接超时时间,此参数仅适用于TCP监听器,单位:秒。默认值:900,取值范围:共享型实例和独占型实例支持:300~900,性能容量型实例支持:300~2000。如需设置超过2000s,请通过 [工单申请](https://console.cloud.tencent.com/workorder/category),最大可设置到3600s。
+ // 空闲连接超时时间,此参数仅适用于TCP监听器,单位:秒。取值范围:共享型实例和独占型实例支持:300-900,性能容量型实例支持:300-2000。如需设置请通过 [工单申请](https://console.cloud.tencent.com/workorder/category)。
IdleConnectTimeout *int64 `json:"IdleConnectTimeout,omitnil,omitempty" name:"IdleConnectTimeout"`
// 是否开启SNAT。
SnatEnable *bool `json:"SnatEnable,omitnil,omitempty" name:"SnatEnable"`
+
+ // 全端口段监听器的结束端口
+ FullEndPorts []*int64 `json:"FullEndPorts,omitnil,omitempty" name:"FullEndPorts"`
+
+ // 内网http监听器开启h2c开关
+ H2cSwitch *bool `json:"H2cSwitch,omitnil,omitempty" name:"H2cSwitch"`
+
+ // TCP_SSL监听器支持关闭SSL后仍然支持混绑,此参数为关闭开关
+ SslCloseSwitch *bool `json:"SslCloseSwitch,omitnil,omitempty" name:"SslCloseSwitch"`
}
func (r *CreateListenerRequest) ToJsonString() string {
@@ -1326,6 +1340,9 @@ func (r *CreateListenerRequest) FromJsonString(s string) error {
delete(f, "MaxCps")
delete(f, "IdleConnectTimeout")
delete(f, "SnatEnable")
+ delete(f, "FullEndPorts")
+ delete(f, "H2cSwitch")
+ delete(f, "SslCloseSwitch")
if len(f) > 0 {
return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateListenerRequest has unknown keys!", "")
}
@@ -1373,7 +1390,7 @@ type CreateLoadBalancerRequestParams struct {
// 负载均衡后端目标设备所属的网络 ID,如vpc-12345678,可以通过 [DescribeVpcEx](https://cloud.tencent.com/document/product/215/1372) 接口获取。 不填此参数则默认为DefaultVPC。创建内网负载均衡实例时,此参数必填。
VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`
- // 在私有网络内购买内网负载均衡实例的情况下,必须指定子网 ID,内网负载均衡实例的 VIP 将从这个子网中产生。创建内网负载均衡实例时,此参数必填。
+ // 在私有网络内购买内网负载均衡实例的情况下,必须指定子网 ID,内网负载均衡实例的 VIP 将从这个子网中产生。创建内网负载均衡实例时,此参数必填,创建公网IPv4负载均衡实例时,不支持指定该参数。
SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`
// 负载均衡实例所属的项目 ID,可以通过 [DescribeProject](https://cloud.tencent.com/document/api/651/78725) 接口获取。不填此参数则视为默认项目。
@@ -1448,6 +1465,12 @@ type CreateLoadBalancerRequestParams struct {
// 负载均衡实例的预付费相关属性
LBChargePrepaid *LBChargePrepaid `json:"LBChargePrepaid,omitnil,omitempty" name:"LBChargePrepaid"`
+
+ // 负载均衡实例计费类型,取值:POSTPAID_BY_HOUR,PREPAID,默认是POSTPAID_BY_HOUR。
+ LBChargeType *string `json:"LBChargeType,omitnil,omitempty" name:"LBChargeType"`
+
+ // 七层访问日志主题ID
+ AccessLogTopicId *string `json:"AccessLogTopicId,omitnil,omitempty" name:"AccessLogTopicId"`
}
type CreateLoadBalancerRequest struct {
@@ -1467,7 +1490,7 @@ type CreateLoadBalancerRequest struct {
// 负载均衡后端目标设备所属的网络 ID,如vpc-12345678,可以通过 [DescribeVpcEx](https://cloud.tencent.com/document/product/215/1372) 接口获取。 不填此参数则默认为DefaultVPC。创建内网负载均衡实例时,此参数必填。
VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`
- // 在私有网络内购买内网负载均衡实例的情况下,必须指定子网 ID,内网负载均衡实例的 VIP 将从这个子网中产生。创建内网负载均衡实例时,此参数必填。
+ // 在私有网络内购买内网负载均衡实例的情况下,必须指定子网 ID,内网负载均衡实例的 VIP 将从这个子网中产生。创建内网负载均衡实例时,此参数必填,创建公网IPv4负载均衡实例时,不支持指定该参数。
SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`
// 负载均衡实例所属的项目 ID,可以通过 [DescribeProject](https://cloud.tencent.com/document/api/651/78725) 接口获取。不填此参数则视为默认项目。
@@ -1542,6 +1565,12 @@ type CreateLoadBalancerRequest struct {
// 负载均衡实例的预付费相关属性
LBChargePrepaid *LBChargePrepaid `json:"LBChargePrepaid,omitnil,omitempty" name:"LBChargePrepaid"`
+
+ // 负载均衡实例计费类型,取值:POSTPAID_BY_HOUR,PREPAID,默认是POSTPAID_BY_HOUR。
+ LBChargeType *string `json:"LBChargeType,omitnil,omitempty" name:"LBChargeType"`
+
+ // 七层访问日志主题ID
+ AccessLogTopicId *string `json:"AccessLogTopicId,omitnil,omitempty" name:"AccessLogTopicId"`
}
func (r *CreateLoadBalancerRequest) ToJsonString() string {
@@ -1584,6 +1613,8 @@ func (r *CreateLoadBalancerRequest) FromJsonString(s string) error {
delete(f, "DynamicVip")
delete(f, "Egress")
delete(f, "LBChargePrepaid")
+ delete(f, "LBChargeType")
+ delete(f, "AccessLogTopicId")
if len(f) > 0 {
return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateLoadBalancerRequest has unknown keys!", "")
}
@@ -4002,7 +4033,7 @@ type DescribeLoadBalancersDetailRequestParams struct {
// 选择返回的Fields列表,系统仅会返回Fileds中填写的字段,可填写的字段详情请参见LoadBalancerDetail。若未在Fileds填写相关字段,则此字段返回null。Fileds中默认添加LoadBalancerId和LoadBalancerName字段。
Fields []*string `json:"Fields,omitnil,omitempty" name:"Fields"`
- // 当Fields包含TargetId、TargetAddress、TargetPort、TargetWeight、ListenerId、Protocol、Port、LocationId、Domain、Url等Fields时,必选选择导出目标组的Target或者非目标组Target,值范围NODE、GROUP。
+ // 当Fields包含TargetId、TargetAddress、TargetPort、TargetWeight、ListenerId、Protocol、Port、LocationId、Domain、Url等Fields时,必选选择导出目标组的Target或者非目标组Target,取值范围NODE、GROUP。
TargetType *string `json:"TargetType,omitnil,omitempty" name:"TargetType"`
// 查询负载均衡详细信息列表条件,详细的过滤条件如下:
@@ -4031,7 +4062,7 @@ type DescribeLoadBalancersDetailRequest struct {
// 选择返回的Fields列表,系统仅会返回Fileds中填写的字段,可填写的字段详情请参见LoadBalancerDetail。若未在Fileds填写相关字段,则此字段返回null。Fileds中默认添加LoadBalancerId和LoadBalancerName字段。
Fields []*string `json:"Fields,omitnil,omitempty" name:"Fields"`
- // 当Fields包含TargetId、TargetAddress、TargetPort、TargetWeight、ListenerId、Protocol、Port、LocationId、Domain、Url等Fields时,必选选择导出目标组的Target或者非目标组Target,值范围NODE、GROUP。
+ // 当Fields包含TargetId、TargetAddress、TargetPort、TargetWeight、ListenerId、Protocol、Port、LocationId、Domain、Url等Fields时,必选选择导出目标组的Target或者非目标组Target,取值范围NODE、GROUP。
TargetType *string `json:"TargetType,omitnil,omitempty" name:"TargetType"`
// 查询负载均衡详细信息列表条件,详细的过滤条件如下:
@@ -5899,7 +5930,7 @@ type LoadBalancer struct {
// 注意:此字段可能返回 null,表示取不到有效值。
SnatIps []*SnatIp `json:"SnatIps,omitnil,omitempty" name:"SnatIps"`
- // 性能容量型规格。- clb.c2.medium:标准型规格
- clb.c3.small:高阶型1规格
- clb.c3.medium:高阶型2规格
- clb.c4.small:超强型1规格
- clb.c4.medium:超强型2规格
- clb.c4.large:超强型3规格
- clb.c4.xlarge:超强型4规格
- null:共享型实例
+ // 性能容量型规格。- clb.c1.small:简约型规格
- clb.c2.medium:标准型规格
- clb.c3.small:高阶型1规格
- clb.c3.medium:高阶型2规格
- clb.c4.small:超强型1规格
- clb.c4.medium:超强型2规格
- clb.c4.large:超强型3规格
- clb.c4.xlarge:超强型4规格
- "":非性能容量型实例
// 注意:此字段可能返回 null,表示取不到有效值。
SlaType *string `json:"SlaType,omitnil,omitempty" name:"SlaType"`
@@ -5954,6 +5985,10 @@ type LoadBalancer struct {
// 网络出口
// 注意:此字段可能返回 null,表示取不到有效值。
Egress *string `json:"Egress,omitnil,omitempty" name:"Egress"`
+
+ // 实例类型是否为独占型。1:独占型实例。0:非独占型实例。
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ Exclusive *uint64 `json:"Exclusive,omitnil,omitempty" name:"Exclusive"`
}
type LoadBalancerDetail struct {
@@ -5964,7 +5999,7 @@ type LoadBalancerDetail struct {
LoadBalancerName *string `json:"LoadBalancerName,omitnil,omitempty" name:"LoadBalancerName"`
// 负载均衡实例的网络类型:
- // Public:公网属性, Private:内网属性。
+ // OPEN:公网属性,INTERNAL:内网属性。
// 注意:此字段可能返回 null,表示取不到有效值。
LoadBalancerType *string `json:"LoadBalancerType,omitnil,omitempty" name:"LoadBalancerType"`
@@ -6112,6 +6147,19 @@ type LoadBalancerDetail struct {
// 网络出口
// 注意:此字段可能返回 null,表示取不到有效值。
Egress *string `json:"Egress,omitnil,omitempty" name:"Egress"`
+
+ // 负载均衡的属性
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ AttributeFlags []*string `json:"AttributeFlags,omitnil,omitempty" name:"AttributeFlags"`
+
+ // 负载均衡实例的规格类型信息- clb.c1.small:简约型规格
- clb.c2.medium:标准型规格
- clb.c3.small:高阶型1规格
- clb.c3.medium:高阶型2规格
- clb.c4.small:超强型1规格
- clb.c4.medium:超强型2规格
- clb.c4.large:超强型3规格
- clb.c4.xlarge:超强型4规格
- "":非性能容量型实例
+ //
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ SlaType *string `json:"SlaType,omitnil,omitempty" name:"SlaType"`
+
+ // 0:表示非独占型实例,1:表示独占型态实例。
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ Exclusive *uint64 `json:"Exclusive,omitnil,omitempty" name:"Exclusive"`
}
type LoadBalancerHealth struct {
@@ -7172,6 +7220,9 @@ type ModifyRuleRequestParams struct {
// TRPC调用服务接口,ForwardType为TRPC时必填。目前暂未对外开放。
TrpcFunc *string `json:"TrpcFunc,omitnil,omitempty" name:"TrpcFunc"`
+
+ // OAuth配置信息。
+ OAuth *OAuth `json:"OAuth,omitnil,omitempty" name:"OAuth"`
}
type ModifyRuleRequest struct {
@@ -7207,6 +7258,9 @@ type ModifyRuleRequest struct {
// TRPC调用服务接口,ForwardType为TRPC时必填。目前暂未对外开放。
TrpcFunc *string `json:"TrpcFunc,omitnil,omitempty" name:"TrpcFunc"`
+
+ // OAuth配置信息。
+ OAuth *OAuth `json:"OAuth,omitnil,omitempty" name:"OAuth"`
}
func (r *ModifyRuleRequest) ToJsonString() string {
@@ -7231,6 +7285,7 @@ func (r *ModifyRuleRequest) FromJsonString(s string) error {
delete(f, "ForwardType")
delete(f, "TrpcCallee")
delete(f, "TrpcFunc")
+ delete(f, "OAuth")
if len(f) > 0 {
return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyRuleRequest has unknown keys!", "")
}
@@ -7649,6 +7704,19 @@ type MultiCertInfo struct {
CertList []*CertInfo `json:"CertList,omitnil,omitempty" name:"CertList"`
}
+type OAuth struct {
+ // 开启或关闭鉴权。
+ // True: 开启;
+ // False: 关闭
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ OAuthEnable *bool `json:"OAuthEnable,omitnil,omitempty" name:"OAuthEnable"`
+
+ // IAP全部故障后,拒绝请求还是放行。BYPASS:通过,
+ // REJECT: 拒绝
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ OAuthFailureStatus *string `json:"OAuthFailureStatus,omitnil,omitempty" name:"OAuthFailureStatus"`
+}
+
type Price struct {
// 描述了实例价格。
// 注意:此字段可能返回 null,表示取不到有效值。
@@ -8293,6 +8361,10 @@ type RuleOutput struct {
// 绑定的目标组列表
// 注意:此字段可能返回 null,表示取不到有效值。
TargetGroupList []*BasicTargetGroupInfo `json:"TargetGroupList,omitnil,omitempty" name:"TargetGroupList"`
+
+ // OAuth配置状态信息。
+ // 注意:此字段可能返回 null,表示取不到有效值。
+ OAuth *OAuth `json:"OAuth,omitnil,omitempty" name:"OAuth"`
}
type RuleTargets struct {
@@ -8330,38 +8402,48 @@ type RulesItems struct {
// Predefined struct for user
type SetCustomizedConfigForLoadBalancerRequestParams struct {
- // 操作类型:'ADD', 'DELETE', 'UPDATE', 'BIND', 'UNBIND'
+ // 操作类型。
+ // - ADD:添加
+ // - DELETE:删除
+ // - UPDATE:修改
+ // - BIND:绑定
+ // - UNBIND:解绑
OperationType *string `json:"OperationType,omitnil,omitempty" name:"OperationType"`
- // 除了创建个性化配置外,必传此字段,如:pz-1234abcd
+ // 个性化配置ID。除了创建个性化配置外,必传此字段,如:pz-1234abcd
UconfigId *string `json:"UconfigId,omitnil,omitempty" name:"UconfigId"`
- // 创建个性化配置或修改个性化配置的内容时,必传此字段
+ // 个性化配置内容。创建个性化配置或修改个性化配置的内容时,必传此字段
ConfigContent *string `json:"ConfigContent,omitnil,omitempty" name:"ConfigContent"`
- // 创建个性化配置或修改个性化配置的名字时,必传此字段
+ // 个性化配置名称。创建个性化配置或修改个性化配置的名字时,必传此字段
ConfigName *string `json:"ConfigName,omitnil,omitempty" name:"ConfigName"`
- // 绑定解绑时,必传此字段
+ // 负载均衡实例ID。绑定解绑时,必传此字段
LoadBalancerIds []*string `json:"LoadBalancerIds,omitnil,omitempty" name:"LoadBalancerIds"`
}
type SetCustomizedConfigForLoadBalancerRequest struct {
*tchttp.BaseRequest
- // 操作类型:'ADD', 'DELETE', 'UPDATE', 'BIND', 'UNBIND'
+ // 操作类型。
+ // - ADD:添加
+ // - DELETE:删除
+ // - UPDATE:修改
+ // - BIND:绑定
+ // - UNBIND:解绑
OperationType *string `json:"OperationType,omitnil,omitempty" name:"OperationType"`
- // 除了创建个性化配置外,必传此字段,如:pz-1234abcd
+ // 个性化配置ID。除了创建个性化配置外,必传此字段,如:pz-1234abcd
UconfigId *string `json:"UconfigId,omitnil,omitempty" name:"UconfigId"`
- // 创建个性化配置或修改个性化配置的内容时,必传此字段
+ // 个性化配置内容。创建个性化配置或修改个性化配置的内容时,必传此字段
ConfigContent *string `json:"ConfigContent,omitnil,omitempty" name:"ConfigContent"`
- // 创建个性化配置或修改个性化配置的名字时,必传此字段
+ // 个性化配置名称。创建个性化配置或修改个性化配置的名字时,必传此字段
ConfigName *string `json:"ConfigName,omitnil,omitempty" name:"ConfigName"`
- // 绑定解绑时,必传此字段
+ // 负载均衡实例ID。绑定解绑时,必传此字段
LoadBalancerIds []*string `json:"LoadBalancerIds,omitnil,omitempty" name:"LoadBalancerIds"`
}
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 ee32b86ded..70e82f7099 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.1033"
+ params["RequestClient"] = "SDK_GO_1.0.1034"
if requestClient != "" {
params["RequestClient"] += ": " + requestClient
}
diff --git a/vendor/modules.txt b/vendor/modules.txt
index a391b7b94f..7a46990e7b 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -1154,7 +1154,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ciam/v20220331
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.748
## explicit; go 1.14
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka/v20190819
-# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.984
+# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1034
## explicit; go 1.14
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb/v20180317
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033
@@ -1163,7 +1163,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit/v20190319
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.970
## explicit; go 1.14
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls/v20201016
-# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1033
+# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1034
## explicit; go 1.11
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors
diff --git a/website/docs/r/clb_listener.html.markdown b/website/docs/r/clb_listener.html.markdown
index 3a5e08b918..53cecbb694 100644
--- a/website/docs/r/clb_listener.html.markdown
+++ b/website/docs/r/clb_listener.html.markdown
@@ -181,6 +181,7 @@ The following arguments are supported:
* `certificate_id` - (Optional, String) ID of the server certificate. NOTES: Only supports listeners of `HTTPS` and `TCP_SSL` protocol and must be set when it is available.
* `certificate_ssl_mode` - (Optional, String) Type of certificate. Valid values: `UNIDIRECTIONAL`, `MUTUAL`. NOTES: Only supports listeners of `HTTPS` and `TCP_SSL` protocol and must be set when it is available.
* `end_port` - (Optional, Int, ForceNew) This parameter is used to specify the end port and is required when creating a port range listener. Only one member can be passed in when inputting the `Ports` parameter, which is used to specify the start port. If you want to try the port range feature, please [submit a ticket](https://console.cloud.tencent.com/workorder/category).
+* `h2c_switch` - (Optional, Bool, ForceNew) Enable H2C switch for intranet HTTP listener.
* `health_check_context_type` - (Optional, String) Health check protocol. When the value of `health_check_type` of the health check protocol is `CUSTOM`, this field is required, which represents the input format of the health check. Valid values: `HEX`, `TEXT`.
* `health_check_health_num` - (Optional, Int) Health threshold of health check, and the default is `3`. If a success result is returned for the health check for 3 consecutive times, the backend CVM is identified as healthy. The value range is 2-10. NOTES: TCP/UDP/TCP_SSL listener allows direct configuration, HTTP/HTTPS listener needs to be configured in tencentcloud_clb_listener_rule.
* `health_check_http_code` - (Optional, Int) HTTP health check code of TCP listener, Valid value ranges: [1~31]. When the value of `health_check_type` of the health check protocol is `HTTP`, this field is required. Valid values: `1`, `2`, `4`, `8`, `16`. `1` means http_1xx, `2` means http_2xx, `4` means http_3xx, `8` means http_4xx, `16` means http_5xx.If you want multiple return codes to indicate health, need to add the corresponding values.
From f3df402614a25b683bdc1bdcdefcef310b0f4692 Mon Sep 17 00:00:00 2001
From: SevenEarth <391613297@qq.com>
Date: Wed, 6 Nov 2024 14:22:25 +0800
Subject: [PATCH 2/4] add
---
.changelog/2939.txt | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 .changelog/2939.txt
diff --git a/.changelog/2939.txt b/.changelog/2939.txt
new file mode 100644
index 0000000000..5e35f9bdd8
--- /dev/null
+++ b/.changelog/2939.txt
@@ -0,0 +1,3 @@
+```release-note:enhancement
+resource/tencentcloud_clb_listener: support `h2c_switch` params
+```
From d7d01f0fd3f5a575546f4da5b806683784072fef Mon Sep 17 00:00:00 2001
From: SevenEarth <391613297@qq.com>
Date: Wed, 6 Nov 2024 14:23:08 +0800
Subject: [PATCH 3/4] add
---
tencentcloud/services/clb/resource_tc_clb_listener.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tencentcloud/services/clb/resource_tc_clb_listener.go b/tencentcloud/services/clb/resource_tc_clb_listener.go
index 5adda1616c..ea9d7cf7b6 100644
--- a/tencentcloud/services/clb/resource_tc_clb_listener.go
+++ b/tencentcloud/services/clb/resource_tc_clb_listener.go
@@ -529,7 +529,7 @@ func resourceTencentCloudClbListenerRead(d *schema.ResourceData, meta interface{
_ = d.Set("end_port", instance.EndPort)
}
- if instance.AttrFlags != nil || len(instance.AttrFlags) != 0 {
+ if instance.AttrFlags != nil && len(instance.AttrFlags) != 0 {
_ = d.Set("h2c_switch", true)
} else {
_ = d.Set("h2c_switch", false)
From ac4d32ff78400f7d8ff9f971d38e71980f822eff Mon Sep 17 00:00:00 2001
From: SevenEarth <391613297@qq.com>
Date: Wed, 6 Nov 2024 14:35:23 +0800
Subject: [PATCH 4/4] add
---
.../services/clb/resource_tc_clb_listener.go | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/tencentcloud/services/clb/resource_tc_clb_listener.go b/tencentcloud/services/clb/resource_tc_clb_listener.go
index ea9d7cf7b6..35ffae403b 100644
--- a/tencentcloud/services/clb/resource_tc_clb_listener.go
+++ b/tencentcloud/services/clb/resource_tc_clb_listener.go
@@ -529,7 +529,23 @@ func resourceTencentCloudClbListenerRead(d *schema.ResourceData, meta interface{
_ = d.Set("end_port", instance.EndPort)
}
- if instance.AttrFlags != nil && len(instance.AttrFlags) != 0 {
+ var clbIns *clb.LoadBalancer
+ err = resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
+ result, e := clbService.DescribeLoadBalancerById(ctx, clbId)
+ if e != nil {
+ return tccommon.RetryError(e)
+ }
+
+ clbIns = result
+ return nil
+ })
+
+ if err != nil {
+ log.Printf("[CRITAL]%s read CLB instance failed, reason:%+v", logId, err)
+ return err
+ }
+
+ if clbIns.AttributeFlags != nil && len(clbIns.AttributeFlags) != 0 {
_ = d.Set("h2c_switch", true)
} else {
_ = d.Set("h2c_switch", false)