# -*- 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 Conditions(AbstractModel):
"""评估项警告条件
"""
def __init__(self):
r"""
:param _ConditionId: 警告条件ID
注意:此字段可能返回 null,表示取不到有效值。
:type ConditionId: int
:param _Level: 警告级别,2:中风险,3:高风险
注意:此字段可能返回 null,表示取不到有效值。
:type Level: int
:param _LevelDesc: 警告级别描述
注意:此字段可能返回 null,表示取不到有效值。
:type LevelDesc: str
:param _Desc: 警告条件描述
:type Desc: str
"""
self._ConditionId = None
self._Level = None
self._LevelDesc = None
self._Desc = None
@property
def ConditionId(self):
"""警告条件ID
注意:此字段可能返回 null,表示取不到有效值。
:rtype: int
"""
return self._ConditionId
@ConditionId.setter
def ConditionId(self, ConditionId):
self._ConditionId = ConditionId
@property
def Level(self):
"""警告级别,2:中风险,3:高风险
注意:此字段可能返回 null,表示取不到有效值。
:rtype: int
"""
return self._Level
@Level.setter
def Level(self, Level):
self._Level = Level
@property
def LevelDesc(self):
"""警告级别描述
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._LevelDesc
@LevelDesc.setter
def LevelDesc(self, LevelDesc):
self._LevelDesc = LevelDesc
@property
def Desc(self):
"""警告条件描述
:rtype: str
"""
return self._Desc
@Desc.setter
def Desc(self, Desc):
self._Desc = Desc
def _deserialize(self, params):
self._ConditionId = params.get("ConditionId")
self._Level = params.get("Level")
self._LevelDesc = params.get("LevelDesc")
self._Desc = params.get("Desc")
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 DescribeStrategiesRequest(AbstractModel):
"""DescribeStrategies请求参数结构体
"""
class DescribeStrategiesResponse(AbstractModel):
"""DescribeStrategies返回参数结构体
"""
def __init__(self):
r"""
:param _Strategies: 评估项列表
注意:此字段可能返回 null,表示取不到有效值。
:type Strategies: list of Strategies
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._Strategies = None
self._RequestId = None
@property
def Strategies(self):
"""评估项列表
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of Strategies
"""
return self._Strategies
@Strategies.setter
def Strategies(self, Strategies):
self._Strategies = Strategies
@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("Strategies") is not None:
self._Strategies = []
for item in params.get("Strategies"):
obj = Strategies()
obj._deserialize(item)
self._Strategies.append(obj)
self._RequestId = params.get("RequestId")
class DescribeTaskStrategyRisksRequest(AbstractModel):
"""DescribeTaskStrategyRisks请求参数结构体
"""
def __init__(self):
r"""
:param _StrategyId: 评估项ID
:type StrategyId: int
:param _Limit: 返回数量,默认值为100,最大值为200
:type Limit: int
:param _Offset: 偏移量,默认0
:type Offset: int
:param _Env: 环境
:type Env: str
:param _TaskType: 任务类型
:type TaskType: str
"""
self._StrategyId = None
self._Limit = None
self._Offset = None
self._Env = None
self._TaskType = None
@property
def StrategyId(self):
"""评估项ID
:rtype: int
"""
return self._StrategyId
@StrategyId.setter
def StrategyId(self, StrategyId):
self._StrategyId = StrategyId
@property
def Limit(self):
"""返回数量,默认值为100,最大值为200
:rtype: int
"""
return self._Limit
@Limit.setter
def Limit(self, Limit):
self._Limit = Limit
@property
def Offset(self):
"""偏移量,默认0
:rtype: int
"""
return self._Offset
@Offset.setter
def Offset(self, Offset):
self._Offset = Offset
@property
def Env(self):
"""环境
:rtype: str
"""
return self._Env
@Env.setter
def Env(self, Env):
self._Env = Env
@property
def TaskType(self):
"""任务类型
:rtype: str
"""
return self._TaskType
@TaskType.setter
def TaskType(self, TaskType):
self._TaskType = TaskType
def _deserialize(self, params):
self._StrategyId = params.get("StrategyId")
self._Limit = params.get("Limit")
self._Offset = params.get("Offset")
self._Env = params.get("Env")
self._TaskType = params.get("TaskType")
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 DescribeTaskStrategyRisksResponse(AbstractModel):
"""DescribeTaskStrategyRisks返回参数结构体
"""
def __init__(self):
r"""
:param _RiskFieldsDesc: 根据此配置,匹配风险实例列表(Risks)对应字段,例如:
{"Response":{"RequestId":"111","RiskFieldsDesc":[{"Field":"InstanceId","FieldName":"ID","FieldType":"string","FieldDict":{}},{"Field":"InstanceName","FieldName":"名称","FieldType":"string","FieldDict":{}},{"Field":"InstanceState","FieldName":"状态","FieldType":"string","FieldDict":{"LAUNCH_FAILED":"创建失败","PENDING":"创建中","REBOOTING":"重启中","RUNNING":"运行中","SHUTDOWN":"停止待销毁","STARTING":"开机中","STOPPED":"关机","STOPPING":"关机中","TERMINATING":"销毁中"}},{"Field":"Zone","FieldName":"可用区","FieldType":"string","FieldDict":{}},{"Field":"PrivateIPAddresses","FieldName":"IP地址(内)","FieldType":"stringSlice","FieldDict":{}},{"Field":"PublicIPAddresses","FieldName":"IP地址(公)","FieldType":"stringSlice","FieldDict":{}},{"Field":"Region","FieldName":"地域","FieldType":"string","FieldDict":{}},{"Field":"Tags","FieldName":"标签","FieldType":"tags","FieldDict":{}}],"RiskTotalCount":3,"Risks":"[{\"InstanceId\":\"ins-xxx1\",\"InstanceName\":\"xxx1\",\"InstanceState\":\"RUNNING\",\"PrivateIPAddresses\":[\"1.17.64.2\"],\"PublicIPAddresses\":null,\"Region\":\"ap-shanghai\",\"Tags\":null,\"Zone\":\"ap-shanghai-2\"},{\"InstanceId\":\"ins-xxx2\",\"InstanceName\":\"xxx2\",\"InstanceState\":\"RUNNING\",\"PrivateIPAddresses\":[\"1.17.64.11\"],\"PublicIPAddresses\":null,\"Region\":\"ap-shanghai\",\"Tags\":null,\"Zone\":\"ap-shanghai-2\"}]","StrategyId":9}}
注意:此字段可能返回 null,表示取不到有效值。
:type RiskFieldsDesc: list of RiskFieldsDesc
:param _StrategyId: 评估项ID
注意:此字段可能返回 null,表示取不到有效值。
:type StrategyId: int
:param _RiskTotalCount: 风险实例个数
注意:此字段可能返回 null,表示取不到有效值。
:type RiskTotalCount: int
:param _Risks: 风险实例详情列表,需要json decode
注意:此字段可能返回 null,表示取不到有效值。
:type Risks: str
:param _ResourceCount: 巡检资源数
注意:此字段可能返回 null,表示取不到有效值。
:type ResourceCount: int
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._RiskFieldsDesc = None
self._StrategyId = None
self._RiskTotalCount = None
self._Risks = None
self._ResourceCount = None
self._RequestId = None
@property
def RiskFieldsDesc(self):
"""根据此配置,匹配风险实例列表(Risks)对应字段,例如:
{"Response":{"RequestId":"111","RiskFieldsDesc":[{"Field":"InstanceId","FieldName":"ID","FieldType":"string","FieldDict":{}},{"Field":"InstanceName","FieldName":"名称","FieldType":"string","FieldDict":{}},{"Field":"InstanceState","FieldName":"状态","FieldType":"string","FieldDict":{"LAUNCH_FAILED":"创建失败","PENDING":"创建中","REBOOTING":"重启中","RUNNING":"运行中","SHUTDOWN":"停止待销毁","STARTING":"开机中","STOPPED":"关机","STOPPING":"关机中","TERMINATING":"销毁中"}},{"Field":"Zone","FieldName":"可用区","FieldType":"string","FieldDict":{}},{"Field":"PrivateIPAddresses","FieldName":"IP地址(内)","FieldType":"stringSlice","FieldDict":{}},{"Field":"PublicIPAddresses","FieldName":"IP地址(公)","FieldType":"stringSlice","FieldDict":{}},{"Field":"Region","FieldName":"地域","FieldType":"string","FieldDict":{}},{"Field":"Tags","FieldName":"标签","FieldType":"tags","FieldDict":{}}],"RiskTotalCount":3,"Risks":"[{\"InstanceId\":\"ins-xxx1\",\"InstanceName\":\"xxx1\",\"InstanceState\":\"RUNNING\",\"PrivateIPAddresses\":[\"1.17.64.2\"],\"PublicIPAddresses\":null,\"Region\":\"ap-shanghai\",\"Tags\":null,\"Zone\":\"ap-shanghai-2\"},{\"InstanceId\":\"ins-xxx2\",\"InstanceName\":\"xxx2\",\"InstanceState\":\"RUNNING\",\"PrivateIPAddresses\":[\"1.17.64.11\"],\"PublicIPAddresses\":null,\"Region\":\"ap-shanghai\",\"Tags\":null,\"Zone\":\"ap-shanghai-2\"}]","StrategyId":9}}
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of RiskFieldsDesc
"""
return self._RiskFieldsDesc
@RiskFieldsDesc.setter
def RiskFieldsDesc(self, RiskFieldsDesc):
self._RiskFieldsDesc = RiskFieldsDesc
@property
def StrategyId(self):
"""评估项ID
注意:此字段可能返回 null,表示取不到有效值。
:rtype: int
"""
return self._StrategyId
@StrategyId.setter
def StrategyId(self, StrategyId):
self._StrategyId = StrategyId
@property
def RiskTotalCount(self):
"""风险实例个数
注意:此字段可能返回 null,表示取不到有效值。
:rtype: int
"""
return self._RiskTotalCount
@RiskTotalCount.setter
def RiskTotalCount(self, RiskTotalCount):
self._RiskTotalCount = RiskTotalCount
@property
def Risks(self):
"""风险实例详情列表,需要json decode
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Risks
@Risks.setter
def Risks(self, Risks):
self._Risks = Risks
@property
def ResourceCount(self):
"""巡检资源数
注意:此字段可能返回 null,表示取不到有效值。
:rtype: int
"""
return self._ResourceCount
@ResourceCount.setter
def ResourceCount(self, ResourceCount):
self._ResourceCount = ResourceCount
@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("RiskFieldsDesc") is not None:
self._RiskFieldsDesc = []
for item in params.get("RiskFieldsDesc"):
obj = RiskFieldsDesc()
obj._deserialize(item)
self._RiskFieldsDesc.append(obj)
self._StrategyId = params.get("StrategyId")
self._RiskTotalCount = params.get("RiskTotalCount")
self._Risks = params.get("Risks")
self._ResourceCount = params.get("ResourceCount")
self._RequestId = params.get("RequestId")
class KeyValue(AbstractModel):
"""键值对
"""
def __init__(self):
r"""
:param _Key: 键名
:type Key: str
:param _Value: 键名对应值
:type Value: str
"""
self._Key = None
self._Value = 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
def _deserialize(self, params):
self._Key = params.get("Key")
self._Value = params.get("Value")
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 RiskFieldsDesc(AbstractModel):
"""风险实例字段描述
"""
def __init__(self):
r"""
:param _Field: 字段ID
:type Field: str
:param _FieldName: 字段名称
:type FieldName: str
:param _FieldType: 字段类型,
string: 字符串类型,例如"aa"
int: 整形,例如 111
stringSlice : 字符串数组类型,例如["a", "b"]
tags: 标签类型, 例如: [{"Key":"kkk","Value":"vvv"},{"Key":"kkk2","Value":"vvv2"}]
:type FieldType: str
:param _FieldDict: 字段值对应字典
注意:此字段可能返回 null,表示取不到有效值。
:type FieldDict: list of KeyValue
"""
self._Field = None
self._FieldName = None
self._FieldType = None
self._FieldDict = None
@property
def Field(self):
"""字段ID
:rtype: str
"""
return self._Field
@Field.setter
def Field(self, Field):
self._Field = Field
@property
def FieldName(self):
"""字段名称
:rtype: str
"""
return self._FieldName
@FieldName.setter
def FieldName(self, FieldName):
self._FieldName = FieldName
@property
def FieldType(self):
"""字段类型,
string: 字符串类型,例如"aa"
int: 整形,例如 111
stringSlice : 字符串数组类型,例如["a", "b"]
tags: 标签类型, 例如: [{"Key":"kkk","Value":"vvv"},{"Key":"kkk2","Value":"vvv2"}]
:rtype: str
"""
return self._FieldType
@FieldType.setter
def FieldType(self, FieldType):
self._FieldType = FieldType
@property
def FieldDict(self):
"""字段值对应字典
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of KeyValue
"""
return self._FieldDict
@FieldDict.setter
def FieldDict(self, FieldDict):
self._FieldDict = FieldDict
def _deserialize(self, params):
self._Field = params.get("Field")
self._FieldName = params.get("FieldName")
self._FieldType = params.get("FieldType")
if params.get("FieldDict") is not None:
self._FieldDict = []
for item in params.get("FieldDict"):
obj = KeyValue()
obj._deserialize(item)
self._FieldDict.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 Strategies(AbstractModel):
"""评估项信息
"""
def __init__(self):
r"""
:param _StrategyId: 评估项ID
注意:此字段可能返回 null,表示取不到有效值。
:type StrategyId: int
:param _Name: 评估项名称
注意:此字段可能返回 null,表示取不到有效值。
:type Name: str
:param _Desc: 评估项描述
注意:此字段可能返回 null,表示取不到有效值。
:type Desc: str
:param _Product: 评估项对应产品ID
注意:此字段可能返回 null,表示取不到有效值。
:type Product: str
:param _ProductDesc: 评估项对应产品名称
注意:此字段可能返回 null,表示取不到有效值。
:type ProductDesc: str
:param _Repair: 评估项优化建议
注意:此字段可能返回 null,表示取不到有效值。
:type Repair: str
:param _GroupId: 评估项类别ID
注意:此字段可能返回 null,表示取不到有效值。
:type GroupId: int
:param _GroupName: 评估项类别名称
注意:此字段可能返回 null,表示取不到有效值。
:type GroupName: str
:param _Conditions: 评估项风险列表
注意:此字段可能返回 null,表示取不到有效值。
:type Conditions: list of Conditions
"""
self._StrategyId = None
self._Name = None
self._Desc = None
self._Product = None
self._ProductDesc = None
self._Repair = None
self._GroupId = None
self._GroupName = None
self._Conditions = None
@property
def StrategyId(self):
"""评估项ID
注意:此字段可能返回 null,表示取不到有效值。
:rtype: int
"""
return self._StrategyId
@StrategyId.setter
def StrategyId(self, StrategyId):
self._StrategyId = StrategyId
@property
def Name(self):
"""评估项名称
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Name
@Name.setter
def Name(self, Name):
self._Name = Name
@property
def Desc(self):
"""评估项描述
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Desc
@Desc.setter
def Desc(self, Desc):
self._Desc = Desc
@property
def Product(self):
"""评估项对应产品ID
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Product
@Product.setter
def Product(self, Product):
self._Product = Product
@property
def ProductDesc(self):
"""评估项对应产品名称
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._ProductDesc
@ProductDesc.setter
def ProductDesc(self, ProductDesc):
self._ProductDesc = ProductDesc
@property
def Repair(self):
"""评估项优化建议
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Repair
@Repair.setter
def Repair(self, Repair):
self._Repair = Repair
@property
def GroupId(self):
"""评估项类别ID
注意:此字段可能返回 null,表示取不到有效值。
:rtype: int
"""
return self._GroupId
@GroupId.setter
def GroupId(self, GroupId):
self._GroupId = GroupId
@property
def GroupName(self):
"""评估项类别名称
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._GroupName
@GroupName.setter
def GroupName(self, GroupName):
self._GroupName = GroupName
@property
def Conditions(self):
"""评估项风险列表
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of Conditions
"""
return self._Conditions
@Conditions.setter
def Conditions(self, Conditions):
self._Conditions = Conditions
def _deserialize(self, params):
self._StrategyId = params.get("StrategyId")
self._Name = params.get("Name")
self._Desc = params.get("Desc")
self._Product = params.get("Product")
self._ProductDesc = params.get("ProductDesc")
self._Repair = params.get("Repair")
self._GroupId = params.get("GroupId")
self._GroupName = params.get("GroupName")
if params.get("Conditions") is not None:
self._Conditions = []
for item in params.get("Conditions"):
obj = Conditions()
obj._deserialize(item)
self._Conditions.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))