ddosbgp-20180720/alibabacloud_ddosbgp20180720/models.py (4,835 lines of code) (raw):

# -*- coding: utf-8 -*- # This file is auto-generated, don't edit it. Thanks. from Tea.model import TeaModel class AddIpRequest(TeaModel): def __init__(self, instance_id=None, ip_list=None, region_id=None, resource_group_id=None): # The ID of the Anti-DDoS Origin Enterprise instance. # # > You can call the [DescribeInstanceList](~~118698~~) operation to query the IDs of all Anti-DDoS Origin Enterprise instances. self.instance_id = instance_id # type: str # The list of IP addresses that you want to add to the Anti-DDoS Origin Enterprise instance. This parameter is a string consisting of JSON arrays. Each element in a JSON array is a JSON struct that includes the following field: # # * **ip**: required. The IP address that you want to add. Data type: string. # # > The IP address must be the IP address of an asset that belongs to the current Alibaba Cloud account. self.ip_list = ip_list # type: str # The region ID of the Anti-DDoS Origin Enterprise instance. # # > You can call the [DescribeRegions](~~118703~~) operation to query all regions supported by Anti-DDoS Origin. self.region_id = region_id # type: str # The ID of the resource group to which the Anti-DDoS Origin Enterprise instance belongs in Resource Management. This parameter is empty by default, which indicates that the instance belongs to the default resource group. # # For more information about resource groups, see [Create a resource group](~~94485~~). self.resource_group_id = resource_group_id # type: str def validate(self): pass def to_map(self): _map = super(AddIpRequest, self).to_map() if _map is not None: return _map result = dict() if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.ip_list is not None: result['IpList'] = self.ip_list if self.region_id is not None: result['RegionId'] = self.region_id if self.resource_group_id is not None: result['ResourceGroupId'] = self.resource_group_id return result def from_map(self, m=None): m = m or dict() if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('IpList') is not None: self.ip_list = m.get('IpList') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('ResourceGroupId') is not None: self.resource_group_id = m.get('ResourceGroupId') return self class AddIpResponseBody(TeaModel): def __init__(self, request_id=None): # The ID of the request. self.request_id = request_id # type: str def validate(self): pass def to_map(self): _map = super(AddIpResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.request_id is not None: result['RequestId'] = self.request_id return result def from_map(self, m=None): m = m or dict() if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class AddIpResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: AddIpResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(AddIpResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = AddIpResponseBody() self.body = temp_model.from_map(m['body']) return self class AddRdMemberListRequestMemberList(TeaModel): def __init__(self, uid=None): self.uid = uid # type: str def validate(self): pass def to_map(self): _map = super(AddRdMemberListRequestMemberList, self).to_map() if _map is not None: return _map result = dict() if self.uid is not None: result['Uid'] = self.uid return result def from_map(self, m=None): m = m or dict() if m.get('Uid') is not None: self.uid = m.get('Uid') return self class AddRdMemberListRequest(TeaModel): def __init__(self, member_list=None): self.member_list = member_list # type: list[AddRdMemberListRequestMemberList] def validate(self): if self.member_list: for k in self.member_list: if k: k.validate() def to_map(self): _map = super(AddRdMemberListRequest, self).to_map() if _map is not None: return _map result = dict() result['MemberList'] = [] if self.member_list is not None: for k in self.member_list: result['MemberList'].append(k.to_map() if k else None) return result def from_map(self, m=None): m = m or dict() self.member_list = [] if m.get('MemberList') is not None: for k in m.get('MemberList'): temp_model = AddRdMemberListRequestMemberList() self.member_list.append(temp_model.from_map(k)) return self class AddRdMemberListShrinkRequest(TeaModel): def __init__(self, member_list_shrink=None): self.member_list_shrink = member_list_shrink # type: str def validate(self): pass def to_map(self): _map = super(AddRdMemberListShrinkRequest, self).to_map() if _map is not None: return _map result = dict() if self.member_list_shrink is not None: result['MemberList'] = self.member_list_shrink return result def from_map(self, m=None): m = m or dict() if m.get('MemberList') is not None: self.member_list_shrink = m.get('MemberList') return self class AddRdMemberListResponseBody(TeaModel): def __init__(self, request_id=None): self.request_id = request_id # type: str def validate(self): pass def to_map(self): _map = super(AddRdMemberListResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.request_id is not None: result['RequestId'] = self.request_id return result def from_map(self, m=None): m = m or dict() if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class AddRdMemberListResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: AddRdMemberListResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(AddRdMemberListResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = AddRdMemberListResponseBody() self.body = temp_model.from_map(m['body']) return self class AttachAssetGroupToInstanceRequestAssetGroupList(TeaModel): def __init__(self, member_uid=None, name=None, region=None, type=None): # The UID of the member to which the asset belongs. self.member_uid = member_uid # type: str # The ID of the asset that you want to add. If the asset is a Web Application Firewall (WAF) instance, specify the ID of the WAF instance. self.name = name # type: str # The region ID of the asset. self.region = region # type: str # The type of the asset. self.type = type # type: str def validate(self): pass def to_map(self): _map = super(AttachAssetGroupToInstanceRequestAssetGroupList, self).to_map() if _map is not None: return _map result = dict() if self.member_uid is not None: result['MemberUid'] = self.member_uid if self.name is not None: result['Name'] = self.name if self.region is not None: result['Region'] = self.region if self.type is not None: result['Type'] = self.type return result def from_map(self, m=None): m = m or dict() if m.get('MemberUid') is not None: self.member_uid = m.get('MemberUid') if m.get('Name') is not None: self.name = m.get('Name') if m.get('Region') is not None: self.region = m.get('Region') if m.get('Type') is not None: self.type = m.get('Type') return self class AttachAssetGroupToInstanceRequest(TeaModel): def __init__(self, asset_group_list=None, instance_id=None, region_id=None, source_ip=None): # The information about the asset to be associated. self.asset_group_list = asset_group_list # type: list[AttachAssetGroupToInstanceRequestAssetGroupList] # The ID of the instance to query. # # > You can call the [DescribeInstanceList](~~118698~~) operation to query the IDs of all Anti-DDoS Origin instances of paid editions. self.instance_id = instance_id # type: str # The ID of the region in which the instance resides. # # > You can call the [DescribeRegions](~~118703~~) operation to query the most recent region list. self.region_id = region_id # type: str # The source IP address of the request. The system specifies this parameter. self.source_ip = source_ip # type: str def validate(self): if self.asset_group_list: for k in self.asset_group_list: if k: k.validate() def to_map(self): _map = super(AttachAssetGroupToInstanceRequest, self).to_map() if _map is not None: return _map result = dict() result['AssetGroupList'] = [] if self.asset_group_list is not None: for k in self.asset_group_list: result['AssetGroupList'].append(k.to_map() if k else None) if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.region_id is not None: result['RegionId'] = self.region_id if self.source_ip is not None: result['SourceIp'] = self.source_ip return result def from_map(self, m=None): m = m or dict() self.asset_group_list = [] if m.get('AssetGroupList') is not None: for k in m.get('AssetGroupList'): temp_model = AttachAssetGroupToInstanceRequestAssetGroupList() self.asset_group_list.append(temp_model.from_map(k)) if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('SourceIp') is not None: self.source_ip = m.get('SourceIp') return self class AttachAssetGroupToInstanceShrinkRequest(TeaModel): def __init__(self, asset_group_list_shrink=None, instance_id=None, region_id=None, source_ip=None): # The information about the asset to be associated. self.asset_group_list_shrink = asset_group_list_shrink # type: str # The ID of the instance to query. # # > You can call the [DescribeInstanceList](~~118698~~) operation to query the IDs of all Anti-DDoS Origin instances of paid editions. self.instance_id = instance_id # type: str # The ID of the region in which the instance resides. # # > You can call the [DescribeRegions](~~118703~~) operation to query the most recent region list. self.region_id = region_id # type: str # The source IP address of the request. The system specifies this parameter. self.source_ip = source_ip # type: str def validate(self): pass def to_map(self): _map = super(AttachAssetGroupToInstanceShrinkRequest, self).to_map() if _map is not None: return _map result = dict() if self.asset_group_list_shrink is not None: result['AssetGroupList'] = self.asset_group_list_shrink if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.region_id is not None: result['RegionId'] = self.region_id if self.source_ip is not None: result['SourceIp'] = self.source_ip return result def from_map(self, m=None): m = m or dict() if m.get('AssetGroupList') is not None: self.asset_group_list_shrink = m.get('AssetGroupList') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('SourceIp') is not None: self.source_ip = m.get('SourceIp') return self class AttachAssetGroupToInstanceResponseBody(TeaModel): def __init__(self, request_id=None): # The request ID. self.request_id = request_id # type: str def validate(self): pass def to_map(self): _map = super(AttachAssetGroupToInstanceResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.request_id is not None: result['RequestId'] = self.request_id return result def from_map(self, m=None): m = m or dict() if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class AttachAssetGroupToInstanceResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: AttachAssetGroupToInstanceResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(AttachAssetGroupToInstanceResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = AttachAssetGroupToInstanceResponseBody() self.body = temp_model.from_map(m['body']) return self class CheckAccessLogAuthRequest(TeaModel): def __init__(self, region_id=None, resource_group_id=None): # The ID of the region where the Anti-DDoS Origin instance resides. # # For more information about the valid values of this parameter, see [Regions and zones](~~188196~~). self.region_id = region_id # type: str # The ID of the resource group to which the Anti-DDoS Origin instance belongs in Resource Management. This parameter is empty by default, which indicates that the Anti-DDoS Origin instance belongs to the default resource group. # # For more information about resource groups, see [Create a resource group](~~94485~~). self.resource_group_id = resource_group_id # type: str def validate(self): pass def to_map(self): _map = super(CheckAccessLogAuthRequest, self).to_map() if _map is not None: return _map result = dict() if self.region_id is not None: result['RegionId'] = self.region_id if self.resource_group_id is not None: result['ResourceGroupId'] = self.resource_group_id return result def from_map(self, m=None): m = m or dict() if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('ResourceGroupId') is not None: self.resource_group_id = m.get('ResourceGroupId') return self class CheckAccessLogAuthResponseBody(TeaModel): def __init__(self, access_log_auth=None, request_id=None): # Indicates whether Anti-DDoS Origin was authorized to access Log Service. Valid values: # # * **true**: Anti-DDoS Origin was authorized. # * **false**: Anti-DDoS Origin was not authorized. self.access_log_auth = access_log_auth # type: bool # The ID of the request. self.request_id = request_id # type: str def validate(self): pass def to_map(self): _map = super(CheckAccessLogAuthResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.access_log_auth is not None: result['AccessLogAuth'] = self.access_log_auth if self.request_id is not None: result['RequestId'] = self.request_id return result def from_map(self, m=None): m = m or dict() if m.get('AccessLogAuth') is not None: self.access_log_auth = m.get('AccessLogAuth') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class CheckAccessLogAuthResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: CheckAccessLogAuthResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(CheckAccessLogAuthResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = CheckAccessLogAuthResponseBody() self.body = temp_model.from_map(m['body']) return self class CheckGrantRequest(TeaModel): def __init__(self, is_slr=None, region_id=None, resource_group_id=None): # Specifies whether to allow Anti-DDoS Origin to check the service-linked role. Valid values: # # * **true**\ # * **false**\ self.is_slr = is_slr # type: bool # The ID of the region where the Anti-DDoS Origin instance resides. # # > You can call the [DescribeRegions](~~118703~~) operation to query the most recent region list. self.region_id = region_id # type: str # The ID of the resource group to which the Anti-DDoS Origin instance belongs in Resource Management. # # If you do not specify this parameter, the instance belongs to the default resource group. self.resource_group_id = resource_group_id # type: str def validate(self): pass def to_map(self): _map = super(CheckGrantRequest, self).to_map() if _map is not None: return _map result = dict() if self.is_slr is not None: result['IsSlr'] = self.is_slr if self.region_id is not None: result['RegionId'] = self.region_id if self.resource_group_id is not None: result['ResourceGroupId'] = self.resource_group_id return result def from_map(self, m=None): m = m or dict() if m.get('IsSlr') is not None: self.is_slr = m.get('IsSlr') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('ResourceGroupId') is not None: self.resource_group_id = m.get('ResourceGroupId') return self class CheckGrantResponseBody(TeaModel): def __init__(self, request_id=None, status=None): # The ID of the request. self.request_id = request_id # type: str # Indicates whether Anti-DDoS Origin is authorized to obtain information about the assets within the current Alibaba Cloud account. Valid values: # # * **1**: Anti-DDoS Origin is authorized to obtain information about the assets within the current Alibaba Cloud account. # * **0**: Anti-DDoS Origin is not authorized to obtain information about the assets within the current Alibaba Cloud account. self.status = status # type: int def validate(self): pass def to_map(self): _map = super(CheckGrantResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.request_id is not None: result['RequestId'] = self.request_id if self.status is not None: result['Status'] = self.status return result def from_map(self, m=None): m = m or dict() if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('Status') is not None: self.status = m.get('Status') return self class CheckGrantResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: CheckGrantResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(CheckGrantResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = CheckGrantResponseBody() self.body = temp_model.from_map(m['body']) return self class ConfigSchedruleOnDemandRequest(TeaModel): def __init__(self, instance_id=None, region_id=None, rule_action=None, rule_condition_cnt=None, rule_condition_kpps=None, rule_condition_mbps=None, rule_name=None, rule_switch=None, rule_undo_begin_time=None, rule_undo_end_time=None, rule_undo_mode=None, time_zone=None): # The ID of the on-demand instance. # # > You can call the [DescribeOnDemandInstance](~~152120~~) operation to query the IDs of all on-demand instances. self.instance_id = instance_id # type: str # The region ID of the on-demand instance. # # > You can call the [DescribeRegions](~~118703~~) operation to query all regions supported by Anti-DDoS Origin. self.region_id = region_id # type: str # The scheduling action. Set the value to **declare**, which indicates that the route is advertised. self.rule_action = rule_action # type: str # If the inbound bandwidth or packets consecutively exceed the threshold for the specified number of times, the scheduling rule is triggered and traffic is rerouted to the on-demand instance. The specified number of times is the value of this parameter. # # > The threshold of inbound bandwidth is the value of **RuleConditionMbps**. The threshold of inbound packets is the value of **RuleConditionKpps**. self.rule_condition_cnt = rule_condition_cnt # type: str # The threshold of inbound packets. Unit: Kpps. Minimum value: **10**. self.rule_condition_kpps = rule_condition_kpps # type: str # The threshold of inbound bandwidth. Unit: Mbit/s. Minimum value: **100**. self.rule_condition_mbps = rule_condition_mbps # type: str # The name of the scheduling rule. # # The name can contain lowercase letters, digits, hyphens (-), and underscores (\_). The name can be up to 32 characters in length. We recommend that you use the ID of the on-demand instance as the name. Example: `ddosbgp-cn-z2q1qzxb****`. self.rule_name = rule_name # type: str # Specifies whether the scheduling rule is enabled. Valid values: # # * **on**: enabled # * **off**: disabled self.rule_switch = rule_switch # type: str # The start time of the period during which the scheduling rule is automatically stopped. The time must be in the 24-hour clock and in the `hh:mm` format. # # If the system detects that DDoS attacks stop, the system no longer reroutes traffic to the on-demand instance from the time you specified. We recommend that you set this parameter to a value that is defined as off-peak hours. # # > This parameter takes effect only when the **RuleUndoMode** parameter is set to **auto**. self.rule_undo_begin_time = rule_undo_begin_time # type: str # The end time of the period during which the scheduling rule is automatically stopped. The time must be in the 24-hour clock and in the `hh:mm` format. self.rule_undo_end_time = rule_undo_end_time # type: str # The stop method of the scheduling rule. Valid values: # # * **auto**: The scheduling rule automatically stops. # * **manual**: The scheduling rule is manually stopped. self.rule_undo_mode = rule_undo_mode # type: str # The time zone of the time when the scheduling rule automatically stops. The time zone must be in the `GMT-hh:mm` format. # # For example, the value `GMT-08:00` indicates that the time zone is UTC+8. # # > This parameter takes effect only when the **RuleUndoMode** parameter is set to **auto**. self.time_zone = time_zone # type: str def validate(self): pass def to_map(self): _map = super(ConfigSchedruleOnDemandRequest, self).to_map() if _map is not None: return _map result = dict() if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.region_id is not None: result['RegionId'] = self.region_id if self.rule_action is not None: result['RuleAction'] = self.rule_action if self.rule_condition_cnt is not None: result['RuleConditionCnt'] = self.rule_condition_cnt if self.rule_condition_kpps is not None: result['RuleConditionKpps'] = self.rule_condition_kpps if self.rule_condition_mbps is not None: result['RuleConditionMbps'] = self.rule_condition_mbps if self.rule_name is not None: result['RuleName'] = self.rule_name if self.rule_switch is not None: result['RuleSwitch'] = self.rule_switch if self.rule_undo_begin_time is not None: result['RuleUndoBeginTime'] = self.rule_undo_begin_time if self.rule_undo_end_time is not None: result['RuleUndoEndTime'] = self.rule_undo_end_time if self.rule_undo_mode is not None: result['RuleUndoMode'] = self.rule_undo_mode if self.time_zone is not None: result['TimeZone'] = self.time_zone return result def from_map(self, m=None): m = m or dict() if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('RuleAction') is not None: self.rule_action = m.get('RuleAction') if m.get('RuleConditionCnt') is not None: self.rule_condition_cnt = m.get('RuleConditionCnt') if m.get('RuleConditionKpps') is not None: self.rule_condition_kpps = m.get('RuleConditionKpps') if m.get('RuleConditionMbps') is not None: self.rule_condition_mbps = m.get('RuleConditionMbps') if m.get('RuleName') is not None: self.rule_name = m.get('RuleName') if m.get('RuleSwitch') is not None: self.rule_switch = m.get('RuleSwitch') if m.get('RuleUndoBeginTime') is not None: self.rule_undo_begin_time = m.get('RuleUndoBeginTime') if m.get('RuleUndoEndTime') is not None: self.rule_undo_end_time = m.get('RuleUndoEndTime') if m.get('RuleUndoMode') is not None: self.rule_undo_mode = m.get('RuleUndoMode') if m.get('TimeZone') is not None: self.time_zone = m.get('TimeZone') return self class ConfigSchedruleOnDemandResponseBody(TeaModel): def __init__(self, request_id=None): # The ID of the request. self.request_id = request_id # type: str def validate(self): pass def to_map(self): _map = super(ConfigSchedruleOnDemandResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.request_id is not None: result['RequestId'] = self.request_id return result def from_map(self, m=None): m = m or dict() if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class ConfigSchedruleOnDemandResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: ConfigSchedruleOnDemandResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(ConfigSchedruleOnDemandResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = ConfigSchedruleOnDemandResponseBody() self.body = temp_model.from_map(m['body']) return self class CreateSchedruleOnDemandRequest(TeaModel): def __init__(self, instance_id=None, region_id=None, rule_action=None, rule_condition_cnt=None, rule_condition_kpps=None, rule_condition_mbps=None, rule_name=None, rule_switch=None, rule_undo_begin_time=None, rule_undo_end_time=None, rule_undo_mode=None, time_zone=None): # The ID of the on-demand instance. # # > You can call the [DescribeOnDemandInstance](~~152120~~) operation to query the IDs of all on-demand instances. self.instance_id = instance_id # type: str # The region ID of the on-demand instance. # # > You can call the [DescribeRegions](~~118703~~) operation to query all regions supported by Anti-DDoS Origin. self.region_id = region_id # type: str # The scheduling action. Set the value to **declare**, which indicates that the route is advertised. self.rule_action = rule_action # type: str # If the inbound bandwidth or packets consecutively exceed the threshold for the specified number of times, the scheduling rule is triggered and traffic is rerouted to the on-demand instance. The specified number of times is the value of this parameter. # # > The threshold of inbound bandwidth is the value of **RuleConditionMbps**. The threshold of inbound packets is the value of **RuleConditionKpps**. self.rule_condition_cnt = rule_condition_cnt # type: str # The threshold of inbound packets. Unit: Kpps. Minimum value: **10**. self.rule_condition_kpps = rule_condition_kpps # type: str # The threshold of inbound bandwidth. Unit: Mbit/s. Minimum value: **100**. self.rule_condition_mbps = rule_condition_mbps # type: str # The name of the scheduling rule. # # The name can contain lowercase letters, digits, hyphens (-), and underscores (\_). The name can be up to 32 characters in length. We recommend that you use the ID of the on-demand instance as the name. Example: `ddosbgp-cn-z2q1qzxb****`. self.rule_name = rule_name # type: str # Specifies whether the scheduling rule is enabled. Valid values: # # * **on**: enabled # * **off**: disabled self.rule_switch = rule_switch # type: str # The start time of the period during which the scheduling rule is automatically stopped. The time must be in the 24-hour clock and in the `hh:mm` format. # # If the system detects that DDoS attacks stop, the system no longer reroutes traffic to the on-demand instance from the time you specified. We recommend that you set this parameter to a value that is defined as off-peak hours. # # > This parameter takes effect only when the **RuleUndoMode** parameter is set to **auto**. self.rule_undo_begin_time = rule_undo_begin_time # type: str # The end time of the period during which the scheduling rule is automatically stopped. The time must be in the 24-hour clock and in the `hh:mm` format. self.rule_undo_end_time = rule_undo_end_time # type: str # The stop method of the scheduling rule. Valid values: # # * **auto**: The scheduling rule automatically stops. # * **manual**: The scheduling rule is manually stopped. self.rule_undo_mode = rule_undo_mode # type: str # The time zone of the time when the scheduling rule automatically stops. The time zone must be in the `GMT-hh:mm` format. # # For example, the value `GMT-08:00` indicates that the time zone is UTC+8. # # > This parameter takes effect only when the **RuleUndoMode** parameter is set to **auto**. self.time_zone = time_zone # type: str def validate(self): pass def to_map(self): _map = super(CreateSchedruleOnDemandRequest, self).to_map() if _map is not None: return _map result = dict() if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.region_id is not None: result['RegionId'] = self.region_id if self.rule_action is not None: result['RuleAction'] = self.rule_action if self.rule_condition_cnt is not None: result['RuleConditionCnt'] = self.rule_condition_cnt if self.rule_condition_kpps is not None: result['RuleConditionKpps'] = self.rule_condition_kpps if self.rule_condition_mbps is not None: result['RuleConditionMbps'] = self.rule_condition_mbps if self.rule_name is not None: result['RuleName'] = self.rule_name if self.rule_switch is not None: result['RuleSwitch'] = self.rule_switch if self.rule_undo_begin_time is not None: result['RuleUndoBeginTime'] = self.rule_undo_begin_time if self.rule_undo_end_time is not None: result['RuleUndoEndTime'] = self.rule_undo_end_time if self.rule_undo_mode is not None: result['RuleUndoMode'] = self.rule_undo_mode if self.time_zone is not None: result['TimeZone'] = self.time_zone return result def from_map(self, m=None): m = m or dict() if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('RuleAction') is not None: self.rule_action = m.get('RuleAction') if m.get('RuleConditionCnt') is not None: self.rule_condition_cnt = m.get('RuleConditionCnt') if m.get('RuleConditionKpps') is not None: self.rule_condition_kpps = m.get('RuleConditionKpps') if m.get('RuleConditionMbps') is not None: self.rule_condition_mbps = m.get('RuleConditionMbps') if m.get('RuleName') is not None: self.rule_name = m.get('RuleName') if m.get('RuleSwitch') is not None: self.rule_switch = m.get('RuleSwitch') if m.get('RuleUndoBeginTime') is not None: self.rule_undo_begin_time = m.get('RuleUndoBeginTime') if m.get('RuleUndoEndTime') is not None: self.rule_undo_end_time = m.get('RuleUndoEndTime') if m.get('RuleUndoMode') is not None: self.rule_undo_mode = m.get('RuleUndoMode') if m.get('TimeZone') is not None: self.time_zone = m.get('TimeZone') return self class CreateSchedruleOnDemandResponseBody(TeaModel): def __init__(self, request_id=None): # The ID of the request. self.request_id = request_id # type: str def validate(self): pass def to_map(self): _map = super(CreateSchedruleOnDemandResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.request_id is not None: result['RequestId'] = self.request_id return result def from_map(self, m=None): m = m or dict() if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class CreateSchedruleOnDemandResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: CreateSchedruleOnDemandResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(CreateSchedruleOnDemandResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = CreateSchedruleOnDemandResponseBody() self.body = temp_model.from_map(m['body']) return self class DeleteBlackholeRequest(TeaModel): def __init__(self, instance_id=None, ip=None, region_id=None, resource_group_id=None): # The ID of the Anti-DDoS Origin instance. # # > You can call the [DescribeInstanceList](~~118698~~) operation to query the IDs of all Anti-DDoS Origin instances. self.instance_id = instance_id # type: str # The IP address for which you want to deactivate blackhole filtering. # # > You can call the [DescribePackIpList](~~118701~~) operation to query all the IP addresses that are protected by the Anti-DDoS Origin instance and the protection status of the IP addresses. For example, you can query whether blackhole filtering is triggered for an IP address. self.ip = ip # type: str # The ID of the region where the Anti-DDoS Origin instance resides. # # > You can call the [DescribeRegions](~~118703~~) operation to query the most recent region list. self.region_id = region_id # type: str # The ID of the resource group to which the Anti-DDoS Origin instance belongs in Resource Management. # # If you do not specify this parameter, the instance belongs to the default resource group. self.resource_group_id = resource_group_id # type: str def validate(self): pass def to_map(self): _map = super(DeleteBlackholeRequest, self).to_map() if _map is not None: return _map result = dict() if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.ip is not None: result['Ip'] = self.ip if self.region_id is not None: result['RegionId'] = self.region_id if self.resource_group_id is not None: result['ResourceGroupId'] = self.resource_group_id return result def from_map(self, m=None): m = m or dict() if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Ip') is not None: self.ip = m.get('Ip') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('ResourceGroupId') is not None: self.resource_group_id = m.get('ResourceGroupId') return self class DeleteBlackholeResponseBody(TeaModel): def __init__(self, request_id=None): # The ID of the request. self.request_id = request_id # type: str def validate(self): pass def to_map(self): _map = super(DeleteBlackholeResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.request_id is not None: result['RequestId'] = self.request_id return result def from_map(self, m=None): m = m or dict() if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class DeleteBlackholeResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: DeleteBlackholeResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(DeleteBlackholeResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = DeleteBlackholeResponseBody() self.body = temp_model.from_map(m['body']) return self class DeleteIpRequest(TeaModel): def __init__(self, instance_id=None, ip_list=None, region_id=None, resource_group_id=None): # The ID of the Anti-DDoS Origin Enterprise instance. # # > You can call the [DescribeInstanceList](~~118698~~) operation to query the IDs of all Anti-DDoS Origin Enterprise instances. self.instance_id = instance_id # type: str # The list of IP addresses that you want to remove from the Anti-DDoS Origin Enterprise instance. This parameter is a string consisting of JSON arrays. Each element in a JSON array is a JSON struct that includes the following field: # # * **ip**: required. The IP address that you want to remove. Data type: string. # # > The IP addresses that you want to remove must be protected by the Anti-DDoS Origin Enterprise instance. self.ip_list = ip_list # type: str # The region ID of the Anti-DDoS Origin Enterprise instance. # # > You can call the [DescribeRegions](~~118703~~) operation to query all regions supported by Anti-DDoS Origin. self.region_id = region_id # type: str # The ID of the resource group to which the Anti-DDoS Origin Enterprise instance belongs in Resource Management. This parameter is empty by default, which indicates that the instance belongs to the default resource group. # # For more information about resource groups, see [Create a resource group](~~94485~~). self.resource_group_id = resource_group_id # type: str def validate(self): pass def to_map(self): _map = super(DeleteIpRequest, self).to_map() if _map is not None: return _map result = dict() if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.ip_list is not None: result['IpList'] = self.ip_list if self.region_id is not None: result['RegionId'] = self.region_id if self.resource_group_id is not None: result['ResourceGroupId'] = self.resource_group_id return result def from_map(self, m=None): m = m or dict() if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('IpList') is not None: self.ip_list = m.get('IpList') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('ResourceGroupId') is not None: self.resource_group_id = m.get('ResourceGroupId') return self class DeleteIpResponseBody(TeaModel): def __init__(self, request_id=None): # The ID of the request. self.request_id = request_id # type: str def validate(self): pass def to_map(self): _map = super(DeleteIpResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.request_id is not None: result['RequestId'] = self.request_id return result def from_map(self, m=None): m = m or dict() if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class DeleteIpResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: DeleteIpResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(DeleteIpResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = DeleteIpResponseBody() self.body = temp_model.from_map(m['body']) return self class DeleteRdMemberListRequestMemberList(TeaModel): def __init__(self, uid=None): self.uid = uid # type: str def validate(self): pass def to_map(self): _map = super(DeleteRdMemberListRequestMemberList, self).to_map() if _map is not None: return _map result = dict() if self.uid is not None: result['Uid'] = self.uid return result def from_map(self, m=None): m = m or dict() if m.get('Uid') is not None: self.uid = m.get('Uid') return self class DeleteRdMemberListRequest(TeaModel): def __init__(self, member_list=None): self.member_list = member_list # type: list[DeleteRdMemberListRequestMemberList] def validate(self): if self.member_list: for k in self.member_list: if k: k.validate() def to_map(self): _map = super(DeleteRdMemberListRequest, self).to_map() if _map is not None: return _map result = dict() result['MemberList'] = [] if self.member_list is not None: for k in self.member_list: result['MemberList'].append(k.to_map() if k else None) return result def from_map(self, m=None): m = m or dict() self.member_list = [] if m.get('MemberList') is not None: for k in m.get('MemberList'): temp_model = DeleteRdMemberListRequestMemberList() self.member_list.append(temp_model.from_map(k)) return self class DeleteRdMemberListShrinkRequest(TeaModel): def __init__(self, member_list_shrink=None): self.member_list_shrink = member_list_shrink # type: str def validate(self): pass def to_map(self): _map = super(DeleteRdMemberListShrinkRequest, self).to_map() if _map is not None: return _map result = dict() if self.member_list_shrink is not None: result['MemberList'] = self.member_list_shrink return result def from_map(self, m=None): m = m or dict() if m.get('MemberList') is not None: self.member_list_shrink = m.get('MemberList') return self class DeleteRdMemberListResponseBody(TeaModel): def __init__(self, request_id=None): self.request_id = request_id # type: str def validate(self): pass def to_map(self): _map = super(DeleteRdMemberListResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.request_id is not None: result['RequestId'] = self.request_id return result def from_map(self, m=None): m = m or dict() if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class DeleteRdMemberListResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: DeleteRdMemberListResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(DeleteRdMemberListResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = DeleteRdMemberListResponseBody() self.body = temp_model.from_map(m['body']) return self class DeleteSchedruleOnDemandRequest(TeaModel): def __init__(self, instance_id=None, region_id=None, rule_name=None): # The ID of the on-demand instance. # # > You can call the [DescribeOnDemandInstance](~~152120~~) operation to query the IDs of all on-demand instances. self.instance_id = instance_id # type: str # The region ID of the on-demand instance. # # > You can call the [DescribeRegions](~~118703~~) operation to query all regions supported by Anti-DDoS Origin. self.region_id = region_id # type: str # The name of the scheduling rule that you want to delete. self.rule_name = rule_name # type: str def validate(self): pass def to_map(self): _map = super(DeleteSchedruleOnDemandRequest, self).to_map() if _map is not None: return _map result = dict() if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.region_id is not None: result['RegionId'] = self.region_id if self.rule_name is not None: result['RuleName'] = self.rule_name return result def from_map(self, m=None): m = m or dict() if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('RuleName') is not None: self.rule_name = m.get('RuleName') return self class DeleteSchedruleOnDemandResponseBody(TeaModel): def __init__(self, request_id=None): # The ID of the request. self.request_id = request_id # type: str def validate(self): pass def to_map(self): _map = super(DeleteSchedruleOnDemandResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.request_id is not None: result['RequestId'] = self.request_id return result def from_map(self, m=None): m = m or dict() if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class DeleteSchedruleOnDemandResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: DeleteSchedruleOnDemandResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(DeleteSchedruleOnDemandResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = DeleteSchedruleOnDemandResponseBody() self.body = temp_model.from_map(m['body']) return self class DescribeAssetGroupRequest(TeaModel): def __init__(self, name=None, region=None, region_id=None, source_ip=None, type=None): # The ID of the asset. If the asset is a Web Application Firewall (WAF) instance, specify the ID of the WAF instance. self.name = name # type: str # The region ID of the asset. self.region = region # type: str # The ID of the region in which the instance resides. # # > You can call the [DescribeRegions](~~118703~~) operation to query the most recent region list. self.region_id = region_id # type: str # The source IP address of the request. The system specifies this parameter. self.source_ip = source_ip # type: str # The type of the asset. Valid values: # # * **waf**: WAF instance # * **ga**: Global Accelerator (GA) instance self.type = type # type: str def validate(self): pass def to_map(self): _map = super(DescribeAssetGroupRequest, self).to_map() if _map is not None: return _map result = dict() if self.name is not None: result['Name'] = self.name if self.region is not None: result['Region'] = self.region if self.region_id is not None: result['RegionId'] = self.region_id if self.source_ip is not None: result['SourceIp'] = self.source_ip if self.type is not None: result['Type'] = self.type return result def from_map(self, m=None): m = m or dict() if m.get('Name') is not None: self.name = m.get('Name') if m.get('Region') is not None: self.region = m.get('Region') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('SourceIp') is not None: self.source_ip = m.get('SourceIp') if m.get('Type') is not None: self.type = m.get('Type') return self class DescribeAssetGroupResponseBodyAssetGroupList(TeaModel): def __init__(self, name=None, region=None, type=None): # The ID of the asset. self.name = name # type: str # The region to which the asset belongs. self.region = region # type: str # The type of the asset. self.type = type # type: str def validate(self): pass def to_map(self): _map = super(DescribeAssetGroupResponseBodyAssetGroupList, self).to_map() if _map is not None: return _map result = dict() if self.name is not None: result['Name'] = self.name if self.region is not None: result['Region'] = self.region if self.type is not None: result['Type'] = self.type return result def from_map(self, m=None): m = m or dict() if m.get('Name') is not None: self.name = m.get('Name') if m.get('Region') is not None: self.region = m.get('Region') if m.get('Type') is not None: self.type = m.get('Type') return self class DescribeAssetGroupResponseBody(TeaModel): def __init__(self, asset_group_list=None, request_id=None, total=None): # The information about the asset. self.asset_group_list = asset_group_list # type: list[DescribeAssetGroupResponseBodyAssetGroupList] # The request ID. self.request_id = request_id # type: str # The total number of entries returned. self.total = total # type: long def validate(self): if self.asset_group_list: for k in self.asset_group_list: if k: k.validate() def to_map(self): _map = super(DescribeAssetGroupResponseBody, self).to_map() if _map is not None: return _map result = dict() result['AssetGroupList'] = [] if self.asset_group_list is not None: for k in self.asset_group_list: result['AssetGroupList'].append(k.to_map() if k else None) if self.request_id is not None: result['RequestId'] = self.request_id if self.total is not None: result['Total'] = self.total return result def from_map(self, m=None): m = m or dict() self.asset_group_list = [] if m.get('AssetGroupList') is not None: for k in m.get('AssetGroupList'): temp_model = DescribeAssetGroupResponseBodyAssetGroupList() self.asset_group_list.append(temp_model.from_map(k)) if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('Total') is not None: self.total = m.get('Total') return self class DescribeAssetGroupResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: DescribeAssetGroupResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(DescribeAssetGroupResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = DescribeAssetGroupResponseBody() self.body = temp_model.from_map(m['body']) return self class DescribeAssetGroupToInstanceRequest(TeaModel): def __init__(self, instance_id=None, member_uid=None, name=None, region=None, region_id=None, source_ip=None, type=None): # The ID of the instance to query. # # > You can call the [DescribeInstanceList](~~118698~~) operation to query the IDs of all Anti-DDoS Origin instances of paid editions. self.instance_id = instance_id # type: str # The UID of the member to which the asset belongs. self.member_uid = member_uid # type: str # The ID of the asset. If the asset is a Web Application Firewall (WAF) instance, specify the ID of the WAF instance. self.name = name # type: str # The region ID of the asset. self.region = region # type: str # The ID of the region in which the instance resides. # # > You can call the [DescribeRegions](~~118703~~) operation to query the most recent region list. self.region_id = region_id # type: str # The source IP address of the request. The system specifies this parameter. self.source_ip = source_ip # type: str # The type of the asset. Valid values: # # * **waf**: WAF instance # * **ga**: Global Accelerator (GA) instance self.type = type # type: str def validate(self): pass def to_map(self): _map = super(DescribeAssetGroupToInstanceRequest, self).to_map() if _map is not None: return _map result = dict() if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.member_uid is not None: result['MemberUid'] = self.member_uid if self.name is not None: result['Name'] = self.name if self.region is not None: result['Region'] = self.region if self.region_id is not None: result['RegionId'] = self.region_id if self.source_ip is not None: result['SourceIp'] = self.source_ip if self.type is not None: result['Type'] = self.type return result def from_map(self, m=None): m = m or dict() if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('MemberUid') is not None: self.member_uid = m.get('MemberUid') if m.get('Name') is not None: self.name = m.get('Name') if m.get('Region') is not None: self.region = m.get('Region') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('SourceIp') is not None: self.source_ip = m.get('SourceIp') if m.get('Type') is not None: self.type = m.get('Type') return self class DescribeAssetGroupToInstanceResponseBodyDataList(TeaModel): def __init__(self, instance_id=None, member_uid=None, name=None, region=None, type=None): # The ID of the Anti-DDoS Origin instance of a paid edition. self.instance_id = instance_id # type: str # The UID of the member to which the asset belongs. self.member_uid = member_uid # type: str # The ID of the asset. self.name = name # type: str # The region ID of the asset. self.region = region # type: str # The type of the asset. self.type = type # type: str def validate(self): pass def to_map(self): _map = super(DescribeAssetGroupToInstanceResponseBodyDataList, self).to_map() if _map is not None: return _map result = dict() if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.member_uid is not None: result['MemberUid'] = self.member_uid if self.name is not None: result['Name'] = self.name if self.region is not None: result['Region'] = self.region if self.type is not None: result['Type'] = self.type return result def from_map(self, m=None): m = m or dict() if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('MemberUid') is not None: self.member_uid = m.get('MemberUid') if m.get('Name') is not None: self.name = m.get('Name') if m.get('Region') is not None: self.region = m.get('Region') if m.get('Type') is not None: self.type = m.get('Type') return self class DescribeAssetGroupToInstanceResponseBody(TeaModel): def __init__(self, data_list=None, request_id=None, total=None): # The response parameters. self.data_list = data_list # type: list[DescribeAssetGroupToInstanceResponseBodyDataList] # The request ID. self.request_id = request_id # type: str # The total number of entries returned. self.total = total # type: long def validate(self): if self.data_list: for k in self.data_list: if k: k.validate() def to_map(self): _map = super(DescribeAssetGroupToInstanceResponseBody, self).to_map() if _map is not None: return _map result = dict() result['DataList'] = [] if self.data_list is not None: for k in self.data_list: result['DataList'].append(k.to_map() if k else None) if self.request_id is not None: result['RequestId'] = self.request_id if self.total is not None: result['Total'] = self.total return result def from_map(self, m=None): m = m or dict() self.data_list = [] if m.get('DataList') is not None: for k in m.get('DataList'): temp_model = DescribeAssetGroupToInstanceResponseBodyDataList() self.data_list.append(temp_model.from_map(k)) if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('Total') is not None: self.total = m.get('Total') return self class DescribeAssetGroupToInstanceResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: DescribeAssetGroupToInstanceResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(DescribeAssetGroupToInstanceResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = DescribeAssetGroupToInstanceResponseBody() self.body = temp_model.from_map(m['body']) return self class DescribeDdosEventRequest(TeaModel): def __init__(self, end_time=None, instance_id=None, ip=None, page_no=None, page_size=None, region_id=None, resource_group_id=None, start_time=None): # The end time of the DDoS attack event to query. This value is a UNIX timestamp. Unit: seconds. self.end_time = end_time # type: int # The ID of the Anti-DDoS Origin instance to query. # # > You can call the [DescribeInstanceList](~~118698~~) operation to query the IDs of all Anti-DDoS Origin instances. self.instance_id = instance_id # type: str # The attacked IP address to query. self.ip = ip # type: str # The number of the page to return. self.page_no = page_no # type: int # The number of entries to return on each page. self.page_size = page_size # type: int # The ID of the region where the Anti-DDoS Origin instance resides. # # > You can call the [DescribeRegions](~~118703~~) operation to query the most recent region list. self.region_id = region_id # type: str # The ID of the resource group to which the Anti-DDoS Origin instance belongs in Resource Management. # # If you do not specify this parameter, the instance belongs to the default resource group. self.resource_group_id = resource_group_id # type: str # The start time of the DDoS attack event to query. This value is a UNIX timestamp. Unit: seconds. self.start_time = start_time # type: int def validate(self): pass def to_map(self): _map = super(DescribeDdosEventRequest, self).to_map() if _map is not None: return _map result = dict() if self.end_time is not None: result['EndTime'] = self.end_time if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.ip is not None: result['Ip'] = self.ip if self.page_no is not None: result['PageNo'] = self.page_no if self.page_size is not None: result['PageSize'] = self.page_size if self.region_id is not None: result['RegionId'] = self.region_id if self.resource_group_id is not None: result['ResourceGroupId'] = self.resource_group_id if self.start_time is not None: result['StartTime'] = self.start_time return result def from_map(self, m=None): m = m or dict() if m.get('EndTime') is not None: self.end_time = m.get('EndTime') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Ip') is not None: self.ip = m.get('Ip') if m.get('PageNo') is not None: self.page_no = m.get('PageNo') if m.get('PageSize') is not None: self.page_size = m.get('PageSize') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('ResourceGroupId') is not None: self.resource_group_id = m.get('ResourceGroupId') if m.get('StartTime') is not None: self.start_time = m.get('StartTime') return self class DescribeDdosEventResponseBodyEvents(TeaModel): def __init__(self, end_time=None, ip=None, mbps=None, pps=None, start_time=None, status=None): # The time when the DDoS attack stopped. This value is a UNIX timestamp. Unit: seconds. self.end_time = end_time # type: int # The attacked IP address. self.ip = ip # type: str # The volume of the request traffic at the start of the DDoS attack. Unit: Mbit/s. self.mbps = mbps # type: int # The number of packets at the start of the DDoS attack. Unit: packets per second (PPS). self.pps = pps # type: int # The time when the DDoS attack started. This value is a UNIX timestamp. Unit: seconds. self.start_time = start_time # type: int # The status of the DDoS attack event. Valid values: # # * **hole_begin**: indicates that blackhole filtering is triggered for the attacked IP address. # * **hole_end**: indicates that blackhole filtering is deactivated for the attacked IP address. # * **defense_begin**: indicates that attack traffic is being scrubbed. # * **defense_end**: indicates that attack traffic is scrubbed. self.status = status # type: str def validate(self): pass def to_map(self): _map = super(DescribeDdosEventResponseBodyEvents, self).to_map() if _map is not None: return _map result = dict() if self.end_time is not None: result['EndTime'] = self.end_time if self.ip is not None: result['Ip'] = self.ip if self.mbps is not None: result['Mbps'] = self.mbps if self.pps is not None: result['Pps'] = self.pps if self.start_time is not None: result['StartTime'] = self.start_time if self.status is not None: result['Status'] = self.status return result def from_map(self, m=None): m = m or dict() if m.get('EndTime') is not None: self.end_time = m.get('EndTime') if m.get('Ip') is not None: self.ip = m.get('Ip') if m.get('Mbps') is not None: self.mbps = m.get('Mbps') if m.get('Pps') is not None: self.pps = m.get('Pps') if m.get('StartTime') is not None: self.start_time = m.get('StartTime') if m.get('Status') is not None: self.status = m.get('Status') return self class DescribeDdosEventResponseBody(TeaModel): def __init__(self, events=None, request_id=None, total=None): # The details about the DDoS attack event. self.events = events # type: list[DescribeDdosEventResponseBodyEvents] # The ID of the request. self.request_id = request_id # type: str # The total number of DDoS attack events. self.total = total # type: long def validate(self): if self.events: for k in self.events: if k: k.validate() def to_map(self): _map = super(DescribeDdosEventResponseBody, self).to_map() if _map is not None: return _map result = dict() result['Events'] = [] if self.events is not None: for k in self.events: result['Events'].append(k.to_map() if k else None) if self.request_id is not None: result['RequestId'] = self.request_id if self.total is not None: result['Total'] = self.total return result def from_map(self, m=None): m = m or dict() self.events = [] if m.get('Events') is not None: for k in m.get('Events'): temp_model = DescribeDdosEventResponseBodyEvents() self.events.append(temp_model.from_map(k)) if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('Total') is not None: self.total = m.get('Total') return self class DescribeDdosEventResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: DescribeDdosEventResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(DescribeDdosEventResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = DescribeDdosEventResponseBody() self.body = temp_model.from_map(m['body']) return self class DescribeDdosOriginInstanceBillRequest(TeaModel): def __init__(self, end_time=None, is_show_list=None, start_time=None, type=None): self.end_time = end_time # type: long self.is_show_list = is_show_list # type: bool self.start_time = start_time # type: long self.type = type # type: str def validate(self): pass def to_map(self): _map = super(DescribeDdosOriginInstanceBillRequest, self).to_map() if _map is not None: return _map result = dict() if self.end_time is not None: result['EndTime'] = self.end_time if self.is_show_list is not None: result['IsShowList'] = self.is_show_list if self.start_time is not None: result['StartTime'] = self.start_time if self.type is not None: result['Type'] = self.type return result def from_map(self, m=None): m = m or dict() if m.get('EndTime') is not None: self.end_time = m.get('EndTime') if m.get('IsShowList') is not None: self.is_show_list = m.get('IsShowList') if m.get('StartTime') is not None: self.start_time = m.get('StartTime') if m.get('Type') is not None: self.type = m.get('Type') return self class DescribeDdosOriginInstanceBillResponseBodyFlowList(TeaModel): def __init__(self, member_flow=None, region_flow=None, time=None, total_flow=None): self.member_flow = member_flow # type: str self.region_flow = region_flow # type: str self.time = time # type: long self.total_flow = total_flow # type: long def validate(self): pass def to_map(self): _map = super(DescribeDdosOriginInstanceBillResponseBodyFlowList, self).to_map() if _map is not None: return _map result = dict() if self.member_flow is not None: result['MemberFlow'] = self.member_flow if self.region_flow is not None: result['RegionFlow'] = self.region_flow if self.time is not None: result['Time'] = self.time if self.total_flow is not None: result['TotalFlow'] = self.total_flow return result def from_map(self, m=None): m = m or dict() if m.get('MemberFlow') is not None: self.member_flow = m.get('MemberFlow') if m.get('RegionFlow') is not None: self.region_flow = m.get('RegionFlow') if m.get('Time') is not None: self.time = m.get('Time') if m.get('TotalFlow') is not None: self.total_flow = m.get('TotalFlow') return self class DescribeDdosOriginInstanceBillResponseBodyIpCountOrFunctionList(TeaModel): def __init__(self, coverage=None, ip_cnt_cn=None, ip_cnt_ov=None, member_ip_cnt=None, time=None): self.coverage = coverage # type: str self.ip_cnt_cn = ip_cnt_cn # type: long self.ip_cnt_ov = ip_cnt_ov # type: long self.member_ip_cnt = member_ip_cnt # type: str self.time = time # type: long def validate(self): pass def to_map(self): _map = super(DescribeDdosOriginInstanceBillResponseBodyIpCountOrFunctionList, self).to_map() if _map is not None: return _map result = dict() if self.coverage is not None: result['Coverage'] = self.coverage if self.ip_cnt_cn is not None: result['IpCntCn'] = self.ip_cnt_cn if self.ip_cnt_ov is not None: result['IpCntOv'] = self.ip_cnt_ov if self.member_ip_cnt is not None: result['MemberIpCnt'] = self.member_ip_cnt if self.time is not None: result['Time'] = self.time return result def from_map(self, m=None): m = m or dict() if m.get('Coverage') is not None: self.coverage = m.get('Coverage') if m.get('IpCntCn') is not None: self.ip_cnt_cn = m.get('IpCntCn') if m.get('IpCntOv') is not None: self.ip_cnt_ov = m.get('IpCntOv') if m.get('MemberIpCnt') is not None: self.member_ip_cnt = m.get('MemberIpCnt') if m.get('Time') is not None: self.time = m.get('Time') return self class DescribeDdosOriginInstanceBillResponseBodyStandardAssetsFlowList(TeaModel): def __init__(self, member_flow=None, region_flow=None, time=None, total_flow=None): self.member_flow = member_flow # type: str self.region_flow = region_flow # type: str self.time = time # type: long self.total_flow = total_flow # type: long def validate(self): pass def to_map(self): _map = super(DescribeDdosOriginInstanceBillResponseBodyStandardAssetsFlowList, self).to_map() if _map is not None: return _map result = dict() if self.member_flow is not None: result['MemberFlow'] = self.member_flow if self.region_flow is not None: result['RegionFlow'] = self.region_flow if self.time is not None: result['Time'] = self.time if self.total_flow is not None: result['TotalFlow'] = self.total_flow return result def from_map(self, m=None): m = m or dict() if m.get('MemberFlow') is not None: self.member_flow = m.get('MemberFlow') if m.get('RegionFlow') is not None: self.region_flow = m.get('RegionFlow') if m.get('Time') is not None: self.time = m.get('Time') if m.get('TotalFlow') is not None: self.total_flow = m.get('TotalFlow') return self class DescribeDdosOriginInstanceBillResponseBody(TeaModel): def __init__(self, debt_status=None, flow_list=None, flow_region=None, instance_id=None, ip_count=None, ip_count_or_function_list=None, ip_info=None, request_id=None, standard_assets_flow_list=None, standard_assets_flow_region=None, standard_assets_total_flow_cn=None, standard_assets_total_flow_ov=None, status=None, total_flow_cn=None, total_flow_ov=None): self.debt_status = debt_status # type: long self.flow_list = flow_list # type: list[DescribeDdosOriginInstanceBillResponseBodyFlowList] self.flow_region = flow_region # type: dict[str, any] self.instance_id = instance_id # type: str self.ip_count = ip_count # type: long self.ip_count_or_function_list = ip_count_or_function_list # type: list[DescribeDdosOriginInstanceBillResponseBodyIpCountOrFunctionList] self.ip_info = ip_info # type: str self.request_id = request_id # type: str self.standard_assets_flow_list = standard_assets_flow_list # type: list[DescribeDdosOriginInstanceBillResponseBodyStandardAssetsFlowList] self.standard_assets_flow_region = standard_assets_flow_region # type: dict[str, any] self.standard_assets_total_flow_cn = standard_assets_total_flow_cn # type: long self.standard_assets_total_flow_ov = standard_assets_total_flow_ov # type: long self.status = status # type: long self.total_flow_cn = total_flow_cn # type: long self.total_flow_ov = total_flow_ov # type: long def validate(self): if self.flow_list: for k in self.flow_list: if k: k.validate() if self.ip_count_or_function_list: for k in self.ip_count_or_function_list: if k: k.validate() if self.standard_assets_flow_list: for k in self.standard_assets_flow_list: if k: k.validate() def to_map(self): _map = super(DescribeDdosOriginInstanceBillResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.debt_status is not None: result['DebtStatus'] = self.debt_status result['FlowList'] = [] if self.flow_list is not None: for k in self.flow_list: result['FlowList'].append(k.to_map() if k else None) if self.flow_region is not None: result['FlowRegion'] = self.flow_region if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.ip_count is not None: result['IpCount'] = self.ip_count result['IpCountOrFunctionList'] = [] if self.ip_count_or_function_list is not None: for k in self.ip_count_or_function_list: result['IpCountOrFunctionList'].append(k.to_map() if k else None) if self.ip_info is not None: result['IpInfo'] = self.ip_info if self.request_id is not None: result['RequestId'] = self.request_id result['StandardAssetsFlowList'] = [] if self.standard_assets_flow_list is not None: for k in self.standard_assets_flow_list: result['StandardAssetsFlowList'].append(k.to_map() if k else None) if self.standard_assets_flow_region is not None: result['StandardAssetsFlowRegion'] = self.standard_assets_flow_region if self.standard_assets_total_flow_cn is not None: result['StandardAssetsTotalFlowCn'] = self.standard_assets_total_flow_cn if self.standard_assets_total_flow_ov is not None: result['StandardAssetsTotalFlowOv'] = self.standard_assets_total_flow_ov if self.status is not None: result['Status'] = self.status if self.total_flow_cn is not None: result['TotalFlowCn'] = self.total_flow_cn if self.total_flow_ov is not None: result['TotalFlowOv'] = self.total_flow_ov return result def from_map(self, m=None): m = m or dict() if m.get('DebtStatus') is not None: self.debt_status = m.get('DebtStatus') self.flow_list = [] if m.get('FlowList') is not None: for k in m.get('FlowList'): temp_model = DescribeDdosOriginInstanceBillResponseBodyFlowList() self.flow_list.append(temp_model.from_map(k)) if m.get('FlowRegion') is not None: self.flow_region = m.get('FlowRegion') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('IpCount') is not None: self.ip_count = m.get('IpCount') self.ip_count_or_function_list = [] if m.get('IpCountOrFunctionList') is not None: for k in m.get('IpCountOrFunctionList'): temp_model = DescribeDdosOriginInstanceBillResponseBodyIpCountOrFunctionList() self.ip_count_or_function_list.append(temp_model.from_map(k)) if m.get('IpInfo') is not None: self.ip_info = m.get('IpInfo') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') self.standard_assets_flow_list = [] if m.get('StandardAssetsFlowList') is not None: for k in m.get('StandardAssetsFlowList'): temp_model = DescribeDdosOriginInstanceBillResponseBodyStandardAssetsFlowList() self.standard_assets_flow_list.append(temp_model.from_map(k)) if m.get('StandardAssetsFlowRegion') is not None: self.standard_assets_flow_region = m.get('StandardAssetsFlowRegion') if m.get('StandardAssetsTotalFlowCn') is not None: self.standard_assets_total_flow_cn = m.get('StandardAssetsTotalFlowCn') if m.get('StandardAssetsTotalFlowOv') is not None: self.standard_assets_total_flow_ov = m.get('StandardAssetsTotalFlowOv') if m.get('Status') is not None: self.status = m.get('Status') if m.get('TotalFlowCn') is not None: self.total_flow_cn = m.get('TotalFlowCn') if m.get('TotalFlowOv') is not None: self.total_flow_ov = m.get('TotalFlowOv') return self class DescribeDdosOriginInstanceBillResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: DescribeDdosOriginInstanceBillResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(DescribeDdosOriginInstanceBillResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = DescribeDdosOriginInstanceBillResponseBody() self.body = temp_model.from_map(m['body']) return self class DescribeExcpetionCountRequest(TeaModel): def __init__(self, region_id=None, resource_group_id=None): # The ID of the region where the Anti-DDoS Origin instance resides. # # > You can call the [DescribeRegions](~~118703~~) operation to query the most recent region list. self.region_id = region_id # type: str # The ID of the resource group to which the Anti-DDoS Origin instance belongs in Resource Management. # # If you do not specify this parameter, the instance belongs to the default resource group. self.resource_group_id = resource_group_id # type: str def validate(self): pass def to_map(self): _map = super(DescribeExcpetionCountRequest, self).to_map() if _map is not None: return _map result = dict() if self.region_id is not None: result['RegionId'] = self.region_id if self.resource_group_id is not None: result['ResourceGroupId'] = self.resource_group_id return result def from_map(self, m=None): m = m or dict() if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('ResourceGroupId') is not None: self.resource_group_id = m.get('ResourceGroupId') return self class DescribeExcpetionCountResponseBody(TeaModel): def __init__(self, exception_ip_count=None, expire_time_count=None, request_id=None): # The number of assets that are in an abnormal state. self.exception_ip_count = exception_ip_count # type: int # The number of Anti-DDoS Origin instances that are about to expire. self.expire_time_count = expire_time_count # type: int # The ID of the request. self.request_id = request_id # type: str def validate(self): pass def to_map(self): _map = super(DescribeExcpetionCountResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.exception_ip_count is not None: result['ExceptionIpCount'] = self.exception_ip_count if self.expire_time_count is not None: result['ExpireTimeCount'] = self.expire_time_count if self.request_id is not None: result['RequestId'] = self.request_id return result def from_map(self, m=None): m = m or dict() if m.get('ExceptionIpCount') is not None: self.exception_ip_count = m.get('ExceptionIpCount') if m.get('ExpireTimeCount') is not None: self.expire_time_count = m.get('ExpireTimeCount') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class DescribeExcpetionCountResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: DescribeExcpetionCountResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(DescribeExcpetionCountResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = DescribeExcpetionCountResponseBody() self.body = temp_model.from_map(m['body']) return self class DescribeInstanceListRequestTag(TeaModel): def __init__(self, key=None, value=None): # The key of the tag that is added to the Anti-DDoS Origin instance to query. self.key = key # type: str # The value of the tag that is added to the Anti-DDoS Origin instance to query. self.value = value # type: str def validate(self): pass def to_map(self): _map = super(DescribeInstanceListRequestTag, self).to_map() if _map is not None: return _map result = dict() if self.key is not None: result['Key'] = self.key if self.value is not None: result['Value'] = self.value return result def from_map(self, m=None): m = m or dict() if m.get('Key') is not None: self.key = m.get('Key') if m.get('Value') is not None: self.value = m.get('Value') return self class DescribeInstanceListRequest(TeaModel): def __init__(self, instance_id_list=None, instance_type=None, instance_type_list=None, ip=None, ip_version=None, orderby=None, orderdire=None, page_no=None, page_size=None, region_id=None, remark=None, resource_group_id=None, tag=None): # The IDs of the Anti-DDoS Origin instances to query. Specify the value is in the `["<Instance ID 1>","<Instance ID 2>",……]` format. self.instance_id_list = instance_id_list # type: str # The mitigation plan of the Anti-DDoS Origin instance to query. Valid values: # # * **0**: the Professional mitigation plan # * **1**: the Enterprise mitigation plan self.instance_type = instance_type # type: str self.instance_type_list = instance_type_list # type: list[str] # The IP address of the object that is protected by the Anti-DDoS Origin instance to query. self.ip = ip # type: str # The protocol type of the IP address asset that is protected by the Anti-DDoS Origin instance to query. Valid values: # # * **Ipv4**: IPv4 # * **Ipv6**: IPv6 self.ip_version = ip_version # type: str # The field that is used to sort the Anti-DDoS Origin instances. Set the value to **expireTime**, which indicates that the instances are sorted based on the expiration time. # # You can set the **Orderdire** parameter to specify the sorting method. self.orderby = orderby # type: str # The sorting method. Valid values: # # * **desc**: the descending order. This is the default value. # * **asc**: the ascending order. self.orderdire = orderdire # type: str # The number of the page to return. self.page_no = page_no # type: int # The number of entries to return on each page. self.page_size = page_size # type: int # The ID of the region where the Anti-DDoS Origin instance to query resides. # # > You can call the [DescribeRegions](~~118703~~) operation to query the most recent region list. self.region_id = region_id # type: str # The remarks of the Anti-DDoS Origin instance to query. Fuzzy match is supported. self.remark = remark # type: str # The ID of the resource group to which the Anti-DDoS Origin instance belongs in Resource Management. # # If you do not specify this parameter, the instance belongs to the default resource group. self.resource_group_id = resource_group_id # type: str self.tag = tag # type: list[DescribeInstanceListRequestTag] def validate(self): if self.tag: for k in self.tag: if k: k.validate() def to_map(self): _map = super(DescribeInstanceListRequest, self).to_map() if _map is not None: return _map result = dict() if self.instance_id_list is not None: result['InstanceIdList'] = self.instance_id_list if self.instance_type is not None: result['InstanceType'] = self.instance_type if self.instance_type_list is not None: result['InstanceTypeList'] = self.instance_type_list if self.ip is not None: result['Ip'] = self.ip if self.ip_version is not None: result['IpVersion'] = self.ip_version if self.orderby is not None: result['Orderby'] = self.orderby if self.orderdire is not None: result['Orderdire'] = self.orderdire if self.page_no is not None: result['PageNo'] = self.page_no if self.page_size is not None: result['PageSize'] = self.page_size if self.region_id is not None: result['RegionId'] = self.region_id if self.remark is not None: result['Remark'] = self.remark if self.resource_group_id is not None: result['ResourceGroupId'] = self.resource_group_id result['Tag'] = [] if self.tag is not None: for k in self.tag: result['Tag'].append(k.to_map() if k else None) return result def from_map(self, m=None): m = m or dict() if m.get('InstanceIdList') is not None: self.instance_id_list = m.get('InstanceIdList') if m.get('InstanceType') is not None: self.instance_type = m.get('InstanceType') if m.get('InstanceTypeList') is not None: self.instance_type_list = m.get('InstanceTypeList') if m.get('Ip') is not None: self.ip = m.get('Ip') if m.get('IpVersion') is not None: self.ip_version = m.get('IpVersion') if m.get('Orderby') is not None: self.orderby = m.get('Orderby') if m.get('Orderdire') is not None: self.orderdire = m.get('Orderdire') if m.get('PageNo') is not None: self.page_no = m.get('PageNo') if m.get('PageSize') is not None: self.page_size = m.get('PageSize') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('Remark') is not None: self.remark = m.get('Remark') if m.get('ResourceGroupId') is not None: self.resource_group_id = m.get('ResourceGroupId') self.tag = [] if m.get('Tag') is not None: for k in m.get('Tag'): temp_model = DescribeInstanceListRequestTag() self.tag.append(temp_model.from_map(k)) return self class DescribeInstanceListResponseBodyInstanceListAutoProtectCondition(TeaModel): def __init__(self, events=None): self.events = events # type: list[str] def validate(self): pass def to_map(self): _map = super(DescribeInstanceListResponseBodyInstanceListAutoProtectCondition, self).to_map() if _map is not None: return _map result = dict() if self.events is not None: result['Events'] = self.events return result def from_map(self, m=None): m = m or dict() if m.get('Events') is not None: self.events = m.get('Events') return self class DescribeInstanceListResponseBodyInstanceList(TeaModel): def __init__(self, auto_protect_condition=None, auto_renewal=None, blackholding_count=None, commodity_type=None, coverage_type=None, expire_time=None, gmt_create=None, instance_id=None, instance_type=None, ip_type=None, product=None, remark=None, status=None): self.auto_protect_condition = auto_protect_condition # type: DescribeInstanceListResponseBodyInstanceListAutoProtectCondition # Indicates whether auto-renewal is enabled for the instance. Valid values: # # * **true**: enabled # * **false**: disabled self.auto_renewal = auto_renewal # type: bool # The number of protected public IP addresses for which blackhole filtering is triggered. # # > You can call the [DeleteBlackhole](~~118692~~) operation to deactivate blackhole filtering for a protected IP address. self.blackholding_count = blackholding_count # type: str self.commodity_type = commodity_type # type: str self.coverage_type = coverage_type # type: int # The time when the instance expires. This value is a UNIX timestamp. Unit: milliseconds. self.expire_time = expire_time # type: long # The time when the instance was purchased. This value is a UNIX timestamp. Unit: milliseconds. self.gmt_create = gmt_create # type: long # The ID of the instance. self.instance_id = instance_id # type: str # The mitigation plan of the instance. Valid values: # # * **0**: the Professional mitigation plan # * **1**: the Enterprise mitigation plan self.instance_type = instance_type # type: str # The protocol type of the IP address asset that is protected by the instance. Valid values: # # * **Ipv4**: IPv4 # * **Ipv6**: IPv6 self.ip_type = ip_type # type: str # The type of the cloud service that is associated with the Anti-DDoS Origin instance. By default, this parameter is not returned. If the Anti-DDoS Origin instance is created by using a different cloud service, the code of the cloud service is returned. # # Valid values: # # * **gamebox**: The Anti-DDoS Origin instance is created by using Game Security Box. # * **eip**: The Anti-DDoS Origin instance is created by using an elastic IP address (EIP) for which Anti-DDoS (Enhanced Edition) is enabled. self.product = product # type: str # The remarks of the instance. self.remark = remark # type: str # The status of the instance. Valid values: # # * **1**: normal # * **2**: expired # * **3**: released self.status = status # type: str def validate(self): if self.auto_protect_condition: self.auto_protect_condition.validate() def to_map(self): _map = super(DescribeInstanceListResponseBodyInstanceList, self).to_map() if _map is not None: return _map result = dict() if self.auto_protect_condition is not None: result['AutoProtectCondition'] = self.auto_protect_condition.to_map() if self.auto_renewal is not None: result['AutoRenewal'] = self.auto_renewal if self.blackholding_count is not None: result['BlackholdingCount'] = self.blackholding_count if self.commodity_type is not None: result['CommodityType'] = self.commodity_type if self.coverage_type is not None: result['CoverageType'] = self.coverage_type if self.expire_time is not None: result['ExpireTime'] = self.expire_time if self.gmt_create is not None: result['GmtCreate'] = self.gmt_create if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.instance_type is not None: result['InstanceType'] = self.instance_type if self.ip_type is not None: result['IpType'] = self.ip_type if self.product is not None: result['Product'] = self.product if self.remark is not None: result['Remark'] = self.remark if self.status is not None: result['Status'] = self.status return result def from_map(self, m=None): m = m or dict() if m.get('AutoProtectCondition') is not None: temp_model = DescribeInstanceListResponseBodyInstanceListAutoProtectCondition() self.auto_protect_condition = temp_model.from_map(m['AutoProtectCondition']) if m.get('AutoRenewal') is not None: self.auto_renewal = m.get('AutoRenewal') if m.get('BlackholdingCount') is not None: self.blackholding_count = m.get('BlackholdingCount') if m.get('CommodityType') is not None: self.commodity_type = m.get('CommodityType') if m.get('CoverageType') is not None: self.coverage_type = m.get('CoverageType') if m.get('ExpireTime') is not None: self.expire_time = m.get('ExpireTime') if m.get('GmtCreate') is not None: self.gmt_create = m.get('GmtCreate') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('InstanceType') is not None: self.instance_type = m.get('InstanceType') if m.get('IpType') is not None: self.ip_type = m.get('IpType') if m.get('Product') is not None: self.product = m.get('Product') if m.get('Remark') is not None: self.remark = m.get('Remark') if m.get('Status') is not None: self.status = m.get('Status') return self class DescribeInstanceListResponseBody(TeaModel): def __init__(self, instance_list=None, request_id=None, total=None): # The details about the Anti-DDoS Origin instance. self.instance_list = instance_list # type: list[DescribeInstanceListResponseBodyInstanceList] # The ID of the request. self.request_id = request_id # type: str # The total number of Anti-DDoS Origin instances. self.total = total # type: long def validate(self): if self.instance_list: for k in self.instance_list: if k: k.validate() def to_map(self): _map = super(DescribeInstanceListResponseBody, self).to_map() if _map is not None: return _map result = dict() result['InstanceList'] = [] if self.instance_list is not None: for k in self.instance_list: result['InstanceList'].append(k.to_map() if k else None) if self.request_id is not None: result['RequestId'] = self.request_id if self.total is not None: result['Total'] = self.total return result def from_map(self, m=None): m = m or dict() self.instance_list = [] if m.get('InstanceList') is not None: for k in m.get('InstanceList'): temp_model = DescribeInstanceListResponseBodyInstanceList() self.instance_list.append(temp_model.from_map(k)) if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('Total') is not None: self.total = m.get('Total') return self class DescribeInstanceListResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: DescribeInstanceListResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(DescribeInstanceListResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = DescribeInstanceListResponseBody() self.body = temp_model.from_map(m['body']) return self class DescribeInstanceSpecsRequest(TeaModel): def __init__(self, instance_id_list=None, region_id=None, resource_group_id=None): # The ID of the Anti-DDoS Origin Enterprise instance. This parameter value is a string consisting of JSON arrays. Each element in a JSON array indicates an instance ID. If you want to query more than one instance, separate instance IDs with commas (,). # # > You can call the [DescribeInstanceList](~~118698~~) operation to query the IDs of all Anti-DDoS Origin Enterprise instances in a specific region. self.instance_id_list = instance_id_list # type: str # The region ID of the Anti-DDoS Origin Enterprise instance. Default value: **cn-hangzhou**, which indicates the China (Hangzhou) region. # # > If your instance does not reside in the China (Hangzhou) region, you must specify this parameter to the region ID of your instance. You can call the [DescribeRegions](~~118703~~) operation to query the regions of cloud assets that are supported by an Anti-DDoS Origin instance. self.region_id = region_id # type: str # The ID of the resource group to which the Anti-DDoS Origin Enterprise instance belongs in Resource Management. This parameter is empty by default, which indicates that the Anti-DDoS Origin Enterprise instance belongs to the default resource group. # # For more information about resource groups, see [Create a resource group](~~94485~~). self.resource_group_id = resource_group_id # type: str def validate(self): pass def to_map(self): _map = super(DescribeInstanceSpecsRequest, self).to_map() if _map is not None: return _map result = dict() if self.instance_id_list is not None: result['InstanceIdList'] = self.instance_id_list if self.region_id is not None: result['RegionId'] = self.region_id if self.resource_group_id is not None: result['ResourceGroupId'] = self.resource_group_id return result def from_map(self, m=None): m = m or dict() if m.get('InstanceIdList') is not None: self.instance_id_list = m.get('InstanceIdList') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('ResourceGroupId') is not None: self.resource_group_id = m.get('ResourceGroupId') return self class DescribeInstanceSpecsResponseBodyInstanceSpecsPackConfig(TeaModel): def __init__(self, bandwidth=None, bind_ip_count=None, ip_advance_thre=None, ip_basic_thre=None, ip_spec=None, normal_bandwidth=None, pack_adv_thre=None, pack_basic_thre=None): # The bandwidth of the package configuration. self.bandwidth = bandwidth # type: long # The number of IP addresses that are protected by the Anti-DDoS Origin Enterprise instance. self.bind_ip_count = bind_ip_count # type: int # The burstable bandwidth of each protected IP address. Unit: Gbit/s. self.ip_advance_thre = ip_advance_thre # type: int # The basic bandwidth of each protected IP address. Unit: Gbit/s. self.ip_basic_thre = ip_basic_thre # type: int # The number of IP addresses that can be protected by the Anti-DDoS Origin Enterprise instance. self.ip_spec = ip_spec # type: int # The normal clean bandwidth. Unit: Mbit/s. self.normal_bandwidth = normal_bandwidth # type: int # The burstable protection bandwidth of the Anti-DDoS Origin Enterprise instance. Unit: Gbit/s. self.pack_adv_thre = pack_adv_thre # type: int # The basic protection bandwidth of the Anti-DDoS Origin Enterprise instance. Unit: Gbit/s. self.pack_basic_thre = pack_basic_thre # type: int def validate(self): pass def to_map(self): _map = super(DescribeInstanceSpecsResponseBodyInstanceSpecsPackConfig, self).to_map() if _map is not None: return _map result = dict() if self.bandwidth is not None: result['Bandwidth'] = self.bandwidth if self.bind_ip_count is not None: result['BindIpCount'] = self.bind_ip_count if self.ip_advance_thre is not None: result['IpAdvanceThre'] = self.ip_advance_thre if self.ip_basic_thre is not None: result['IpBasicThre'] = self.ip_basic_thre if self.ip_spec is not None: result['IpSpec'] = self.ip_spec if self.normal_bandwidth is not None: result['NormalBandwidth'] = self.normal_bandwidth if self.pack_adv_thre is not None: result['PackAdvThre'] = self.pack_adv_thre if self.pack_basic_thre is not None: result['PackBasicThre'] = self.pack_basic_thre return result def from_map(self, m=None): m = m or dict() if m.get('Bandwidth') is not None: self.bandwidth = m.get('Bandwidth') if m.get('BindIpCount') is not None: self.bind_ip_count = m.get('BindIpCount') if m.get('IpAdvanceThre') is not None: self.ip_advance_thre = m.get('IpAdvanceThre') if m.get('IpBasicThre') is not None: self.ip_basic_thre = m.get('IpBasicThre') if m.get('IpSpec') is not None: self.ip_spec = m.get('IpSpec') if m.get('NormalBandwidth') is not None: self.normal_bandwidth = m.get('NormalBandwidth') if m.get('PackAdvThre') is not None: self.pack_adv_thre = m.get('PackAdvThre') if m.get('PackBasicThre') is not None: self.pack_basic_thre = m.get('PackBasicThre') return self class DescribeInstanceSpecsResponseBodyInstanceSpecs(TeaModel): def __init__(self, available_defense_times=None, available_delete_blackhole_count=None, defense_times_percent=None, instance_id=None, is_full_defense_mode=None, pack_config=None, region=None, total_defense_times=None): # The number of times that the unlimited protection feature can be enabled. self.available_defense_times = available_defense_times # type: int # The number of times that blackhole filtering can be deactivated. self.available_delete_blackhole_count = available_delete_blackhole_count # type: str self.defense_times_percent = defense_times_percent # type: int # The ID of the Anti-DDoS Origin Enterprise instance. self.instance_id = instance_id # type: str # Indicates whether the unlimited protection feature is enabled. Valid values: # # * **0**: The unlimited protection feature is disabled. # * **1**: The unlimited protection feature is enabled. self.is_full_defense_mode = is_full_defense_mode # type: int # The configurations of the Anti-DDoS Origin Enterprise instance, including the number of protected IP addresses and protection bandwidth. self.pack_config = pack_config # type: DescribeInstanceSpecsResponseBodyInstanceSpecsPackConfig # The region ID of the Anti-DDoS Origin Enterprise instance. # # > You can call the [DescribeRegions](~~118703~~) operation to query the name of the region. self.region = region # type: str # The number of times that the unlimited protection feature can be enabled. self.total_defense_times = total_defense_times # type: int def validate(self): if self.pack_config: self.pack_config.validate() def to_map(self): _map = super(DescribeInstanceSpecsResponseBodyInstanceSpecs, self).to_map() if _map is not None: return _map result = dict() if self.available_defense_times is not None: result['AvailableDefenseTimes'] = self.available_defense_times if self.available_delete_blackhole_count is not None: result['AvailableDeleteBlackholeCount'] = self.available_delete_blackhole_count if self.defense_times_percent is not None: result['DefenseTimesPercent'] = self.defense_times_percent if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.is_full_defense_mode is not None: result['IsFullDefenseMode'] = self.is_full_defense_mode if self.pack_config is not None: result['PackConfig'] = self.pack_config.to_map() if self.region is not None: result['Region'] = self.region if self.total_defense_times is not None: result['TotalDefenseTimes'] = self.total_defense_times return result def from_map(self, m=None): m = m or dict() if m.get('AvailableDefenseTimes') is not None: self.available_defense_times = m.get('AvailableDefenseTimes') if m.get('AvailableDeleteBlackholeCount') is not None: self.available_delete_blackhole_count = m.get('AvailableDeleteBlackholeCount') if m.get('DefenseTimesPercent') is not None: self.defense_times_percent = m.get('DefenseTimesPercent') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('IsFullDefenseMode') is not None: self.is_full_defense_mode = m.get('IsFullDefenseMode') if m.get('PackConfig') is not None: temp_model = DescribeInstanceSpecsResponseBodyInstanceSpecsPackConfig() self.pack_config = temp_model.from_map(m['PackConfig']) if m.get('Region') is not None: self.region = m.get('Region') if m.get('TotalDefenseTimes') is not None: self.total_defense_times = m.get('TotalDefenseTimes') return self class DescribeInstanceSpecsResponseBody(TeaModel): def __init__(self, instance_specs=None, request_id=None): # The specifications of the Anti-DDoS Origin Enterprise instance, including whether the unlimited protection feature is enabled, and the numbers of times that the unlimited protection feature can be enabled and has been enabled. self.instance_specs = instance_specs # type: list[DescribeInstanceSpecsResponseBodyInstanceSpecs] # The ID of the request. self.request_id = request_id # type: str def validate(self): if self.instance_specs: for k in self.instance_specs: if k: k.validate() def to_map(self): _map = super(DescribeInstanceSpecsResponseBody, self).to_map() if _map is not None: return _map result = dict() result['InstanceSpecs'] = [] if self.instance_specs is not None: for k in self.instance_specs: result['InstanceSpecs'].append(k.to_map() if k else None) if self.request_id is not None: result['RequestId'] = self.request_id return result def from_map(self, m=None): m = m or dict() self.instance_specs = [] if m.get('InstanceSpecs') is not None: for k in m.get('InstanceSpecs'): temp_model = DescribeInstanceSpecsResponseBodyInstanceSpecs() self.instance_specs.append(temp_model.from_map(k)) if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class DescribeInstanceSpecsResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: DescribeInstanceSpecsResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(DescribeInstanceSpecsResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = DescribeInstanceSpecsResponseBody() self.body = temp_model.from_map(m['body']) return self class DescribeOnDemandDdosEventRequest(TeaModel): def __init__(self, end_time=None, instance_id=None, ip=None, page_no=None, page_size=None, region_id=None, resource_group_id=None, start_time=None): # The timestamp that specifies the end of the time range to query. Unit: seconds. The timestamp follows the UNIX time format. It is the number of seconds that have elapsed since 00:00:00 Thursday, 1 January 1970. self.end_time = end_time # type: int # The ID of the on-demand instance to query. self.instance_id = instance_id # type: str # The IP address of the protection target. self.ip = ip # type: str # The number of the page to return. Default value: **1**. self.page_no = page_no # type: int # The number of entries to return on each page. The maximum value is **50**. The default value is **10**. self.page_size = page_size # type: int self.region_id = region_id # type: str # The ID of the resource group. self.resource_group_id = resource_group_id # type: str # The timestamp that specifies the beginning of the time range to query. Unit: seconds. The timestamp follows the UNIX time format. It is the number of seconds that have elapsed since 00:00:00 Thursday, 1 January 1970. self.start_time = start_time # type: int def validate(self): pass def to_map(self): _map = super(DescribeOnDemandDdosEventRequest, self).to_map() if _map is not None: return _map result = dict() if self.end_time is not None: result['EndTime'] = self.end_time if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.ip is not None: result['Ip'] = self.ip if self.page_no is not None: result['PageNo'] = self.page_no if self.page_size is not None: result['PageSize'] = self.page_size if self.region_id is not None: result['RegionId'] = self.region_id if self.resource_group_id is not None: result['ResourceGroupId'] = self.resource_group_id if self.start_time is not None: result['StartTime'] = self.start_time return result def from_map(self, m=None): m = m or dict() if m.get('EndTime') is not None: self.end_time = m.get('EndTime') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Ip') is not None: self.ip = m.get('Ip') if m.get('PageNo') is not None: self.page_no = m.get('PageNo') if m.get('PageSize') is not None: self.page_size = m.get('PageSize') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('ResourceGroupId') is not None: self.resource_group_id = m.get('ResourceGroupId') if m.get('StartTime') is not None: self.start_time = m.get('StartTime') return self class DescribeOnDemandDdosEventResponseBodyEvents(TeaModel): def __init__(self, end_time=None, ip=None, mbps=None, pps=None, start_time=None, status=None): # The timestamp that indicates the end time of the attack. Unit: seconds. The timestamp follows the UNIX time format. It is the number of seconds that have elapsed since 00:00:00 Thursday, 1 January 1970. self.end_time = end_time # type: int # The IP address of the protection target that encounters the DDoS attack. self.ip = ip # type: str # The throughput of the DDoS attack. Unit: Mbit/s. self.mbps = mbps # type: int # The packet forwarding rate of the DDoS attack. Unit: packets per second (PPS). self.pps = pps # type: int # The timestamp that indicates the start time of the attack. Unit: seconds. The timestamp follows the UNIX time format. It is the number of seconds that have elapsed since 00:00:00 Thursday, 1 January 1970. self.start_time = start_time # type: int # The status of the event. Valid values: # # * **hole_begin **: indicates that the event is in the blackhole state. # * **hole_end **: indicates that blackhole ends. # * **defense_begin **: indicates that the event is in the cleaning state. # * **defense_end **: indicates that cleaning ends. self.status = status # type: str def validate(self): pass def to_map(self): _map = super(DescribeOnDemandDdosEventResponseBodyEvents, self).to_map() if _map is not None: return _map result = dict() if self.end_time is not None: result['EndTime'] = self.end_time if self.ip is not None: result['Ip'] = self.ip if self.mbps is not None: result['Mbps'] = self.mbps if self.pps is not None: result['Pps'] = self.pps if self.start_time is not None: result['StartTime'] = self.start_time if self.status is not None: result['Status'] = self.status return result def from_map(self, m=None): m = m or dict() if m.get('EndTime') is not None: self.end_time = m.get('EndTime') if m.get('Ip') is not None: self.ip = m.get('Ip') if m.get('Mbps') is not None: self.mbps = m.get('Mbps') if m.get('Pps') is not None: self.pps = m.get('Pps') if m.get('StartTime') is not None: self.start_time = m.get('StartTime') if m.get('Status') is not None: self.status = m.get('Status') return self class DescribeOnDemandDdosEventResponseBody(TeaModel): def __init__(self, events=None, request_id=None, total=None): # The list of DDoS events and the details of each event. self.events = events # type: list[DescribeOnDemandDdosEventResponseBodyEvents] # The ID of the request. self.request_id = request_id # type: str # The total number of DDoS events. self.total = total # type: long def validate(self): if self.events: for k in self.events: if k: k.validate() def to_map(self): _map = super(DescribeOnDemandDdosEventResponseBody, self).to_map() if _map is not None: return _map result = dict() result['Events'] = [] if self.events is not None: for k in self.events: result['Events'].append(k.to_map() if k else None) if self.request_id is not None: result['RequestId'] = self.request_id if self.total is not None: result['Total'] = self.total return result def from_map(self, m=None): m = m or dict() self.events = [] if m.get('Events') is not None: for k in m.get('Events'): temp_model = DescribeOnDemandDdosEventResponseBodyEvents() self.events.append(temp_model.from_map(k)) if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('Total') is not None: self.total = m.get('Total') return self class DescribeOnDemandDdosEventResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: DescribeOnDemandDdosEventResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(DescribeOnDemandDdosEventResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = DescribeOnDemandDdosEventResponseBody() self.body = temp_model.from_map(m['body']) return self class DescribeOnDemandInstanceStatusRequest(TeaModel): def __init__(self, instance_id_list=None, region_id=None): # The IDs of on-demand instances. # # > You can call the [DescribeOnDemandInstance](~~152120~~) operation to query the IDs of all on-demand instances. self.instance_id_list = instance_id_list # type: list[str] # The region ID of the on-demand instance. # # > You can call the [DescribeRegions](~~118703~~) operation to query all regions supported by Anti-DDoS Origin. self.region_id = region_id # type: str def validate(self): pass def to_map(self): _map = super(DescribeOnDemandInstanceStatusRequest, self).to_map() if _map is not None: return _map result = dict() if self.instance_id_list is not None: result['InstanceIdList'] = self.instance_id_list if self.region_id is not None: result['RegionId'] = self.region_id return result def from_map(self, m=None): m = m or dict() if m.get('InstanceIdList') is not None: self.instance_id_list = m.get('InstanceIdList') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') return self class DescribeOnDemandInstanceStatusResponseBodyInstances(TeaModel): def __init__(self, declared=None, desc=None, instance_id=None, mode=None, net=None, registed_as=None, user_id=None): # The details of route advertisement for data centers outside the Chinese mainland. This parameter is a JSON string. The following fields are included in the value: # # * **region**: The code of the data center outside the Chinese mainland. The value is of the STRING type. For more information, see **Codes of data centers outside the Chinese mainland**. # * **declared**: indicates whether the data center advertised the route. The value is of the STRING type. Valid values: **0** and **1**. The value of 0 indicates that the data center did not advertise the route. The value of 1 indicates that the data center advertised the route. self.declared = declared # type: str # The description of the on-demand instance. # # > The value of this parameter is returned only when the information about multiple on-demand instances is returned. The value of this parameter is not returned because the information about only one on-demand instance is returned. self.desc = desc # type: str # The ID of the on-demand instance. # # > The value of this parameter is returned only when the information about multiple on-demand instances is returned. The value of this parameter is not returned because the information about only one on-demand instance is returned. self.instance_id = instance_id # type: str # The mode used to start the on-demand instance. Valid values: # # * **manual**: The instance is manually started. # * **netflow-auto**: The instance is automatically started by using NetFlow that monitors network traffic. self.mode = mode # type: str # The CIDR block of the on-demand instance. self.net = net # type: str # The number of the autonomous system (AS). Set the value to **0**, which indicates that AS is disabled. self.registed_as = registed_as # type: str # The ID of the Alibaba Cloud account. self.user_id = user_id # type: str def validate(self): pass def to_map(self): _map = super(DescribeOnDemandInstanceStatusResponseBodyInstances, self).to_map() if _map is not None: return _map result = dict() if self.declared is not None: result['Declared'] = self.declared if self.desc is not None: result['Desc'] = self.desc if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.mode is not None: result['Mode'] = self.mode if self.net is not None: result['Net'] = self.net if self.registed_as is not None: result['RegistedAs'] = self.registed_as if self.user_id is not None: result['UserId'] = self.user_id return result def from_map(self, m=None): m = m or dict() if m.get('Declared') is not None: self.declared = m.get('Declared') if m.get('Desc') is not None: self.desc = m.get('Desc') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Mode') is not None: self.mode = m.get('Mode') if m.get('Net') is not None: self.net = m.get('Net') if m.get('RegistedAs') is not None: self.registed_as = m.get('RegistedAs') if m.get('UserId') is not None: self.user_id = m.get('UserId') return self class DescribeOnDemandInstanceStatusResponseBody(TeaModel): def __init__(self, instances=None, request_id=None): # The details of the on-demand instance. self.instances = instances # type: list[DescribeOnDemandInstanceStatusResponseBodyInstances] # The ID of the request. self.request_id = request_id # type: str def validate(self): if self.instances: for k in self.instances: if k: k.validate() def to_map(self): _map = super(DescribeOnDemandInstanceStatusResponseBody, self).to_map() if _map is not None: return _map result = dict() result['Instances'] = [] if self.instances is not None: for k in self.instances: result['Instances'].append(k.to_map() if k else None) if self.request_id is not None: result['RequestId'] = self.request_id return result def from_map(self, m=None): m = m or dict() self.instances = [] if m.get('Instances') is not None: for k in m.get('Instances'): temp_model = DescribeOnDemandInstanceStatusResponseBodyInstances() self.instances.append(temp_model.from_map(k)) if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class DescribeOnDemandInstanceStatusResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: DescribeOnDemandInstanceStatusResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(DescribeOnDemandInstanceStatusResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = DescribeOnDemandInstanceStatusResponseBody() self.body = temp_model.from_map(m['body']) return self class DescribeOpEntitiesRequest(TeaModel): def __init__(self, current_page=None, end_time=None, instance_id=None, order_by=None, order_dir=None, page_size=None, region_id=None, resource_group_id=None, start_time=None): # The operation that you want to perform. Set the value to **DescribeOpEntities**. self.current_page = current_page # type: int # The details of the operation log. self.end_time = end_time # type: long # The page number of the returned page. self.instance_id = instance_id # type: str # The sort order of operation logs. Valid values: # # * **ASC**: the ascending order. # * **DESC**: the descending order. self.order_by = order_by # type: str # The ID of the region where the Anti-DDoS Origin instance resides. # # > You can call the [DescribeRegions](~~118703~~) operation to query the most recent region list. self.order_dir = order_dir # type: str # The type of the operation object. The value is fixed as **1**, which indicates Anti-DDoS Origin instances. self.page_size = page_size # type: int # The ID of the Alibaba Cloud account that performs the operation. # # > If the value is **system**, the operation is performed by Anti-DDoS Origin. self.region_id = region_id # type: str # The details about the operation. The value is a string that consists of a JSON struct. The JSON struct contains the following fields: # # * **entity**: the operation object. Data type: object. The fields that are included in the value of the **entity** parameter vary based on the value of the **OpAction** parameter. Take note of the following items: # # * If the value of the **OpAction** parameter is **3**, the value of the **entity** parameter consists of the following field: # # * **ips**: the public IP addresses that are protected by the Anti-DDoS Origin instance. Data type: array # # * If the value of the **OpAction** parameter is **4**, the value of the **entity** parameter consists of the following field: # # * **ips**: the public IP addresses that are no longer protected by the Anti-DDoS Origin instance. Data type: array. # # * If the value of the **OpAction** parameter is **5**, the value of the **entity** parameter consists of the following fields: # # * **baseBandwidth**: the basic protection bandwidth. Unit: Gbit/s. Data type: integer. # * **elasticBandwidth**: the burstable protection bandwidth. Unit: Gbit/s. Data type: integer. # * **opSource**: the source of the operation. The value is fixed as **1**, indicating that the operation is performed by Anti-DDoS Origin. Data type: integer. # # * If the value of the **OpAction** parameter is **6**, the value of the **entity** parameter consists of the following field: # # * **ips**: the public IP addresses for which to deactivate blackhole filtering. Data type: array. # # * If the value of the **OpAction** parameter is **7**, the **entity** parameter is not returned. # # * If the value of the **OpAction** parameter is **8**, the value of the **entity** parameter consists of the following fields: # # * **baseBandwidth**: the basic protection bandwidth. Unit: Gbit/s. Data type: integer. # * **elasticBandwidth**: the burstable protection bandwidth. Unit: Gbit/s. Data type: integer. self.resource_group_id = resource_group_id # type: str # The sorting method of operation logs. Set the value to **opdate**, which indicates sorting based on the operation time. self.start_time = start_time # type: long def validate(self): pass def to_map(self): _map = super(DescribeOpEntitiesRequest, self).to_map() if _map is not None: return _map result = dict() if self.current_page is not None: result['CurrentPage'] = self.current_page if self.end_time is not None: result['EndTime'] = self.end_time if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.order_by is not None: result['OrderBy'] = self.order_by if self.order_dir is not None: result['OrderDir'] = self.order_dir if self.page_size is not None: result['PageSize'] = self.page_size if self.region_id is not None: result['RegionId'] = self.region_id if self.resource_group_id is not None: result['ResourceGroupId'] = self.resource_group_id if self.start_time is not None: result['StartTime'] = self.start_time return result def from_map(self, m=None): m = m or dict() if m.get('CurrentPage') is not None: self.current_page = m.get('CurrentPage') if m.get('EndTime') is not None: self.end_time = m.get('EndTime') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('OrderBy') is not None: self.order_by = m.get('OrderBy') if m.get('OrderDir') is not None: self.order_dir = m.get('OrderDir') if m.get('PageSize') is not None: self.page_size = m.get('PageSize') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('ResourceGroupId') is not None: self.resource_group_id = m.get('ResourceGroupId') if m.get('StartTime') is not None: self.start_time = m.get('StartTime') return self class DescribeOpEntitiesResponseBodyOpEntities(TeaModel): def __init__(self, entity_object=None, entity_type=None, gmt_create=None, op_account=None, op_action=None, op_desc=None): # Queries the operation logs of an Anti-DDoS Origin instance. self.entity_object = entity_object # type: str # All Alibaba Cloud API operations must include common request parameters. For more information about common request parameters, see [Common parameters](~~118841~~). # # For more information about sample requests, see the **"Examples"** section of this topic. self.entity_type = entity_type # type: int # WB01342967 self.gmt_create = gmt_create # type: long self.op_account = op_account # type: str # DescribeOpEntities self.op_action = op_action # type: int self.op_desc = op_desc # type: str def validate(self): pass def to_map(self): _map = super(DescribeOpEntitiesResponseBodyOpEntities, self).to_map() if _map is not None: return _map result = dict() if self.entity_object is not None: result['EntityObject'] = self.entity_object if self.entity_type is not None: result['EntityType'] = self.entity_type if self.gmt_create is not None: result['GmtCreate'] = self.gmt_create if self.op_account is not None: result['OpAccount'] = self.op_account if self.op_action is not None: result['OpAction'] = self.op_action if self.op_desc is not None: result['OpDesc'] = self.op_desc return result def from_map(self, m=None): m = m or dict() if m.get('EntityObject') is not None: self.entity_object = m.get('EntityObject') if m.get('EntityType') is not None: self.entity_type = m.get('EntityType') if m.get('GmtCreate') is not None: self.gmt_create = m.get('GmtCreate') if m.get('OpAccount') is not None: self.op_account = m.get('OpAccount') if m.get('OpAction') is not None: self.op_action = m.get('OpAction') if m.get('OpDesc') is not None: self.op_desc = m.get('OpDesc') return self class DescribeOpEntitiesResponseBody(TeaModel): def __init__(self, op_entities=None, request_id=None, total_count=None): # The ID of the request. self.op_entities = op_entities # type: list[DescribeOpEntitiesResponseBodyOpEntities] # The end time. Operation logs that were generated before this time are queried.**** This value is a UNIX timestamp. Unit: milliseconds. self.request_id = request_id # type: str # The time when the log was generated. This value is a UNIX timestamp. Unit: milliseconds. self.total_count = total_count # type: int def validate(self): if self.op_entities: for k in self.op_entities: if k: k.validate() def to_map(self): _map = super(DescribeOpEntitiesResponseBody, self).to_map() if _map is not None: return _map result = dict() result['OpEntities'] = [] if self.op_entities is not None: for k in self.op_entities: result['OpEntities'].append(k.to_map() if k else None) if self.request_id is not None: result['RequestId'] = self.request_id if self.total_count is not None: result['TotalCount'] = self.total_count return result def from_map(self, m=None): m = m or dict() self.op_entities = [] if m.get('OpEntities') is not None: for k in m.get('OpEntities'): temp_model = DescribeOpEntitiesResponseBodyOpEntities() self.op_entities.append(temp_model.from_map(k)) if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('TotalCount') is not None: self.total_count = m.get('TotalCount') return self class DescribeOpEntitiesResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: DescribeOpEntitiesResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(DescribeOpEntitiesResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = DescribeOpEntitiesResponseBody() self.body = temp_model.from_map(m['body']) return self class DescribePackIpListRequest(TeaModel): def __init__(self, instance_id=None, ip=None, member_uid=None, page_no=None, page_size=None, product_name=None, region_id=None, resource_group_id=None): # The ID of the Anti-DDoS Origin instance to query. # # > You can call the [DescribeInstanceList](~~118698~~) operation to query the IDs of all Anti-DDoS Origin instances. self.instance_id = instance_id # type: str # The protected IP address to query. self.ip = ip # type: str # The ID of the member. self.member_uid = member_uid # type: str # The number of the page to return. self.page_no = page_no # type: int # The number of entries to return on each page. self.page_size = page_size # type: int # The type of the cloud asset to which the protected IP address to query belongs. Valid values: # # * **ECS**: an Elastic Compute Service (ECS) instance. # * **SLB**: a Classic Load Balancer (CLB) instance, originally called a Server Load Balancer (SLB) instance. # * **EIP**: an elastic IP address (EIP). An Internet-facing Application Load Balancer (ALB) instance uses an EIP. If the IP address belongs to the Internet-facing ALB instance, set this parameter to EIP. # * **WAF**: a Web Application Firewall (WAF) instance. self.product_name = product_name # type: str # The ID of the region where the Anti-DDoS Origin instance resides. # # > You can call the [DescribeRegions](~~118703~~) operation to query the most recent region list. self.region_id = region_id # type: str # The ID of the resource group to which the Anti-DDoS Origin instance belongs in Resource Management. # # If you do not specify this parameter, the instance belongs to the default resource group. self.resource_group_id = resource_group_id # type: str def validate(self): pass def to_map(self): _map = super(DescribePackIpListRequest, self).to_map() if _map is not None: return _map result = dict() if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.ip is not None: result['Ip'] = self.ip if self.member_uid is not None: result['MemberUid'] = self.member_uid if self.page_no is not None: result['PageNo'] = self.page_no if self.page_size is not None: result['PageSize'] = self.page_size if self.product_name is not None: result['ProductName'] = self.product_name if self.region_id is not None: result['RegionId'] = self.region_id if self.resource_group_id is not None: result['ResourceGroupId'] = self.resource_group_id return result def from_map(self, m=None): m = m or dict() if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Ip') is not None: self.ip = m.get('Ip') if m.get('MemberUid') is not None: self.member_uid = m.get('MemberUid') if m.get('PageNo') is not None: self.page_no = m.get('PageNo') if m.get('PageSize') is not None: self.page_size = m.get('PageSize') if m.get('ProductName') is not None: self.product_name = m.get('ProductName') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('ResourceGroupId') is not None: self.resource_group_id = m.get('ResourceGroupId') return self class DescribePackIpListResponseBodyIpList(TeaModel): def __init__(self, ip=None, member_uid=None, nsm_status=None, product=None, region=None, remark=None, status=None): # The IP address. self.ip = ip # type: str # The ID of the member. self.member_uid = member_uid # type: str self.nsm_status = nsm_status # type: int # The type of the cloud asset to which the IP address belongs. Valid values: # # * **ECS**: an ECS instance. # * **SLB**: a CLB instance, originally called an SLB instance. # * **EIP**: an EIP. If the IP address belongs to an ALB instance, the value EIP is returned. # * **WAF**: a WAF instance. self.product = product # type: str # The region to which the protected IP address belongs. # # > If the protected IP address is in the same region as the instance, this parameter is not returned. self.region = region # type: str # The description of the cloud asset to which the IP address belongs. The asset can be an ECS instance or an SLB instance. # # > If no descriptions are provided for the asset, this parameter is not returned. self.remark = remark # type: str # The status of the IP address. Valid values: # # * **normal**: The IP address is in the normal state, which indicates that the IP address is not under attack. # * **hole_begin**: Blackhole filtering is triggered for the IP address. self.status = status # type: str def validate(self): pass def to_map(self): _map = super(DescribePackIpListResponseBodyIpList, self).to_map() if _map is not None: return _map result = dict() if self.ip is not None: result['Ip'] = self.ip if self.member_uid is not None: result['MemberUid'] = self.member_uid if self.nsm_status is not None: result['NsmStatus'] = self.nsm_status if self.product is not None: result['Product'] = self.product if self.region is not None: result['Region'] = self.region if self.remark is not None: result['Remark'] = self.remark if self.status is not None: result['Status'] = self.status return result def from_map(self, m=None): m = m or dict() if m.get('Ip') is not None: self.ip = m.get('Ip') if m.get('MemberUid') is not None: self.member_uid = m.get('MemberUid') if m.get('NsmStatus') is not None: self.nsm_status = m.get('NsmStatus') if m.get('Product') is not None: self.product = m.get('Product') if m.get('Region') is not None: self.region = m.get('Region') if m.get('Remark') is not None: self.remark = m.get('Remark') if m.get('Status') is not None: self.status = m.get('Status') return self class DescribePackIpListResponseBody(TeaModel): def __init__(self, code=None, ip_list=None, request_id=None, success=None, total=None): # The HTTP status code of the request. # # For more information about status codes, see [Common parameters](~~118841~~). self.code = code # type: str # The IP addresses that are protected by the instance. self.ip_list = ip_list # type: list[DescribePackIpListResponseBodyIpList] # The ID of the request. self.request_id = request_id # type: str # Indicates whether the request is successful. Valid values: # # * **true**: The call is successful. # * **false**: The call fails. self.success = success # type: bool # The number of protected IP addresses. self.total = total # type: int def validate(self): if self.ip_list: for k in self.ip_list: if k: k.validate() def to_map(self): _map = super(DescribePackIpListResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code result['IpList'] = [] if self.ip_list is not None: for k in self.ip_list: result['IpList'].append(k.to_map() if k else None) if self.request_id is not None: result['RequestId'] = self.request_id if self.success is not None: result['Success'] = self.success if self.total is not None: result['Total'] = self.total return result def from_map(self, m=None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') self.ip_list = [] if m.get('IpList') is not None: for k in m.get('IpList'): temp_model = DescribePackIpListResponseBodyIpList() self.ip_list.append(temp_model.from_map(k)) if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('Success') is not None: self.success = m.get('Success') if m.get('Total') is not None: self.total = m.get('Total') return self class DescribePackIpListResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: DescribePackIpListResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(DescribePackIpListResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = DescribePackIpListResponseBody() self.body = temp_model.from_map(m['body']) return self class DescribeRdMemberListRequest(TeaModel): def __init__(self, page_no=None, page_size=None, resource_directory_id=None): self.page_no = page_no # type: int self.page_size = page_size # type: int self.resource_directory_id = resource_directory_id # type: str def validate(self): pass def to_map(self): _map = super(DescribeRdMemberListRequest, self).to_map() if _map is not None: return _map result = dict() if self.page_no is not None: result['PageNo'] = self.page_no if self.page_size is not None: result['PageSize'] = self.page_size if self.resource_directory_id is not None: result['ResourceDirectoryId'] = self.resource_directory_id return result def from_map(self, m=None): m = m or dict() if m.get('PageNo') is not None: self.page_no = m.get('PageNo') if m.get('PageSize') is not None: self.page_size = m.get('PageSize') if m.get('ResourceDirectoryId') is not None: self.resource_directory_id = m.get('ResourceDirectoryId') return self class DescribeRdMemberListResponseBodyMemberList(TeaModel): def __init__(self, gmt_create=None, name=None, uid=None): self.gmt_create = gmt_create # type: long self.name = name # type: str self.uid = uid # type: str def validate(self): pass def to_map(self): _map = super(DescribeRdMemberListResponseBodyMemberList, self).to_map() if _map is not None: return _map result = dict() if self.gmt_create is not None: result['GmtCreate'] = self.gmt_create if self.name is not None: result['Name'] = self.name if self.uid is not None: result['Uid'] = self.uid return result def from_map(self, m=None): m = m or dict() if m.get('GmtCreate') is not None: self.gmt_create = m.get('GmtCreate') if m.get('Name') is not None: self.name = m.get('Name') if m.get('Uid') is not None: self.uid = m.get('Uid') return self class DescribeRdMemberListResponseBody(TeaModel): def __init__(self, member_list=None, request_id=None, total=None): self.member_list = member_list # type: list[DescribeRdMemberListResponseBodyMemberList] self.request_id = request_id # type: str self.total = total # type: long def validate(self): if self.member_list: for k in self.member_list: if k: k.validate() def to_map(self): _map = super(DescribeRdMemberListResponseBody, self).to_map() if _map is not None: return _map result = dict() result['MemberList'] = [] if self.member_list is not None: for k in self.member_list: result['MemberList'].append(k.to_map() if k else None) if self.request_id is not None: result['RequestId'] = self.request_id if self.total is not None: result['Total'] = self.total return result def from_map(self, m=None): m = m or dict() self.member_list = [] if m.get('MemberList') is not None: for k in m.get('MemberList'): temp_model = DescribeRdMemberListResponseBodyMemberList() self.member_list.append(temp_model.from_map(k)) if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('Total') is not None: self.total = m.get('Total') return self class DescribeRdMemberListResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: DescribeRdMemberListResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(DescribeRdMemberListResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = DescribeRdMemberListResponseBody() self.body = temp_model.from_map(m['body']) return self class DescribeRdStatusResponseBody(TeaModel): def __init__(self, current_uid=None, current_uid_type=None, enabled=None, local_enable=None, master_uid=None, remote_enable=None, request_id=None, root_uid=None, service_principal_enabled=None): self.current_uid = current_uid # type: str self.current_uid_type = current_uid_type # type: str self.enabled = enabled # type: bool self.local_enable = local_enable # type: bool self.master_uid = master_uid # type: str self.remote_enable = remote_enable # type: bool self.request_id = request_id # type: str self.root_uid = root_uid # type: str self.service_principal_enabled = service_principal_enabled # type: bool def validate(self): pass def to_map(self): _map = super(DescribeRdStatusResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.current_uid is not None: result['CurrentUid'] = self.current_uid if self.current_uid_type is not None: result['CurrentUidType'] = self.current_uid_type if self.enabled is not None: result['Enabled'] = self.enabled if self.local_enable is not None: result['LocalEnable'] = self.local_enable if self.master_uid is not None: result['MasterUid'] = self.master_uid if self.remote_enable is not None: result['RemoteEnable'] = self.remote_enable if self.request_id is not None: result['RequestId'] = self.request_id if self.root_uid is not None: result['RootUid'] = self.root_uid if self.service_principal_enabled is not None: result['ServicePrincipalEnabled'] = self.service_principal_enabled return result def from_map(self, m=None): m = m or dict() if m.get('CurrentUid') is not None: self.current_uid = m.get('CurrentUid') if m.get('CurrentUidType') is not None: self.current_uid_type = m.get('CurrentUidType') if m.get('Enabled') is not None: self.enabled = m.get('Enabled') if m.get('LocalEnable') is not None: self.local_enable = m.get('LocalEnable') if m.get('MasterUid') is not None: self.master_uid = m.get('MasterUid') if m.get('RemoteEnable') is not None: self.remote_enable = m.get('RemoteEnable') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('RootUid') is not None: self.root_uid = m.get('RootUid') if m.get('ServicePrincipalEnabled') is not None: self.service_principal_enabled = m.get('ServicePrincipalEnabled') return self class DescribeRdStatusResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: DescribeRdStatusResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(DescribeRdStatusResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = DescribeRdStatusResponseBody() self.body = temp_model.from_map(m['body']) return self class DescribeRegionsRequest(TeaModel): def __init__(self, region_id=None, resource_group_id=None): # The region ID to query. The default value is **cn-hangzhou**, which indicates that the regions of cloud assets that are supported by an Anti-DDoS Origin instance in the China (Hangzhou) region are queried. # # For more information about the IDs of other regions, see [Regions and zones](~~40654~~). self.region_id = region_id # type: str # The ID of the resource group to which the Anti-DDoS Origin instance belongs in Resource Management. This parameter is empty by default, which indicates that the instance belongs to the default resource group. # # For more information about resource groups, see [Create a resource group](~~94485~~). self.resource_group_id = resource_group_id # type: str def validate(self): pass def to_map(self): _map = super(DescribeRegionsRequest, self).to_map() if _map is not None: return _map result = dict() if self.region_id is not None: result['RegionId'] = self.region_id if self.resource_group_id is not None: result['ResourceGroupId'] = self.resource_group_id return result def from_map(self, m=None): m = m or dict() if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('ResourceGroupId') is not None: self.resource_group_id = m.get('ResourceGroupId') return self class DescribeRegionsResponseBodyRegions(TeaModel): def __init__(self, region_en_name=None, region_id=None, region_name=None): # The English name of the region where the cloud assets reside. self.region_en_name = region_en_name # type: str # The ID of the region. self.region_id = region_id # type: str # The name of the region where the cloud assets reside. self.region_name = region_name # type: str def validate(self): pass def to_map(self): _map = super(DescribeRegionsResponseBodyRegions, self).to_map() if _map is not None: return _map result = dict() if self.region_en_name is not None: result['RegionEnName'] = self.region_en_name if self.region_id is not None: result['RegionId'] = self.region_id if self.region_name is not None: result['RegionName'] = self.region_name return result def from_map(self, m=None): m = m or dict() if m.get('RegionEnName') is not None: self.region_en_name = m.get('RegionEnName') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('RegionName') is not None: self.region_name = m.get('RegionName') return self class DescribeRegionsResponseBody(TeaModel): def __init__(self, code=None, regions=None, request_id=None, success=None): # The HTTP status code. self.code = code # type: str # The information about regions of the cloud assets that are supported by the Anti-DDoS Origin instance. The information includes region IDs and names. self.regions = regions # type: list[DescribeRegionsResponseBodyRegions] # The ID of the request. self.request_id = request_id # type: str # Indicates whether the request is successful. Valid values: # # * **true**: The request is successful. # * **false**: The request failed. self.success = success # type: bool def validate(self): if self.regions: for k in self.regions: if k: k.validate() def to_map(self): _map = super(DescribeRegionsResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code result['Regions'] = [] if self.regions is not None: for k in self.regions: result['Regions'].append(k.to_map() if k else None) if self.request_id is not None: result['RequestId'] = self.request_id if self.success is not None: result['Success'] = self.success return result def from_map(self, m=None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') self.regions = [] if m.get('Regions') is not None: for k in m.get('Regions'): temp_model = DescribeRegionsResponseBodyRegions() self.regions.append(temp_model.from_map(k)) if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('Success') is not None: self.success = m.get('Success') return self class DescribeRegionsResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: DescribeRegionsResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(DescribeRegionsResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = DescribeRegionsResponseBody() self.body = temp_model.from_map(m['body']) return self class DescribeTrafficRequest(TeaModel): def __init__(self, end_time=None, flow_type=None, instance_id=None, interval=None, ip=None, ipnet=None, region_id=None, resource_group_id=None, start_time=None): # The end of the time range to query. The value is a UNIX timestamp. Unit: seconds. # # If you do not specify this parameter, the current system time is used as the end time. self.end_time = end_time # type: int # The type of the traffic statistics to query. Valid values: # # * **max**: the peak traffic within the specified interval # * **avg**: the average traffic within the specified interval self.flow_type = flow_type # type: str # The ID of the Anti-DDoS Origin instance to query. # # > You can call the [DescribeInstanceList](~~118698~~) operation to query the IDs of all Anti-DDoS Origin instances. # # If you specify an on-demand instance, you must configure the **Interval** parameter. self.instance_id = instance_id # type: str # The interval at which the traffic statistics are calculated. Unit: seconds. Default value: **5**. self.interval = interval # type: int # The public IP address of the asset to query. If you do not specify this parameter, the traffic statistics of all public IP addresses that are protected by the Anti-DDoS Origin instance are queried. # # > The public IP address must be a protected object of the Anti-DDoS Origin instance. You can call the [DescribePackIpList](~~118701~~) operation to query all protected objects of the Anti-DDoS Origin instance. self.ip = ip # type: str # The Classless Inter-Domain Routing (CIDR) block of the on-demand instance that you want to query. self.ipnet = ipnet # type: str # The ID of the region where the Anti-DDoS Origin instance resides. # # > You can call the [DescribeRegions](~~118703~~) operation to query the most recent region list. self.region_id = region_id # type: str # The ID of the resource group to which the Anti-DDoS Origin instance belongs in Resource Management. # # If you do not specify this parameter, the instance belongs to the default resource group. self.resource_group_id = resource_group_id # type: str # The beginning of the time range to query. The value is a UNIX timestamp. Unit: seconds. self.start_time = start_time # type: int def validate(self): pass def to_map(self): _map = super(DescribeTrafficRequest, self).to_map() if _map is not None: return _map result = dict() if self.end_time is not None: result['EndTime'] = self.end_time if self.flow_type is not None: result['FlowType'] = self.flow_type if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.interval is not None: result['Interval'] = self.interval if self.ip is not None: result['Ip'] = self.ip if self.ipnet is not None: result['Ipnet'] = self.ipnet if self.region_id is not None: result['RegionId'] = self.region_id if self.resource_group_id is not None: result['ResourceGroupId'] = self.resource_group_id if self.start_time is not None: result['StartTime'] = self.start_time return result def from_map(self, m=None): m = m or dict() if m.get('EndTime') is not None: self.end_time = m.get('EndTime') if m.get('FlowType') is not None: self.flow_type = m.get('FlowType') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Interval') is not None: self.interval = m.get('Interval') if m.get('Ip') is not None: self.ip = m.get('Ip') if m.get('Ipnet') is not None: self.ipnet = m.get('Ipnet') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('ResourceGroupId') is not None: self.resource_group_id = m.get('ResourceGroupId') if m.get('StartTime') is not None: self.start_time = m.get('StartTime') return self class DescribeTrafficResponseBodyFlowList(TeaModel): def __init__(self, attack_bps=None, attack_pps=None, flow_type=None, kbps=None, name=None, pps=None, time=None): # The bandwidth of attack traffic. Unit: bit/s. # # > This parameter is returned only if attack traffic exists. self.attack_bps = attack_bps # type: long # The packet forwarding rate of attack traffic. Unit: packets per second. # # > This parameter is returned only if attack traffic exists. self.attack_pps = attack_pps # type: long # The type of the traffic statistics. Valid values: # # * **max**: the peak traffic within the specified interval # * **avg**: the average traffic within the specified interval self.flow_type = flow_type # type: str # The bandwidth of the total traffic. Unit: Kbit/s. self.kbps = kbps # type: int # The ID of the traffic statistics. self.name = name # type: str # The packet forwarding rate of the total traffic. Unit: packets per second. self.pps = pps # type: int # The time when the traffic statistics are calculated. This value is a UNIX timestamp. Unit: seconds. self.time = time # type: int def validate(self): pass def to_map(self): _map = super(DescribeTrafficResponseBodyFlowList, self).to_map() if _map is not None: return _map result = dict() if self.attack_bps is not None: result['AttackBps'] = self.attack_bps if self.attack_pps is not None: result['AttackPps'] = self.attack_pps if self.flow_type is not None: result['FlowType'] = self.flow_type if self.kbps is not None: result['Kbps'] = self.kbps if self.name is not None: result['Name'] = self.name if self.pps is not None: result['Pps'] = self.pps if self.time is not None: result['Time'] = self.time return result def from_map(self, m=None): m = m or dict() if m.get('AttackBps') is not None: self.attack_bps = m.get('AttackBps') if m.get('AttackPps') is not None: self.attack_pps = m.get('AttackPps') if m.get('FlowType') is not None: self.flow_type = m.get('FlowType') if m.get('Kbps') is not None: self.kbps = m.get('Kbps') if m.get('Name') is not None: self.name = m.get('Name') if m.get('Pps') is not None: self.pps = m.get('Pps') if m.get('Time') is not None: self.time = m.get('Time') return self class DescribeTrafficResponseBody(TeaModel): def __init__(self, flow_list=None, request_id=None): # The queried traffic statistics. self.flow_list = flow_list # type: list[DescribeTrafficResponseBodyFlowList] # The ID of the request. self.request_id = request_id # type: str def validate(self): if self.flow_list: for k in self.flow_list: if k: k.validate() def to_map(self): _map = super(DescribeTrafficResponseBody, self).to_map() if _map is not None: return _map result = dict() result['FlowList'] = [] if self.flow_list is not None: for k in self.flow_list: result['FlowList'].append(k.to_map() if k else None) if self.request_id is not None: result['RequestId'] = self.request_id return result def from_map(self, m=None): m = m or dict() self.flow_list = [] if m.get('FlowList') is not None: for k in m.get('FlowList'): temp_model = DescribeTrafficResponseBodyFlowList() self.flow_list.append(temp_model.from_map(k)) if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class DescribeTrafficResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: DescribeTrafficResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(DescribeTrafficResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = DescribeTrafficResponseBody() self.body = temp_model.from_map(m['body']) return self class DettachAssetGroupToInstanceRequestAssetGroupList(TeaModel): def __init__(self, name=None, region=None, type=None): # The ID of the asset. If the asset is a Web Application Firewall (WAF) instance, specify the ID of the WAF instance. self.name = name # type: str # The region ID of the asset. self.region = region # type: str # The type of the asset. Valid values: # # * **waf**: WAF instance # * **ga**: Global Accelerator (GA) instance self.type = type # type: str def validate(self): pass def to_map(self): _map = super(DettachAssetGroupToInstanceRequestAssetGroupList, self).to_map() if _map is not None: return _map result = dict() if self.name is not None: result['Name'] = self.name if self.region is not None: result['Region'] = self.region if self.type is not None: result['Type'] = self.type return result def from_map(self, m=None): m = m or dict() if m.get('Name') is not None: self.name = m.get('Name') if m.get('Region') is not None: self.region = m.get('Region') if m.get('Type') is not None: self.type = m.get('Type') return self class DettachAssetGroupToInstanceRequest(TeaModel): def __init__(self, asset_group_list=None, instance_id=None, region_id=None, source_ip=None): # The information about the asset that you want to dissociate. self.asset_group_list = asset_group_list # type: list[DettachAssetGroupToInstanceRequestAssetGroupList] # The ID of the instance. # # > You can call the [DescribeInstanceList](~~118698~~) operation to query the IDs of all Anti-DDoS Origin instances of paid editions. self.instance_id = instance_id # type: str # The ID of the region in which the instance resides. # # > You can call the [DescribeRegions](~~118703~~) operation to query the most recent region list. self.region_id = region_id # type: str # The source IP address of the request. The system specifies this parameter. self.source_ip = source_ip # type: str def validate(self): if self.asset_group_list: for k in self.asset_group_list: if k: k.validate() def to_map(self): _map = super(DettachAssetGroupToInstanceRequest, self).to_map() if _map is not None: return _map result = dict() result['AssetGroupList'] = [] if self.asset_group_list is not None: for k in self.asset_group_list: result['AssetGroupList'].append(k.to_map() if k else None) if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.region_id is not None: result['RegionId'] = self.region_id if self.source_ip is not None: result['SourceIp'] = self.source_ip return result def from_map(self, m=None): m = m or dict() self.asset_group_list = [] if m.get('AssetGroupList') is not None: for k in m.get('AssetGroupList'): temp_model = DettachAssetGroupToInstanceRequestAssetGroupList() self.asset_group_list.append(temp_model.from_map(k)) if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('SourceIp') is not None: self.source_ip = m.get('SourceIp') return self class DettachAssetGroupToInstanceShrinkRequest(TeaModel): def __init__(self, asset_group_list_shrink=None, instance_id=None, region_id=None, source_ip=None): # The information about the asset that you want to dissociate. self.asset_group_list_shrink = asset_group_list_shrink # type: str # The ID of the instance. # # > You can call the [DescribeInstanceList](~~118698~~) operation to query the IDs of all Anti-DDoS Origin instances of paid editions. self.instance_id = instance_id # type: str # The ID of the region in which the instance resides. # # > You can call the [DescribeRegions](~~118703~~) operation to query the most recent region list. self.region_id = region_id # type: str # The source IP address of the request. The system specifies this parameter. self.source_ip = source_ip # type: str def validate(self): pass def to_map(self): _map = super(DettachAssetGroupToInstanceShrinkRequest, self).to_map() if _map is not None: return _map result = dict() if self.asset_group_list_shrink is not None: result['AssetGroupList'] = self.asset_group_list_shrink if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.region_id is not None: result['RegionId'] = self.region_id if self.source_ip is not None: result['SourceIp'] = self.source_ip return result def from_map(self, m=None): m = m or dict() if m.get('AssetGroupList') is not None: self.asset_group_list_shrink = m.get('AssetGroupList') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('SourceIp') is not None: self.source_ip = m.get('SourceIp') return self class DettachAssetGroupToInstanceResponseBody(TeaModel): def __init__(self, request_id=None): # The request ID. self.request_id = request_id # type: str def validate(self): pass def to_map(self): _map = super(DettachAssetGroupToInstanceResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.request_id is not None: result['RequestId'] = self.request_id return result def from_map(self, m=None): m = m or dict() if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class DettachAssetGroupToInstanceResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: DettachAssetGroupToInstanceResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(DettachAssetGroupToInstanceResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = DettachAssetGroupToInstanceResponseBody() self.body = temp_model.from_map(m['body']) return self class GetSlsOpenStatusRequest(TeaModel): def __init__(self, region_id=None, resource_group_id=None): # The ID of the region where the Anti-DDoS Origin instance resides. # # For more information about the valid values of this parameter, see [Regions and zones](~~188196~~). self.region_id = region_id # type: str # The ID of the resource group to which the Anti-DDoS Origin instance belongs in Resource Management. This parameter is empty by default, which indicates that the Anti-DDoS Origin instance belongs to the default resource group. # # For more information about resource groups, see [Create a resource group](~~94485~~). self.resource_group_id = resource_group_id # type: str def validate(self): pass def to_map(self): _map = super(GetSlsOpenStatusRequest, self).to_map() if _map is not None: return _map result = dict() if self.region_id is not None: result['RegionId'] = self.region_id if self.resource_group_id is not None: result['ResourceGroupId'] = self.resource_group_id return result def from_map(self, m=None): m = m or dict() if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('ResourceGroupId') is not None: self.resource_group_id = m.get('ResourceGroupId') return self class GetSlsOpenStatusResponseBody(TeaModel): def __init__(self, request_id=None, sls_open_status=None): # The ID of the request. self.request_id = request_id # type: str # Indicates whether Log Service was activated. Valid values: # # * **true**: Log Service was activated. # * **false**: Log Service was not activated. self.sls_open_status = sls_open_status # type: bool def validate(self): pass def to_map(self): _map = super(GetSlsOpenStatusResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.request_id is not None: result['RequestId'] = self.request_id if self.sls_open_status is not None: result['SlsOpenStatus'] = self.sls_open_status return result def from_map(self, m=None): m = m or dict() if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('SlsOpenStatus') is not None: self.sls_open_status = m.get('SlsOpenStatus') return self class GetSlsOpenStatusResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: GetSlsOpenStatusResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(GetSlsOpenStatusResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = GetSlsOpenStatusResponseBody() self.body = temp_model.from_map(m['body']) return self class ListOpenedAccessLogInstancesRequest(TeaModel): def __init__(self, page_number=None, page_size=None, resource_group_id=None): # The number of the page to return. Pages start from page 1. Default value: **1**. self.page_number = page_number # type: int # The number of entries to return on each page. Default value: **10**. self.page_size = page_size # type: int # The ID of the resource group to which the Anti-DDoS Origin instance belongs in Resource Management. This parameter is empty by default, which indicates that the Anti-DDoS Origin instance belongs to the default resource group. # # For more information about resource groups, see [Create a resource group](~~94485~~). self.resource_group_id = resource_group_id # type: str def validate(self): pass def to_map(self): _map = super(ListOpenedAccessLogInstancesRequest, self).to_map() if _map is not None: return _map result = dict() if self.page_number is not None: result['PageNumber'] = self.page_number if self.page_size is not None: result['PageSize'] = self.page_size if self.resource_group_id is not None: result['ResourceGroupId'] = self.resource_group_id return result def from_map(self, m=None): m = m or dict() if m.get('PageNumber') is not None: self.page_number = m.get('PageNumber') if m.get('PageSize') is not None: self.page_size = m.get('PageSize') if m.get('ResourceGroupId') is not None: self.resource_group_id = m.get('ResourceGroupId') return self class ListOpenedAccessLogInstancesResponseBodySlsConfigStatus(TeaModel): def __init__(self, enable=None, instance_id=None): # Indicates whether log analysis was enabled for the Anti-DDoS Origin instance. Valid values: # # * **true**: Log analysis was enabled. # * **false**: Log analysis was disabled. self.enable = enable # type: bool # The ID of the Anti-DDoS Origin instance. self.instance_id = instance_id # type: str def validate(self): pass def to_map(self): _map = super(ListOpenedAccessLogInstancesResponseBodySlsConfigStatus, self).to_map() if _map is not None: return _map result = dict() if self.enable is not None: result['Enable'] = self.enable if self.instance_id is not None: result['InstanceId'] = self.instance_id return result def from_map(self, m=None): m = m or dict() if m.get('Enable') is not None: self.enable = m.get('Enable') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') return self class ListOpenedAccessLogInstancesResponseBody(TeaModel): def __init__(self, request_id=None, sls_config_status=None, total_count=None): # The ID of the request. self.request_id = request_id # type: str # The configuration of log analysis for the Anti-DDoS Origin instance. self.sls_config_status = sls_config_status # type: list[ListOpenedAccessLogInstancesResponseBodySlsConfigStatus] # The number of the Anti-DDoS Origin instances for which log analysis was enabled. self.total_count = total_count # type: int def validate(self): if self.sls_config_status: for k in self.sls_config_status: if k: k.validate() def to_map(self): _map = super(ListOpenedAccessLogInstancesResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.request_id is not None: result['RequestId'] = self.request_id result['SlsConfigStatus'] = [] if self.sls_config_status is not None: for k in self.sls_config_status: result['SlsConfigStatus'].append(k.to_map() if k else None) if self.total_count is not None: result['TotalCount'] = self.total_count return result def from_map(self, m=None): m = m or dict() if m.get('RequestId') is not None: self.request_id = m.get('RequestId') self.sls_config_status = [] if m.get('SlsConfigStatus') is not None: for k in m.get('SlsConfigStatus'): temp_model = ListOpenedAccessLogInstancesResponseBodySlsConfigStatus() self.sls_config_status.append(temp_model.from_map(k)) if m.get('TotalCount') is not None: self.total_count = m.get('TotalCount') return self class ListOpenedAccessLogInstancesResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: ListOpenedAccessLogInstancesResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(ListOpenedAccessLogInstancesResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = ListOpenedAccessLogInstancesResponseBody() self.body = temp_model.from_map(m['body']) return self class ListTagKeysRequest(TeaModel): def __init__(self, current_page=None, page_size=None, region_id=None, resource_group_id=None, resource_type=None): # The number of the page to return. Pages start from page **1**. Default value: **1**. self.current_page = current_page # type: int # The number of entries to return on each page. Valid values: 1 to **50**. Default value: **10**. self.page_size = page_size # type: int # The region ID. self.region_id = region_id # type: str # The ID of the resource group. self.resource_group_id = resource_group_id # type: str # The type of the resource. Valid value: **INSTANCE**. self.resource_type = resource_type # type: str def validate(self): pass def to_map(self): _map = super(ListTagKeysRequest, self).to_map() if _map is not None: return _map result = dict() if self.current_page is not None: result['CurrentPage'] = self.current_page if self.page_size is not None: result['PageSize'] = self.page_size if self.region_id is not None: result['RegionId'] = self.region_id if self.resource_group_id is not None: result['ResourceGroupId'] = self.resource_group_id if self.resource_type is not None: result['ResourceType'] = self.resource_type return result def from_map(self, m=None): m = m or dict() if m.get('CurrentPage') is not None: self.current_page = m.get('CurrentPage') if m.get('PageSize') is not None: self.page_size = m.get('PageSize') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('ResourceGroupId') is not None: self.resource_group_id = m.get('ResourceGroupId') if m.get('ResourceType') is not None: self.resource_type = m.get('ResourceType') return self class ListTagKeysResponseBodyTagKeys(TeaModel): def __init__(self, tag_count=None, tag_key=None): # The total number of tag values that correspond to each key. self.tag_count = tag_count # type: int # The key of each tag. self.tag_key = tag_key # type: str def validate(self): pass def to_map(self): _map = super(ListTagKeysResponseBodyTagKeys, self).to_map() if _map is not None: return _map result = dict() if self.tag_count is not None: result['TagCount'] = self.tag_count if self.tag_key is not None: result['TagKey'] = self.tag_key return result def from_map(self, m=None): m = m or dict() if m.get('TagCount') is not None: self.tag_count = m.get('TagCount') if m.get('TagKey') is not None: self.tag_key = m.get('TagKey') return self class ListTagKeysResponseBody(TeaModel): def __init__(self, current_page=None, page_size=None, request_id=None, tag_keys=None, total_count=None): # The page number of the returned page. self.current_page = current_page # type: int # The number of entries returned per page. self.page_size = page_size # type: int # The ID of the request. self.request_id = request_id # type: str # The list of tags and the details of each tag. self.tag_keys = tag_keys # type: list[ListTagKeysResponseBodyTagKeys] # The total number of tags. self.total_count = total_count # type: int def validate(self): if self.tag_keys: for k in self.tag_keys: if k: k.validate() def to_map(self): _map = super(ListTagKeysResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.current_page is not None: result['CurrentPage'] = self.current_page if self.page_size is not None: result['PageSize'] = self.page_size if self.request_id is not None: result['RequestId'] = self.request_id result['TagKeys'] = [] if self.tag_keys is not None: for k in self.tag_keys: result['TagKeys'].append(k.to_map() if k else None) if self.total_count is not None: result['TotalCount'] = self.total_count return result def from_map(self, m=None): m = m or dict() if m.get('CurrentPage') is not None: self.current_page = m.get('CurrentPage') if m.get('PageSize') is not None: self.page_size = m.get('PageSize') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') self.tag_keys = [] if m.get('TagKeys') is not None: for k in m.get('TagKeys'): temp_model = ListTagKeysResponseBodyTagKeys() self.tag_keys.append(temp_model.from_map(k)) if m.get('TotalCount') is not None: self.total_count = m.get('TotalCount') return self class ListTagKeysResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: ListTagKeysResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(ListTagKeysResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = ListTagKeysResponseBody() self.body = temp_model.from_map(m['body']) return self class ListTagResourcesRequestTag(TeaModel): def __init__(self, key=None, value=None): # The key of the tag to query. # # > The **ResourceIds.N** parameter and the key-value pair (Tag.N.Key and Tag.N.Value) cannot be left empty at the same time. self.key = key # type: str # The value of the tag to query. # # > The **ResourceIds.N** parameter and the key-value pair (Tag.N.Key and Tag.N.Value) cannot be left empty at the same time. self.value = value # type: str def validate(self): pass def to_map(self): _map = super(ListTagResourcesRequestTag, self).to_map() if _map is not None: return _map result = dict() if self.key is not None: result['Key'] = self.key if self.value is not None: result['Value'] = self.value return result def from_map(self, m=None): m = m or dict() if m.get('Key') is not None: self.key = m.get('Key') if m.get('Value') is not None: self.value = m.get('Value') return self class ListTagResourcesRequest(TeaModel): def __init__(self, next_token=None, region_id=None, resource_group_id=None, resource_id=None, resource_type=None, tag=None): # The query token. Set the value to the **NextToken** value that is returned in the last call to the ListTagResources operation. Leave this parameter empty the first time you call this operation. self.next_token = next_token # type: str # The ID of the region where the Anti-DDoS Origin instance resides. # # > You can call the [DescribeRegions](~~118703~~) operation to query the most recent region list. self.region_id = region_id # type: str # The ID of the resource group to which the Anti-DDoS Origin instance belongs in Resource Management. # # If you do not specify this parameter, the instance belongs to the default resource group. self.resource_group_id = resource_group_id # type: str # The IDs of Anti-DDoS Origin Instances to query. # # > You can call the [DescribeInstanceList](~~118698~~) operation to query the IDs of all Anti-DDoS Origin instances. self.resource_id = resource_id # type: list[str] # The type of the resource to query. Set the value to **INSTANCE**, which indicates instances. self.resource_type = resource_type # type: str # The tags to query. self.tag = tag # type: list[ListTagResourcesRequestTag] def validate(self): if self.tag: for k in self.tag: if k: k.validate() def to_map(self): _map = super(ListTagResourcesRequest, self).to_map() if _map is not None: return _map result = dict() if self.next_token is not None: result['NextToken'] = self.next_token if self.region_id is not None: result['RegionId'] = self.region_id if self.resource_group_id is not None: result['ResourceGroupId'] = self.resource_group_id if self.resource_id is not None: result['ResourceId'] = self.resource_id if self.resource_type is not None: result['ResourceType'] = self.resource_type result['Tag'] = [] if self.tag is not None: for k in self.tag: result['Tag'].append(k.to_map() if k else None) return result def from_map(self, m=None): m = m or dict() if m.get('NextToken') is not None: self.next_token = m.get('NextToken') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('ResourceGroupId') is not None: self.resource_group_id = m.get('ResourceGroupId') if m.get('ResourceId') is not None: self.resource_id = m.get('ResourceId') if m.get('ResourceType') is not None: self.resource_type = m.get('ResourceType') self.tag = [] if m.get('Tag') is not None: for k in m.get('Tag'): temp_model = ListTagResourcesRequestTag() self.tag.append(temp_model.from_map(k)) return self class ListTagResourcesResponseBodyTagResourcesTagResource(TeaModel): def __init__(self, resource_id=None, resource_type=None, tag_key=None, tag_value=None): # The ID of the Anti-DDoS Origin instance. self.resource_id = resource_id # type: str # The type of the resource. The value is fixed as **INSTANCE**, which indicates instances. self.resource_type = resource_type # type: str # The key of the tag that is added to the instance. self.tag_key = tag_key # type: str # The value of the tag that is added to the instance. self.tag_value = tag_value # type: str def validate(self): pass def to_map(self): _map = super(ListTagResourcesResponseBodyTagResourcesTagResource, self).to_map() if _map is not None: return _map result = dict() if self.resource_id is not None: result['ResourceId'] = self.resource_id if self.resource_type is not None: result['ResourceType'] = self.resource_type if self.tag_key is not None: result['TagKey'] = self.tag_key if self.tag_value is not None: result['TagValue'] = self.tag_value return result def from_map(self, m=None): m = m or dict() if m.get('ResourceId') is not None: self.resource_id = m.get('ResourceId') if m.get('ResourceType') is not None: self.resource_type = m.get('ResourceType') if m.get('TagKey') is not None: self.tag_key = m.get('TagKey') if m.get('TagValue') is not None: self.tag_value = m.get('TagValue') return self class ListTagResourcesResponseBodyTagResources(TeaModel): def __init__(self, tag_resource=None): self.tag_resource = tag_resource # type: list[ListTagResourcesResponseBodyTagResourcesTagResource] def validate(self): if self.tag_resource: for k in self.tag_resource: if k: k.validate() def to_map(self): _map = super(ListTagResourcesResponseBodyTagResources, self).to_map() if _map is not None: return _map result = dict() result['TagResource'] = [] if self.tag_resource is not None: for k in self.tag_resource: result['TagResource'].append(k.to_map() if k else None) return result def from_map(self, m=None): m = m or dict() self.tag_resource = [] if m.get('TagResource') is not None: for k in m.get('TagResource'): temp_model = ListTagResourcesResponseBodyTagResourcesTagResource() self.tag_resource.append(temp_model.from_map(k)) return self class ListTagResourcesResponseBody(TeaModel): def __init__(self, next_token=None, request_id=None, tag_resources=None): # The query token that is returned in this call. self.next_token = next_token # type: str # The ID of the request. self.request_id = request_id # type: str # The list of tags that are added to the Anti-DDoS Origin instance. self.tag_resources = tag_resources # type: ListTagResourcesResponseBodyTagResources def validate(self): if self.tag_resources: self.tag_resources.validate() def to_map(self): _map = super(ListTagResourcesResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.next_token is not None: result['NextToken'] = self.next_token if self.request_id is not None: result['RequestId'] = self.request_id if self.tag_resources is not None: result['TagResources'] = self.tag_resources.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('NextToken') is not None: self.next_token = m.get('NextToken') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('TagResources') is not None: temp_model = ListTagResourcesResponseBodyTagResources() self.tag_resources = temp_model.from_map(m['TagResources']) return self class ListTagResourcesResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: ListTagResourcesResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(ListTagResourcesResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = ListTagResourcesResponseBody() self.body = temp_model.from_map(m['body']) return self class ModifyRemarkRequest(TeaModel): def __init__(self, instance_id=None, region_id=None, remark=None, resource_group_id=None): # The ID of the Anti-DDoS Origin instance for which you want to add remarks. # # > You can call the [DescribeInstanceList](~~118698~~) operation to query the IDs of all Anti-DDoS Origin instances. self.instance_id = instance_id # type: str # The ID of the region where the Anti-DDoS Origin instance resides. # # > You can call the [DescribeRegions](~~118703~~) operation to query the most recent region list. self.region_id = region_id # type: str # The remarks for the Anti-DDoS Origin instance. self.remark = remark # type: str # The ID of the resource group to which the Anti-DDoS Origin instance belongs in Resource Management. # # If you do not specify this parameter, the instance belongs to the default resource group. self.resource_group_id = resource_group_id # type: str def validate(self): pass def to_map(self): _map = super(ModifyRemarkRequest, self).to_map() if _map is not None: return _map result = dict() if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.region_id is not None: result['RegionId'] = self.region_id if self.remark is not None: result['Remark'] = self.remark if self.resource_group_id is not None: result['ResourceGroupId'] = self.resource_group_id return result def from_map(self, m=None): m = m or dict() if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('Remark') is not None: self.remark = m.get('Remark') if m.get('ResourceGroupId') is not None: self.resource_group_id = m.get('ResourceGroupId') return self class ModifyRemarkResponseBody(TeaModel): def __init__(self, request_id=None): # The ID of the request. self.request_id = request_id # type: str def validate(self): pass def to_map(self): _map = super(ModifyRemarkResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.request_id is not None: result['RequestId'] = self.request_id return result def from_map(self, m=None): m = m or dict() if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class ModifyRemarkResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: ModifyRemarkResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(ModifyRemarkResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = ModifyRemarkResponseBody() self.body = temp_model.from_map(m['body']) return self class QuerySchedruleOnDemandRequest(TeaModel): def __init__(self, instance_id=None, region_id=None): # The ID of the on-demand instance. # # > You can call the [DescribeOnDemandInstance](~~152120~~) operation to query the IDs of all on-demand instances. self.instance_id = instance_id # type: str # The region ID of the on-demand instance. # # > You can call the [DescribeRegions](~~118703~~) operation to query all regions supported by Anti-DDoS Origin. self.region_id = region_id # type: str def validate(self): pass def to_map(self): _map = super(QuerySchedruleOnDemandRequest, self).to_map() if _map is not None: return _map result = dict() if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.region_id is not None: result['RegionId'] = self.region_id return result def from_map(self, m=None): m = m or dict() if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') return self class QuerySchedruleOnDemandResponseBodyRuleConfig(TeaModel): def __init__(self, rule_action=None, rule_condition_cnt=None, rule_condition_kpps=None, rule_condition_mbps=None, rule_name=None, rule_switch=None, rule_undo_begin_time=None, rule_undo_end_time=None, rule_undo_mode=None, time_zone=None): # The scheduling action. Set the value to **declare**, which indicates that the route is advertised. self.rule_action = rule_action # type: str # If the inbound bandwidth or packets consecutively exceed the threshold for the specified number of times, the scheduling rule is triggered and traffic is rerouted to the on-demand instance. The specified number of times is the value of this parameter. # # > The threshold of inbound bandwidth is the value of **RuleConditionMbps**. The threshold of inbound packets is the value of **RuleConditionKpps**. self.rule_condition_cnt = rule_condition_cnt # type: str # The threshold of inbound packets. Unit: Kpps. Minimum value: **10**. self.rule_condition_kpps = rule_condition_kpps # type: str # The threshold of inbound bandwidth. Unit: Mbit/s. Minimum value: **100**. self.rule_condition_mbps = rule_condition_mbps # type: str # The name of the scheduling rule. self.rule_name = rule_name # type: str # Indicates whether the scheduling rule is enabled. Valid values: # # * **on**: enabled # * **off**: disabled self.rule_switch = rule_switch # type: str # The start time of the period during which the scheduling rule is automatically stopped. The time must be in the 24-hour clock and in the `hh:mm` format. # # If the system detects that DDoS attacks stop, the system no longer reroutes traffic to the on-demand instance from the time you specified. We recommend that you set this parameter to a value that is defined as off-peak hours. # # > This parameter takes effect only when the **RuleUndoMode** parameter is set to **auto**. self.rule_undo_begin_time = rule_undo_begin_time # type: str # The end time of the period during which the scheduling rule is automatically stopped. The time must be in the 24-hour clock and in the `hh:mm` format. self.rule_undo_end_time = rule_undo_end_time # type: str # The stop method of the scheduling rule. Valid values: # # * **auto**: The scheduling rule automatically stops. # * **manual**: The scheduling rule is manually stopped. self.rule_undo_mode = rule_undo_mode # type: str # The time zone of the time when the scheduling rule automatically stops. The time zone must be in the `GMT-hh:mm` format. # # For example, the value `GMT-08:00` indicates that the time zone is UTC+8. # # > This parameter takes effect only when the **RuleUndoMode** parameter is set to **auto**. self.time_zone = time_zone # type: str def validate(self): pass def to_map(self): _map = super(QuerySchedruleOnDemandResponseBodyRuleConfig, self).to_map() if _map is not None: return _map result = dict() if self.rule_action is not None: result['RuleAction'] = self.rule_action if self.rule_condition_cnt is not None: result['RuleConditionCnt'] = self.rule_condition_cnt if self.rule_condition_kpps is not None: result['RuleConditionKpps'] = self.rule_condition_kpps if self.rule_condition_mbps is not None: result['RuleConditionMbps'] = self.rule_condition_mbps if self.rule_name is not None: result['RuleName'] = self.rule_name if self.rule_switch is not None: result['RuleSwitch'] = self.rule_switch if self.rule_undo_begin_time is not None: result['RuleUndoBeginTime'] = self.rule_undo_begin_time if self.rule_undo_end_time is not None: result['RuleUndoEndTime'] = self.rule_undo_end_time if self.rule_undo_mode is not None: result['RuleUndoMode'] = self.rule_undo_mode if self.time_zone is not None: result['TimeZone'] = self.time_zone return result def from_map(self, m=None): m = m or dict() if m.get('RuleAction') is not None: self.rule_action = m.get('RuleAction') if m.get('RuleConditionCnt') is not None: self.rule_condition_cnt = m.get('RuleConditionCnt') if m.get('RuleConditionKpps') is not None: self.rule_condition_kpps = m.get('RuleConditionKpps') if m.get('RuleConditionMbps') is not None: self.rule_condition_mbps = m.get('RuleConditionMbps') if m.get('RuleName') is not None: self.rule_name = m.get('RuleName') if m.get('RuleSwitch') is not None: self.rule_switch = m.get('RuleSwitch') if m.get('RuleUndoBeginTime') is not None: self.rule_undo_begin_time = m.get('RuleUndoBeginTime') if m.get('RuleUndoEndTime') is not None: self.rule_undo_end_time = m.get('RuleUndoEndTime') if m.get('RuleUndoMode') is not None: self.rule_undo_mode = m.get('RuleUndoMode') if m.get('TimeZone') is not None: self.time_zone = m.get('TimeZone') return self class QuerySchedruleOnDemandResponseBodyRuleStatus(TeaModel): def __init__(self, net=None, rule_sched_status=None): # The CIDR block of the on-demand instance. self.net = net # type: str # The scheduling status. Valid values: # # * **scheduled**\ # * **unscheduled**\ self.rule_sched_status = rule_sched_status # type: str def validate(self): pass def to_map(self): _map = super(QuerySchedruleOnDemandResponseBodyRuleStatus, self).to_map() if _map is not None: return _map result = dict() if self.net is not None: result['Net'] = self.net if self.rule_sched_status is not None: result['RuleSchedStatus'] = self.rule_sched_status return result def from_map(self, m=None): m = m or dict() if m.get('Net') is not None: self.net = m.get('Net') if m.get('RuleSchedStatus') is not None: self.rule_sched_status = m.get('RuleSchedStatus') return self class QuerySchedruleOnDemandResponseBody(TeaModel): def __init__(self, instance_id=None, request_id=None, rule_config=None, rule_status=None, user_id=None): # The ID of the on-demand instance. self.instance_id = instance_id # type: str # The ID of the request. self.request_id = request_id # type: str # The configurations of the scheduling rule. self.rule_config = rule_config # type: list[QuerySchedruleOnDemandResponseBodyRuleConfig] # The status of the scheduling rule. self.rule_status = rule_status # type: list[QuerySchedruleOnDemandResponseBodyRuleStatus] # The ID of the Alibaba Cloud account. self.user_id = user_id # type: str def validate(self): if self.rule_config: for k in self.rule_config: if k: k.validate() if self.rule_status: for k in self.rule_status: if k: k.validate() def to_map(self): _map = super(QuerySchedruleOnDemandResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.request_id is not None: result['RequestId'] = self.request_id result['RuleConfig'] = [] if self.rule_config is not None: for k in self.rule_config: result['RuleConfig'].append(k.to_map() if k else None) result['RuleStatus'] = [] if self.rule_status is not None: for k in self.rule_status: result['RuleStatus'].append(k.to_map() if k else None) if self.user_id is not None: result['UserId'] = self.user_id return result def from_map(self, m=None): m = m or dict() if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') self.rule_config = [] if m.get('RuleConfig') is not None: for k in m.get('RuleConfig'): temp_model = QuerySchedruleOnDemandResponseBodyRuleConfig() self.rule_config.append(temp_model.from_map(k)) self.rule_status = [] if m.get('RuleStatus') is not None: for k in m.get('RuleStatus'): temp_model = QuerySchedruleOnDemandResponseBodyRuleStatus() self.rule_status.append(temp_model.from_map(k)) if m.get('UserId') is not None: self.user_id = m.get('UserId') return self class QuerySchedruleOnDemandResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: QuerySchedruleOnDemandResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(QuerySchedruleOnDemandResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = QuerySchedruleOnDemandResponseBody() self.body = temp_model.from_map(m['body']) return self class ReleaseDdosOriginInstanceRequest(TeaModel): def __init__(self, instance_id=None): self.instance_id = instance_id # type: str def validate(self): pass def to_map(self): _map = super(ReleaseDdosOriginInstanceRequest, self).to_map() if _map is not None: return _map result = dict() if self.instance_id is not None: result['InstanceId'] = self.instance_id return result def from_map(self, m=None): m = m or dict() if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') return self class ReleaseDdosOriginInstanceResponseBody(TeaModel): def __init__(self, request_id=None): self.request_id = request_id # type: str def validate(self): pass def to_map(self): _map = super(ReleaseDdosOriginInstanceResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.request_id is not None: result['RequestId'] = self.request_id return result def from_map(self, m=None): m = m or dict() if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class ReleaseDdosOriginInstanceResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: ReleaseDdosOriginInstanceResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(ReleaseDdosOriginInstanceResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = ReleaseDdosOriginInstanceResponseBody() self.body = temp_model.from_map(m['body']) return self class SetInstanceModeOnDemandRequest(TeaModel): def __init__(self, instance_id_list=None, mode=None, region_id=None): # The IDs of on-demand instances. # # > You can call the [DescribeOnDemandInstance](~~152120~~) operation to query the IDs of all on-demand instances. self.instance_id_list = instance_id_list # type: list[str] # The scheduling mode of the on-demand instance. Valid values: # # * **manual**: manual scheduling # * **netflow-auto**: automatic scheduling self.mode = mode # type: str # The region ID of the on-demand instance. # # > You can call the [DescribeRegions](~~118703~~) operation to query all regions supported by Anti-DDoS Origin. self.region_id = region_id # type: str def validate(self): pass def to_map(self): _map = super(SetInstanceModeOnDemandRequest, self).to_map() if _map is not None: return _map result = dict() if self.instance_id_list is not None: result['InstanceIdList'] = self.instance_id_list if self.mode is not None: result['Mode'] = self.mode if self.region_id is not None: result['RegionId'] = self.region_id return result def from_map(self, m=None): m = m or dict() if m.get('InstanceIdList') is not None: self.instance_id_list = m.get('InstanceIdList') if m.get('Mode') is not None: self.mode = m.get('Mode') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') return self class SetInstanceModeOnDemandResponseBody(TeaModel): def __init__(self, request_id=None): # The ID of the request. self.request_id = request_id # type: str def validate(self): pass def to_map(self): _map = super(SetInstanceModeOnDemandResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.request_id is not None: result['RequestId'] = self.request_id return result def from_map(self, m=None): m = m or dict() if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class SetInstanceModeOnDemandResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: SetInstanceModeOnDemandResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(SetInstanceModeOnDemandResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = SetInstanceModeOnDemandResponseBody() self.body = temp_model.from_map(m['body']) return self class TagResourcesRequestTag(TeaModel): def __init__(self, key=None, value=None): # The key of the tag to add. # # > If the specified key does not exist, a key is created. self.key = key # type: str # The value of the tag to add. # # > If the specified value does not exist, a value is created. self.value = value # type: str def validate(self): pass def to_map(self): _map = super(TagResourcesRequestTag, self).to_map() if _map is not None: return _map result = dict() if self.key is not None: result['Key'] = self.key if self.value is not None: result['Value'] = self.value return result def from_map(self, m=None): m = m or dict() if m.get('Key') is not None: self.key = m.get('Key') if m.get('Value') is not None: self.value = m.get('Value') return self class TagResourcesRequest(TeaModel): def __init__(self, region_id=None, resource_group_id=None, resource_id=None, resource_type=None, tag=None): # The ID of the region where the Anti-DDoS Origin instance resides. # # > You can call the [DescribeRegions](~~118703~~) operation to query the most recent region list. self.region_id = region_id # type: str # The ID of the resource group to which the Anti-DDoS Origin instance belongs in Resource Management. # # If you do not specify this parameter, the instance belongs to the default resource group. self.resource_group_id = resource_group_id # type: str self.resource_id = resource_id # type: list[str] # The type of the resource to which you want to add tags. Set the value to **INSTANCE**, which indicates instances. self.resource_type = resource_type # type: str self.tag = tag # type: list[TagResourcesRequestTag] def validate(self): if self.tag: for k in self.tag: if k: k.validate() def to_map(self): _map = super(TagResourcesRequest, self).to_map() if _map is not None: return _map result = dict() if self.region_id is not None: result['RegionId'] = self.region_id if self.resource_group_id is not None: result['ResourceGroupId'] = self.resource_group_id if self.resource_id is not None: result['ResourceId'] = self.resource_id if self.resource_type is not None: result['ResourceType'] = self.resource_type result['Tag'] = [] if self.tag is not None: for k in self.tag: result['Tag'].append(k.to_map() if k else None) return result def from_map(self, m=None): m = m or dict() if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('ResourceGroupId') is not None: self.resource_group_id = m.get('ResourceGroupId') if m.get('ResourceId') is not None: self.resource_id = m.get('ResourceId') if m.get('ResourceType') is not None: self.resource_type = m.get('ResourceType') self.tag = [] if m.get('Tag') is not None: for k in m.get('Tag'): temp_model = TagResourcesRequestTag() self.tag.append(temp_model.from_map(k)) return self class TagResourcesResponseBody(TeaModel): def __init__(self, request_id=None): # The ID of the request. self.request_id = request_id # type: str def validate(self): pass def to_map(self): _map = super(TagResourcesResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.request_id is not None: result['RequestId'] = self.request_id return result def from_map(self, m=None): m = m or dict() if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class TagResourcesResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: TagResourcesResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(TagResourcesResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = TagResourcesResponseBody() self.body = temp_model.from_map(m['body']) return self class UntagResourcesRequest(TeaModel): def __init__(self, all=None, region_id=None, resource_group_id=None, resource_id=None, resource_type=None, tag_key=None): # Specifies whether to remove all tags from the specified Anti-DDoS Origin Enterprise instances. self.all = all # type: bool # The ID of the region where the Anti-DDoS Origin Enterprise instances reside. self.region_id = region_id # type: str # The ID of the resource group. self.resource_group_id = resource_group_id # type: str self.resource_id = resource_id # type: list[str] # The type of the specified resource. Set the value to **INSTANCE**. self.resource_type = resource_type # type: str self.tag_key = tag_key # type: list[str] def validate(self): pass def to_map(self): _map = super(UntagResourcesRequest, self).to_map() if _map is not None: return _map result = dict() if self.all is not None: result['All'] = self.all if self.region_id is not None: result['RegionId'] = self.region_id if self.resource_group_id is not None: result['ResourceGroupId'] = self.resource_group_id if self.resource_id is not None: result['ResourceId'] = self.resource_id if self.resource_type is not None: result['ResourceType'] = self.resource_type if self.tag_key is not None: result['TagKey'] = self.tag_key return result def from_map(self, m=None): m = m or dict() if m.get('All') is not None: self.all = m.get('All') if m.get('RegionId') is not None: self.region_id = m.get('RegionId') if m.get('ResourceGroupId') is not None: self.resource_group_id = m.get('ResourceGroupId') if m.get('ResourceId') is not None: self.resource_id = m.get('ResourceId') if m.get('ResourceType') is not None: self.resource_type = m.get('ResourceType') if m.get('TagKey') is not None: self.tag_key = m.get('TagKey') return self class UntagResourcesResponseBody(TeaModel): def __init__(self, request_id=None): # The ID of the request. self.request_id = request_id # type: str def validate(self): pass def to_map(self): _map = super(UntagResourcesResponseBody, self).to_map() if _map is not None: return _map result = dict() if self.request_id is not None: result['RequestId'] = self.request_id return result def from_map(self, m=None): m = m or dict() if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class UntagResourcesResponse(TeaModel): def __init__(self, headers=None, status_code=None, body=None): self.headers = headers # type: dict[str, str] self.status_code = status_code # type: int self.body = body # type: UntagResourcesResponseBody def validate(self): if self.body: self.body.validate() def to_map(self): _map = super(UntagResourcesResponse, self).to_map() if _map is not None: return _map result = dict() if self.headers is not None: result['headers'] = self.headers if self.status_code is not None: result['statusCode'] = self.status_code if self.body is not None: result['body'] = self.body.to_map() return result def from_map(self, m=None): m = m or dict() if m.get('headers') is not None: self.headers = m.get('headers') if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: temp_model = UntagResourcesResponseBody() self.body = temp_model.from_map(m['body']) return self