# -*- coding: utf8 -*-
# Copyright (c) 2017-2021 THL A29 Limited, a Tencent company. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import warnings
from tencentcloud.common.abstract_model import AbstractModel
class APM(AbstractModel):
"""腾讯云应用性能管理服务参数
"""
def __init__(self):
r"""
:param _Enable: 是否启用
:type Enable: bool
:param _Region: 地域
注意:此字段可能返回 null,表示取不到有效值。
:type Region: str
:param _InstanceId: APM 实例,如果创建时传入的参数为空,则表示自动创建 APM 实例。
注意:此字段可能返回 null,表示取不到有效值。
:type InstanceId: str
:param _NeedDelete: 是否要删除APM实例
注意:此字段可能返回 null,表示取不到有效值。
:type NeedDelete: bool
"""
self._Enable = None
self._Region = None
self._InstanceId = None
self._NeedDelete = None
@property
def Enable(self):
"""是否启用
:rtype: bool
"""
return self._Enable
@Enable.setter
def Enable(self, Enable):
self._Enable = Enable
@property
def Region(self):
"""地域
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Region
@Region.setter
def Region(self, Region):
self._Region = Region
@property
def InstanceId(self):
"""APM 实例,如果创建时传入的参数为空,则表示自动创建 APM 实例。
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._InstanceId
@InstanceId.setter
def InstanceId(self, InstanceId):
self._InstanceId = InstanceId
@property
def NeedDelete(self):
"""是否要删除APM实例
注意:此字段可能返回 null,表示取不到有效值。
:rtype: bool
"""
return self._NeedDelete
@NeedDelete.setter
def NeedDelete(self, NeedDelete):
self._NeedDelete = NeedDelete
def _deserialize(self, params):
self._Enable = params.get("Enable")
self._Region = params.get("Region")
self._InstanceId = params.get("InstanceId")
self._NeedDelete = params.get("NeedDelete")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class AccessLogConfig(AbstractModel):
"""AccessLog 配置
"""
def __init__(self):
r"""
:param _Enable: 是否启用
:type Enable: bool
:param _Template: 采用的模板,可选值:istio(默认)、trace
:type Template: str
:param _SelectedRange: 选中的范围
:type SelectedRange: :class:`tencentcloud.tcm.v20210413.models.SelectedRange`
:param _CLS: 腾讯云日志服务相关参数
:type CLS: :class:`tencentcloud.tcm.v20210413.models.CLS`
:param _Encoding: 编码格式,可选值:TEXT、JSON
:type Encoding: str
:param _Format: 日志格式
:type Format: str
:param _Address: GRPC第三方服务器地址
:type Address: str
:param _EnableServer: 是否启用GRPC第三方服务器
:type EnableServer: bool
:param _EnableStdout: 是否启用标准输出
:type EnableStdout: bool
"""
self._Enable = None
self._Template = None
self._SelectedRange = None
self._CLS = None
self._Encoding = None
self._Format = None
self._Address = None
self._EnableServer = None
self._EnableStdout = None
@property
def Enable(self):
"""是否启用
:rtype: bool
"""
return self._Enable
@Enable.setter
def Enable(self, Enable):
self._Enable = Enable
@property
def Template(self):
"""采用的模板,可选值:istio(默认)、trace
:rtype: str
"""
return self._Template
@Template.setter
def Template(self, Template):
self._Template = Template
@property
def SelectedRange(self):
"""选中的范围
:rtype: :class:`tencentcloud.tcm.v20210413.models.SelectedRange`
"""
return self._SelectedRange
@SelectedRange.setter
def SelectedRange(self, SelectedRange):
self._SelectedRange = SelectedRange
@property
def CLS(self):
"""腾讯云日志服务相关参数
:rtype: :class:`tencentcloud.tcm.v20210413.models.CLS`
"""
return self._CLS
@CLS.setter
def CLS(self, CLS):
self._CLS = CLS
@property
def Encoding(self):
"""编码格式,可选值:TEXT、JSON
:rtype: str
"""
return self._Encoding
@Encoding.setter
def Encoding(self, Encoding):
self._Encoding = Encoding
@property
def Format(self):
"""日志格式
:rtype: str
"""
return self._Format
@Format.setter
def Format(self, Format):
self._Format = Format
@property
def Address(self):
"""GRPC第三方服务器地址
:rtype: str
"""
return self._Address
@Address.setter
def Address(self, Address):
self._Address = Address
@property
def EnableServer(self):
"""是否启用GRPC第三方服务器
:rtype: bool
"""
return self._EnableServer
@EnableServer.setter
def EnableServer(self, EnableServer):
self._EnableServer = EnableServer
@property
def EnableStdout(self):
"""是否启用标准输出
:rtype: bool
"""
return self._EnableStdout
@EnableStdout.setter
def EnableStdout(self, EnableStdout):
self._EnableStdout = EnableStdout
def _deserialize(self, params):
self._Enable = params.get("Enable")
self._Template = params.get("Template")
if params.get("SelectedRange") is not None:
self._SelectedRange = SelectedRange()
self._SelectedRange._deserialize(params.get("SelectedRange"))
if params.get("CLS") is not None:
self._CLS = CLS()
self._CLS._deserialize(params.get("CLS"))
self._Encoding = params.get("Encoding")
self._Format = params.get("Format")
self._Address = params.get("Address")
self._EnableServer = params.get("EnableServer")
self._EnableStdout = params.get("EnableStdout")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class ActiveOperation(AbstractModel):
"""正在执行的异步操作
"""
def __init__(self):
r"""
:param _OperationId: 操作Id
:type OperationId: str
:param _Type: 操作类型,取值范围:
- LINK_CLUSTERS: 关联集群
- RELINK_CLUSTERS: 重新关联集群
- UNLINK_CLUSTERS: 解关联集群
- INSTALL_MESH: 安装网格
:type Type: str
"""
self._OperationId = None
self._Type = None
@property
def OperationId(self):
"""操作Id
:rtype: str
"""
return self._OperationId
@OperationId.setter
def OperationId(self, OperationId):
self._OperationId = OperationId
@property
def Type(self):
"""操作类型,取值范围:
- LINK_CLUSTERS: 关联集群
- RELINK_CLUSTERS: 重新关联集群
- UNLINK_CLUSTERS: 解关联集群
- INSTALL_MESH: 安装网格
:rtype: str
"""
return self._Type
@Type.setter
def Type(self, Type):
self._Type = Type
def _deserialize(self, params):
self._OperationId = params.get("OperationId")
self._Type = params.get("Type")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class AutoInjectionNamespaceState(AbstractModel):
"""描述某一网格在特定命名空间下的自动注入状态
"""
def __init__(self):
r"""
:param _Namespace: 命名空间名称
:type Namespace: str
:param _State: 注入状态
注意:此字段可能返回 null,表示取不到有效值。
:type State: str
"""
self._Namespace = None
self._State = None
@property
def Namespace(self):
"""命名空间名称
:rtype: str
"""
return self._Namespace
@Namespace.setter
def Namespace(self, Namespace):
self._Namespace = Namespace
@property
def State(self):
"""注入状态
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._State
@State.setter
def State(self, State):
self._State = State
def _deserialize(self, params):
self._Namespace = params.get("Namespace")
self._State = params.get("State")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class CLS(AbstractModel):
"""腾讯云日志服务相关参数
"""
def __init__(self):
r"""
:param _Enable: 是否启用
:type Enable: bool
:param _LogSet: 日志集
:type LogSet: str
:param _Topic: 日志主题
:type Topic: str
:param _NeedDelete: 是否删除
:type NeedDelete: bool
:param _Region: cls 主题创建的地域
注意:此字段可能返回 null,表示取不到有效值。
:type Region: str
"""
self._Enable = None
self._LogSet = None
self._Topic = None
self._NeedDelete = None
self._Region = None
@property
def Enable(self):
"""是否启用
:rtype: bool
"""
return self._Enable
@Enable.setter
def Enable(self, Enable):
self._Enable = Enable
@property
def LogSet(self):
"""日志集
:rtype: str
"""
return self._LogSet
@LogSet.setter
def LogSet(self, LogSet):
self._LogSet = LogSet
@property
def Topic(self):
"""日志主题
:rtype: str
"""
return self._Topic
@Topic.setter
def Topic(self, Topic):
self._Topic = Topic
@property
def NeedDelete(self):
"""是否删除
:rtype: bool
"""
return self._NeedDelete
@NeedDelete.setter
def NeedDelete(self, NeedDelete):
self._NeedDelete = NeedDelete
@property
def Region(self):
"""cls 主题创建的地域
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Region
@Region.setter
def Region(self, Region):
self._Region = Region
def _deserialize(self, params):
self._Enable = params.get("Enable")
self._LogSet = params.get("LogSet")
self._Topic = params.get("Topic")
self._NeedDelete = params.get("NeedDelete")
self._Region = params.get("Region")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class Cluster(AbstractModel):
"""Mesh集群信息
"""
def __init__(self):
r"""
:param _ClusterId: 集群Id
:type ClusterId: str
:param _Region: 地域
:type Region: str
:param _Role: 集群角色,取值范围:
- MASTER:控制面所在的主集群
- REMOTE:主集群管理的远端集群
:type Role: str
:param _VpcId: 私有网络Id
:type VpcId: str
:param _SubnetId: 子网Id
:type SubnetId: str
:param _DisplayName: 名称,只读
:type DisplayName: str
:param _State: 状态,只读
:type State: str
:param _LinkedTime: 关联时间,只读
:type LinkedTime: str
:param _Config: 集群配置
:type Config: :class:`tencentcloud.tcm.v20210413.models.ClusterConfig`
:param _Status: 详细状态,只读
:type Status: :class:`tencentcloud.tcm.v20210413.models.ClusterStatus`
:param _Type: 类型,取值范围:
- TKE
- EKS
:type Type: str
:param _HostedNamespaces: 集群关联的 Namespace 列表
:type HostedNamespaces: list of str
"""
self._ClusterId = None
self._Region = None
self._Role = None
self._VpcId = None
self._SubnetId = None
self._DisplayName = None
self._State = None
self._LinkedTime = None
self._Config = None
self._Status = None
self._Type = None
self._HostedNamespaces = None
@property
def ClusterId(self):
"""集群Id
:rtype: str
"""
return self._ClusterId
@ClusterId.setter
def ClusterId(self, ClusterId):
self._ClusterId = ClusterId
@property
def Region(self):
"""地域
:rtype: str
"""
return self._Region
@Region.setter
def Region(self, Region):
self._Region = Region
@property
def Role(self):
"""集群角色,取值范围:
- MASTER:控制面所在的主集群
- REMOTE:主集群管理的远端集群
:rtype: str
"""
return self._Role
@Role.setter
def Role(self, Role):
self._Role = Role
@property
def VpcId(self):
"""私有网络Id
:rtype: str
"""
return self._VpcId
@VpcId.setter
def VpcId(self, VpcId):
self._VpcId = VpcId
@property
def SubnetId(self):
"""子网Id
:rtype: str
"""
return self._SubnetId
@SubnetId.setter
def SubnetId(self, SubnetId):
self._SubnetId = SubnetId
@property
def DisplayName(self):
"""名称,只读
:rtype: str
"""
return self._DisplayName
@DisplayName.setter
def DisplayName(self, DisplayName):
self._DisplayName = DisplayName
@property
def State(self):
"""状态,只读
:rtype: str
"""
return self._State
@State.setter
def State(self, State):
self._State = State
@property
def LinkedTime(self):
"""关联时间,只读
:rtype: str
"""
return self._LinkedTime
@LinkedTime.setter
def LinkedTime(self, LinkedTime):
self._LinkedTime = LinkedTime
@property
def Config(self):
"""集群配置
:rtype: :class:`tencentcloud.tcm.v20210413.models.ClusterConfig`
"""
return self._Config
@Config.setter
def Config(self, Config):
self._Config = Config
@property
def Status(self):
"""详细状态,只读
:rtype: :class:`tencentcloud.tcm.v20210413.models.ClusterStatus`
"""
return self._Status
@Status.setter
def Status(self, Status):
self._Status = Status
@property
def Type(self):
"""类型,取值范围:
- TKE
- EKS
:rtype: str
"""
return self._Type
@Type.setter
def Type(self, Type):
self._Type = Type
@property
def HostedNamespaces(self):
"""集群关联的 Namespace 列表
:rtype: list of str
"""
return self._HostedNamespaces
@HostedNamespaces.setter
def HostedNamespaces(self, HostedNamespaces):
self._HostedNamespaces = HostedNamespaces
def _deserialize(self, params):
self._ClusterId = params.get("ClusterId")
self._Region = params.get("Region")
self._Role = params.get("Role")
self._VpcId = params.get("VpcId")
self._SubnetId = params.get("SubnetId")
self._DisplayName = params.get("DisplayName")
self._State = params.get("State")
self._LinkedTime = params.get("LinkedTime")
if params.get("Config") is not None:
self._Config = ClusterConfig()
self._Config._deserialize(params.get("Config"))
if params.get("Status") is not None:
self._Status = ClusterStatus()
self._Status._deserialize(params.get("Status"))
self._Type = params.get("Type")
self._HostedNamespaces = params.get("HostedNamespaces")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class ClusterConfig(AbstractModel):
"""集群配置
"""
def __init__(self):
r"""
:param _AutoInjectionNamespaceList: 自动注入SideCar的NameSpace
:type AutoInjectionNamespaceList: list of str
:param _IngressGatewayList: Ingress配置列表
:type IngressGatewayList: list of IngressGateway
:param _EgressGatewayList: Egress配置列表
:type EgressGatewayList: list of EgressGateway
:param _Istiod: Istiod配置
注意:此字段可能返回 null,表示取不到有效值。
:type Istiod: :class:`tencentcloud.tcm.v20210413.models.IstiodConfig`
:param _DeployConfig: 部署配置
:type DeployConfig: :class:`tencentcloud.tcm.v20210413.models.DeployConfig`
:param _AutoInjectionNamespaceStateList: 自动注入命名空间状态列表
:type AutoInjectionNamespaceStateList: list of AutoInjectionNamespaceState
"""
self._AutoInjectionNamespaceList = None
self._IngressGatewayList = None
self._EgressGatewayList = None
self._Istiod = None
self._DeployConfig = None
self._AutoInjectionNamespaceStateList = None
@property
def AutoInjectionNamespaceList(self):
"""自动注入SideCar的NameSpace
:rtype: list of str
"""
return self._AutoInjectionNamespaceList
@AutoInjectionNamespaceList.setter
def AutoInjectionNamespaceList(self, AutoInjectionNamespaceList):
self._AutoInjectionNamespaceList = AutoInjectionNamespaceList
@property
def IngressGatewayList(self):
"""Ingress配置列表
:rtype: list of IngressGateway
"""
return self._IngressGatewayList
@IngressGatewayList.setter
def IngressGatewayList(self, IngressGatewayList):
self._IngressGatewayList = IngressGatewayList
@property
def EgressGatewayList(self):
"""Egress配置列表
:rtype: list of EgressGateway
"""
return self._EgressGatewayList
@EgressGatewayList.setter
def EgressGatewayList(self, EgressGatewayList):
self._EgressGatewayList = EgressGatewayList
@property
def Istiod(self):
"""Istiod配置
注意:此字段可能返回 null,表示取不到有效值。
:rtype: :class:`tencentcloud.tcm.v20210413.models.IstiodConfig`
"""
return self._Istiod
@Istiod.setter
def Istiod(self, Istiod):
self._Istiod = Istiod
@property
def DeployConfig(self):
"""部署配置
:rtype: :class:`tencentcloud.tcm.v20210413.models.DeployConfig`
"""
return self._DeployConfig
@DeployConfig.setter
def DeployConfig(self, DeployConfig):
self._DeployConfig = DeployConfig
@property
def AutoInjectionNamespaceStateList(self):
"""自动注入命名空间状态列表
:rtype: list of AutoInjectionNamespaceState
"""
return self._AutoInjectionNamespaceStateList
@AutoInjectionNamespaceStateList.setter
def AutoInjectionNamespaceStateList(self, AutoInjectionNamespaceStateList):
self._AutoInjectionNamespaceStateList = AutoInjectionNamespaceStateList
def _deserialize(self, params):
self._AutoInjectionNamespaceList = params.get("AutoInjectionNamespaceList")
if params.get("IngressGatewayList") is not None:
self._IngressGatewayList = []
for item in params.get("IngressGatewayList"):
obj = IngressGateway()
obj._deserialize(item)
self._IngressGatewayList.append(obj)
if params.get("EgressGatewayList") is not None:
self._EgressGatewayList = []
for item in params.get("EgressGatewayList"):
obj = EgressGateway()
obj._deserialize(item)
self._EgressGatewayList.append(obj)
if params.get("Istiod") is not None:
self._Istiod = IstiodConfig()
self._Istiod._deserialize(params.get("Istiod"))
if params.get("DeployConfig") is not None:
self._DeployConfig = DeployConfig()
self._DeployConfig._deserialize(params.get("DeployConfig"))
if params.get("AutoInjectionNamespaceStateList") is not None:
self._AutoInjectionNamespaceStateList = []
for item in params.get("AutoInjectionNamespaceStateList"):
obj = AutoInjectionNamespaceState()
obj._deserialize(item)
self._AutoInjectionNamespaceStateList.append(obj)
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class ClusterStatus(AbstractModel):
"""集群状态
"""
def __init__(self):
r"""
:param _LinkState: 关联状态,取值范围:
- LINKING: 关联中
- LINKED: 已关联
- UNLINKING: 解关联中
- LINK_FAILED: 关联失败
- UNLINK_FAILED: 解关联失败
:type LinkState: str
:param _LinkErrorDetail: 关联错误详情
注意:此字段可能返回 null,表示取不到有效值。
:type LinkErrorDetail: str
"""
self._LinkState = None
self._LinkErrorDetail = None
@property
def LinkState(self):
"""关联状态,取值范围:
- LINKING: 关联中
- LINKED: 已关联
- UNLINKING: 解关联中
- LINK_FAILED: 关联失败
- UNLINK_FAILED: 解关联失败
:rtype: str
"""
return self._LinkState
@LinkState.setter
def LinkState(self, LinkState):
self._LinkState = LinkState
@property
def LinkErrorDetail(self):
"""关联错误详情
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._LinkErrorDetail
@LinkErrorDetail.setter
def LinkErrorDetail(self, LinkErrorDetail):
self._LinkErrorDetail = LinkErrorDetail
def _deserialize(self, params):
self._LinkState = params.get("LinkState")
self._LinkErrorDetail = params.get("LinkErrorDetail")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class CreateMeshRequest(AbstractModel):
"""CreateMesh请求参数结构体
"""
def __init__(self):
r"""
:param _DisplayName: Mesh名称
:type DisplayName: str
:param _MeshVersion: Mesh版本
:type MeshVersion: str
:param _Type: Mesh类型,取值范围:
- HOSTED:托管网格
:type Type: str
:param _Config: Mesh配置
:type Config: :class:`tencentcloud.tcm.v20210413.models.MeshConfig`
:param _ClusterList: 关联集群
:type ClusterList: list of Cluster
:param _TagList: 标签列表
:type TagList: list of Tag
"""
self._DisplayName = None
self._MeshVersion = None
self._Type = None
self._Config = None
self._ClusterList = None
self._TagList = None
@property
def DisplayName(self):
"""Mesh名称
:rtype: str
"""
return self._DisplayName
@DisplayName.setter
def DisplayName(self, DisplayName):
self._DisplayName = DisplayName
@property
def MeshVersion(self):
"""Mesh版本
:rtype: str
"""
return self._MeshVersion
@MeshVersion.setter
def MeshVersion(self, MeshVersion):
self._MeshVersion = MeshVersion
@property
def Type(self):
"""Mesh类型,取值范围:
- HOSTED:托管网格
:rtype: str
"""
return self._Type
@Type.setter
def Type(self, Type):
self._Type = Type
@property
def Config(self):
"""Mesh配置
:rtype: :class:`tencentcloud.tcm.v20210413.models.MeshConfig`
"""
return self._Config
@Config.setter
def Config(self, Config):
self._Config = Config
@property
def ClusterList(self):
"""关联集群
:rtype: list of Cluster
"""
return self._ClusterList
@ClusterList.setter
def ClusterList(self, ClusterList):
self._ClusterList = ClusterList
@property
def TagList(self):
"""标签列表
:rtype: list of Tag
"""
return self._TagList
@TagList.setter
def TagList(self, TagList):
self._TagList = TagList
def _deserialize(self, params):
self._DisplayName = params.get("DisplayName")
self._MeshVersion = params.get("MeshVersion")
self._Type = params.get("Type")
if params.get("Config") is not None:
self._Config = MeshConfig()
self._Config._deserialize(params.get("Config"))
if params.get("ClusterList") is not None:
self._ClusterList = []
for item in params.get("ClusterList"):
obj = Cluster()
obj._deserialize(item)
self._ClusterList.append(obj)
if params.get("TagList") is not None:
self._TagList = []
for item in params.get("TagList"):
obj = Tag()
obj._deserialize(item)
self._TagList.append(obj)
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class CreateMeshResponse(AbstractModel):
"""CreateMesh返回参数结构体
"""
def __init__(self):
r"""
:param _MeshId: 创建的Mesh的Id
:type MeshId: str
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._MeshId = None
self._RequestId = None
@property
def MeshId(self):
"""创建的Mesh的Id
:rtype: str
"""
return self._MeshId
@MeshId.setter
def MeshId(self, MeshId):
self._MeshId = MeshId
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._MeshId = params.get("MeshId")
self._RequestId = params.get("RequestId")
class CrossRegionConfig(AbstractModel):
"""负载均衡跨域设置
"""
class CustomPromConfig(AbstractModel):
"""第三方 Prometheus 配置参数
"""
def __init__(self):
r"""
:param _Url: Prometheus 访问地址
注意:此字段可能返回 null,表示取不到有效值。
:type Url: str
:param _AuthType: 认证方式
注意:此字段可能返回 null,表示取不到有效值。
:type AuthType: str
:param _IsPublicAddr: 是否公网地址,缺省为 false
注意:此字段可能返回 null,表示取不到有效值。
:type IsPublicAddr: bool
:param _VpcId: 虚拟网络id
注意:此字段可能返回 null,表示取不到有效值。
:type VpcId: str
:param _Username: Prometheus 用户名(用于 basic 认证方式)
注意:此字段可能返回 null,表示取不到有效值。
:type Username: str
:param _Password: Prometheus 密码(用于 basic 认证方式)
注意:此字段可能返回 null,表示取不到有效值。
:type Password: str
"""
self._Url = None
self._AuthType = None
self._IsPublicAddr = None
self._VpcId = None
self._Username = None
self._Password = None
@property
def Url(self):
"""Prometheus 访问地址
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Url
@Url.setter
def Url(self, Url):
self._Url = Url
@property
def AuthType(self):
"""认证方式
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._AuthType
@AuthType.setter
def AuthType(self, AuthType):
self._AuthType = AuthType
@property
def IsPublicAddr(self):
"""是否公网地址,缺省为 false
注意:此字段可能返回 null,表示取不到有效值。
:rtype: bool
"""
return self._IsPublicAddr
@IsPublicAddr.setter
def IsPublicAddr(self, IsPublicAddr):
self._IsPublicAddr = IsPublicAddr
@property
def VpcId(self):
"""虚拟网络id
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._VpcId
@VpcId.setter
def VpcId(self, VpcId):
self._VpcId = VpcId
@property
def Username(self):
"""Prometheus 用户名(用于 basic 认证方式)
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Username
@Username.setter
def Username(self, Username):
self._Username = Username
@property
def Password(self):
"""Prometheus 密码(用于 basic 认证方式)
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Password
@Password.setter
def Password(self, Password):
self._Password = Password
def _deserialize(self, params):
self._Url = params.get("Url")
self._AuthType = params.get("AuthType")
self._IsPublicAddr = params.get("IsPublicAddr")
self._VpcId = params.get("VpcId")
self._Username = params.get("Username")
self._Password = params.get("Password")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class DeleteMeshRequest(AbstractModel):
"""DeleteMesh请求参数结构体
"""
def __init__(self):
r"""
:param _MeshId: 需要删除的MeshId
:type MeshId: str
:param _NeedDeleteCLS: CLS组件是否被删除
:type NeedDeleteCLS: bool
:param _NeedDeleteTMP: TMP组件是否被删除
:type NeedDeleteTMP: bool
:param _NeedDeleteAPM: APM组件是否被删除
:type NeedDeleteAPM: bool
:param _NeedDeleteGrafana: Grafana组件是否被删除
:type NeedDeleteGrafana: bool
"""
self._MeshId = None
self._NeedDeleteCLS = None
self._NeedDeleteTMP = None
self._NeedDeleteAPM = None
self._NeedDeleteGrafana = None
@property
def MeshId(self):
"""需要删除的MeshId
:rtype: str
"""
return self._MeshId
@MeshId.setter
def MeshId(self, MeshId):
self._MeshId = MeshId
@property
def NeedDeleteCLS(self):
"""CLS组件是否被删除
:rtype: bool
"""
return self._NeedDeleteCLS
@NeedDeleteCLS.setter
def NeedDeleteCLS(self, NeedDeleteCLS):
self._NeedDeleteCLS = NeedDeleteCLS
@property
def NeedDeleteTMP(self):
"""TMP组件是否被删除
:rtype: bool
"""
return self._NeedDeleteTMP
@NeedDeleteTMP.setter
def NeedDeleteTMP(self, NeedDeleteTMP):
self._NeedDeleteTMP = NeedDeleteTMP
@property
def NeedDeleteAPM(self):
"""APM组件是否被删除
:rtype: bool
"""
return self._NeedDeleteAPM
@NeedDeleteAPM.setter
def NeedDeleteAPM(self, NeedDeleteAPM):
self._NeedDeleteAPM = NeedDeleteAPM
@property
def NeedDeleteGrafana(self):
"""Grafana组件是否被删除
:rtype: bool
"""
return self._NeedDeleteGrafana
@NeedDeleteGrafana.setter
def NeedDeleteGrafana(self, NeedDeleteGrafana):
self._NeedDeleteGrafana = NeedDeleteGrafana
def _deserialize(self, params):
self._MeshId = params.get("MeshId")
self._NeedDeleteCLS = params.get("NeedDeleteCLS")
self._NeedDeleteTMP = params.get("NeedDeleteTMP")
self._NeedDeleteAPM = params.get("NeedDeleteAPM")
self._NeedDeleteGrafana = params.get("NeedDeleteGrafana")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class DeleteMeshResponse(AbstractModel):
"""DeleteMesh返回参数结构体
"""
def __init__(self):
r"""
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._RequestId = None
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._RequestId = params.get("RequestId")
class DeployConfig(AbstractModel):
"""部署配置
"""
def __init__(self):
r"""
:param _NodeSelectType: 部署类型,取值范围:
- SPECIFIC:专有模式
- AUTO:普通模式
:type NodeSelectType: str
:param _Nodes: 指定的节点
:type Nodes: list of str
"""
self._NodeSelectType = None
self._Nodes = None
@property
def NodeSelectType(self):
"""部署类型,取值范围:
- SPECIFIC:专有模式
- AUTO:普通模式
:rtype: str
"""
return self._NodeSelectType
@NodeSelectType.setter
def NodeSelectType(self, NodeSelectType):
self._NodeSelectType = NodeSelectType
@property
def Nodes(self):
"""指定的节点
:rtype: list of str
"""
return self._Nodes
@Nodes.setter
def Nodes(self, Nodes):
self._Nodes = Nodes
def _deserialize(self, params):
self._NodeSelectType = params.get("NodeSelectType")
self._Nodes = params.get("Nodes")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class DescribeAccessLogConfigRequest(AbstractModel):
"""DescribeAccessLogConfig请求参数结构体
"""
def __init__(self):
r"""
:param _MeshId: mesh名字
:type MeshId: str
"""
self._MeshId = None
@property
def MeshId(self):
"""mesh名字
:rtype: str
"""
return self._MeshId
@MeshId.setter
def MeshId(self, MeshId):
self._MeshId = MeshId
def _deserialize(self, params):
self._MeshId = params.get("MeshId")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class DescribeAccessLogConfigResponse(AbstractModel):
"""DescribeAccessLogConfig返回参数结构体
"""
def __init__(self):
r"""
:param _File: 访问日志输出路径。默认 /dev/stdout
:type File: str
:param _Format: 访问日志的格式。
:type Format: str
:param _Encoding: 访问日志输出编码,可取值为 "TEXT" 或 "JSON",默认 TEXT"
:type Encoding: str
:param _SelectedRange: 选中的范围
注意:此字段可能返回 null,表示取不到有效值。
:type SelectedRange: :class:`tencentcloud.tcm.v20210413.models.SelectedRange`
:param _Template: 采用的模板,可取值为"istio" 或 "trace",默认为"istio"
:type Template: str
:param _CLS: 腾讯云日志服务相关参数
:type CLS: :class:`tencentcloud.tcm.v20210413.models.CLS`
:param _Address: GRPC第三方服务器地址
:type Address: str
:param _EnableServer: 是否启用GRPC第三方服务器
:type EnableServer: bool
:param _EnableStdout: 是否启用标准输出
:type EnableStdout: bool
:param _Enable: 是否启用访问日志采集
注意:此字段可能返回 null,表示取不到有效值。
:type Enable: bool
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._File = None
self._Format = None
self._Encoding = None
self._SelectedRange = None
self._Template = None
self._CLS = None
self._Address = None
self._EnableServer = None
self._EnableStdout = None
self._Enable = None
self._RequestId = None
@property
def File(self):
"""访问日志输出路径。默认 /dev/stdout
:rtype: str
"""
return self._File
@File.setter
def File(self, File):
self._File = File
@property
def Format(self):
"""访问日志的格式。
:rtype: str
"""
return self._Format
@Format.setter
def Format(self, Format):
self._Format = Format
@property
def Encoding(self):
"""访问日志输出编码,可取值为 "TEXT" 或 "JSON",默认 TEXT"
:rtype: str
"""
return self._Encoding
@Encoding.setter
def Encoding(self, Encoding):
self._Encoding = Encoding
@property
def SelectedRange(self):
"""选中的范围
注意:此字段可能返回 null,表示取不到有效值。
:rtype: :class:`tencentcloud.tcm.v20210413.models.SelectedRange`
"""
return self._SelectedRange
@SelectedRange.setter
def SelectedRange(self, SelectedRange):
self._SelectedRange = SelectedRange
@property
def Template(self):
"""采用的模板,可取值为"istio" 或 "trace",默认为"istio"
:rtype: str
"""
return self._Template
@Template.setter
def Template(self, Template):
self._Template = Template
@property
def CLS(self):
"""腾讯云日志服务相关参数
:rtype: :class:`tencentcloud.tcm.v20210413.models.CLS`
"""
return self._CLS
@CLS.setter
def CLS(self, CLS):
self._CLS = CLS
@property
def Address(self):
"""GRPC第三方服务器地址
:rtype: str
"""
return self._Address
@Address.setter
def Address(self, Address):
self._Address = Address
@property
def EnableServer(self):
"""是否启用GRPC第三方服务器
:rtype: bool
"""
return self._EnableServer
@EnableServer.setter
def EnableServer(self, EnableServer):
self._EnableServer = EnableServer
@property
def EnableStdout(self):
"""是否启用标准输出
:rtype: bool
"""
return self._EnableStdout
@EnableStdout.setter
def EnableStdout(self, EnableStdout):
self._EnableStdout = EnableStdout
@property
def Enable(self):
"""是否启用访问日志采集
注意:此字段可能返回 null,表示取不到有效值。
:rtype: bool
"""
return self._Enable
@Enable.setter
def Enable(self, Enable):
self._Enable = Enable
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._File = params.get("File")
self._Format = params.get("Format")
self._Encoding = params.get("Encoding")
if params.get("SelectedRange") is not None:
self._SelectedRange = SelectedRange()
self._SelectedRange._deserialize(params.get("SelectedRange"))
self._Template = params.get("Template")
if params.get("CLS") is not None:
self._CLS = CLS()
self._CLS._deserialize(params.get("CLS"))
self._Address = params.get("Address")
self._EnableServer = params.get("EnableServer")
self._EnableStdout = params.get("EnableStdout")
self._Enable = params.get("Enable")
self._RequestId = params.get("RequestId")
class DescribeMeshListRequest(AbstractModel):
"""DescribeMeshList请求参数结构体
"""
def __init__(self):
r"""
:param _Filters: 过滤条件
:type Filters: list of Filter
:param _Limit: 分页限制
:type Limit: int
:param _Offset: 分页偏移
:type Offset: int
"""
self._Filters = None
self._Limit = None
self._Offset = None
@property
def Filters(self):
"""过滤条件
:rtype: list of Filter
"""
return self._Filters
@Filters.setter
def Filters(self, Filters):
self._Filters = Filters
@property
def Limit(self):
"""分页限制
:rtype: int
"""
return self._Limit
@Limit.setter
def Limit(self, Limit):
self._Limit = Limit
@property
def Offset(self):
"""分页偏移
:rtype: int
"""
return self._Offset
@Offset.setter
def Offset(self, Offset):
self._Offset = Offset
def _deserialize(self, params):
if params.get("Filters") is not None:
self._Filters = []
for item in params.get("Filters"):
obj = Filter()
obj._deserialize(item)
self._Filters.append(obj)
self._Limit = params.get("Limit")
self._Offset = params.get("Offset")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class DescribeMeshListResponse(AbstractModel):
"""DescribeMeshList返回参数结构体
"""
def __init__(self):
r"""
:param _MeshList: 查询到的网格信息
注意:此字段可能返回 null,表示取不到有效值。
:type MeshList: list of Mesh
:param _Total: 总数
:type Total: int
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._MeshList = None
self._Total = None
self._RequestId = None
@property
def MeshList(self):
"""查询到的网格信息
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of Mesh
"""
return self._MeshList
@MeshList.setter
def MeshList(self, MeshList):
self._MeshList = MeshList
@property
def Total(self):
"""总数
:rtype: int
"""
return self._Total
@Total.setter
def Total(self, Total):
self._Total = Total
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
if params.get("MeshList") is not None:
self._MeshList = []
for item in params.get("MeshList"):
obj = Mesh()
obj._deserialize(item)
self._MeshList.append(obj)
self._Total = params.get("Total")
self._RequestId = params.get("RequestId")
class DescribeMeshRequest(AbstractModel):
"""DescribeMesh请求参数结构体
"""
def __init__(self):
r"""
:param _MeshId: 需要查询的网格 Id
:type MeshId: str
"""
self._MeshId = None
@property
def MeshId(self):
"""需要查询的网格 Id
:rtype: str
"""
return self._MeshId
@MeshId.setter
def MeshId(self, MeshId):
self._MeshId = MeshId
def _deserialize(self, params):
self._MeshId = params.get("MeshId")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class DescribeMeshResponse(AbstractModel):
"""DescribeMesh返回参数结构体
"""
def __init__(self):
r"""
:param _Mesh: Mesh详细信息
:type Mesh: :class:`tencentcloud.tcm.v20210413.models.Mesh`
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._Mesh = None
self._RequestId = None
@property
def Mesh(self):
"""Mesh详细信息
:rtype: :class:`tencentcloud.tcm.v20210413.models.Mesh`
"""
return self._Mesh
@Mesh.setter
def Mesh(self, Mesh):
self._Mesh = Mesh
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
if params.get("Mesh") is not None:
self._Mesh = Mesh()
self._Mesh._deserialize(params.get("Mesh"))
self._RequestId = params.get("RequestId")
class EgressGateway(AbstractModel):
"""Egress配置
"""
def __init__(self):
r"""
:param _Name: Egress名称
:type Name: str
:param _Namespace: 所在的Namespace
:type Namespace: str
:param _Workload: 工作负载配置
:type Workload: :class:`tencentcloud.tcm.v20210413.models.WorkloadConfig`
:param _Status: 工作负载的状态
:type Status: :class:`tencentcloud.tcm.v20210413.models.EgressGatewayStatus`
"""
self._Name = None
self._Namespace = None
self._Workload = None
self._Status = None
@property
def Name(self):
"""Egress名称
:rtype: str
"""
return self._Name
@Name.setter
def Name(self, Name):
self._Name = Name
@property
def Namespace(self):
"""所在的Namespace
:rtype: str
"""
return self._Namespace
@Namespace.setter
def Namespace(self, Namespace):
self._Namespace = Namespace
@property
def Workload(self):
"""工作负载配置
:rtype: :class:`tencentcloud.tcm.v20210413.models.WorkloadConfig`
"""
return self._Workload
@Workload.setter
def Workload(self, Workload):
self._Workload = Workload
@property
def Status(self):
"""工作负载的状态
:rtype: :class:`tencentcloud.tcm.v20210413.models.EgressGatewayStatus`
"""
return self._Status
@Status.setter
def Status(self, Status):
self._Status = Status
def _deserialize(self, params):
self._Name = params.get("Name")
self._Namespace = params.get("Namespace")
if params.get("Workload") is not None:
self._Workload = WorkloadConfig()
self._Workload._deserialize(params.get("Workload"))
if params.get("Status") is not None:
self._Status = EgressGatewayStatus()
self._Status._deserialize(params.get("Status"))
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class EgressGatewayStatus(AbstractModel):
"""egress gateway 的状态
"""
def __init__(self):
r"""
:param _CurrentVersion: egress gateway的当前版本
:type CurrentVersion: str
:param _DesiredVersion: egress gateway的目标版本
:type DesiredVersion: str
:param _State: egress gateway的状态,取值:running,upgrading,rollbacking
:type State: str
"""
self._CurrentVersion = None
self._DesiredVersion = None
self._State = None
@property
def CurrentVersion(self):
"""egress gateway的当前版本
:rtype: str
"""
return self._CurrentVersion
@CurrentVersion.setter
def CurrentVersion(self, CurrentVersion):
self._CurrentVersion = CurrentVersion
@property
def DesiredVersion(self):
"""egress gateway的目标版本
:rtype: str
"""
return self._DesiredVersion
@DesiredVersion.setter
def DesiredVersion(self, DesiredVersion):
self._DesiredVersion = DesiredVersion
@property
def State(self):
"""egress gateway的状态,取值:running,upgrading,rollbacking
:rtype: str
"""
return self._State
@State.setter
def State(self, State):
self._State = State
def _deserialize(self, params):
self._CurrentVersion = params.get("CurrentVersion")
self._DesiredVersion = params.get("DesiredVersion")
self._State = params.get("State")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class ExtensiveCluster(AbstractModel):
"""内网独占集群配置
"""
def __init__(self):
r"""
:param _ClusterId: Cluster ID
注意:此字段可能返回 null,表示取不到有效值。
:type ClusterId: str
:param _Zone: 可用区
注意:此字段可能返回 null,表示取不到有效值。
:type Zone: str
"""
self._ClusterId = None
self._Zone = None
@property
def ClusterId(self):
"""Cluster ID
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._ClusterId
@ClusterId.setter
def ClusterId(self, ClusterId):
self._ClusterId = ClusterId
@property
def Zone(self):
"""可用区
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Zone
@Zone.setter
def Zone(self, Zone):
self._Zone = Zone
def _deserialize(self, params):
self._ClusterId = params.get("ClusterId")
self._Zone = params.get("Zone")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class ExtensiveClusters(AbstractModel):
"""内网独占集群配置列表
"""
def __init__(self):
r"""
:param _L4Clusters: 4层集群配置
注意:此字段可能返回 null,表示取不到有效值。
:type L4Clusters: list of ExtensiveCluster
:param _L7Clusters: 7层集群配置
注意:此字段可能返回 null,表示取不到有效值。
:type L7Clusters: list of ExtensiveCluster
"""
self._L4Clusters = None
self._L7Clusters = None
@property
def L4Clusters(self):
"""4层集群配置
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of ExtensiveCluster
"""
return self._L4Clusters
@L4Clusters.setter
def L4Clusters(self, L4Clusters):
self._L4Clusters = L4Clusters
@property
def L7Clusters(self):
"""7层集群配置
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of ExtensiveCluster
"""
return self._L7Clusters
@L7Clusters.setter
def L7Clusters(self, L7Clusters):
self._L7Clusters = L7Clusters
def _deserialize(self, params):
if params.get("L4Clusters") is not None:
self._L4Clusters = []
for item in params.get("L4Clusters"):
obj = ExtensiveCluster()
obj._deserialize(item)
self._L4Clusters.append(obj)
if params.get("L7Clusters") is not None:
self._L7Clusters = []
for item in params.get("L7Clusters"):
obj = ExtensiveCluster()
obj._deserialize(item)
self._L7Clusters.append(obj)
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class Filter(AbstractModel):
"""键值对过滤器,用于条件过滤查询。例如过滤ID、名称等
"""
def __init__(self):
r"""
:param _Name: 需要过滤的字段。
:type Name: str
:param _Values: 字段的过滤值。
:type Values: list of str
"""
self._Name = None
self._Values = None
@property
def Name(self):
"""需要过滤的字段。
:rtype: str
"""
return self._Name
@Name.setter
def Name(self, Name):
self._Name = Name
@property
def Values(self):
"""字段的过滤值。
:rtype: list of str
"""
return self._Values
@Values.setter
def Values(self, Values):
self._Values = Values
def _deserialize(self, params):
self._Name = params.get("Name")
self._Values = params.get("Values")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class GrafanaInfo(AbstractModel):
"""Grafana信息
"""
def __init__(self):
r"""
:param _Enabled: 是否开启
:type Enabled: bool
:param _InternalURL: 内网地址
:type InternalURL: str
:param _PublicURL: 公网地址
注意:此字段可能返回 null,表示取不到有效值。
:type PublicURL: str
:param _PublicFailedReason: 公网失败原因
注意:此字段可能返回 null,表示取不到有效值。
:type PublicFailedReason: str
:param _PublicFailedMessage: 公网失败详细信息
注意:此字段可能返回 null,表示取不到有效值。
:type PublicFailedMessage: str
"""
self._Enabled = None
self._InternalURL = None
self._PublicURL = None
self._PublicFailedReason = None
self._PublicFailedMessage = None
@property
def Enabled(self):
"""是否开启
:rtype: bool
"""
return self._Enabled
@Enabled.setter
def Enabled(self, Enabled):
self._Enabled = Enabled
@property
def InternalURL(self):
"""内网地址
:rtype: str
"""
return self._InternalURL
@InternalURL.setter
def InternalURL(self, InternalURL):
self._InternalURL = InternalURL
@property
def PublicURL(self):
"""公网地址
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._PublicURL
@PublicURL.setter
def PublicURL(self, PublicURL):
self._PublicURL = PublicURL
@property
def PublicFailedReason(self):
"""公网失败原因
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._PublicFailedReason
@PublicFailedReason.setter
def PublicFailedReason(self, PublicFailedReason):
self._PublicFailedReason = PublicFailedReason
@property
def PublicFailedMessage(self):
"""公网失败详细信息
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._PublicFailedMessage
@PublicFailedMessage.setter
def PublicFailedMessage(self, PublicFailedMessage):
self._PublicFailedMessage = PublicFailedMessage
def _deserialize(self, params):
self._Enabled = params.get("Enabled")
self._InternalURL = params.get("InternalURL")
self._PublicURL = params.get("PublicURL")
self._PublicFailedReason = params.get("PublicFailedReason")
self._PublicFailedMessage = params.get("PublicFailedMessage")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class HorizontalPodAutoscalerSpec(AbstractModel):
"""HPA 配置
"""
def __init__(self):
r"""
:param _MinReplicas: 最小副本数
:type MinReplicas: int
:param _MaxReplicas: 最大副本数
:type MaxReplicas: int
:param _Metrics: 用于计算副本数的指标
:type Metrics: list of MetricSpec
"""
self._MinReplicas = None
self._MaxReplicas = None
self._Metrics = None
@property
def MinReplicas(self):
"""最小副本数
:rtype: int
"""
return self._MinReplicas
@MinReplicas.setter
def MinReplicas(self, MinReplicas):
self._MinReplicas = MinReplicas
@property
def MaxReplicas(self):
"""最大副本数
:rtype: int
"""
return self._MaxReplicas
@MaxReplicas.setter
def MaxReplicas(self, MaxReplicas):
self._MaxReplicas = MaxReplicas
@property
def Metrics(self):
"""用于计算副本数的指标
:rtype: list of MetricSpec
"""
return self._Metrics
@Metrics.setter
def Metrics(self, Metrics):
self._Metrics = Metrics
def _deserialize(self, params):
self._MinReplicas = params.get("MinReplicas")
self._MaxReplicas = params.get("MaxReplicas")
if params.get("Metrics") is not None:
self._Metrics = []
for item in params.get("Metrics"):
obj = MetricSpec()
obj._deserialize(item)
self._Metrics.append(obj)
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class IngressGateway(AbstractModel):
"""IngressGateway 实例信息
"""
def __init__(self):
r"""
:param _Name: IngressGateway 实例名字
:type Name: str
:param _Namespace: 命名空间
:type Namespace: str
:param _ClusterId: 集群 ID
:type ClusterId: str
:param _Service: Service 配置
:type Service: :class:`tencentcloud.tcm.v20210413.models.Service`
:param _Workload: Workload 配置
:type Workload: :class:`tencentcloud.tcm.v20210413.models.WorkloadConfig`
:param _LoadBalancer: 负载均衡配置,自动创建 CLB 时返回
注意:此字段可能返回 null,表示取不到有效值。
:type LoadBalancer: :class:`tencentcloud.tcm.v20210413.models.LoadBalancer`
:param _Status: IngressGateway 状态信息,只读
:type Status: :class:`tencentcloud.tcm.v20210413.models.IngressGatewayStatus`
:param _LoadBalancerId: 负载均衡实例ID,使用已有 CLB 时返回
:type LoadBalancerId: str
"""
self._Name = None
self._Namespace = None
self._ClusterId = None
self._Service = None
self._Workload = None
self._LoadBalancer = None
self._Status = None
self._LoadBalancerId = None
@property
def Name(self):
"""IngressGateway 实例名字
:rtype: str
"""
return self._Name
@Name.setter
def Name(self, Name):
self._Name = Name
@property
def Namespace(self):
"""命名空间
:rtype: str
"""
return self._Namespace
@Namespace.setter
def Namespace(self, Namespace):
self._Namespace = Namespace
@property
def ClusterId(self):
"""集群 ID
:rtype: str
"""
return self._ClusterId
@ClusterId.setter
def ClusterId(self, ClusterId):
self._ClusterId = ClusterId
@property
def Service(self):
"""Service 配置
:rtype: :class:`tencentcloud.tcm.v20210413.models.Service`
"""
return self._Service
@Service.setter
def Service(self, Service):
self._Service = Service
@property
def Workload(self):
"""Workload 配置
:rtype: :class:`tencentcloud.tcm.v20210413.models.WorkloadConfig`
"""
return self._Workload
@Workload.setter
def Workload(self, Workload):
self._Workload = Workload
@property
def LoadBalancer(self):
"""负载均衡配置,自动创建 CLB 时返回
注意:此字段可能返回 null,表示取不到有效值。
:rtype: :class:`tencentcloud.tcm.v20210413.models.LoadBalancer`
"""
return self._LoadBalancer
@LoadBalancer.setter
def LoadBalancer(self, LoadBalancer):
self._LoadBalancer = LoadBalancer
@property
def Status(self):
"""IngressGateway 状态信息,只读
:rtype: :class:`tencentcloud.tcm.v20210413.models.IngressGatewayStatus`
"""
return self._Status
@Status.setter
def Status(self, Status):
self._Status = Status
@property
def LoadBalancerId(self):
"""负载均衡实例ID,使用已有 CLB 时返回
:rtype: str
"""
return self._LoadBalancerId
@LoadBalancerId.setter
def LoadBalancerId(self, LoadBalancerId):
self._LoadBalancerId = LoadBalancerId
def _deserialize(self, params):
self._Name = params.get("Name")
self._Namespace = params.get("Namespace")
self._ClusterId = params.get("ClusterId")
if params.get("Service") is not None:
self._Service = Service()
self._Service._deserialize(params.get("Service"))
if params.get("Workload") is not None:
self._Workload = WorkloadConfig()
self._Workload._deserialize(params.get("Workload"))
if params.get("LoadBalancer") is not None:
self._LoadBalancer = LoadBalancer()
self._LoadBalancer._deserialize(params.get("LoadBalancer"))
if params.get("Status") is not None:
self._Status = IngressGatewayStatus()
self._Status._deserialize(params.get("Status"))
self._LoadBalancerId = params.get("LoadBalancerId")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class IngressGatewayStatus(AbstractModel):
"""IngressGateway状态
"""
def __init__(self):
r"""
:param _LoadBalancer: 负载均衡实例状态
:type LoadBalancer: :class:`tencentcloud.tcm.v20210413.models.LoadBalancerStatus`
:param _CurrentVersion: ingress gateway 当前的版本
:type CurrentVersion: str
:param _DesiredVersion: ingress gateway 目标的版本
:type DesiredVersion: str
:param _State: ingress gateway的状态,取值running, upgrading, rollbacking
:type State: str
"""
self._LoadBalancer = None
self._CurrentVersion = None
self._DesiredVersion = None
self._State = None
@property
def LoadBalancer(self):
"""负载均衡实例状态
:rtype: :class:`tencentcloud.tcm.v20210413.models.LoadBalancerStatus`
"""
return self._LoadBalancer
@LoadBalancer.setter
def LoadBalancer(self, LoadBalancer):
self._LoadBalancer = LoadBalancer
@property
def CurrentVersion(self):
"""ingress gateway 当前的版本
:rtype: str
"""
return self._CurrentVersion
@CurrentVersion.setter
def CurrentVersion(self, CurrentVersion):
self._CurrentVersion = CurrentVersion
@property
def DesiredVersion(self):
"""ingress gateway 目标的版本
:rtype: str
"""
return self._DesiredVersion
@DesiredVersion.setter
def DesiredVersion(self, DesiredVersion):
self._DesiredVersion = DesiredVersion
@property
def State(self):
"""ingress gateway的状态,取值running, upgrading, rollbacking
:rtype: str
"""
return self._State
@State.setter
def State(self, State):
self._State = State
def _deserialize(self, params):
if params.get("LoadBalancer") is not None:
self._LoadBalancer = LoadBalancerStatus()
self._LoadBalancer._deserialize(params.get("LoadBalancer"))
self._CurrentVersion = params.get("CurrentVersion")
self._DesiredVersion = params.get("DesiredVersion")
self._State = params.get("State")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class InjectConfig(AbstractModel):
"""自动注入配置
"""
def __init__(self):
r"""
:param _ExcludeIPRanges: 不需要进行代理的 ip 地址范围
注意:此字段可能返回 null,表示取不到有效值。
:type ExcludeIPRanges: list of str
:param _HoldApplicationUntilProxyStarts: 是否等待sidecar启动
注意:此字段可能返回 null,表示取不到有效值。
:type HoldApplicationUntilProxyStarts: bool
:param _HoldProxyUntilApplicationEnds: 是否允许sidecar等待
注意:此字段可能返回 null,表示取不到有效值。
:type HoldProxyUntilApplicationEnds: bool
"""
self._ExcludeIPRanges = None
self._HoldApplicationUntilProxyStarts = None
self._HoldProxyUntilApplicationEnds = None
@property
def ExcludeIPRanges(self):
"""不需要进行代理的 ip 地址范围
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of str
"""
return self._ExcludeIPRanges
@ExcludeIPRanges.setter
def ExcludeIPRanges(self, ExcludeIPRanges):
self._ExcludeIPRanges = ExcludeIPRanges
@property
def HoldApplicationUntilProxyStarts(self):
"""是否等待sidecar启动
注意:此字段可能返回 null,表示取不到有效值。
:rtype: bool
"""
return self._HoldApplicationUntilProxyStarts
@HoldApplicationUntilProxyStarts.setter
def HoldApplicationUntilProxyStarts(self, HoldApplicationUntilProxyStarts):
self._HoldApplicationUntilProxyStarts = HoldApplicationUntilProxyStarts
@property
def HoldProxyUntilApplicationEnds(self):
"""是否允许sidecar等待
注意:此字段可能返回 null,表示取不到有效值。
:rtype: bool
"""
return self._HoldProxyUntilApplicationEnds
@HoldProxyUntilApplicationEnds.setter
def HoldProxyUntilApplicationEnds(self, HoldProxyUntilApplicationEnds):
self._HoldProxyUntilApplicationEnds = HoldProxyUntilApplicationEnds
def _deserialize(self, params):
self._ExcludeIPRanges = params.get("ExcludeIPRanges")
self._HoldApplicationUntilProxyStarts = params.get("HoldApplicationUntilProxyStarts")
self._HoldProxyUntilApplicationEnds = params.get("HoldProxyUntilApplicationEnds")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class IstioConfig(AbstractModel):
"""Istio配置
"""
def __init__(self):
r"""
:param _OutboundTrafficPolicy: 外部流量策略
:type OutboundTrafficPolicy: str
:param _Tracing: 调用链配置(Deprecated,请使用 MeshConfig.Tracing 进行配置)
:type Tracing: :class:`tencentcloud.tcm.v20210413.models.TracingConfig`
:param _DisablePolicyChecks: 禁用策略检查功能
注意:此字段可能返回 null,表示取不到有效值。
:type DisablePolicyChecks: bool
:param _EnablePilotHTTP: 支持HTTP1.0协议
注意:此字段可能返回 null,表示取不到有效值。
:type EnablePilotHTTP: bool
:param _DisableHTTPRetry: 禁用HTTP重试策略
注意:此字段可能返回 null,表示取不到有效值。
:type DisableHTTPRetry: bool
:param _SmartDNS: SmartDNS策略
注意:此字段可能返回 null,表示取不到有效值。
:type SmartDNS: :class:`tencentcloud.tcm.v20210413.models.SmartDNSConfig`
"""
self._OutboundTrafficPolicy = None
self._Tracing = None
self._DisablePolicyChecks = None
self._EnablePilotHTTP = None
self._DisableHTTPRetry = None
self._SmartDNS = None
@property
def OutboundTrafficPolicy(self):
"""外部流量策略
:rtype: str
"""
return self._OutboundTrafficPolicy
@OutboundTrafficPolicy.setter
def OutboundTrafficPolicy(self, OutboundTrafficPolicy):
self._OutboundTrafficPolicy = OutboundTrafficPolicy
@property
def Tracing(self):
"""调用链配置(Deprecated,请使用 MeshConfig.Tracing 进行配置)
:rtype: :class:`tencentcloud.tcm.v20210413.models.TracingConfig`
"""
return self._Tracing
@Tracing.setter
def Tracing(self, Tracing):
self._Tracing = Tracing
@property
def DisablePolicyChecks(self):
"""禁用策略检查功能
注意:此字段可能返回 null,表示取不到有效值。
:rtype: bool
"""
return self._DisablePolicyChecks
@DisablePolicyChecks.setter
def DisablePolicyChecks(self, DisablePolicyChecks):
self._DisablePolicyChecks = DisablePolicyChecks
@property
def EnablePilotHTTP(self):
"""支持HTTP1.0协议
注意:此字段可能返回 null,表示取不到有效值。
:rtype: bool
"""
return self._EnablePilotHTTP
@EnablePilotHTTP.setter
def EnablePilotHTTP(self, EnablePilotHTTP):
self._EnablePilotHTTP = EnablePilotHTTP
@property
def DisableHTTPRetry(self):
"""禁用HTTP重试策略
注意:此字段可能返回 null,表示取不到有效值。
:rtype: bool
"""
return self._DisableHTTPRetry
@DisableHTTPRetry.setter
def DisableHTTPRetry(self, DisableHTTPRetry):
self._DisableHTTPRetry = DisableHTTPRetry
@property
def SmartDNS(self):
"""SmartDNS策略
注意:此字段可能返回 null,表示取不到有效值。
:rtype: :class:`tencentcloud.tcm.v20210413.models.SmartDNSConfig`
"""
return self._SmartDNS
@SmartDNS.setter
def SmartDNS(self, SmartDNS):
self._SmartDNS = SmartDNS
def _deserialize(self, params):
self._OutboundTrafficPolicy = params.get("OutboundTrafficPolicy")
if params.get("Tracing") is not None:
self._Tracing = TracingConfig()
self._Tracing._deserialize(params.get("Tracing"))
self._DisablePolicyChecks = params.get("DisablePolicyChecks")
self._EnablePilotHTTP = params.get("EnablePilotHTTP")
self._DisableHTTPRetry = params.get("DisableHTTPRetry")
if params.get("SmartDNS") is not None:
self._SmartDNS = SmartDNSConfig()
self._SmartDNS._deserialize(params.get("SmartDNS"))
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class IstiodConfig(AbstractModel):
"""Istiod配置
"""
def __init__(self):
r"""
:param _Workload: 工作负载配置
:type Workload: :class:`tencentcloud.tcm.v20210413.models.WorkloadConfig`
"""
self._Workload = None
@property
def Workload(self):
"""工作负载配置
:rtype: :class:`tencentcloud.tcm.v20210413.models.WorkloadConfig`
"""
return self._Workload
@Workload.setter
def Workload(self, Workload):
self._Workload = Workload
def _deserialize(self, params):
if params.get("Workload") is not None:
self._Workload = WorkloadConfig()
self._Workload._deserialize(params.get("Workload"))
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class LinkClusterListRequest(AbstractModel):
"""LinkClusterList请求参数结构体
"""
def __init__(self):
r"""
:param _MeshId: 网格Id
:type MeshId: str
:param _ClusterList: 关联集群
:type ClusterList: list of Cluster
"""
self._MeshId = None
self._ClusterList = None
@property
def MeshId(self):
"""网格Id
:rtype: str
"""
return self._MeshId
@MeshId.setter
def MeshId(self, MeshId):
self._MeshId = MeshId
@property
def ClusterList(self):
"""关联集群
:rtype: list of Cluster
"""
return self._ClusterList
@ClusterList.setter
def ClusterList(self, ClusterList):
self._ClusterList = ClusterList
def _deserialize(self, params):
self._MeshId = params.get("MeshId")
if params.get("ClusterList") is not None:
self._ClusterList = []
for item in params.get("ClusterList"):
obj = Cluster()
obj._deserialize(item)
self._ClusterList.append(obj)
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class LinkClusterListResponse(AbstractModel):
"""LinkClusterList返回参数结构体
"""
def __init__(self):
r"""
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._RequestId = None
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._RequestId = params.get("RequestId")
class LinkPrometheusRequest(AbstractModel):
"""LinkPrometheus请求参数结构体
"""
def __init__(self):
r"""
:param _MeshID: 网格ID
:type MeshID: str
:param _Prometheus: 配置
:type Prometheus: :class:`tencentcloud.tcm.v20210413.models.PrometheusConfig`
"""
self._MeshID = None
self._Prometheus = None
@property
def MeshID(self):
"""网格ID
:rtype: str
"""
return self._MeshID
@MeshID.setter
def MeshID(self, MeshID):
self._MeshID = MeshID
@property
def Prometheus(self):
"""配置
:rtype: :class:`tencentcloud.tcm.v20210413.models.PrometheusConfig`
"""
return self._Prometheus
@Prometheus.setter
def Prometheus(self, Prometheus):
self._Prometheus = Prometheus
def _deserialize(self, params):
self._MeshID = params.get("MeshID")
if params.get("Prometheus") is not None:
self._Prometheus = PrometheusConfig()
self._Prometheus._deserialize(params.get("Prometheus"))
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class LinkPrometheusResponse(AbstractModel):
"""LinkPrometheus返回参数结构体
"""
def __init__(self):
r"""
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._RequestId = None
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._RequestId = params.get("RequestId")
class LoadBalancer(AbstractModel):
"""负载均衡配置
"""
def __init__(self):
r"""
:param _LoadBalancerType: 负载均衡实例的网络类型:
OPEN:公网属性, INTERNAL:内网属性。
只读。
:type LoadBalancerType: str
:param _SubnetId: 负载均衡实例所在的子网(仅对内网VPC型LB有意义),只读。
:type SubnetId: str
:param _InternetChargeType: TRAFFIC_POSTPAID_BY_HOUR 按流量按小时后计费 ; BANDWIDTH_POSTPAID_BY_HOUR 按带宽按小时后计费;只读。
:type InternetChargeType: str
:param _InternetMaxBandwidthOut: 最大出带宽,单位Mbps,仅对公网属性的LB生效,默认值 10
:type InternetMaxBandwidthOut: int
:param _ZoneID: 可用区 ID
注意:此字段可能返回 null,表示取不到有效值。
:type ZoneID: str
:param _VipIsp: 运营商类型
注意:此字段可能返回 null,表示取不到有效值。
:type VipIsp: str
:param _TgwGroupName: TGW Group 名
注意:此字段可能返回 null,表示取不到有效值。
:type TgwGroupName: str
:param _AddressIPVersion: IP 类型
注意:此字段可能返回 null,表示取不到有效值。
:type AddressIPVersion: str
:param _Tags: 标签列表
注意:此字段可能返回 null,表示取不到有效值。
:type Tags: list of Tag
:param _ExtensiveClusters: 内网独占集群配置列表
注意:此字段可能返回 null,表示取不到有效值。
:type ExtensiveClusters: :class:`tencentcloud.tcm.v20210413.models.ExtensiveClusters`
:param _CrossRegionConfig: 负载均衡跨地域配置
注意:此字段可能返回 null,表示取不到有效值。
:type CrossRegionConfig: :class:`tencentcloud.tcm.v20210413.models.CrossRegionConfig`
:param _MasterZoneID: 设置跨可用区容灾时的主可用区ID
注意:此字段可能返回 null,表示取不到有效值。
:type MasterZoneID: str
:param _SlaveZoneID: 设置跨可用区容灾时的备可用区ID
注意:此字段可能返回 null,表示取不到有效值。
:type SlaveZoneID: str
"""
self._LoadBalancerType = None
self._SubnetId = None
self._InternetChargeType = None
self._InternetMaxBandwidthOut = None
self._ZoneID = None
self._VipIsp = None
self._TgwGroupName = None
self._AddressIPVersion = None
self._Tags = None
self._ExtensiveClusters = None
self._CrossRegionConfig = None
self._MasterZoneID = None
self._SlaveZoneID = None
@property
def LoadBalancerType(self):
"""负载均衡实例的网络类型:
OPEN:公网属性, INTERNAL:内网属性。
只读。
:rtype: str
"""
return self._LoadBalancerType
@LoadBalancerType.setter
def LoadBalancerType(self, LoadBalancerType):
self._LoadBalancerType = LoadBalancerType
@property
def SubnetId(self):
"""负载均衡实例所在的子网(仅对内网VPC型LB有意义),只读。
:rtype: str
"""
return self._SubnetId
@SubnetId.setter
def SubnetId(self, SubnetId):
self._SubnetId = SubnetId
@property
def InternetChargeType(self):
"""TRAFFIC_POSTPAID_BY_HOUR 按流量按小时后计费 ; BANDWIDTH_POSTPAID_BY_HOUR 按带宽按小时后计费;只读。
:rtype: str
"""
return self._InternetChargeType
@InternetChargeType.setter
def InternetChargeType(self, InternetChargeType):
self._InternetChargeType = InternetChargeType
@property
def InternetMaxBandwidthOut(self):
"""最大出带宽,单位Mbps,仅对公网属性的LB生效,默认值 10
:rtype: int
"""
return self._InternetMaxBandwidthOut
@InternetMaxBandwidthOut.setter
def InternetMaxBandwidthOut(self, InternetMaxBandwidthOut):
self._InternetMaxBandwidthOut = InternetMaxBandwidthOut
@property
def ZoneID(self):
"""可用区 ID
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._ZoneID
@ZoneID.setter
def ZoneID(self, ZoneID):
self._ZoneID = ZoneID
@property
def VipIsp(self):
"""运营商类型
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._VipIsp
@VipIsp.setter
def VipIsp(self, VipIsp):
self._VipIsp = VipIsp
@property
def TgwGroupName(self):
"""TGW Group 名
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._TgwGroupName
@TgwGroupName.setter
def TgwGroupName(self, TgwGroupName):
self._TgwGroupName = TgwGroupName
@property
def AddressIPVersion(self):
"""IP 类型
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._AddressIPVersion
@AddressIPVersion.setter
def AddressIPVersion(self, AddressIPVersion):
self._AddressIPVersion = AddressIPVersion
@property
def Tags(self):
"""标签列表
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of Tag
"""
return self._Tags
@Tags.setter
def Tags(self, Tags):
self._Tags = Tags
@property
def ExtensiveClusters(self):
"""内网独占集群配置列表
注意:此字段可能返回 null,表示取不到有效值。
:rtype: :class:`tencentcloud.tcm.v20210413.models.ExtensiveClusters`
"""
return self._ExtensiveClusters
@ExtensiveClusters.setter
def ExtensiveClusters(self, ExtensiveClusters):
self._ExtensiveClusters = ExtensiveClusters
@property
def CrossRegionConfig(self):
"""负载均衡跨地域配置
注意:此字段可能返回 null,表示取不到有效值。
:rtype: :class:`tencentcloud.tcm.v20210413.models.CrossRegionConfig`
"""
return self._CrossRegionConfig
@CrossRegionConfig.setter
def CrossRegionConfig(self, CrossRegionConfig):
self._CrossRegionConfig = CrossRegionConfig
@property
def MasterZoneID(self):
"""设置跨可用区容灾时的主可用区ID
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._MasterZoneID
@MasterZoneID.setter
def MasterZoneID(self, MasterZoneID):
self._MasterZoneID = MasterZoneID
@property
def SlaveZoneID(self):
"""设置跨可用区容灾时的备可用区ID
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._SlaveZoneID
@SlaveZoneID.setter
def SlaveZoneID(self, SlaveZoneID):
self._SlaveZoneID = SlaveZoneID
def _deserialize(self, params):
self._LoadBalancerType = params.get("LoadBalancerType")
self._SubnetId = params.get("SubnetId")
self._InternetChargeType = params.get("InternetChargeType")
self._InternetMaxBandwidthOut = params.get("InternetMaxBandwidthOut")
self._ZoneID = params.get("ZoneID")
self._VipIsp = params.get("VipIsp")
self._TgwGroupName = params.get("TgwGroupName")
self._AddressIPVersion = params.get("AddressIPVersion")
if params.get("Tags") is not None:
self._Tags = []
for item in params.get("Tags"):
obj = Tag()
obj._deserialize(item)
self._Tags.append(obj)
if params.get("ExtensiveClusters") is not None:
self._ExtensiveClusters = ExtensiveClusters()
self._ExtensiveClusters._deserialize(params.get("ExtensiveClusters"))
if params.get("CrossRegionConfig") is not None:
self._CrossRegionConfig = CrossRegionConfig()
self._CrossRegionConfig._deserialize(params.get("CrossRegionConfig"))
self._MasterZoneID = params.get("MasterZoneID")
self._SlaveZoneID = params.get("SlaveZoneID")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class LoadBalancerStatus(AbstractModel):
"""负载均衡状态信息
"""
def __init__(self):
r"""
:param _LoadBalancerId: 负载均衡实例 ID
:type LoadBalancerId: str
:param _LoadBalancerName: 负载均衡实例名字
:type LoadBalancerName: str
:param _LoadBalancerVip: 负载均衡实例 VIP
:type LoadBalancerVip: str
:param _LoadBalancerHostname: 负载均衡实例 Hostname
注意:此字段可能返回 null,表示取不到有效值。
:type LoadBalancerHostname: str
"""
self._LoadBalancerId = None
self._LoadBalancerName = None
self._LoadBalancerVip = None
self._LoadBalancerHostname = None
@property
def LoadBalancerId(self):
"""负载均衡实例 ID
:rtype: str
"""
return self._LoadBalancerId
@LoadBalancerId.setter
def LoadBalancerId(self, LoadBalancerId):
self._LoadBalancerId = LoadBalancerId
@property
def LoadBalancerName(self):
"""负载均衡实例名字
:rtype: str
"""
return self._LoadBalancerName
@LoadBalancerName.setter
def LoadBalancerName(self, LoadBalancerName):
self._LoadBalancerName = LoadBalancerName
@property
def LoadBalancerVip(self):
"""负载均衡实例 VIP
:rtype: str
"""
return self._LoadBalancerVip
@LoadBalancerVip.setter
def LoadBalancerVip(self, LoadBalancerVip):
self._LoadBalancerVip = LoadBalancerVip
@property
def LoadBalancerHostname(self):
"""负载均衡实例 Hostname
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._LoadBalancerHostname
@LoadBalancerHostname.setter
def LoadBalancerHostname(self, LoadBalancerHostname):
self._LoadBalancerHostname = LoadBalancerHostname
def _deserialize(self, params):
self._LoadBalancerId = params.get("LoadBalancerId")
self._LoadBalancerName = params.get("LoadBalancerName")
self._LoadBalancerVip = params.get("LoadBalancerVip")
self._LoadBalancerHostname = params.get("LoadBalancerHostname")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class Mesh(AbstractModel):
"""Mesh信息
"""
def __init__(self):
r"""
:param _MeshId: Mesh实例Id
:type MeshId: str
:param _DisplayName: Mesh名称
:type DisplayName: str
:param _Type: Mesh类型,取值范围:
- STANDALONE:独立网格
- HOSTED:托管网格
:type Type: str
:param _Region: 地域
:type Region: str
:param _Version: 版本
:type Version: str
:param _State: Mesh状态,取值范围:
- PENDING:等待中
- CREATING:创建中
- RUNNING:运行中
- ABNORMAL:异常
- UPGRADING:升级中
- CANARY_UPGRADED:升级灰度完成
- ROLLBACKING:升级回滚
- DELETING:删除中
- CREATE_FAILED:安装失败
- DELETE_FAILED:删除失败
- UPGRADE_FAILED:升级失败
- ROLLBACK_FAILED:回滚失败
:type State: str
:param _CreatedTime: 创建时间
:type CreatedTime: str
:param _UpdatedTime: 修改时间
注意:此字段可能返回 null,表示取不到有效值。
:type UpdatedTime: str
:param _ClusterList: 集群列表
:type ClusterList: list of Cluster
:param _Config: Mesh配置
:type Config: :class:`tencentcloud.tcm.v20210413.models.MeshConfig`
:param _Status: Mesh详细状态
:type Status: :class:`tencentcloud.tcm.v20210413.models.MeshStatus`
:param _TagList: 标签列表
:type TagList: list of Tag
"""
self._MeshId = None
self._DisplayName = None
self._Type = None
self._Region = None
self._Version = None
self._State = None
self._CreatedTime = None
self._UpdatedTime = None
self._ClusterList = None
self._Config = None
self._Status = None
self._TagList = None
@property
def MeshId(self):
"""Mesh实例Id
:rtype: str
"""
return self._MeshId
@MeshId.setter
def MeshId(self, MeshId):
self._MeshId = MeshId
@property
def DisplayName(self):
"""Mesh名称
:rtype: str
"""
return self._DisplayName
@DisplayName.setter
def DisplayName(self, DisplayName):
self._DisplayName = DisplayName
@property
def Type(self):
"""Mesh类型,取值范围:
- STANDALONE:独立网格
- HOSTED:托管网格
:rtype: str
"""
return self._Type
@Type.setter
def Type(self, Type):
self._Type = Type
@property
def Region(self):
"""地域
:rtype: str
"""
return self._Region
@Region.setter
def Region(self, Region):
self._Region = Region
@property
def Version(self):
"""版本
:rtype: str
"""
return self._Version
@Version.setter
def Version(self, Version):
self._Version = Version
@property
def State(self):
"""Mesh状态,取值范围:
- PENDING:等待中
- CREATING:创建中
- RUNNING:运行中
- ABNORMAL:异常
- UPGRADING:升级中
- CANARY_UPGRADED:升级灰度完成
- ROLLBACKING:升级回滚
- DELETING:删除中
- CREATE_FAILED:安装失败
- DELETE_FAILED:删除失败
- UPGRADE_FAILED:升级失败
- ROLLBACK_FAILED:回滚失败
:rtype: str
"""
return self._State
@State.setter
def State(self, State):
self._State = State
@property
def CreatedTime(self):
"""创建时间
:rtype: str
"""
return self._CreatedTime
@CreatedTime.setter
def CreatedTime(self, CreatedTime):
self._CreatedTime = CreatedTime
@property
def UpdatedTime(self):
"""修改时间
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._UpdatedTime
@UpdatedTime.setter
def UpdatedTime(self, UpdatedTime):
self._UpdatedTime = UpdatedTime
@property
def ClusterList(self):
"""集群列表
:rtype: list of Cluster
"""
return self._ClusterList
@ClusterList.setter
def ClusterList(self, ClusterList):
self._ClusterList = ClusterList
@property
def Config(self):
"""Mesh配置
:rtype: :class:`tencentcloud.tcm.v20210413.models.MeshConfig`
"""
return self._Config
@Config.setter
def Config(self, Config):
self._Config = Config
@property
def Status(self):
"""Mesh详细状态
:rtype: :class:`tencentcloud.tcm.v20210413.models.MeshStatus`
"""
return self._Status
@Status.setter
def Status(self, Status):
self._Status = Status
@property
def TagList(self):
"""标签列表
:rtype: list of Tag
"""
return self._TagList
@TagList.setter
def TagList(self, TagList):
self._TagList = TagList
def _deserialize(self, params):
self._MeshId = params.get("MeshId")
self._DisplayName = params.get("DisplayName")
self._Type = params.get("Type")
self._Region = params.get("Region")
self._Version = params.get("Version")
self._State = params.get("State")
self._CreatedTime = params.get("CreatedTime")
self._UpdatedTime = params.get("UpdatedTime")
if params.get("ClusterList") is not None:
self._ClusterList = []
for item in params.get("ClusterList"):
obj = Cluster()
obj._deserialize(item)
self._ClusterList.append(obj)
if params.get("Config") is not None:
self._Config = MeshConfig()
self._Config._deserialize(params.get("Config"))
if params.get("Status") is not None:
self._Status = MeshStatus()
self._Status._deserialize(params.get("Status"))
if params.get("TagList") is not None:
self._TagList = []
for item in params.get("TagList"):
obj = Tag()
obj._deserialize(item)
self._TagList.append(obj)
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class MeshConfig(AbstractModel):
"""网格配置项
"""
def __init__(self):
r"""
:param _Istio: Istio配置
:type Istio: :class:`tencentcloud.tcm.v20210413.models.IstioConfig`
:param _AccessLog: AccessLog配置
:type AccessLog: :class:`tencentcloud.tcm.v20210413.models.AccessLogConfig`
:param _Prometheus: Prometheus配置
:type Prometheus: :class:`tencentcloud.tcm.v20210413.models.PrometheusConfig`
:param _Inject: 自动注入配置
注意:此字段可能返回 null,表示取不到有效值。
:type Inject: :class:`tencentcloud.tcm.v20210413.models.InjectConfig`
:param _Tracing: 调用跟踪配置
注意:此字段可能返回 null,表示取不到有效值。
:type Tracing: :class:`tencentcloud.tcm.v20210413.models.TracingConfig`
:param _SidecarResources: Sidecar自定义资源
注意:此字段可能返回 null,表示取不到有效值。
:type SidecarResources: :class:`tencentcloud.tcm.v20210413.models.ResourceRequirements`
"""
self._Istio = None
self._AccessLog = None
self._Prometheus = None
self._Inject = None
self._Tracing = None
self._SidecarResources = None
@property
def Istio(self):
"""Istio配置
:rtype: :class:`tencentcloud.tcm.v20210413.models.IstioConfig`
"""
return self._Istio
@Istio.setter
def Istio(self, Istio):
self._Istio = Istio
@property
def AccessLog(self):
"""AccessLog配置
:rtype: :class:`tencentcloud.tcm.v20210413.models.AccessLogConfig`
"""
return self._AccessLog
@AccessLog.setter
def AccessLog(self, AccessLog):
self._AccessLog = AccessLog
@property
def Prometheus(self):
"""Prometheus配置
:rtype: :class:`tencentcloud.tcm.v20210413.models.PrometheusConfig`
"""
return self._Prometheus
@Prometheus.setter
def Prometheus(self, Prometheus):
self._Prometheus = Prometheus
@property
def Inject(self):
"""自动注入配置
注意:此字段可能返回 null,表示取不到有效值。
:rtype: :class:`tencentcloud.tcm.v20210413.models.InjectConfig`
"""
return self._Inject
@Inject.setter
def Inject(self, Inject):
self._Inject = Inject
@property
def Tracing(self):
"""调用跟踪配置
注意:此字段可能返回 null,表示取不到有效值。
:rtype: :class:`tencentcloud.tcm.v20210413.models.TracingConfig`
"""
return self._Tracing
@Tracing.setter
def Tracing(self, Tracing):
self._Tracing = Tracing
@property
def SidecarResources(self):
"""Sidecar自定义资源
注意:此字段可能返回 null,表示取不到有效值。
:rtype: :class:`tencentcloud.tcm.v20210413.models.ResourceRequirements`
"""
return self._SidecarResources
@SidecarResources.setter
def SidecarResources(self, SidecarResources):
self._SidecarResources = SidecarResources
def _deserialize(self, params):
if params.get("Istio") is not None:
self._Istio = IstioConfig()
self._Istio._deserialize(params.get("Istio"))
if params.get("AccessLog") is not None:
self._AccessLog = AccessLogConfig()
self._AccessLog._deserialize(params.get("AccessLog"))
if params.get("Prometheus") is not None:
self._Prometheus = PrometheusConfig()
self._Prometheus._deserialize(params.get("Prometheus"))
if params.get("Inject") is not None:
self._Inject = InjectConfig()
self._Inject._deserialize(params.get("Inject"))
if params.get("Tracing") is not None:
self._Tracing = TracingConfig()
self._Tracing._deserialize(params.get("Tracing"))
if params.get("SidecarResources") is not None:
self._SidecarResources = ResourceRequirements()
self._SidecarResources._deserialize(params.get("SidecarResources"))
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class MeshStatus(AbstractModel):
"""Mesh当前状态
"""
def __init__(self):
r"""
:param _ServiceCount: 服务数量
:type ServiceCount: int
:param _CanaryVersion: 灰度升级的版本
注意:此字段可能返回 null,表示取不到有效值。
:type CanaryVersion: str
:param _Prometheus: 已废弃
注意:此字段可能返回 null,表示取不到有效值。
:type Prometheus: list of PrometheusStatus
:param _StateMessage: 状态附带信息
注意:此字段可能返回 null,表示取不到有效值。
:type StateMessage: str
:param _ActiveOperationList: 正在执行的异步操作
注意:此字段可能返回 null,表示取不到有效值。
:type ActiveOperationList: list of ActiveOperation
:param _TPS: 获取TPS信息
注意:此字段可能返回 null,表示取不到有效值。
:type TPS: :class:`tencentcloud.tcm.v20210413.models.PrometheusStatus`
"""
self._ServiceCount = None
self._CanaryVersion = None
self._Prometheus = None
self._StateMessage = None
self._ActiveOperationList = None
self._TPS = None
@property
def ServiceCount(self):
"""服务数量
:rtype: int
"""
return self._ServiceCount
@ServiceCount.setter
def ServiceCount(self, ServiceCount):
self._ServiceCount = ServiceCount
@property
def CanaryVersion(self):
"""灰度升级的版本
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._CanaryVersion
@CanaryVersion.setter
def CanaryVersion(self, CanaryVersion):
self._CanaryVersion = CanaryVersion
@property
def Prometheus(self):
"""已废弃
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of PrometheusStatus
"""
return self._Prometheus
@Prometheus.setter
def Prometheus(self, Prometheus):
self._Prometheus = Prometheus
@property
def StateMessage(self):
"""状态附带信息
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._StateMessage
@StateMessage.setter
def StateMessage(self, StateMessage):
self._StateMessage = StateMessage
@property
def ActiveOperationList(self):
"""正在执行的异步操作
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of ActiveOperation
"""
return self._ActiveOperationList
@ActiveOperationList.setter
def ActiveOperationList(self, ActiveOperationList):
self._ActiveOperationList = ActiveOperationList
@property
def TPS(self):
"""获取TPS信息
注意:此字段可能返回 null,表示取不到有效值。
:rtype: :class:`tencentcloud.tcm.v20210413.models.PrometheusStatus`
"""
return self._TPS
@TPS.setter
def TPS(self, TPS):
self._TPS = TPS
def _deserialize(self, params):
self._ServiceCount = params.get("ServiceCount")
self._CanaryVersion = params.get("CanaryVersion")
if params.get("Prometheus") is not None:
self._Prometheus = []
for item in params.get("Prometheus"):
obj = PrometheusStatus()
obj._deserialize(item)
self._Prometheus.append(obj)
self._StateMessage = params.get("StateMessage")
if params.get("ActiveOperationList") is not None:
self._ActiveOperationList = []
for item in params.get("ActiveOperationList"):
obj = ActiveOperation()
obj._deserialize(item)
self._ActiveOperationList.append(obj)
if params.get("TPS") is not None:
self._TPS = PrometheusStatus()
self._TPS._deserialize(params.get("TPS"))
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class MetricSpec(AbstractModel):
"""MetricSpec 描述如何通过指定指标进行自动扩缩容
"""
def __init__(self):
r"""
:param _Type: 指标来源类型,支持 Pods/Resource
:type Type: str
:param _Pods: 使用自定义指标扩进行自动扩缩容
:type Pods: :class:`tencentcloud.tcm.v20210413.models.PodsMetricSource`
:param _Resource: 使用资源指标扩进行自动扩缩容
:type Resource: :class:`tencentcloud.tcm.v20210413.models.ResourceMetricSource`
"""
self._Type = None
self._Pods = None
self._Resource = None
@property
def Type(self):
"""指标来源类型,支持 Pods/Resource
:rtype: str
"""
return self._Type
@Type.setter
def Type(self, Type):
self._Type = Type
@property
def Pods(self):
"""使用自定义指标扩进行自动扩缩容
:rtype: :class:`tencentcloud.tcm.v20210413.models.PodsMetricSource`
"""
return self._Pods
@Pods.setter
def Pods(self, Pods):
self._Pods = Pods
@property
def Resource(self):
"""使用资源指标扩进行自动扩缩容
:rtype: :class:`tencentcloud.tcm.v20210413.models.ResourceMetricSource`
"""
return self._Resource
@Resource.setter
def Resource(self, Resource):
self._Resource = Resource
def _deserialize(self, params):
self._Type = params.get("Type")
if params.get("Pods") is not None:
self._Pods = PodsMetricSource()
self._Pods._deserialize(params.get("Pods"))
if params.get("Resource") is not None:
self._Resource = ResourceMetricSource()
self._Resource._deserialize(params.get("Resource"))
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class ModifyAccessLogConfigRequest(AbstractModel):
"""ModifyAccessLogConfig请求参数结构体
"""
def __init__(self):
r"""
:param _MeshId: mesh ID
:type MeshId: str
:param _SelectedRange: 选中的范围
:type SelectedRange: :class:`tencentcloud.tcm.v20210413.models.SelectedRange`
:param _Template: 采用的模板,可选值:istio(默认)、trace、custom
:type Template: str
:param _Enable: 是否启用
:type Enable: bool
:param _CLS: 腾讯云日志服务相关参数
:type CLS: :class:`tencentcloud.tcm.v20210413.models.CLS`
:param _Encoding: 编码格式,可选值:TEXT、JSON
:type Encoding: str
:param _Format: 日志格式
:type Format: str
:param _EnableStdout: 是否启用标准输出
:type EnableStdout: bool
:param _EnableServer: 是否启动GRPC第三方服务器
:type EnableServer: bool
:param _Address: GRPC第三方服务器地址
:type Address: str
"""
self._MeshId = None
self._SelectedRange = None
self._Template = None
self._Enable = None
self._CLS = None
self._Encoding = None
self._Format = None
self._EnableStdout = None
self._EnableServer = None
self._Address = None
@property
def MeshId(self):
"""mesh ID
:rtype: str
"""
return self._MeshId
@MeshId.setter
def MeshId(self, MeshId):
self._MeshId = MeshId
@property
def SelectedRange(self):
"""选中的范围
:rtype: :class:`tencentcloud.tcm.v20210413.models.SelectedRange`
"""
return self._SelectedRange
@SelectedRange.setter
def SelectedRange(self, SelectedRange):
self._SelectedRange = SelectedRange
@property
def Template(self):
"""采用的模板,可选值:istio(默认)、trace、custom
:rtype: str
"""
return self._Template
@Template.setter
def Template(self, Template):
self._Template = Template
@property
def Enable(self):
"""是否启用
:rtype: bool
"""
return self._Enable
@Enable.setter
def Enable(self, Enable):
self._Enable = Enable
@property
def CLS(self):
"""腾讯云日志服务相关参数
:rtype: :class:`tencentcloud.tcm.v20210413.models.CLS`
"""
return self._CLS
@CLS.setter
def CLS(self, CLS):
self._CLS = CLS
@property
def Encoding(self):
"""编码格式,可选值:TEXT、JSON
:rtype: str
"""
return self._Encoding
@Encoding.setter
def Encoding(self, Encoding):
self._Encoding = Encoding
@property
def Format(self):
"""日志格式
:rtype: str
"""
return self._Format
@Format.setter
def Format(self, Format):
self._Format = Format
@property
def EnableStdout(self):
"""是否启用标准输出
:rtype: bool
"""
return self._EnableStdout
@EnableStdout.setter
def EnableStdout(self, EnableStdout):
self._EnableStdout = EnableStdout
@property
def EnableServer(self):
"""是否启动GRPC第三方服务器
:rtype: bool
"""
return self._EnableServer
@EnableServer.setter
def EnableServer(self, EnableServer):
self._EnableServer = EnableServer
@property
def Address(self):
"""GRPC第三方服务器地址
:rtype: str
"""
return self._Address
@Address.setter
def Address(self, Address):
self._Address = Address
def _deserialize(self, params):
self._MeshId = params.get("MeshId")
if params.get("SelectedRange") is not None:
self._SelectedRange = SelectedRange()
self._SelectedRange._deserialize(params.get("SelectedRange"))
self._Template = params.get("Template")
self._Enable = params.get("Enable")
if params.get("CLS") is not None:
self._CLS = CLS()
self._CLS._deserialize(params.get("CLS"))
self._Encoding = params.get("Encoding")
self._Format = params.get("Format")
self._EnableStdout = params.get("EnableStdout")
self._EnableServer = params.get("EnableServer")
self._Address = params.get("Address")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class ModifyAccessLogConfigResponse(AbstractModel):
"""ModifyAccessLogConfig返回参数结构体
"""
def __init__(self):
r"""
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._RequestId = None
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._RequestId = params.get("RequestId")
class ModifyMeshRequest(AbstractModel):
"""ModifyMesh请求参数结构体
"""
def __init__(self):
r"""
:param _MeshId: 需要修改的网格Id
:type MeshId: str
:param _DisplayName: 修改的网格名称
:type DisplayName: str
:param _Config: 修改的网格配置
:type Config: :class:`tencentcloud.tcm.v20210413.models.MeshConfig`
:param _ClusterList: 修改的集群配置
:type ClusterList: list of Cluster
"""
self._MeshId = None
self._DisplayName = None
self._Config = None
self._ClusterList = None
@property
def MeshId(self):
"""需要修改的网格Id
:rtype: str
"""
return self._MeshId
@MeshId.setter
def MeshId(self, MeshId):
self._MeshId = MeshId
@property
def DisplayName(self):
"""修改的网格名称
:rtype: str
"""
return self._DisplayName
@DisplayName.setter
def DisplayName(self, DisplayName):
self._DisplayName = DisplayName
@property
def Config(self):
"""修改的网格配置
:rtype: :class:`tencentcloud.tcm.v20210413.models.MeshConfig`
"""
return self._Config
@Config.setter
def Config(self, Config):
self._Config = Config
@property
def ClusterList(self):
"""修改的集群配置
:rtype: list of Cluster
"""
return self._ClusterList
@ClusterList.setter
def ClusterList(self, ClusterList):
self._ClusterList = ClusterList
def _deserialize(self, params):
self._MeshId = params.get("MeshId")
self._DisplayName = params.get("DisplayName")
if params.get("Config") is not None:
self._Config = MeshConfig()
self._Config._deserialize(params.get("Config"))
if params.get("ClusterList") is not None:
self._ClusterList = []
for item in params.get("ClusterList"):
obj = Cluster()
obj._deserialize(item)
self._ClusterList.append(obj)
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class ModifyMeshResponse(AbstractModel):
"""ModifyMesh返回参数结构体
"""
def __init__(self):
r"""
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._RequestId = None
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._RequestId = params.get("RequestId")
class ModifyTracingConfigRequest(AbstractModel):
"""ModifyTracingConfig请求参数结构体
"""
def __init__(self):
r"""
:param _MeshId: mesh名字
:type MeshId: str
:param _Enable: 是否启用调用跟踪
:type Enable: bool
:param _APM: 腾讯云 APM 服务相关参数
:type APM: :class:`tencentcloud.tcm.v20210413.models.APM`
:param _Sampling: 调用跟踪采样值
:type Sampling: float
:param _Zipkin: 调用追踪Zipkin相关配置
:type Zipkin: :class:`tencentcloud.tcm.v20210413.models.TracingZipkin`
"""
self._MeshId = None
self._Enable = None
self._APM = None
self._Sampling = None
self._Zipkin = None
@property
def MeshId(self):
"""mesh名字
:rtype: str
"""
return self._MeshId
@MeshId.setter
def MeshId(self, MeshId):
self._MeshId = MeshId
@property
def Enable(self):
"""是否启用调用跟踪
:rtype: bool
"""
return self._Enable
@Enable.setter
def Enable(self, Enable):
self._Enable = Enable
@property
def APM(self):
"""腾讯云 APM 服务相关参数
:rtype: :class:`tencentcloud.tcm.v20210413.models.APM`
"""
return self._APM
@APM.setter
def APM(self, APM):
self._APM = APM
@property
def Sampling(self):
"""调用跟踪采样值
:rtype: float
"""
return self._Sampling
@Sampling.setter
def Sampling(self, Sampling):
self._Sampling = Sampling
@property
def Zipkin(self):
"""调用追踪Zipkin相关配置
:rtype: :class:`tencentcloud.tcm.v20210413.models.TracingZipkin`
"""
return self._Zipkin
@Zipkin.setter
def Zipkin(self, Zipkin):
self._Zipkin = Zipkin
def _deserialize(self, params):
self._MeshId = params.get("MeshId")
self._Enable = params.get("Enable")
if params.get("APM") is not None:
self._APM = APM()
self._APM._deserialize(params.get("APM"))
self._Sampling = params.get("Sampling")
if params.get("Zipkin") is not None:
self._Zipkin = TracingZipkin()
self._Zipkin._deserialize(params.get("Zipkin"))
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class ModifyTracingConfigResponse(AbstractModel):
"""ModifyTracingConfig返回参数结构体
"""
def __init__(self):
r"""
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._RequestId = None
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._RequestId = params.get("RequestId")
class PodsMetricSource(AbstractModel):
"""PodsMetricSource 定义了如何根据特定指标进行扩缩容
"""
def __init__(self):
r"""
:param _MetricName: 指标名
:type MetricName: str
:param _TargetAverageValue: 目标值
:type TargetAverageValue: str
"""
self._MetricName = None
self._TargetAverageValue = None
@property
def MetricName(self):
"""指标名
:rtype: str
"""
return self._MetricName
@MetricName.setter
def MetricName(self, MetricName):
self._MetricName = MetricName
@property
def TargetAverageValue(self):
"""目标值
:rtype: str
"""
return self._TargetAverageValue
@TargetAverageValue.setter
def TargetAverageValue(self, TargetAverageValue):
self._TargetAverageValue = TargetAverageValue
def _deserialize(self, params):
self._MetricName = params.get("MetricName")
self._TargetAverageValue = params.get("TargetAverageValue")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class PrometheusConfig(AbstractModel):
"""Prometheus 配置
"""
def __init__(self):
r"""
:param _VpcId: 虚拟网络Id
:type VpcId: str
:param _SubnetId: 子网Id
:type SubnetId: str
:param _Region: 地域
:type Region: str
:param _InstanceId: 关联已存在实例Id,不填则默认创建
:type InstanceId: str
:param _CustomProm: 第三方 Prometheus
注意:此字段可能返回 null,表示取不到有效值。
:type CustomProm: :class:`tencentcloud.tcm.v20210413.models.CustomPromConfig`
"""
self._VpcId = None
self._SubnetId = None
self._Region = None
self._InstanceId = None
self._CustomProm = None
@property
def VpcId(self):
"""虚拟网络Id
:rtype: str
"""
return self._VpcId
@VpcId.setter
def VpcId(self, VpcId):
self._VpcId = VpcId
@property
def SubnetId(self):
"""子网Id
:rtype: str
"""
return self._SubnetId
@SubnetId.setter
def SubnetId(self, SubnetId):
self._SubnetId = SubnetId
@property
def Region(self):
"""地域
:rtype: str
"""
return self._Region
@Region.setter
def Region(self, Region):
self._Region = Region
@property
def InstanceId(self):
"""关联已存在实例Id,不填则默认创建
:rtype: str
"""
return self._InstanceId
@InstanceId.setter
def InstanceId(self, InstanceId):
self._InstanceId = InstanceId
@property
def CustomProm(self):
"""第三方 Prometheus
注意:此字段可能返回 null,表示取不到有效值。
:rtype: :class:`tencentcloud.tcm.v20210413.models.CustomPromConfig`
"""
return self._CustomProm
@CustomProm.setter
def CustomProm(self, CustomProm):
self._CustomProm = CustomProm
def _deserialize(self, params):
self._VpcId = params.get("VpcId")
self._SubnetId = params.get("SubnetId")
self._Region = params.get("Region")
self._InstanceId = params.get("InstanceId")
if params.get("CustomProm") is not None:
self._CustomProm = CustomPromConfig()
self._CustomProm._deserialize(params.get("CustomProm"))
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class PrometheusStatus(AbstractModel):
"""Prometheus状态信息
"""
def __init__(self):
r"""
:param _PrometheusId: Prometheus Id
:type PrometheusId: str
:param _DisplayName: 展示名称
:type DisplayName: str
:param _InstanceId: 实例Id
:type InstanceId: str
:param _VpcId: 虚拟网络Id
:type VpcId: str
:param _State: 状态
:type State: str
:param _Region: 地区
:type Region: str
:param _Grafana: Grafana信息
注意:此字段可能返回 null,表示取不到有效值。
:type Grafana: :class:`tencentcloud.tcm.v20210413.models.GrafanaInfo`
:param _Type: Prometheus 类型
注意:此字段可能返回 null,表示取不到有效值。
:type Type: str
"""
self._PrometheusId = None
self._DisplayName = None
self._InstanceId = None
self._VpcId = None
self._State = None
self._Region = None
self._Grafana = None
self._Type = None
@property
def PrometheusId(self):
"""Prometheus Id
:rtype: str
"""
return self._PrometheusId
@PrometheusId.setter
def PrometheusId(self, PrometheusId):
self._PrometheusId = PrometheusId
@property
def DisplayName(self):
"""展示名称
:rtype: str
"""
return self._DisplayName
@DisplayName.setter
def DisplayName(self, DisplayName):
self._DisplayName = DisplayName
@property
def InstanceId(self):
"""实例Id
:rtype: str
"""
return self._InstanceId
@InstanceId.setter
def InstanceId(self, InstanceId):
self._InstanceId = InstanceId
@property
def VpcId(self):
"""虚拟网络Id
:rtype: str
"""
return self._VpcId
@VpcId.setter
def VpcId(self, VpcId):
self._VpcId = VpcId
@property
def State(self):
"""状态
:rtype: str
"""
return self._State
@State.setter
def State(self, State):
self._State = State
@property
def Region(self):
"""地区
:rtype: str
"""
return self._Region
@Region.setter
def Region(self, Region):
self._Region = Region
@property
def Grafana(self):
"""Grafana信息
注意:此字段可能返回 null,表示取不到有效值。
:rtype: :class:`tencentcloud.tcm.v20210413.models.GrafanaInfo`
"""
return self._Grafana
@Grafana.setter
def Grafana(self, Grafana):
self._Grafana = Grafana
@property
def Type(self):
"""Prometheus 类型
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Type
@Type.setter
def Type(self, Type):
self._Type = Type
def _deserialize(self, params):
self._PrometheusId = params.get("PrometheusId")
self._DisplayName = params.get("DisplayName")
self._InstanceId = params.get("InstanceId")
self._VpcId = params.get("VpcId")
self._State = params.get("State")
self._Region = params.get("Region")
if params.get("Grafana") is not None:
self._Grafana = GrafanaInfo()
self._Grafana._deserialize(params.get("Grafana"))
self._Type = params.get("Type")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class Resource(AbstractModel):
"""Resource 定义了资源类型和数量
"""
def __init__(self):
r"""
:param _Name: 资源类型 cpu/memory
:type Name: str
:param _Quantity: 资源数量
:type Quantity: str
"""
self._Name = None
self._Quantity = None
@property
def Name(self):
"""资源类型 cpu/memory
:rtype: str
"""
return self._Name
@Name.setter
def Name(self, Name):
self._Name = Name
@property
def Quantity(self):
"""资源数量
:rtype: str
"""
return self._Quantity
@Quantity.setter
def Quantity(self, Quantity):
self._Quantity = Quantity
def _deserialize(self, params):
self._Name = params.get("Name")
self._Quantity = params.get("Quantity")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class ResourceMetricSource(AbstractModel):
"""ResourceMetricSource 定义了如何根据已知类型的资源指标进行扩缩容
"""
def __init__(self):
r"""
:param _Name: 资源名称 cpu/memory
:type Name: str
:param _TargetAverageUtilization: 目标平均利用率
:type TargetAverageUtilization: int
:param _TargetAverageValue: 目标平均值
:type TargetAverageValue: str
"""
self._Name = None
self._TargetAverageUtilization = None
self._TargetAverageValue = None
@property
def Name(self):
"""资源名称 cpu/memory
:rtype: str
"""
return self._Name
@Name.setter
def Name(self, Name):
self._Name = Name
@property
def TargetAverageUtilization(self):
"""目标平均利用率
:rtype: int
"""
return self._TargetAverageUtilization
@TargetAverageUtilization.setter
def TargetAverageUtilization(self, TargetAverageUtilization):
self._TargetAverageUtilization = TargetAverageUtilization
@property
def TargetAverageValue(self):
"""目标平均值
:rtype: str
"""
return self._TargetAverageValue
@TargetAverageValue.setter
def TargetAverageValue(self, TargetAverageValue):
self._TargetAverageValue = TargetAverageValue
def _deserialize(self, params):
self._Name = params.get("Name")
self._TargetAverageUtilization = params.get("TargetAverageUtilization")
self._TargetAverageValue = params.get("TargetAverageValue")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class ResourceRequirements(AbstractModel):
"""ResourceRequirements 描述了计算资源需求。
"""
def __init__(self):
r"""
:param _Limits: Limits 描述了允许的最大计算资源量。
:type Limits: list of Resource
:param _Requests: Requests 描述所需的最小计算资源量。
:type Requests: list of Resource
"""
self._Limits = None
self._Requests = None
@property
def Limits(self):
"""Limits 描述了允许的最大计算资源量。
:rtype: list of Resource
"""
return self._Limits
@Limits.setter
def Limits(self, Limits):
self._Limits = Limits
@property
def Requests(self):
"""Requests 描述所需的最小计算资源量。
:rtype: list of Resource
"""
return self._Requests
@Requests.setter
def Requests(self, Requests):
self._Requests = Requests
def _deserialize(self, params):
if params.get("Limits") is not None:
self._Limits = []
for item in params.get("Limits"):
obj = Resource()
obj._deserialize(item)
self._Limits.append(obj)
if params.get("Requests") is not None:
self._Requests = []
for item in params.get("Requests"):
obj = Resource()
obj._deserialize(item)
self._Requests.append(obj)
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class SelectedItems(AbstractModel):
"""选中的项目
"""
def __init__(self):
r"""
:param _Namespace: 命名空间
:type Namespace: str
:param _ClusterName: 集群名称
:type ClusterName: str
:param _ItemName: 选中项目名字
:type ItemName: str
:param _Gateways: ingress gw的名称列表
:type Gateways: list of str
"""
self._Namespace = None
self._ClusterName = None
self._ItemName = None
self._Gateways = None
@property
def Namespace(self):
"""命名空间
:rtype: str
"""
return self._Namespace
@Namespace.setter
def Namespace(self, Namespace):
self._Namespace = Namespace
@property
def ClusterName(self):
"""集群名称
:rtype: str
"""
return self._ClusterName
@ClusterName.setter
def ClusterName(self, ClusterName):
self._ClusterName = ClusterName
@property
def ItemName(self):
"""选中项目名字
:rtype: str
"""
return self._ItemName
@ItemName.setter
def ItemName(self, ItemName):
self._ItemName = ItemName
@property
def Gateways(self):
"""ingress gw的名称列表
:rtype: list of str
"""
return self._Gateways
@Gateways.setter
def Gateways(self, Gateways):
self._Gateways = Gateways
def _deserialize(self, params):
self._Namespace = params.get("Namespace")
self._ClusterName = params.get("ClusterName")
self._ItemName = params.get("ItemName")
self._Gateways = params.get("Gateways")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class SelectedRange(AbstractModel):
"""被选中的范围
"""
def __init__(self):
r"""
:param _Items: 选中的项目详细内容
:type Items: list of SelectedItems
:param _All: 是否全选
:type All: bool
"""
self._Items = None
self._All = None
@property
def Items(self):
"""选中的项目详细内容
:rtype: list of SelectedItems
"""
return self._Items
@Items.setter
def Items(self, Items):
self._Items = Items
@property
def All(self):
"""是否全选
:rtype: bool
"""
return self._All
@All.setter
def All(self, All):
self._All = All
def _deserialize(self, params):
if params.get("Items") is not None:
self._Items = []
for item in params.get("Items"):
obj = SelectedItems()
obj._deserialize(item)
self._Items.append(obj)
self._All = params.get("All")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class Service(AbstractModel):
"""Service信息
"""
def __init__(self):
r"""
:param _Type: ClusterIP/NodePort/LoadBalancer
:type Type: str
:param _CLBDirectAccess: 是否开启LB直通Pod
:type CLBDirectAccess: bool
:param _ExternalTrafficPolicy: 服务是否希望将外部流量路由到节点本地或集群范围的端点。 有两个可用选项:Cluster(默认)和 Local。Cluster 隐藏了客户端源 IP,可能导致第二跳到另一个节点;Local 保留客户端源 IP 并避免 LoadBalancer 和 NodePort 类型服务的第二跳。
:type ExternalTrafficPolicy: str
"""
self._Type = None
self._CLBDirectAccess = None
self._ExternalTrafficPolicy = None
@property
def Type(self):
"""ClusterIP/NodePort/LoadBalancer
:rtype: str
"""
return self._Type
@Type.setter
def Type(self, Type):
self._Type = Type
@property
def CLBDirectAccess(self):
"""是否开启LB直通Pod
:rtype: bool
"""
return self._CLBDirectAccess
@CLBDirectAccess.setter
def CLBDirectAccess(self, CLBDirectAccess):
self._CLBDirectAccess = CLBDirectAccess
@property
def ExternalTrafficPolicy(self):
"""服务是否希望将外部流量路由到节点本地或集群范围的端点。 有两个可用选项:Cluster(默认)和 Local。Cluster 隐藏了客户端源 IP,可能导致第二跳到另一个节点;Local 保留客户端源 IP 并避免 LoadBalancer 和 NodePort 类型服务的第二跳。
:rtype: str
"""
return self._ExternalTrafficPolicy
@ExternalTrafficPolicy.setter
def ExternalTrafficPolicy(self, ExternalTrafficPolicy):
self._ExternalTrafficPolicy = ExternalTrafficPolicy
def _deserialize(self, params):
self._Type = params.get("Type")
self._CLBDirectAccess = params.get("CLBDirectAccess")
self._ExternalTrafficPolicy = params.get("ExternalTrafficPolicy")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class SmartDNSConfig(AbstractModel):
"""智能DNS配置
"""
def __init__(self):
r"""
:param _IstioMetaDNSCapture: 开启DNS代理
注意:此字段可能返回 null,表示取不到有效值。
:type IstioMetaDNSCapture: bool
:param _IstioMetaDNSAutoAllocate: 开启自动地址分配
注意:此字段可能返回 null,表示取不到有效值。
:type IstioMetaDNSAutoAllocate: bool
"""
self._IstioMetaDNSCapture = None
self._IstioMetaDNSAutoAllocate = None
@property
def IstioMetaDNSCapture(self):
"""开启DNS代理
注意:此字段可能返回 null,表示取不到有效值。
:rtype: bool
"""
return self._IstioMetaDNSCapture
@IstioMetaDNSCapture.setter
def IstioMetaDNSCapture(self, IstioMetaDNSCapture):
self._IstioMetaDNSCapture = IstioMetaDNSCapture
@property
def IstioMetaDNSAutoAllocate(self):
"""开启自动地址分配
注意:此字段可能返回 null,表示取不到有效值。
:rtype: bool
"""
return self._IstioMetaDNSAutoAllocate
@IstioMetaDNSAutoAllocate.setter
def IstioMetaDNSAutoAllocate(self, IstioMetaDNSAutoAllocate):
self._IstioMetaDNSAutoAllocate = IstioMetaDNSAutoAllocate
def _deserialize(self, params):
self._IstioMetaDNSCapture = params.get("IstioMetaDNSCapture")
self._IstioMetaDNSAutoAllocate = params.get("IstioMetaDNSAutoAllocate")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class Tag(AbstractModel):
"""标签
"""
def __init__(self):
r"""
:param _Key: 标签键
:type Key: str
:param _Value: 标签值
:type Value: str
:param _Passthrough: 是否透传给其他关联产品
:type Passthrough: bool
"""
self._Key = None
self._Value = None
self._Passthrough = None
@property
def Key(self):
"""标签键
:rtype: str
"""
return self._Key
@Key.setter
def Key(self, Key):
self._Key = Key
@property
def Value(self):
"""标签值
:rtype: str
"""
return self._Value
@Value.setter
def Value(self, Value):
self._Value = Value
@property
def Passthrough(self):
"""是否透传给其他关联产品
:rtype: bool
"""
return self._Passthrough
@Passthrough.setter
def Passthrough(self, Passthrough):
self._Passthrough = Passthrough
def _deserialize(self, params):
self._Key = params.get("Key")
self._Value = params.get("Value")
self._Passthrough = params.get("Passthrough")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class TracingConfig(AbstractModel):
"""调用链配置
"""
def __init__(self):
r"""
:param _Sampling: 调用链采样率,百分比
:type Sampling: float
:param _Enable: 是否启用调用跟踪
:type Enable: bool
:param _APM: 腾讯云 APM 服务相关参数
:type APM: :class:`tencentcloud.tcm.v20210413.models.APM`
:param _Zipkin: 启动第三方服务器的地址
:type Zipkin: :class:`tencentcloud.tcm.v20210413.models.TracingZipkin`
"""
self._Sampling = None
self._Enable = None
self._APM = None
self._Zipkin = None
@property
def Sampling(self):
"""调用链采样率,百分比
:rtype: float
"""
return self._Sampling
@Sampling.setter
def Sampling(self, Sampling):
self._Sampling = Sampling
@property
def Enable(self):
"""是否启用调用跟踪
:rtype: bool
"""
return self._Enable
@Enable.setter
def Enable(self, Enable):
self._Enable = Enable
@property
def APM(self):
"""腾讯云 APM 服务相关参数
:rtype: :class:`tencentcloud.tcm.v20210413.models.APM`
"""
return self._APM
@APM.setter
def APM(self, APM):
self._APM = APM
@property
def Zipkin(self):
"""启动第三方服务器的地址
:rtype: :class:`tencentcloud.tcm.v20210413.models.TracingZipkin`
"""
return self._Zipkin
@Zipkin.setter
def Zipkin(self, Zipkin):
self._Zipkin = Zipkin
def _deserialize(self, params):
self._Sampling = params.get("Sampling")
self._Enable = params.get("Enable")
if params.get("APM") is not None:
self._APM = APM()
self._APM._deserialize(params.get("APM"))
if params.get("Zipkin") is not None:
self._Zipkin = TracingZipkin()
self._Zipkin._deserialize(params.get("Zipkin"))
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class TracingZipkin(AbstractModel):
"""调用追踪的Zipkin设置
"""
def __init__(self):
r"""
:param _Address: Zipkin调用地址
:type Address: str
"""
self._Address = None
@property
def Address(self):
"""Zipkin调用地址
:rtype: str
"""
return self._Address
@Address.setter
def Address(self, Address):
self._Address = Address
def _deserialize(self, params):
self._Address = params.get("Address")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class UnlinkClusterRequest(AbstractModel):
"""UnlinkCluster请求参数结构体
"""
def __init__(self):
r"""
:param _MeshId: 网格Id
:type MeshId: str
:param _ClusterId: 取消关联的集群Id
:type ClusterId: str
"""
self._MeshId = None
self._ClusterId = None
@property
def MeshId(self):
"""网格Id
:rtype: str
"""
return self._MeshId
@MeshId.setter
def MeshId(self, MeshId):
self._MeshId = MeshId
@property
def ClusterId(self):
"""取消关联的集群Id
:rtype: str
"""
return self._ClusterId
@ClusterId.setter
def ClusterId(self, ClusterId):
self._ClusterId = ClusterId
def _deserialize(self, params):
self._MeshId = params.get("MeshId")
self._ClusterId = params.get("ClusterId")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class UnlinkClusterResponse(AbstractModel):
"""UnlinkCluster返回参数结构体
"""
def __init__(self):
r"""
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._RequestId = None
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._RequestId = params.get("RequestId")
class UnlinkPrometheusRequest(AbstractModel):
"""UnlinkPrometheus请求参数结构体
"""
def __init__(self):
r"""
:param _MeshID: 网格ID
:type MeshID: str
"""
self._MeshID = None
@property
def MeshID(self):
"""网格ID
:rtype: str
"""
return self._MeshID
@MeshID.setter
def MeshID(self, MeshID):
self._MeshID = MeshID
def _deserialize(self, params):
self._MeshID = params.get("MeshID")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class UnlinkPrometheusResponse(AbstractModel):
"""UnlinkPrometheus返回参数结构体
"""
def __init__(self):
r"""
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._RequestId = None
@property
def RequestId(self):
"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._RequestId = params.get("RequestId")
class WorkloadConfig(AbstractModel):
"""工作负载配置
"""
def __init__(self):
r"""
:param _Replicas: 工作副本数
:type Replicas: int
:param _Resources: 资源配置
:type Resources: :class:`tencentcloud.tcm.v20210413.models.ResourceRequirements`
:param _HorizontalPodAutoscaler: HPA策略
:type HorizontalPodAutoscaler: :class:`tencentcloud.tcm.v20210413.models.HorizontalPodAutoscalerSpec`
:param _SelectedNodeList: 部署到指定节点
:type SelectedNodeList: list of str
:param _DeployMode: 组件的部署模式,取值说明:
IN_GENERAL_NODE:常规节点
IN_EKLET:eklet 节点
IN_SHARED_NODE_POOL:共享节电池
IN_EXCLUSIVE_NODE_POOL:独占节点池
:type DeployMode: str
"""
self._Replicas = None
self._Resources = None
self._HorizontalPodAutoscaler = None
self._SelectedNodeList = None
self._DeployMode = None
@property
def Replicas(self):
"""工作副本数
:rtype: int
"""
return self._Replicas
@Replicas.setter
def Replicas(self, Replicas):
self._Replicas = Replicas
@property
def Resources(self):
"""资源配置
:rtype: :class:`tencentcloud.tcm.v20210413.models.ResourceRequirements`
"""
return self._Resources
@Resources.setter
def Resources(self, Resources):
self._Resources = Resources
@property
def HorizontalPodAutoscaler(self):
"""HPA策略
:rtype: :class:`tencentcloud.tcm.v20210413.models.HorizontalPodAutoscalerSpec`
"""
return self._HorizontalPodAutoscaler
@HorizontalPodAutoscaler.setter
def HorizontalPodAutoscaler(self, HorizontalPodAutoscaler):
self._HorizontalPodAutoscaler = HorizontalPodAutoscaler
@property
def SelectedNodeList(self):
"""部署到指定节点
:rtype: list of str
"""
return self._SelectedNodeList
@SelectedNodeList.setter
def SelectedNodeList(self, SelectedNodeList):
self._SelectedNodeList = SelectedNodeList
@property
def DeployMode(self):
"""组件的部署模式,取值说明:
IN_GENERAL_NODE:常规节点
IN_EKLET:eklet 节点
IN_SHARED_NODE_POOL:共享节电池
IN_EXCLUSIVE_NODE_POOL:独占节点池
:rtype: str
"""
return self._DeployMode
@DeployMode.setter
def DeployMode(self, DeployMode):
self._DeployMode = DeployMode
def _deserialize(self, params):
self._Replicas = params.get("Replicas")
if params.get("Resources") is not None:
self._Resources = ResourceRequirements()
self._Resources._deserialize(params.get("Resources"))
if params.get("HorizontalPodAutoscaler") is not None:
self._HorizontalPodAutoscaler = HorizontalPodAutoscalerSpec()
self._HorizontalPodAutoscaler._deserialize(params.get("HorizontalPodAutoscaler"))
self._SelectedNodeList = params.get("SelectedNodeList")
self._DeployMode = params.get("DeployMode")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))