pai/libs/alibabacloud_pai_dsw20220101/models.py (7,268 lines of code) (raw):

# -*- coding: utf-8 -*- # This file is auto-generated, don't edit it. Thanks. from Tea.model import TeaModel from typing import List, Dict, Any class CredentialConfigConfigsRolesUserInfo(TeaModel): def __init__( self, access_key_id: str = None, id: str = None, security_token: str = None, type: str = None, ): self.access_key_id = access_key_id self.id = id self.security_token = security_token self.type = type def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.access_key_id is not None: result['AccessKeyId'] = self.access_key_id if self.id is not None: result['Id'] = self.id if self.security_token is not None: result['SecurityToken'] = self.security_token if self.type is not None: result['Type'] = self.type return result def from_map(self, m: dict = None): m = m or dict() if m.get('AccessKeyId') is not None: self.access_key_id = m.get('AccessKeyId') if m.get('Id') is not None: self.id = m.get('Id') if m.get('SecurityToken') is not None: self.security_token = m.get('SecurityToken') if m.get('Type') is not None: self.type = m.get('Type') return self class CredentialConfigConfigsRoles(TeaModel): def __init__( self, assume_role_for: str = None, policy: str = None, role_arn: str = None, role_type: str = None, user_info: CredentialConfigConfigsRolesUserInfo = None, ): self.assume_role_for = assume_role_for self.policy = policy # This parameter is required. self.role_arn = role_arn # This parameter is required. self.role_type = role_type self.user_info = user_info def validate(self): if self.user_info: self.user_info.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.assume_role_for is not None: result['AssumeRoleFor'] = self.assume_role_for if self.policy is not None: result['Policy'] = self.policy if self.role_arn is not None: result['RoleArn'] = self.role_arn if self.role_type is not None: result['RoleType'] = self.role_type if self.user_info is not None: result['UserInfo'] = self.user_info.to_map() return result def from_map(self, m: dict = None): m = m or dict() if m.get('AssumeRoleFor') is not None: self.assume_role_for = m.get('AssumeRoleFor') if m.get('Policy') is not None: self.policy = m.get('Policy') if m.get('RoleArn') is not None: self.role_arn = m.get('RoleArn') if m.get('RoleType') is not None: self.role_type = m.get('RoleType') if m.get('UserInfo') is not None: temp_model = CredentialConfigConfigsRolesUserInfo() self.user_info = temp_model.from_map(m['UserInfo']) return self class CredentialConfigConfigs(TeaModel): def __init__( self, key: str = None, roles: List[CredentialConfigConfigsRoles] = None, type: str = None, ): # This parameter is required. self.key = key self.roles = roles # This parameter is required. self.type = type def validate(self): if self.roles: for k in self.roles: if k: k.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.key is not None: result['Key'] = self.key result['Roles'] = [] if self.roles is not None: for k in self.roles: result['Roles'].append(k.to_map() if k else None) if self.type is not None: result['Type'] = self.type return result def from_map(self, m: dict = None): m = m or dict() if m.get('Key') is not None: self.key = m.get('Key') self.roles = [] if m.get('Roles') is not None: for k in m.get('Roles'): temp_model = CredentialConfigConfigsRoles() self.roles.append(temp_model.from_map(k)) if m.get('Type') is not None: self.type = m.get('Type') return self class CredentialConfig(TeaModel): def __init__( self, aliyun_env_role_key: str = None, configs: List[CredentialConfigConfigs] = None, enable: bool = None, ): self.aliyun_env_role_key = aliyun_env_role_key self.configs = configs self.enable = enable def validate(self): if self.configs: for k in self.configs: if k: k.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.aliyun_env_role_key is not None: result['AliyunEnvRoleKey'] = self.aliyun_env_role_key result['Configs'] = [] if self.configs is not None: for k in self.configs: result['Configs'].append(k.to_map() if k else None) if self.enable is not None: result['Enable'] = self.enable return result def from_map(self, m: dict = None): m = m or dict() if m.get('AliyunEnvRoleKey') is not None: self.aliyun_env_role_key = m.get('AliyunEnvRoleKey') self.configs = [] if m.get('Configs') is not None: for k in m.get('Configs'): temp_model = CredentialConfigConfigs() self.configs.append(temp_model.from_map(k)) if m.get('Enable') is not None: self.enable = m.get('Enable') return self class DemoCategory(TeaModel): def __init__( self, category_code: str = None, category_name: str = None, order: int = None, sub_categories: List['DemoCategory'] = None, ): self.category_code = category_code self.category_name = category_name self.order = order self.sub_categories = sub_categories def validate(self): if self.sub_categories: for k in self.sub_categories: if k: k.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.category_code is not None: result['CategoryCode'] = self.category_code if self.category_name is not None: result['CategoryName'] = self.category_name if self.order is not None: result['Order'] = self.order result['SubCategories'] = [] if self.sub_categories is not None: for k in self.sub_categories: result['SubCategories'].append(k.to_map() if k else None) return result def from_map(self, m: dict = None): m = m or dict() if m.get('CategoryCode') is not None: self.category_code = m.get('CategoryCode') if m.get('CategoryName') is not None: self.category_name = m.get('CategoryName') if m.get('Order') is not None: self.order = m.get('Order') self.sub_categories = [] if m.get('SubCategories') is not None: for k in m.get('SubCategories'): temp_model = DemoCategory() self.sub_categories.append(temp_model.from_map(k)) return self class DynamicMountPoint(TeaModel): def __init__( self, options: str = None, root_path: str = None, ): self.options = options # This parameter is required. self.root_path = root_path def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.options is not None: result['Options'] = self.options if self.root_path is not None: result['RootPath'] = self.root_path return result def from_map(self, m: dict = None): m = m or dict() if m.get('Options') is not None: self.options = m.get('Options') if m.get('RootPath') is not None: self.root_path = m.get('RootPath') return self class DynamicMount(TeaModel): def __init__( self, enable: bool = None, mount_points: List[DynamicMountPoint] = None, ): self.enable = enable self.mount_points = mount_points def validate(self): if self.mount_points: for k in self.mount_points: if k: k.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.enable is not None: result['Enable'] = self.enable result['MountPoints'] = [] if self.mount_points is not None: for k in self.mount_points: result['MountPoints'].append(k.to_map() if k else None) return result def from_map(self, m: dict = None): m = m or dict() if m.get('Enable') is not None: self.enable = m.get('Enable') self.mount_points = [] if m.get('MountPoints') is not None: for k in m.get('MountPoints'): temp_model = DynamicMountPoint() self.mount_points.append(temp_model.from_map(k)) return self class ForwardInfo(TeaModel): def __init__( self, access_type: List[str] = None, container_name: str = None, eip_allocation_id: str = None, enable: bool = None, external_port: str = None, forward_port: str = None, name: str = None, nat_gateway_id: str = None, sshpublic_key: str = None, ): self.access_type = access_type self.container_name = container_name self.eip_allocation_id = eip_allocation_id self.enable = enable self.external_port = external_port self.forward_port = forward_port self.name = name self.nat_gateway_id = nat_gateway_id self.sshpublic_key = sshpublic_key def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.access_type is not None: result['AccessType'] = self.access_type if self.container_name is not None: result['ContainerName'] = self.container_name if self.eip_allocation_id is not None: result['EipAllocationId'] = self.eip_allocation_id if self.enable is not None: result['Enable'] = self.enable if self.external_port is not None: result['ExternalPort'] = self.external_port if self.forward_port is not None: result['ForwardPort'] = self.forward_port if self.name is not None: result['Name'] = self.name if self.nat_gateway_id is not None: result['NatGatewayId'] = self.nat_gateway_id if self.sshpublic_key is not None: result['SSHPublicKey'] = self.sshpublic_key return result def from_map(self, m: dict = None): m = m or dict() if m.get('AccessType') is not None: self.access_type = m.get('AccessType') if m.get('ContainerName') is not None: self.container_name = m.get('ContainerName') if m.get('EipAllocationId') is not None: self.eip_allocation_id = m.get('EipAllocationId') if m.get('Enable') is not None: self.enable = m.get('Enable') if m.get('ExternalPort') is not None: self.external_port = m.get('ExternalPort') if m.get('ForwardPort') is not None: self.forward_port = m.get('ForwardPort') if m.get('Name') is not None: self.name = m.get('Name') if m.get('NatGatewayId') is not None: self.nat_gateway_id = m.get('NatGatewayId') if m.get('SSHPublicKey') is not None: self.sshpublic_key = m.get('SSHPublicKey') return self class ForwardInfoResponseConnectInfoInternet(TeaModel): def __init__( self, endpoint: str = None, port: str = None, ): self.endpoint = endpoint self.port = port def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.endpoint is not None: result['Endpoint'] = self.endpoint if self.port is not None: result['Port'] = self.port return result def from_map(self, m: dict = None): m = m or dict() if m.get('Endpoint') is not None: self.endpoint = m.get('Endpoint') if m.get('Port') is not None: self.port = m.get('Port') return self class ForwardInfoResponseConnectInfoIntranet(TeaModel): def __init__( self, endpoint: str = None, port: str = None, ): self.endpoint = endpoint self.port = port def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.endpoint is not None: result['Endpoint'] = self.endpoint if self.port is not None: result['Port'] = self.port return result def from_map(self, m: dict = None): m = m or dict() if m.get('Endpoint') is not None: self.endpoint = m.get('Endpoint') if m.get('Port') is not None: self.port = m.get('Port') return self class ForwardInfoResponseConnectInfo(TeaModel): def __init__( self, internet: ForwardInfoResponseConnectInfoInternet = None, intranet: ForwardInfoResponseConnectInfoIntranet = None, message: str = None, phase: str = None, ): self.internet = internet self.intranet = intranet self.message = message self.phase = phase def validate(self): if self.internet: self.internet.validate() if self.intranet: self.intranet.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.internet is not None: result['Internet'] = self.internet.to_map() if self.intranet is not None: result['Intranet'] = self.intranet.to_map() if self.message is not None: result['Message'] = self.message if self.phase is not None: result['Phase'] = self.phase return result def from_map(self, m: dict = None): m = m or dict() if m.get('Internet') is not None: temp_model = ForwardInfoResponseConnectInfoInternet() self.internet = temp_model.from_map(m['Internet']) if m.get('Intranet') is not None: temp_model = ForwardInfoResponseConnectInfoIntranet() self.intranet = temp_model.from_map(m['Intranet']) if m.get('Message') is not None: self.message = m.get('Message') if m.get('Phase') is not None: self.phase = m.get('Phase') return self class ForwardInfoResponse(TeaModel): def __init__( self, access_type: List[str] = None, connect_info: ForwardInfoResponseConnectInfo = None, container_name: str = None, eip_allocation_id: str = None, enable: bool = None, external_port: str = None, forward_port: str = None, name: str = None, nat_gateway_id: str = None, sshpublic_key: str = None, ): self.access_type = access_type self.connect_info = connect_info self.container_name = container_name self.eip_allocation_id = eip_allocation_id self.enable = enable self.external_port = external_port self.forward_port = forward_port self.name = name self.nat_gateway_id = nat_gateway_id self.sshpublic_key = sshpublic_key def validate(self): if self.connect_info: self.connect_info.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.access_type is not None: result['AccessType'] = self.access_type if self.connect_info is not None: result['ConnectInfo'] = self.connect_info.to_map() if self.container_name is not None: result['ContainerName'] = self.container_name if self.eip_allocation_id is not None: result['EipAllocationId'] = self.eip_allocation_id if self.enable is not None: result['Enable'] = self.enable if self.external_port is not None: result['ExternalPort'] = self.external_port if self.forward_port is not None: result['ForwardPort'] = self.forward_port if self.name is not None: result['Name'] = self.name if self.nat_gateway_id is not None: result['NatGatewayId'] = self.nat_gateway_id if self.sshpublic_key is not None: result['SSHPublicKey'] = self.sshpublic_key return result def from_map(self, m: dict = None): m = m or dict() if m.get('AccessType') is not None: self.access_type = m.get('AccessType') if m.get('ConnectInfo') is not None: temp_model = ForwardInfoResponseConnectInfo() self.connect_info = temp_model.from_map(m['ConnectInfo']) if m.get('ContainerName') is not None: self.container_name = m.get('ContainerName') if m.get('EipAllocationId') is not None: self.eip_allocation_id = m.get('EipAllocationId') if m.get('Enable') is not None: self.enable = m.get('Enable') if m.get('ExternalPort') is not None: self.external_port = m.get('ExternalPort') if m.get('ForwardPort') is not None: self.forward_port = m.get('ForwardPort') if m.get('Name') is not None: self.name = m.get('Name') if m.get('NatGatewayId') is not None: self.nat_gateway_id = m.get('NatGatewayId') if m.get('SSHPublicKey') is not None: self.sshpublic_key = m.get('SSHPublicKey') return self class CreateIdleInstanceCullerRequest(TeaModel): def __init__( self, cpu_percent_threshold: int = None, gpu_percent_threshold: int = None, max_idle_time_in_minutes: int = None, ): self.cpu_percent_threshold = cpu_percent_threshold self.gpu_percent_threshold = gpu_percent_threshold self.max_idle_time_in_minutes = max_idle_time_in_minutes def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.cpu_percent_threshold is not None: result['CpuPercentThreshold'] = self.cpu_percent_threshold if self.gpu_percent_threshold is not None: result['GpuPercentThreshold'] = self.gpu_percent_threshold if self.max_idle_time_in_minutes is not None: result['MaxIdleTimeInMinutes'] = self.max_idle_time_in_minutes return result def from_map(self, m: dict = None): m = m or dict() if m.get('CpuPercentThreshold') is not None: self.cpu_percent_threshold = m.get('CpuPercentThreshold') if m.get('GpuPercentThreshold') is not None: self.gpu_percent_threshold = m.get('GpuPercentThreshold') if m.get('MaxIdleTimeInMinutes') is not None: self.max_idle_time_in_minutes = m.get('MaxIdleTimeInMinutes') return self class CreateIdleInstanceCullerResponseBody(TeaModel): def __init__( self, code: str = None, instance_id: str = None, message: str = None, request_id: str = None, success: bool = None, ): self.code = code self.instance_id = instance_id self.message = message self.request_id = request_id self.success = success def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.message is not None: result['Message'] = self.message 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: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Message') is not None: self.message = m.get('Message') 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 CreateIdleInstanceCullerResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: CreateIdleInstanceCullerResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = CreateIdleInstanceCullerResponseBody() self.body = temp_model.from_map(m['body']) return self class CreateInstanceRequestAffinityCPU(TeaModel): def __init__( self, enable: bool = None, ): self.enable = enable def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.enable is not None: result['Enable'] = self.enable return result def from_map(self, m: dict = None): m = m or dict() if m.get('Enable') is not None: self.enable = m.get('Enable') return self class CreateInstanceRequestAffinity(TeaModel): def __init__( self, cpu: CreateInstanceRequestAffinityCPU = None, ): self.cpu = cpu def validate(self): if self.cpu: self.cpu.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.cpu is not None: result['CPU'] = self.cpu.to_map() return result def from_map(self, m: dict = None): m = m or dict() if m.get('CPU') is not None: temp_model = CreateInstanceRequestAffinityCPU() self.cpu = temp_model.from_map(m['CPU']) return self class CreateInstanceRequestCloudDisksStatus(TeaModel): def __init__( self, available: int = None, capacity: int = None, usage: int = None, ): self.available = available self.capacity = capacity self.usage = usage def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.available is not None: result['Available'] = self.available if self.capacity is not None: result['Capacity'] = self.capacity if self.usage is not None: result['Usage'] = self.usage return result def from_map(self, m: dict = None): m = m or dict() if m.get('Available') is not None: self.available = m.get('Available') if m.get('Capacity') is not None: self.capacity = m.get('Capacity') if m.get('Usage') is not None: self.usage = m.get('Usage') return self class CreateInstanceRequestCloudDisks(TeaModel): def __init__( self, capacity: str = None, mount_path: str = None, path: str = None, status: CreateInstanceRequestCloudDisksStatus = None, sub_type: str = None, ): self.capacity = capacity self.mount_path = mount_path self.path = path self.status = status self.sub_type = sub_type def validate(self): if self.status: self.status.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.capacity is not None: result['Capacity'] = self.capacity if self.mount_path is not None: result['MountPath'] = self.mount_path if self.path is not None: result['Path'] = self.path if self.status is not None: result['Status'] = self.status.to_map() if self.sub_type is not None: result['SubType'] = self.sub_type return result def from_map(self, m: dict = None): m = m or dict() if m.get('Capacity') is not None: self.capacity = m.get('Capacity') if m.get('MountPath') is not None: self.mount_path = m.get('MountPath') if m.get('Path') is not None: self.path = m.get('Path') if m.get('Status') is not None: temp_model = CreateInstanceRequestCloudDisksStatus() self.status = temp_model.from_map(m['Status']) if m.get('SubType') is not None: self.sub_type = m.get('SubType') return self class CreateInstanceRequestDatasets(TeaModel): def __init__( self, dataset_id: str = None, dataset_version: str = None, dynamic: bool = None, mount_access: str = None, mount_path: str = None, option_type: str = None, options: str = None, uri: str = None, ): self.dataset_id = dataset_id self.dataset_version = dataset_version self.dynamic = dynamic self.mount_access = mount_access self.mount_path = mount_path self.option_type = option_type self.options = options self.uri = uri def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.dataset_id is not None: result['DatasetId'] = self.dataset_id if self.dataset_version is not None: result['DatasetVersion'] = self.dataset_version if self.dynamic is not None: result['Dynamic'] = self.dynamic if self.mount_access is not None: result['MountAccess'] = self.mount_access if self.mount_path is not None: result['MountPath'] = self.mount_path if self.option_type is not None: result['OptionType'] = self.option_type if self.options is not None: result['Options'] = self.options if self.uri is not None: result['Uri'] = self.uri return result def from_map(self, m: dict = None): m = m or dict() if m.get('DatasetId') is not None: self.dataset_id = m.get('DatasetId') if m.get('DatasetVersion') is not None: self.dataset_version = m.get('DatasetVersion') if m.get('Dynamic') is not None: self.dynamic = m.get('Dynamic') if m.get('MountAccess') is not None: self.mount_access = m.get('MountAccess') if m.get('MountPath') is not None: self.mount_path = m.get('MountPath') if m.get('OptionType') is not None: self.option_type = m.get('OptionType') if m.get('Options') is not None: self.options = m.get('Options') if m.get('Uri') is not None: self.uri = m.get('Uri') return self class CreateInstanceRequestLabels(TeaModel): def __init__( self, key: str = None, value: str = None, ): self.key = key self.value = value def validate(self): pass def to_map(self): _map = super().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: dict = 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 CreateInstanceRequestRequestedResource(TeaModel): def __init__( self, cpu: str = None, gpu: str = None, gputype: str = None, memory: str = None, shared_memory: str = None, ): self.cpu = cpu self.gpu = gpu self.gputype = gputype self.memory = memory self.shared_memory = shared_memory def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.cpu is not None: result['CPU'] = self.cpu if self.gpu is not None: result['GPU'] = self.gpu if self.gputype is not None: result['GPUType'] = self.gputype if self.memory is not None: result['Memory'] = self.memory if self.shared_memory is not None: result['SharedMemory'] = self.shared_memory return result def from_map(self, m: dict = None): m = m or dict() if m.get('CPU') is not None: self.cpu = m.get('CPU') if m.get('GPU') is not None: self.gpu = m.get('GPU') if m.get('GPUType') is not None: self.gputype = m.get('GPUType') if m.get('Memory') is not None: self.memory = m.get('Memory') if m.get('SharedMemory') is not None: self.shared_memory = m.get('SharedMemory') return self class CreateInstanceRequestTag(TeaModel): def __init__( self, key: str = None, value: str = None, ): self.key = key self.value = value def validate(self): pass def to_map(self): _map = super().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: dict = 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 CreateInstanceRequestUserVpc(TeaModel): def __init__( self, default_route: str = None, extended_cidrs: List[str] = None, forward_infos: List[ForwardInfo] = None, security_group_id: str = None, v_switch_id: str = None, vpc_id: str = None, ): self.default_route = default_route self.extended_cidrs = extended_cidrs self.forward_infos = forward_infos self.security_group_id = security_group_id self.v_switch_id = v_switch_id self.vpc_id = vpc_id def validate(self): if self.forward_infos: for k in self.forward_infos: if k: k.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.default_route is not None: result['DefaultRoute'] = self.default_route if self.extended_cidrs is not None: result['ExtendedCIDRs'] = self.extended_cidrs result['ForwardInfos'] = [] if self.forward_infos is not None: for k in self.forward_infos: result['ForwardInfos'].append(k.to_map() if k else None) if self.security_group_id is not None: result['SecurityGroupId'] = self.security_group_id if self.v_switch_id is not None: result['VSwitchId'] = self.v_switch_id if self.vpc_id is not None: result['VpcId'] = self.vpc_id return result def from_map(self, m: dict = None): m = m or dict() if m.get('DefaultRoute') is not None: self.default_route = m.get('DefaultRoute') if m.get('ExtendedCIDRs') is not None: self.extended_cidrs = m.get('ExtendedCIDRs') self.forward_infos = [] if m.get('ForwardInfos') is not None: for k in m.get('ForwardInfos'): temp_model = ForwardInfo() self.forward_infos.append(temp_model.from_map(k)) if m.get('SecurityGroupId') is not None: self.security_group_id = m.get('SecurityGroupId') if m.get('VSwitchId') is not None: self.v_switch_id = m.get('VSwitchId') if m.get('VpcId') is not None: self.vpc_id = m.get('VpcId') return self class CreateInstanceRequest(TeaModel): def __init__( self, accessibility: str = None, affinity: CreateInstanceRequestAffinity = None, cloud_disks: List[CreateInstanceRequestCloudDisks] = None, credential_config: CredentialConfig = None, datasets: List[CreateInstanceRequestDatasets] = None, driver: str = None, dynamic_mount: DynamicMount = None, ecs_spec: str = None, environment_variables: Dict[str, str] = None, image_auth: str = None, image_id: str = None, image_url: str = None, instance_name: str = None, labels: List[CreateInstanceRequestLabels] = None, priority: int = None, requested_resource: CreateInstanceRequestRequestedResource = None, resource_id: str = None, tag: List[CreateInstanceRequestTag] = None, user_id: str = None, user_vpc: CreateInstanceRequestUserVpc = None, workspace_id: str = None, workspace_source: str = None, ): self.accessibility = accessibility self.affinity = affinity self.cloud_disks = cloud_disks self.credential_config = credential_config self.datasets = datasets self.driver = driver self.dynamic_mount = dynamic_mount self.ecs_spec = ecs_spec self.environment_variables = environment_variables self.image_auth = image_auth self.image_id = image_id self.image_url = image_url self.instance_name = instance_name self.labels = labels self.priority = priority self.requested_resource = requested_resource self.resource_id = resource_id self.tag = tag self.user_id = user_id self.user_vpc = user_vpc self.workspace_id = workspace_id self.workspace_source = workspace_source def validate(self): if self.affinity: self.affinity.validate() if self.cloud_disks: for k in self.cloud_disks: if k: k.validate() if self.credential_config: self.credential_config.validate() if self.datasets: for k in self.datasets: if k: k.validate() if self.dynamic_mount: self.dynamic_mount.validate() if self.labels: for k in self.labels: if k: k.validate() if self.requested_resource: self.requested_resource.validate() if self.tag: for k in self.tag: if k: k.validate() if self.user_vpc: self.user_vpc.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.accessibility is not None: result['Accessibility'] = self.accessibility if self.affinity is not None: result['Affinity'] = self.affinity.to_map() result['CloudDisks'] = [] if self.cloud_disks is not None: for k in self.cloud_disks: result['CloudDisks'].append(k.to_map() if k else None) if self.credential_config is not None: result['CredentialConfig'] = self.credential_config.to_map() result['Datasets'] = [] if self.datasets is not None: for k in self.datasets: result['Datasets'].append(k.to_map() if k else None) if self.driver is not None: result['Driver'] = self.driver if self.dynamic_mount is not None: result['DynamicMount'] = self.dynamic_mount.to_map() if self.ecs_spec is not None: result['EcsSpec'] = self.ecs_spec if self.environment_variables is not None: result['EnvironmentVariables'] = self.environment_variables if self.image_auth is not None: result['ImageAuth'] = self.image_auth if self.image_id is not None: result['ImageId'] = self.image_id if self.image_url is not None: result['ImageUrl'] = self.image_url if self.instance_name is not None: result['InstanceName'] = self.instance_name result['Labels'] = [] if self.labels is not None: for k in self.labels: result['Labels'].append(k.to_map() if k else None) if self.priority is not None: result['Priority'] = self.priority if self.requested_resource is not None: result['RequestedResource'] = self.requested_resource.to_map() if self.resource_id is not None: result['ResourceId'] = self.resource_id result['Tag'] = [] if self.tag is not None: for k in self.tag: result['Tag'].append(k.to_map() if k else None) if self.user_id is not None: result['UserId'] = self.user_id if self.user_vpc is not None: result['UserVpc'] = self.user_vpc.to_map() if self.workspace_id is not None: result['WorkspaceId'] = self.workspace_id if self.workspace_source is not None: result['WorkspaceSource'] = self.workspace_source return result def from_map(self, m: dict = None): m = m or dict() if m.get('Accessibility') is not None: self.accessibility = m.get('Accessibility') if m.get('Affinity') is not None: temp_model = CreateInstanceRequestAffinity() self.affinity = temp_model.from_map(m['Affinity']) self.cloud_disks = [] if m.get('CloudDisks') is not None: for k in m.get('CloudDisks'): temp_model = CreateInstanceRequestCloudDisks() self.cloud_disks.append(temp_model.from_map(k)) if m.get('CredentialConfig') is not None: temp_model = CredentialConfig() self.credential_config = temp_model.from_map(m['CredentialConfig']) self.datasets = [] if m.get('Datasets') is not None: for k in m.get('Datasets'): temp_model = CreateInstanceRequestDatasets() self.datasets.append(temp_model.from_map(k)) if m.get('Driver') is not None: self.driver = m.get('Driver') if m.get('DynamicMount') is not None: temp_model = DynamicMount() self.dynamic_mount = temp_model.from_map(m['DynamicMount']) if m.get('EcsSpec') is not None: self.ecs_spec = m.get('EcsSpec') if m.get('EnvironmentVariables') is not None: self.environment_variables = m.get('EnvironmentVariables') if m.get('ImageAuth') is not None: self.image_auth = m.get('ImageAuth') if m.get('ImageId') is not None: self.image_id = m.get('ImageId') if m.get('ImageUrl') is not None: self.image_url = m.get('ImageUrl') if m.get('InstanceName') is not None: self.instance_name = m.get('InstanceName') self.labels = [] if m.get('Labels') is not None: for k in m.get('Labels'): temp_model = CreateInstanceRequestLabels() self.labels.append(temp_model.from_map(k)) if m.get('Priority') is not None: self.priority = m.get('Priority') if m.get('RequestedResource') is not None: temp_model = CreateInstanceRequestRequestedResource() self.requested_resource = temp_model.from_map(m['RequestedResource']) if m.get('ResourceId') is not None: self.resource_id = m.get('ResourceId') self.tag = [] if m.get('Tag') is not None: for k in m.get('Tag'): temp_model = CreateInstanceRequestTag() self.tag.append(temp_model.from_map(k)) if m.get('UserId') is not None: self.user_id = m.get('UserId') if m.get('UserVpc') is not None: temp_model = CreateInstanceRequestUserVpc() self.user_vpc = temp_model.from_map(m['UserVpc']) if m.get('WorkspaceId') is not None: self.workspace_id = m.get('WorkspaceId') if m.get('WorkspaceSource') is not None: self.workspace_source = m.get('WorkspaceSource') return self class CreateInstanceResponseBody(TeaModel): def __init__( self, code: str = None, http_status_code: int = None, instance_id: str = None, message: str = None, request_id: str = None, success: bool = None, ): self.code = code self.http_status_code = http_status_code self.instance_id = instance_id self.message = message self.request_id = request_id self.success = success def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.message is not None: result['Message'] = self.message 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: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Message') is not None: self.message = m.get('Message') 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 CreateInstanceResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: CreateInstanceResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = CreateInstanceResponseBody() self.body = temp_model.from_map(m['body']) return self class CreateInstanceShutdownTimerRequest(TeaModel): def __init__( self, due_time: str = None, remaining_time_in_ms: int = None, ): self.due_time = due_time self.remaining_time_in_ms = remaining_time_in_ms def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.due_time is not None: result['DueTime'] = self.due_time if self.remaining_time_in_ms is not None: result['RemainingTimeInMs'] = self.remaining_time_in_ms return result def from_map(self, m: dict = None): m = m or dict() if m.get('DueTime') is not None: self.due_time = m.get('DueTime') if m.get('RemainingTimeInMs') is not None: self.remaining_time_in_ms = m.get('RemainingTimeInMs') return self class CreateInstanceShutdownTimerResponseBody(TeaModel): def __init__( self, code: str = None, http_status_code: int = None, instance_id: str = None, message: str = None, request_id: str = None, success: bool = None, ): self.code = code self.http_status_code = http_status_code self.instance_id = instance_id self.message = message self.request_id = request_id self.success = success def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.message is not None: result['Message'] = self.message 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: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Message') is not None: self.message = m.get('Message') 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 CreateInstanceShutdownTimerResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: CreateInstanceShutdownTimerResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = CreateInstanceShutdownTimerResponseBody() self.body = temp_model.from_map(m['body']) return self class CreateInstanceSnapshotRequestLabels(TeaModel): def __init__( self, key: str = None, value: str = None, ): self.key = key self.value = value def validate(self): pass def to_map(self): _map = super().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: dict = 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 CreateInstanceSnapshotRequest(TeaModel): def __init__( self, exclude_paths: List[str] = None, image_url: str = None, labels: List[CreateInstanceSnapshotRequestLabels] = None, overwrite: bool = None, snapshot_description: str = None, snapshot_name: str = None, ): self.exclude_paths = exclude_paths # This parameter is required. self.image_url = image_url self.labels = labels self.overwrite = overwrite self.snapshot_description = snapshot_description # This parameter is required. self.snapshot_name = snapshot_name def validate(self): if self.labels: for k in self.labels: if k: k.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.exclude_paths is not None: result['ExcludePaths'] = self.exclude_paths if self.image_url is not None: result['ImageUrl'] = self.image_url result['Labels'] = [] if self.labels is not None: for k in self.labels: result['Labels'].append(k.to_map() if k else None) if self.overwrite is not None: result['Overwrite'] = self.overwrite if self.snapshot_description is not None: result['SnapshotDescription'] = self.snapshot_description if self.snapshot_name is not None: result['SnapshotName'] = self.snapshot_name return result def from_map(self, m: dict = None): m = m or dict() if m.get('ExcludePaths') is not None: self.exclude_paths = m.get('ExcludePaths') if m.get('ImageUrl') is not None: self.image_url = m.get('ImageUrl') self.labels = [] if m.get('Labels') is not None: for k in m.get('Labels'): temp_model = CreateInstanceSnapshotRequestLabels() self.labels.append(temp_model.from_map(k)) if m.get('Overwrite') is not None: self.overwrite = m.get('Overwrite') if m.get('SnapshotDescription') is not None: self.snapshot_description = m.get('SnapshotDescription') if m.get('SnapshotName') is not None: self.snapshot_name = m.get('SnapshotName') return self class CreateInstanceSnapshotResponseBody(TeaModel): def __init__( self, code: str = None, http_status_code: int = None, instance_id: str = None, message: str = None, request_id: str = None, snapshot_id: str = None, success: bool = None, ): self.code = code self.http_status_code = http_status_code self.instance_id = instance_id self.message = message self.request_id = request_id self.snapshot_id = snapshot_id self.success = success def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.message is not None: result['Message'] = self.message if self.request_id is not None: result['RequestId'] = self.request_id if self.snapshot_id is not None: result['SnapshotId'] = self.snapshot_id if self.success is not None: result['Success'] = self.success return result def from_map(self, m: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Message') is not None: self.message = m.get('Message') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('SnapshotId') is not None: self.snapshot_id = m.get('SnapshotId') if m.get('Success') is not None: self.success = m.get('Success') return self class CreateInstanceSnapshotResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: CreateInstanceSnapshotResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = CreateInstanceSnapshotResponseBody() self.body = temp_model.from_map(m['body']) return self class DeleteIdleInstanceCullerResponseBody(TeaModel): def __init__( self, code: str = None, instance_id: str = None, message: str = None, request_id: str = None, success: bool = None, ): self.code = code self.instance_id = instance_id self.message = message self.request_id = request_id self.success = success def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.message is not None: result['Message'] = self.message 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: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Message') is not None: self.message = m.get('Message') 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 DeleteIdleInstanceCullerResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: DeleteIdleInstanceCullerResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = DeleteIdleInstanceCullerResponseBody() self.body = temp_model.from_map(m['body']) return self class DeleteInstanceResponseBody(TeaModel): def __init__( self, code: str = None, http_status_code: int = None, instance_id: str = None, message: str = None, request_id: str = None, success: bool = None, ): self.code = code self.http_status_code = http_status_code self.instance_id = instance_id self.message = message self.request_id = request_id self.success = success def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.message is not None: result['Message'] = self.message 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: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Message') is not None: self.message = m.get('Message') 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 DeleteInstanceResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: DeleteInstanceResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = DeleteInstanceResponseBody() self.body = temp_model.from_map(m['body']) return self class DeleteInstanceLabelsRequest(TeaModel): def __init__( self, label_keys: str = None, ): # This parameter is required. self.label_keys = label_keys def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.label_keys is not None: result['LabelKeys'] = self.label_keys return result def from_map(self, m: dict = None): m = m or dict() if m.get('LabelKeys') is not None: self.label_keys = m.get('LabelKeys') return self class DeleteInstanceLabelsResponseBody(TeaModel): def __init__( self, request_id: str = None, ): self.request_id = request_id def validate(self): pass def to_map(self): _map = super().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: dict = None): m = m or dict() if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class DeleteInstanceLabelsResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: DeleteInstanceLabelsResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = DeleteInstanceLabelsResponseBody() self.body = temp_model.from_map(m['body']) return self class DeleteInstanceShutdownTimerResponseBody(TeaModel): def __init__( self, code: str = None, http_status_code: int = None, instance_id: str = None, message: str = None, request_id: str = None, success: bool = None, ): self.code = code self.http_status_code = http_status_code self.instance_id = instance_id self.message = message self.request_id = request_id self.success = success def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.message is not None: result['Message'] = self.message 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: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Message') is not None: self.message = m.get('Message') 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 DeleteInstanceShutdownTimerResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: DeleteInstanceShutdownTimerResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = DeleteInstanceShutdownTimerResponseBody() self.body = temp_model.from_map(m['body']) return self class DeleteInstanceSnapshotResponseBody(TeaModel): def __init__( self, code: str = None, http_status_code: int = None, instance_id: str = None, message: str = None, request_id: str = None, snapshot_id: str = None, success: bool = None, ): self.code = code self.http_status_code = http_status_code self.instance_id = instance_id self.message = message self.request_id = request_id self.snapshot_id = snapshot_id self.success = success def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.message is not None: result['Message'] = self.message if self.request_id is not None: result['RequestId'] = self.request_id if self.snapshot_id is not None: result['SnapshotId'] = self.snapshot_id if self.success is not None: result['Success'] = self.success return result def from_map(self, m: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Message') is not None: self.message = m.get('Message') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('SnapshotId') is not None: self.snapshot_id = m.get('SnapshotId') if m.get('Success') is not None: self.success = m.get('Success') return self class DeleteInstanceSnapshotResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: DeleteInstanceSnapshotResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = DeleteInstanceSnapshotResponseBody() self.body = temp_model.from_map(m['body']) return self class GetIdleInstanceCullerResponseBody(TeaModel): def __init__( self, code: str = None, cpu_percent_threshold: int = None, gpu_percent_threshold: int = None, idle_time_in_minutes: int = None, instance_id: str = None, max_idle_time_in_minutes: int = None, message: str = None, request_id: str = None, success: bool = None, ): self.code = code self.cpu_percent_threshold = cpu_percent_threshold self.gpu_percent_threshold = gpu_percent_threshold self.idle_time_in_minutes = idle_time_in_minutes self.instance_id = instance_id self.max_idle_time_in_minutes = max_idle_time_in_minutes self.message = message self.request_id = request_id self.success = success def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.cpu_percent_threshold is not None: result['CpuPercentThreshold'] = self.cpu_percent_threshold if self.gpu_percent_threshold is not None: result['GpuPercentThreshold'] = self.gpu_percent_threshold if self.idle_time_in_minutes is not None: result['IdleTimeInMinutes'] = self.idle_time_in_minutes if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.max_idle_time_in_minutes is not None: result['MaxIdleTimeInMinutes'] = self.max_idle_time_in_minutes if self.message is not None: result['Message'] = self.message 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: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('CpuPercentThreshold') is not None: self.cpu_percent_threshold = m.get('CpuPercentThreshold') if m.get('GpuPercentThreshold') is not None: self.gpu_percent_threshold = m.get('GpuPercentThreshold') if m.get('IdleTimeInMinutes') is not None: self.idle_time_in_minutes = m.get('IdleTimeInMinutes') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('MaxIdleTimeInMinutes') is not None: self.max_idle_time_in_minutes = m.get('MaxIdleTimeInMinutes') if m.get('Message') is not None: self.message = m.get('Message') 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 GetIdleInstanceCullerResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: GetIdleInstanceCullerResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = GetIdleInstanceCullerResponseBody() self.body = temp_model.from_map(m['body']) return self class GetInstanceRequest(TeaModel): def __init__( self, token: str = None, ): self.token = token def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.token is not None: result['Token'] = self.token return result def from_map(self, m: dict = None): m = m or dict() if m.get('Token') is not None: self.token = m.get('Token') return self class GetInstanceResponseBodyAffinityCPU(TeaModel): def __init__( self, enable: bool = None, ): self.enable = enable def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.enable is not None: result['Enable'] = self.enable return result def from_map(self, m: dict = None): m = m or dict() if m.get('Enable') is not None: self.enable = m.get('Enable') return self class GetInstanceResponseBodyAffinity(TeaModel): def __init__( self, cpu: GetInstanceResponseBodyAffinityCPU = None, ): self.cpu = cpu def validate(self): if self.cpu: self.cpu.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.cpu is not None: result['CPU'] = self.cpu.to_map() return result def from_map(self, m: dict = None): m = m or dict() if m.get('CPU') is not None: temp_model = GetInstanceResponseBodyAffinityCPU() self.cpu = temp_model.from_map(m['CPU']) return self class GetInstanceResponseBodyCloudDisks(TeaModel): def __init__( self, capacity: str = None, mount_path: str = None, path: str = None, sub_type: str = None, ): self.capacity = capacity self.mount_path = mount_path self.path = path self.sub_type = sub_type def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.capacity is not None: result['Capacity'] = self.capacity if self.mount_path is not None: result['MountPath'] = self.mount_path if self.path is not None: result['Path'] = self.path if self.sub_type is not None: result['SubType'] = self.sub_type return result def from_map(self, m: dict = None): m = m or dict() if m.get('Capacity') is not None: self.capacity = m.get('Capacity') if m.get('MountPath') is not None: self.mount_path = m.get('MountPath') if m.get('Path') is not None: self.path = m.get('Path') if m.get('SubType') is not None: self.sub_type = m.get('SubType') return self class GetInstanceResponseBodyDatasets(TeaModel): def __init__( self, dataset_id: str = None, dataset_version: str = None, dynamic: bool = None, mount_access: str = None, mount_path: str = None, option_type: str = None, options: str = None, uri: str = None, ): self.dataset_id = dataset_id self.dataset_version = dataset_version self.dynamic = dynamic self.mount_access = mount_access self.mount_path = mount_path self.option_type = option_type self.options = options self.uri = uri def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.dataset_id is not None: result['DatasetId'] = self.dataset_id if self.dataset_version is not None: result['DatasetVersion'] = self.dataset_version if self.dynamic is not None: result['Dynamic'] = self.dynamic if self.mount_access is not None: result['MountAccess'] = self.mount_access if self.mount_path is not None: result['MountPath'] = self.mount_path if self.option_type is not None: result['OptionType'] = self.option_type if self.options is not None: result['Options'] = self.options if self.uri is not None: result['Uri'] = self.uri return result def from_map(self, m: dict = None): m = m or dict() if m.get('DatasetId') is not None: self.dataset_id = m.get('DatasetId') if m.get('DatasetVersion') is not None: self.dataset_version = m.get('DatasetVersion') if m.get('Dynamic') is not None: self.dynamic = m.get('Dynamic') if m.get('MountAccess') is not None: self.mount_access = m.get('MountAccess') if m.get('MountPath') is not None: self.mount_path = m.get('MountPath') if m.get('OptionType') is not None: self.option_type = m.get('OptionType') if m.get('Options') is not None: self.options = m.get('Options') if m.get('Uri') is not None: self.uri = m.get('Uri') return self class GetInstanceResponseBodyIdleInstanceCuller(TeaModel): def __init__( self, cpu_percent_threshold: int = None, gpu_percent_threshold: int = None, idle_time_in_minutes: int = None, instance_id: str = None, max_idle_time_in_minutes: int = None, ): self.cpu_percent_threshold = cpu_percent_threshold self.gpu_percent_threshold = gpu_percent_threshold self.idle_time_in_minutes = idle_time_in_minutes self.instance_id = instance_id self.max_idle_time_in_minutes = max_idle_time_in_minutes def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.cpu_percent_threshold is not None: result['CpuPercentThreshold'] = self.cpu_percent_threshold if self.gpu_percent_threshold is not None: result['GpuPercentThreshold'] = self.gpu_percent_threshold if self.idle_time_in_minutes is not None: result['IdleTimeInMinutes'] = self.idle_time_in_minutes if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.max_idle_time_in_minutes is not None: result['MaxIdleTimeInMinutes'] = self.max_idle_time_in_minutes return result def from_map(self, m: dict = None): m = m or dict() if m.get('CpuPercentThreshold') is not None: self.cpu_percent_threshold = m.get('CpuPercentThreshold') if m.get('GpuPercentThreshold') is not None: self.gpu_percent_threshold = m.get('GpuPercentThreshold') if m.get('IdleTimeInMinutes') is not None: self.idle_time_in_minutes = m.get('IdleTimeInMinutes') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('MaxIdleTimeInMinutes') is not None: self.max_idle_time_in_minutes = m.get('MaxIdleTimeInMinutes') return self class GetInstanceResponseBodyInstanceShutdownTimer(TeaModel): def __init__( self, due_time: str = None, gmt_create_time: str = None, gmt_modified_time: str = None, instance_id: str = None, remaining_time_in_ms: int = None, ): self.due_time = due_time self.gmt_create_time = gmt_create_time self.gmt_modified_time = gmt_modified_time self.instance_id = instance_id self.remaining_time_in_ms = remaining_time_in_ms def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.due_time is not None: result['DueTime'] = self.due_time if self.gmt_create_time is not None: result['GmtCreateTime'] = self.gmt_create_time if self.gmt_modified_time is not None: result['GmtModifiedTime'] = self.gmt_modified_time if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.remaining_time_in_ms is not None: result['RemainingTimeInMs'] = self.remaining_time_in_ms return result def from_map(self, m: dict = None): m = m or dict() if m.get('DueTime') is not None: self.due_time = m.get('DueTime') if m.get('GmtCreateTime') is not None: self.gmt_create_time = m.get('GmtCreateTime') if m.get('GmtModifiedTime') is not None: self.gmt_modified_time = m.get('GmtModifiedTime') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('RemainingTimeInMs') is not None: self.remaining_time_in_ms = m.get('RemainingTimeInMs') return self class GetInstanceResponseBodyInstanceSnapshotList(TeaModel): def __init__( self, gmt_create_time: str = None, gmt_modified_time: str = None, image_id: str = None, image_name: str = None, image_url: str = None, reason_code: str = None, reason_message: str = None, repository_url: str = None, status: str = None, ): # 快照创建时间 self.gmt_create_time = gmt_create_time # 快照修改时间 self.gmt_modified_time = gmt_modified_time # 镜像Id self.image_id = image_id # 镜像名称 self.image_name = image_name # 镜像Url self.image_url = image_url # 实例快照错误代码 self.reason_code = reason_code # 实例快照错误消息 self.reason_message = reason_message # 镜像仓库Url self.repository_url = repository_url # 实例快照状态 self.status = status def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.gmt_create_time is not None: result['GmtCreateTime'] = self.gmt_create_time if self.gmt_modified_time is not None: result['GmtModifiedTime'] = self.gmt_modified_time if self.image_id is not None: result['ImageId'] = self.image_id if self.image_name is not None: result['ImageName'] = self.image_name if self.image_url is not None: result['ImageUrl'] = self.image_url if self.reason_code is not None: result['ReasonCode'] = self.reason_code if self.reason_message is not None: result['ReasonMessage'] = self.reason_message if self.repository_url is not None: result['RepositoryUrl'] = self.repository_url if self.status is not None: result['Status'] = self.status return result def from_map(self, m: dict = None): m = m or dict() if m.get('GmtCreateTime') is not None: self.gmt_create_time = m.get('GmtCreateTime') if m.get('GmtModifiedTime') is not None: self.gmt_modified_time = m.get('GmtModifiedTime') if m.get('ImageId') is not None: self.image_id = m.get('ImageId') if m.get('ImageName') is not None: self.image_name = m.get('ImageName') if m.get('ImageUrl') is not None: self.image_url = m.get('ImageUrl') if m.get('ReasonCode') is not None: self.reason_code = m.get('ReasonCode') if m.get('ReasonMessage') is not None: self.reason_message = m.get('ReasonMessage') if m.get('RepositoryUrl') is not None: self.repository_url = m.get('RepositoryUrl') if m.get('Status') is not None: self.status = m.get('Status') return self class GetInstanceResponseBodyLabels(TeaModel): def __init__( self, key: str = None, value: str = None, ): self.key = key self.value = value def validate(self): pass def to_map(self): _map = super().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: dict = 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 GetInstanceResponseBodyLatestSnapshot(TeaModel): def __init__( self, gmt_create_time: str = None, gmt_modified_time: str = None, image_id: str = None, image_name: str = None, image_url: str = None, reason_code: str = None, reason_message: str = None, repository_url: str = None, status: str = None, ): self.gmt_create_time = gmt_create_time self.gmt_modified_time = gmt_modified_time self.image_id = image_id self.image_name = image_name self.image_url = image_url # 实例快照错误代码 self.reason_code = reason_code # 实例快照错误消息 self.reason_message = reason_message self.repository_url = repository_url # 实例快照状态 self.status = status def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.gmt_create_time is not None: result['GmtCreateTime'] = self.gmt_create_time if self.gmt_modified_time is not None: result['GmtModifiedTime'] = self.gmt_modified_time if self.image_id is not None: result['ImageId'] = self.image_id if self.image_name is not None: result['ImageName'] = self.image_name if self.image_url is not None: result['ImageUrl'] = self.image_url if self.reason_code is not None: result['ReasonCode'] = self.reason_code if self.reason_message is not None: result['ReasonMessage'] = self.reason_message if self.repository_url is not None: result['RepositoryUrl'] = self.repository_url if self.status is not None: result['Status'] = self.status return result def from_map(self, m: dict = None): m = m or dict() if m.get('GmtCreateTime') is not None: self.gmt_create_time = m.get('GmtCreateTime') if m.get('GmtModifiedTime') is not None: self.gmt_modified_time = m.get('GmtModifiedTime') if m.get('ImageId') is not None: self.image_id = m.get('ImageId') if m.get('ImageName') is not None: self.image_name = m.get('ImageName') if m.get('ImageUrl') is not None: self.image_url = m.get('ImageUrl') if m.get('ReasonCode') is not None: self.reason_code = m.get('ReasonCode') if m.get('ReasonMessage') is not None: self.reason_message = m.get('ReasonMessage') if m.get('RepositoryUrl') is not None: self.repository_url = m.get('RepositoryUrl') if m.get('Status') is not None: self.status = m.get('Status') return self class GetInstanceResponseBodyNodeErrorRecovery(TeaModel): def __init__( self, auto_switch_countdown_seconds: int = None, enable_auto_switch_on_node_error: bool = None, has_node_error: bool = None, ): self.auto_switch_countdown_seconds = auto_switch_countdown_seconds self.enable_auto_switch_on_node_error = enable_auto_switch_on_node_error self.has_node_error = has_node_error def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.auto_switch_countdown_seconds is not None: result['autoSwitchCountdownSeconds'] = self.auto_switch_countdown_seconds if self.enable_auto_switch_on_node_error is not None: result['enableAutoSwitchOnNodeError'] = self.enable_auto_switch_on_node_error if self.has_node_error is not None: result['hasNodeError'] = self.has_node_error return result def from_map(self, m: dict = None): m = m or dict() if m.get('autoSwitchCountdownSeconds') is not None: self.auto_switch_countdown_seconds = m.get('autoSwitchCountdownSeconds') if m.get('enableAutoSwitchOnNodeError') is not None: self.enable_auto_switch_on_node_error = m.get('enableAutoSwitchOnNodeError') if m.get('hasNodeError') is not None: self.has_node_error = m.get('hasNodeError') return self class GetInstanceResponseBodyRequestedResource(TeaModel): def __init__( self, cpu: str = None, gpu: str = None, gputype: str = None, memory: str = None, shared_memory: str = None, ): self.cpu = cpu self.gpu = gpu self.gputype = gputype self.memory = memory self.shared_memory = shared_memory def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.cpu is not None: result['CPU'] = self.cpu if self.gpu is not None: result['GPU'] = self.gpu if self.gputype is not None: result['GPUType'] = self.gputype if self.memory is not None: result['Memory'] = self.memory if self.shared_memory is not None: result['SharedMemory'] = self.shared_memory return result def from_map(self, m: dict = None): m = m or dict() if m.get('CPU') is not None: self.cpu = m.get('CPU') if m.get('GPU') is not None: self.gpu = m.get('GPU') if m.get('GPUType') is not None: self.gputype = m.get('GPUType') if m.get('Memory') is not None: self.memory = m.get('Memory') if m.get('SharedMemory') is not None: self.shared_memory = m.get('SharedMemory') return self class GetInstanceResponseBodyTags(TeaModel): def __init__( self, tag_key: str = None, tag_value: str = None, ): self.tag_key = tag_key self.tag_value = tag_value def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() 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: dict = None): m = m or dict() 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 GetInstanceResponseBodyUserVpc(TeaModel): def __init__( self, default_route: str = None, extended_cidrs: List[str] = None, forward_infos: List[ForwardInfoResponse] = None, security_group_id: str = None, v_switch_id: str = None, vpc_id: str = None, ): self.default_route = default_route self.extended_cidrs = extended_cidrs self.forward_infos = forward_infos self.security_group_id = security_group_id self.v_switch_id = v_switch_id # Vpc Id。 self.vpc_id = vpc_id def validate(self): if self.forward_infos: for k in self.forward_infos: if k: k.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.default_route is not None: result['DefaultRoute'] = self.default_route if self.extended_cidrs is not None: result['ExtendedCIDRs'] = self.extended_cidrs result['ForwardInfos'] = [] if self.forward_infos is not None: for k in self.forward_infos: result['ForwardInfos'].append(k.to_map() if k else None) if self.security_group_id is not None: result['SecurityGroupId'] = self.security_group_id if self.v_switch_id is not None: result['VSwitchId'] = self.v_switch_id if self.vpc_id is not None: result['VpcId'] = self.vpc_id return result def from_map(self, m: dict = None): m = m or dict() if m.get('DefaultRoute') is not None: self.default_route = m.get('DefaultRoute') if m.get('ExtendedCIDRs') is not None: self.extended_cidrs = m.get('ExtendedCIDRs') self.forward_infos = [] if m.get('ForwardInfos') is not None: for k in m.get('ForwardInfos'): temp_model = ForwardInfoResponse() self.forward_infos.append(temp_model.from_map(k)) if m.get('SecurityGroupId') is not None: self.security_group_id = m.get('SecurityGroupId') if m.get('VSwitchId') is not None: self.v_switch_id = m.get('VSwitchId') if m.get('VpcId') is not None: self.vpc_id = m.get('VpcId') return self class GetInstanceResponseBody(TeaModel): def __init__( self, accelerator_type: str = None, accessibility: str = None, accumulated_running_time_in_ms: int = None, affinity: GetInstanceResponseBodyAffinity = None, cloud_disks: List[GetInstanceResponseBodyCloudDisks] = None, code: str = None, credential_config: CredentialConfig = None, datasets: List[GetInstanceResponseBodyDatasets] = None, driver: str = None, dynamic_mount: DynamicMount = None, ecs_spec: str = None, environment_variables: Dict[str, str] = None, gmt_create_time: str = None, gmt_modified_time: str = None, http_status_code: int = None, idle_instance_culler: GetInstanceResponseBodyIdleInstanceCuller = None, image_auth: str = None, image_id: str = None, image_name: str = None, image_url: str = None, instance_id: str = None, instance_name: str = None, instance_shutdown_timer: GetInstanceResponseBodyInstanceShutdownTimer = None, instance_snapshot_list: List[GetInstanceResponseBodyInstanceSnapshotList] = None, instance_url: str = None, jupyterlab_url: str = None, labels: List[GetInstanceResponseBodyLabels] = None, latest_snapshot: GetInstanceResponseBodyLatestSnapshot = None, message: str = None, node_error_recovery: GetInstanceResponseBodyNodeErrorRecovery = None, payment_type: str = None, priority: int = None, proxy_path: str = None, reason_code: str = None, reason_message: str = None, request_id: str = None, requested_resource: GetInstanceResponseBodyRequestedResource = None, resource_id: str = None, resource_name: str = None, status: str = None, success: bool = None, tags: List[GetInstanceResponseBodyTags] = None, terminal_url: str = None, user_id: str = None, user_name: str = None, user_vpc: GetInstanceResponseBodyUserVpc = None, web_ideurl: str = None, workspace_id: str = None, workspace_name: str = None, workspace_source: str = None, ): self.accelerator_type = accelerator_type self.accessibility = accessibility self.accumulated_running_time_in_ms = accumulated_running_time_in_ms self.affinity = affinity self.cloud_disks = cloud_disks self.code = code self.credential_config = credential_config self.datasets = datasets self.driver = driver self.dynamic_mount = dynamic_mount self.ecs_spec = ecs_spec self.environment_variables = environment_variables self.gmt_create_time = gmt_create_time self.gmt_modified_time = gmt_modified_time self.http_status_code = http_status_code self.idle_instance_culler = idle_instance_culler self.image_auth = image_auth self.image_id = image_id self.image_name = image_name self.image_url = image_url self.instance_id = instance_id self.instance_name = instance_name self.instance_shutdown_timer = instance_shutdown_timer self.instance_snapshot_list = instance_snapshot_list self.instance_url = instance_url # Jupyterlab Url。 self.jupyterlab_url = jupyterlab_url self.labels = labels self.latest_snapshot = latest_snapshot self.message = message self.node_error_recovery = node_error_recovery self.payment_type = payment_type self.priority = priority self.proxy_path = proxy_path self.reason_code = reason_code self.reason_message = reason_message self.request_id = request_id self.requested_resource = requested_resource self.resource_id = resource_id self.resource_name = resource_name self.status = status self.success = success self.tags = tags self.terminal_url = terminal_url self.user_id = user_id self.user_name = user_name self.user_vpc = user_vpc # Web IDE url。 self.web_ideurl = web_ideurl self.workspace_id = workspace_id self.workspace_name = workspace_name self.workspace_source = workspace_source def validate(self): if self.affinity: self.affinity.validate() if self.cloud_disks: for k in self.cloud_disks: if k: k.validate() if self.credential_config: self.credential_config.validate() if self.datasets: for k in self.datasets: if k: k.validate() if self.dynamic_mount: self.dynamic_mount.validate() if self.idle_instance_culler: self.idle_instance_culler.validate() if self.instance_shutdown_timer: self.instance_shutdown_timer.validate() if self.instance_snapshot_list: for k in self.instance_snapshot_list: if k: k.validate() if self.labels: for k in self.labels: if k: k.validate() if self.latest_snapshot: self.latest_snapshot.validate() if self.node_error_recovery: self.node_error_recovery.validate() if self.requested_resource: self.requested_resource.validate() if self.tags: for k in self.tags: if k: k.validate() if self.user_vpc: self.user_vpc.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.accelerator_type is not None: result['AcceleratorType'] = self.accelerator_type if self.accessibility is not None: result['Accessibility'] = self.accessibility if self.accumulated_running_time_in_ms is not None: result['AccumulatedRunningTimeInMs'] = self.accumulated_running_time_in_ms if self.affinity is not None: result['Affinity'] = self.affinity.to_map() result['CloudDisks'] = [] if self.cloud_disks is not None: for k in self.cloud_disks: result['CloudDisks'].append(k.to_map() if k else None) if self.code is not None: result['Code'] = self.code if self.credential_config is not None: result['CredentialConfig'] = self.credential_config.to_map() result['Datasets'] = [] if self.datasets is not None: for k in self.datasets: result['Datasets'].append(k.to_map() if k else None) if self.driver is not None: result['Driver'] = self.driver if self.dynamic_mount is not None: result['DynamicMount'] = self.dynamic_mount.to_map() if self.ecs_spec is not None: result['EcsSpec'] = self.ecs_spec if self.environment_variables is not None: result['EnvironmentVariables'] = self.environment_variables if self.gmt_create_time is not None: result['GmtCreateTime'] = self.gmt_create_time if self.gmt_modified_time is not None: result['GmtModifiedTime'] = self.gmt_modified_time if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.idle_instance_culler is not None: result['IdleInstanceCuller'] = self.idle_instance_culler.to_map() if self.image_auth is not None: result['ImageAuth'] = self.image_auth if self.image_id is not None: result['ImageId'] = self.image_id if self.image_name is not None: result['ImageName'] = self.image_name if self.image_url is not None: result['ImageUrl'] = self.image_url if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.instance_name is not None: result['InstanceName'] = self.instance_name if self.instance_shutdown_timer is not None: result['InstanceShutdownTimer'] = self.instance_shutdown_timer.to_map() result['InstanceSnapshotList'] = [] if self.instance_snapshot_list is not None: for k in self.instance_snapshot_list: result['InstanceSnapshotList'].append(k.to_map() if k else None) if self.instance_url is not None: result['InstanceUrl'] = self.instance_url if self.jupyterlab_url is not None: result['JupyterlabUrl'] = self.jupyterlab_url result['Labels'] = [] if self.labels is not None: for k in self.labels: result['Labels'].append(k.to_map() if k else None) if self.latest_snapshot is not None: result['LatestSnapshot'] = self.latest_snapshot.to_map() if self.message is not None: result['Message'] = self.message if self.node_error_recovery is not None: result['NodeErrorRecovery'] = self.node_error_recovery.to_map() if self.payment_type is not None: result['PaymentType'] = self.payment_type if self.priority is not None: result['Priority'] = self.priority if self.proxy_path is not None: result['ProxyPath'] = self.proxy_path if self.reason_code is not None: result['ReasonCode'] = self.reason_code if self.reason_message is not None: result['ReasonMessage'] = self.reason_message if self.request_id is not None: result['RequestId'] = self.request_id if self.requested_resource is not None: result['RequestedResource'] = self.requested_resource.to_map() if self.resource_id is not None: result['ResourceId'] = self.resource_id if self.resource_name is not None: result['ResourceName'] = self.resource_name if self.status is not None: result['Status'] = self.status if self.success is not None: result['Success'] = self.success result['Tags'] = [] if self.tags is not None: for k in self.tags: result['Tags'].append(k.to_map() if k else None) if self.terminal_url is not None: result['TerminalUrl'] = self.terminal_url if self.user_id is not None: result['UserId'] = self.user_id if self.user_name is not None: result['UserName'] = self.user_name if self.user_vpc is not None: result['UserVpc'] = self.user_vpc.to_map() if self.web_ideurl is not None: result['WebIDEUrl'] = self.web_ideurl if self.workspace_id is not None: result['WorkspaceId'] = self.workspace_id if self.workspace_name is not None: result['WorkspaceName'] = self.workspace_name if self.workspace_source is not None: result['WorkspaceSource'] = self.workspace_source return result def from_map(self, m: dict = None): m = m or dict() if m.get('AcceleratorType') is not None: self.accelerator_type = m.get('AcceleratorType') if m.get('Accessibility') is not None: self.accessibility = m.get('Accessibility') if m.get('AccumulatedRunningTimeInMs') is not None: self.accumulated_running_time_in_ms = m.get('AccumulatedRunningTimeInMs') if m.get('Affinity') is not None: temp_model = GetInstanceResponseBodyAffinity() self.affinity = temp_model.from_map(m['Affinity']) self.cloud_disks = [] if m.get('CloudDisks') is not None: for k in m.get('CloudDisks'): temp_model = GetInstanceResponseBodyCloudDisks() self.cloud_disks.append(temp_model.from_map(k)) if m.get('Code') is not None: self.code = m.get('Code') if m.get('CredentialConfig') is not None: temp_model = CredentialConfig() self.credential_config = temp_model.from_map(m['CredentialConfig']) self.datasets = [] if m.get('Datasets') is not None: for k in m.get('Datasets'): temp_model = GetInstanceResponseBodyDatasets() self.datasets.append(temp_model.from_map(k)) if m.get('Driver') is not None: self.driver = m.get('Driver') if m.get('DynamicMount') is not None: temp_model = DynamicMount() self.dynamic_mount = temp_model.from_map(m['DynamicMount']) if m.get('EcsSpec') is not None: self.ecs_spec = m.get('EcsSpec') if m.get('EnvironmentVariables') is not None: self.environment_variables = m.get('EnvironmentVariables') if m.get('GmtCreateTime') is not None: self.gmt_create_time = m.get('GmtCreateTime') if m.get('GmtModifiedTime') is not None: self.gmt_modified_time = m.get('GmtModifiedTime') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('IdleInstanceCuller') is not None: temp_model = GetInstanceResponseBodyIdleInstanceCuller() self.idle_instance_culler = temp_model.from_map(m['IdleInstanceCuller']) if m.get('ImageAuth') is not None: self.image_auth = m.get('ImageAuth') if m.get('ImageId') is not None: self.image_id = m.get('ImageId') if m.get('ImageName') is not None: self.image_name = m.get('ImageName') if m.get('ImageUrl') is not None: self.image_url = m.get('ImageUrl') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('InstanceName') is not None: self.instance_name = m.get('InstanceName') if m.get('InstanceShutdownTimer') is not None: temp_model = GetInstanceResponseBodyInstanceShutdownTimer() self.instance_shutdown_timer = temp_model.from_map(m['InstanceShutdownTimer']) self.instance_snapshot_list = [] if m.get('InstanceSnapshotList') is not None: for k in m.get('InstanceSnapshotList'): temp_model = GetInstanceResponseBodyInstanceSnapshotList() self.instance_snapshot_list.append(temp_model.from_map(k)) if m.get('InstanceUrl') is not None: self.instance_url = m.get('InstanceUrl') if m.get('JupyterlabUrl') is not None: self.jupyterlab_url = m.get('JupyterlabUrl') self.labels = [] if m.get('Labels') is not None: for k in m.get('Labels'): temp_model = GetInstanceResponseBodyLabels() self.labels.append(temp_model.from_map(k)) if m.get('LatestSnapshot') is not None: temp_model = GetInstanceResponseBodyLatestSnapshot() self.latest_snapshot = temp_model.from_map(m['LatestSnapshot']) if m.get('Message') is not None: self.message = m.get('Message') if m.get('NodeErrorRecovery') is not None: temp_model = GetInstanceResponseBodyNodeErrorRecovery() self.node_error_recovery = temp_model.from_map(m['NodeErrorRecovery']) if m.get('PaymentType') is not None: self.payment_type = m.get('PaymentType') if m.get('Priority') is not None: self.priority = m.get('Priority') if m.get('ProxyPath') is not None: self.proxy_path = m.get('ProxyPath') if m.get('ReasonCode') is not None: self.reason_code = m.get('ReasonCode') if m.get('ReasonMessage') is not None: self.reason_message = m.get('ReasonMessage') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('RequestedResource') is not None: temp_model = GetInstanceResponseBodyRequestedResource() self.requested_resource = temp_model.from_map(m['RequestedResource']) if m.get('ResourceId') is not None: self.resource_id = m.get('ResourceId') if m.get('ResourceName') is not None: self.resource_name = m.get('ResourceName') if m.get('Status') is not None: self.status = m.get('Status') if m.get('Success') is not None: self.success = m.get('Success') self.tags = [] if m.get('Tags') is not None: for k in m.get('Tags'): temp_model = GetInstanceResponseBodyTags() self.tags.append(temp_model.from_map(k)) if m.get('TerminalUrl') is not None: self.terminal_url = m.get('TerminalUrl') if m.get('UserId') is not None: self.user_id = m.get('UserId') if m.get('UserName') is not None: self.user_name = m.get('UserName') if m.get('UserVpc') is not None: temp_model = GetInstanceResponseBodyUserVpc() self.user_vpc = temp_model.from_map(m['UserVpc']) if m.get('WebIDEUrl') is not None: self.web_ideurl = m.get('WebIDEUrl') if m.get('WorkspaceId') is not None: self.workspace_id = m.get('WorkspaceId') if m.get('WorkspaceName') is not None: self.workspace_name = m.get('WorkspaceName') if m.get('WorkspaceSource') is not None: self.workspace_source = m.get('WorkspaceSource') return self class GetInstanceResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: GetInstanceResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = GetInstanceResponseBody() self.body = temp_model.from_map(m['body']) return self class GetInstanceEventsRequest(TeaModel): def __init__( self, end_time: str = None, max_events_num: int = None, start_time: str = None, token: str = None, ): self.end_time = end_time self.max_events_num = max_events_num self.start_time = start_time self.token = token def validate(self): pass def to_map(self): _map = super().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.max_events_num is not None: result['MaxEventsNum'] = self.max_events_num if self.start_time is not None: result['StartTime'] = self.start_time if self.token is not None: result['Token'] = self.token return result def from_map(self, m: dict = None): m = m or dict() if m.get('EndTime') is not None: self.end_time = m.get('EndTime') if m.get('MaxEventsNum') is not None: self.max_events_num = m.get('MaxEventsNum') if m.get('StartTime') is not None: self.start_time = m.get('StartTime') if m.get('Token') is not None: self.token = m.get('Token') return self class GetInstanceEventsResponseBody(TeaModel): def __init__( self, code: str = None, events: List[str] = None, http_status_code: int = None, instance_id: str = None, message: str = None, request_id: str = None, success: bool = None, ): self.code = code self.events = events self.http_status_code = http_status_code self.instance_id = instance_id self.message = message self.request_id = request_id self.success = success def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.events is not None: result['Events'] = self.events if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.message is not None: result['Message'] = self.message 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: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('Events') is not None: self.events = m.get('Events') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Message') is not None: self.message = m.get('Message') 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 GetInstanceEventsResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: GetInstanceEventsResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = GetInstanceEventsResponseBody() self.body = temp_model.from_map(m['body']) return self class GetInstanceMetricsRequest(TeaModel): def __init__( self, end_time: str = None, metric_type: str = None, start_time: str = None, time_step: str = None, ): self.end_time = end_time # This parameter is required. self.metric_type = metric_type self.start_time = start_time self.time_step = time_step def validate(self): pass def to_map(self): _map = super().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.metric_type is not None: result['MetricType'] = self.metric_type if self.start_time is not None: result['StartTime'] = self.start_time if self.time_step is not None: result['TimeStep'] = self.time_step return result def from_map(self, m: dict = None): m = m or dict() if m.get('EndTime') is not None: self.end_time = m.get('EndTime') if m.get('MetricType') is not None: self.metric_type = m.get('MetricType') if m.get('StartTime') is not None: self.start_time = m.get('StartTime') if m.get('TimeStep') is not None: self.time_step = m.get('TimeStep') return self class GetInstanceMetricsResponseBodyPodMetricsMetrics(TeaModel): def __init__( self, time: int = None, value: float = None, ): self.time = time self.value = value def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.time is not None: result['Time'] = self.time if self.value is not None: result['Value'] = self.value return result def from_map(self, m: dict = None): m = m or dict() if m.get('Time') is not None: self.time = m.get('Time') if m.get('Value') is not None: self.value = m.get('Value') return self class GetInstanceMetricsResponseBodyPodMetrics(TeaModel): def __init__( self, metrics: List[GetInstanceMetricsResponseBodyPodMetricsMetrics] = None, pod_id: str = None, ): self.metrics = metrics self.pod_id = pod_id def validate(self): if self.metrics: for k in self.metrics: if k: k.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() result['Metrics'] = [] if self.metrics is not None: for k in self.metrics: result['Metrics'].append(k.to_map() if k else None) if self.pod_id is not None: result['PodId'] = self.pod_id return result def from_map(self, m: dict = None): m = m or dict() self.metrics = [] if m.get('Metrics') is not None: for k in m.get('Metrics'): temp_model = GetInstanceMetricsResponseBodyPodMetricsMetrics() self.metrics.append(temp_model.from_map(k)) if m.get('PodId') is not None: self.pod_id = m.get('PodId') return self class GetInstanceMetricsResponseBody(TeaModel): def __init__( self, code: str = None, http_status_code: int = None, instance_id: str = None, message: str = None, pod_metrics: List[GetInstanceMetricsResponseBodyPodMetrics] = None, request_id: str = None, success: bool = None, ): self.code = code self.http_status_code = http_status_code self.instance_id = instance_id self.message = message self.pod_metrics = pod_metrics self.request_id = request_id self.success = success def validate(self): if self.pod_metrics: for k in self.pod_metrics: if k: k.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.message is not None: result['Message'] = self.message result['PodMetrics'] = [] if self.pod_metrics is not None: for k in self.pod_metrics: result['PodMetrics'].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: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Message') is not None: self.message = m.get('Message') self.pod_metrics = [] if m.get('PodMetrics') is not None: for k in m.get('PodMetrics'): temp_model = GetInstanceMetricsResponseBodyPodMetrics() self.pod_metrics.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 GetInstanceMetricsResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: GetInstanceMetricsResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = GetInstanceMetricsResponseBody() self.body = temp_model.from_map(m['body']) return self class GetInstanceShutdownTimerResponseBody(TeaModel): def __init__( self, code: str = None, due_time: str = None, gmt_create_time: str = None, gmt_modified_time: str = None, http_status_code: int = None, instance_id: str = None, message: str = None, remaining_time_in_ms: int = None, request_id: str = None, success: bool = None, ): self.code = code self.due_time = due_time self.gmt_create_time = gmt_create_time self.gmt_modified_time = gmt_modified_time self.http_status_code = http_status_code self.instance_id = instance_id self.message = message self.remaining_time_in_ms = remaining_time_in_ms self.request_id = request_id self.success = success def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.due_time is not None: result['DueTime'] = self.due_time if self.gmt_create_time is not None: result['GmtCreateTime'] = self.gmt_create_time if self.gmt_modified_time is not None: result['GmtModifiedTime'] = self.gmt_modified_time if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.message is not None: result['Message'] = self.message if self.remaining_time_in_ms is not None: result['RemainingTimeInMs'] = self.remaining_time_in_ms 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: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('DueTime') is not None: self.due_time = m.get('DueTime') if m.get('GmtCreateTime') is not None: self.gmt_create_time = m.get('GmtCreateTime') if m.get('GmtModifiedTime') is not None: self.gmt_modified_time = m.get('GmtModifiedTime') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Message') is not None: self.message = m.get('Message') if m.get('RemainingTimeInMs') is not None: self.remaining_time_in_ms = m.get('RemainingTimeInMs') 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 GetInstanceShutdownTimerResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: GetInstanceShutdownTimerResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = GetInstanceShutdownTimerResponseBody() self.body = temp_model.from_map(m['body']) return self class GetInstanceSnapshotResponseBodyLabels(TeaModel): def __init__( self, key: str = None, value: str = None, ): self.key = key self.value = value def validate(self): pass def to_map(self): _map = super().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: dict = 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 GetInstanceSnapshotResponseBody(TeaModel): def __init__( self, code: str = None, exclude_paths: List[str] = None, gmt_create_time: str = None, gmt_modified_time: str = None, http_status_code: int = None, image_id: str = None, image_url: str = None, instance_id: str = None, labels: List[GetInstanceSnapshotResponseBodyLabels] = None, message: str = None, reason_code: str = None, reason_message: str = None, request_id: str = None, snapshot_id: str = None, snapshot_name: str = None, status: str = None, success: bool = None, ): self.code = code self.exclude_paths = exclude_paths self.gmt_create_time = gmt_create_time self.gmt_modified_time = gmt_modified_time self.http_status_code = http_status_code self.image_id = image_id self.image_url = image_url self.instance_id = instance_id self.labels = labels self.message = message self.reason_code = reason_code self.reason_message = reason_message self.request_id = request_id self.snapshot_id = snapshot_id self.snapshot_name = snapshot_name self.status = status self.success = success def validate(self): if self.labels: for k in self.labels: if k: k.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.exclude_paths is not None: result['ExcludePaths'] = self.exclude_paths if self.gmt_create_time is not None: result['GmtCreateTime'] = self.gmt_create_time if self.gmt_modified_time is not None: result['GmtModifiedTime'] = self.gmt_modified_time if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.image_id is not None: result['ImageId'] = self.image_id if self.image_url is not None: result['ImageUrl'] = self.image_url if self.instance_id is not None: result['InstanceId'] = self.instance_id result['Labels'] = [] if self.labels is not None: for k in self.labels: result['Labels'].append(k.to_map() if k else None) if self.message is not None: result['Message'] = self.message if self.reason_code is not None: result['ReasonCode'] = self.reason_code if self.reason_message is not None: result['ReasonMessage'] = self.reason_message if self.request_id is not None: result['RequestId'] = self.request_id if self.snapshot_id is not None: result['SnapshotId'] = self.snapshot_id if self.snapshot_name is not None: result['SnapshotName'] = self.snapshot_name if self.status is not None: result['Status'] = self.status if self.success is not None: result['Success'] = self.success return result def from_map(self, m: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('ExcludePaths') is not None: self.exclude_paths = m.get('ExcludePaths') if m.get('GmtCreateTime') is not None: self.gmt_create_time = m.get('GmtCreateTime') if m.get('GmtModifiedTime') is not None: self.gmt_modified_time = m.get('GmtModifiedTime') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('ImageId') is not None: self.image_id = m.get('ImageId') if m.get('ImageUrl') is not None: self.image_url = m.get('ImageUrl') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') self.labels = [] if m.get('Labels') is not None: for k in m.get('Labels'): temp_model = GetInstanceSnapshotResponseBodyLabels() self.labels.append(temp_model.from_map(k)) if m.get('Message') is not None: self.message = m.get('Message') if m.get('ReasonCode') is not None: self.reason_code = m.get('ReasonCode') if m.get('ReasonMessage') is not None: self.reason_message = m.get('ReasonMessage') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('SnapshotId') is not None: self.snapshot_id = m.get('SnapshotId') if m.get('SnapshotName') is not None: self.snapshot_name = m.get('SnapshotName') if m.get('Status') is not None: self.status = m.get('Status') if m.get('Success') is not None: self.success = m.get('Success') return self class GetInstanceSnapshotResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: GetInstanceSnapshotResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = GetInstanceSnapshotResponseBody() self.body = temp_model.from_map(m['body']) return self class GetLifecycleRequest(TeaModel): def __init__( self, end_time: str = None, limit: int = None, order: str = None, session_number: int = None, start_time: str = None, token: str = None, ): self.end_time = end_time self.limit = limit self.order = order self.session_number = session_number self.start_time = start_time self.token = token def validate(self): pass def to_map(self): _map = super().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.limit is not None: result['Limit'] = self.limit if self.order is not None: result['Order'] = self.order if self.session_number is not None: result['SessionNumber'] = self.session_number if self.start_time is not None: result['StartTime'] = self.start_time if self.token is not None: result['Token'] = self.token return result def from_map(self, m: dict = None): m = m or dict() if m.get('EndTime') is not None: self.end_time = m.get('EndTime') if m.get('Limit') is not None: self.limit = m.get('Limit') if m.get('Order') is not None: self.order = m.get('Order') if m.get('SessionNumber') is not None: self.session_number = m.get('SessionNumber') if m.get('StartTime') is not None: self.start_time = m.get('StartTime') if m.get('Token') is not None: self.token = m.get('Token') return self class GetLifecycleResponseBodyLifecycle(TeaModel): def __init__( self, status: str = None, reason_code: str = None, reason_message: str = None, gmt_create_time: str = None, ): self.status = status self.reason_code = reason_code self.reason_message = reason_message self.gmt_create_time = gmt_create_time def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.status is not None: result['Status'] = self.status if self.reason_code is not None: result['ReasonCode'] = self.reason_code if self.reason_message is not None: result['ReasonMessage'] = self.reason_message if self.gmt_create_time is not None: result['GmtCreateTime'] = self.gmt_create_time return result def from_map(self, m: dict = None): m = m or dict() if m.get('Status') is not None: self.status = m.get('Status') if m.get('ReasonCode') is not None: self.reason_code = m.get('ReasonCode') if m.get('ReasonMessage') is not None: self.reason_message = m.get('ReasonMessage') if m.get('GmtCreateTime') is not None: self.gmt_create_time = m.get('GmtCreateTime') return self class GetLifecycleResponseBody(TeaModel): def __init__( self, code: str = None, lifecycle: List[List[GetLifecycleResponseBodyLifecycle]] = None, message: str = None, request_id: str = None, success: bool = None, total_count: int = None, ): self.code = code self.lifecycle = lifecycle self.message = message self.request_id = request_id self.success = success self.total_count = total_count def validate(self): if self.lifecycle: for k in self.lifecycle: for k1 in k: if k1: k1.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code result['Lifecycle'] = [] if self.lifecycle is not None: for k in self.lifecycle: l1 = [] for k1 in k: l1.append(k1.to_map() if k1 else None) result['Lifecycle'].append(l1) if self.message is not None: result['Message'] = self.message 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_count is not None: result['TotalCount'] = self.total_count return result def from_map(self, m: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') self.lifecycle = [] if m.get('Lifecycle') is not None: for k in m.get('Lifecycle'): l1 = [] for k1 in k: temp_model = GetLifecycleResponseBodyLifecycle() l1.append(temp_model.from_map(k1)) self.lifecycle.append(l1) if m.get('Message') is not None: self.message = m.get('Message') 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('TotalCount') is not None: self.total_count = m.get('TotalCount') return self class GetLifecycleResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: GetLifecycleResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = GetLifecycleResponseBody() self.body = temp_model.from_map(m['body']) return self class GetMetricsRequest(TeaModel): def __init__( self, dimensions: str = None, end_time: str = None, length: str = None, metric_name: str = None, namespace: str = None, next_token: str = None, period: str = None, start_time: str = None, ): self.dimensions = dimensions self.end_time = end_time self.length = length self.metric_name = metric_name self.namespace = namespace self.next_token = next_token self.period = period self.start_time = start_time def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.dimensions is not None: result['Dimensions'] = self.dimensions if self.end_time is not None: result['EndTime'] = self.end_time if self.length is not None: result['Length'] = self.length if self.metric_name is not None: result['MetricName'] = self.metric_name if self.namespace is not None: result['Namespace'] = self.namespace if self.next_token is not None: result['NextToken'] = self.next_token if self.period is not None: result['Period'] = self.period if self.start_time is not None: result['StartTime'] = self.start_time return result def from_map(self, m: dict = None): m = m or dict() if m.get('Dimensions') is not None: self.dimensions = m.get('Dimensions') if m.get('EndTime') is not None: self.end_time = m.get('EndTime') if m.get('Length') is not None: self.length = m.get('Length') if m.get('MetricName') is not None: self.metric_name = m.get('MetricName') if m.get('Namespace') is not None: self.namespace = m.get('Namespace') if m.get('NextToken') is not None: self.next_token = m.get('NextToken') if m.get('Period') is not None: self.period = m.get('Period') if m.get('StartTime') is not None: self.start_time = m.get('StartTime') return self class GetMetricsResponseBody(TeaModel): def __init__( self, code: str = None, datapoints: str = None, message: str = None, next_token: str = None, period: str = None, request_id: str = None, success: bool = None, ): self.code = code self.datapoints = datapoints self.message = message self.next_token = next_token self.period = period self.request_id = request_id self.success = success def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.datapoints is not None: result['Datapoints'] = self.datapoints if self.message is not None: result['Message'] = self.message if self.next_token is not None: result['NextToken'] = self.next_token if self.period is not None: result['Period'] = self.period 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: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('Datapoints') is not None: self.datapoints = m.get('Datapoints') if m.get('Message') is not None: self.message = m.get('Message') if m.get('NextToken') is not None: self.next_token = m.get('NextToken') if m.get('Period') is not None: self.period = m.get('Period') 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 GetMetricsResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: GetMetricsResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = GetMetricsResponseBody() self.body = temp_model.from_map(m['body']) return self class GetResourceGroupStatisticsRequest(TeaModel): def __init__( self, end_time: str = None, resource_id: str = None, start_time: str = None, workspace_ids: str = None, ): # This parameter is required. self.end_time = end_time # This parameter is required. self.resource_id = resource_id # This parameter is required. self.start_time = start_time # This parameter is required. self.workspace_ids = workspace_ids def validate(self): pass def to_map(self): _map = super().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.resource_id is not None: result['ResourceId'] = self.resource_id if self.start_time is not None: result['StartTime'] = self.start_time if self.workspace_ids is not None: result['WorkspaceIds'] = self.workspace_ids return result def from_map(self, m: dict = None): m = m or dict() if m.get('EndTime') is not None: self.end_time = m.get('EndTime') if m.get('ResourceId') is not None: self.resource_id = m.get('ResourceId') if m.get('StartTime') is not None: self.start_time = m.get('StartTime') if m.get('WorkspaceIds') is not None: self.workspace_ids = m.get('WorkspaceIds') return self class GetResourceGroupStatisticsResponseBody(TeaModel): def __init__( self, code: str = None, http_status_code: int = None, message: str = None, request_id: str = None, statistics: Dict[str, dict] = None, success: bool = None, ): self.code = code self.http_status_code = http_status_code self.message = message self.request_id = request_id self.statistics = statistics self.success = success def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.message is not None: result['Message'] = self.message if self.request_id is not None: result['RequestId'] = self.request_id if self.statistics is not None: result['Statistics'] = self.statistics if self.success is not None: result['Success'] = self.success return result def from_map(self, m: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('Message') is not None: self.message = m.get('Message') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('Statistics') is not None: self.statistics = m.get('Statistics') if m.get('Success') is not None: self.success = m.get('Success') return self class GetResourceGroupStatisticsResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: GetResourceGroupStatisticsResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = GetResourceGroupStatisticsResponseBody() self.body = temp_model.from_map(m['body']) return self class GetTokenRequest(TeaModel): def __init__( self, expire_time: int = None, instance_id: str = None, ): self.expire_time = expire_time # This parameter is required. self.instance_id = instance_id def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.expire_time is not None: result['ExpireTime'] = self.expire_time if self.instance_id is not None: result['InstanceId'] = self.instance_id return result def from_map(self, m: dict = None): m = m or dict() if m.get('ExpireTime') is not None: self.expire_time = m.get('ExpireTime') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') return self class GetTokenResponseBody(TeaModel): def __init__( self, code: str = None, message: str = None, request_id: str = None, success: bool = None, token: str = None, ): self.code = code self.message = message self.request_id = request_id self.success = success self.token = token def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.message is not None: result['Message'] = self.message if self.request_id is not None: result['RequestId'] = self.request_id if self.success is not None: result['Success'] = self.success if self.token is not None: result['Token'] = self.token return result def from_map(self, m: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('Message') is not None: self.message = m.get('Message') 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('Token') is not None: self.token = m.get('Token') return self class GetTokenResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: GetTokenResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = GetTokenResponseBody() self.body = temp_model.from_map(m['body']) return self class GetUserConfigResponseBodyFreeTier(TeaModel): def __init__( self, end_time: str = None, init_base_unit: str = None, init_base_value: float = None, init_show_unit: str = None, init_show_value: str = None, is_free_tier_user: bool = None, period_base_unit: str = None, period_base_value: float = None, period_show_unit: str = None, period_show_value: str = None, start_time: str = None, status: str = None, ): self.end_time = end_time self.init_base_unit = init_base_unit self.init_base_value = init_base_value self.init_show_unit = init_show_unit self.init_show_value = init_show_value self.is_free_tier_user = is_free_tier_user self.period_base_unit = period_base_unit self.period_base_value = period_base_value self.period_show_unit = period_show_unit self.period_show_value = period_show_value self.start_time = start_time self.status = status def validate(self): pass def to_map(self): _map = super().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.init_base_unit is not None: result['InitBaseUnit'] = self.init_base_unit if self.init_base_value is not None: result['InitBaseValue'] = self.init_base_value if self.init_show_unit is not None: result['InitShowUnit'] = self.init_show_unit if self.init_show_value is not None: result['InitShowValue'] = self.init_show_value if self.is_free_tier_user is not None: result['IsFreeTierUser'] = self.is_free_tier_user if self.period_base_unit is not None: result['PeriodBaseUnit'] = self.period_base_unit if self.period_base_value is not None: result['PeriodBaseValue'] = self.period_base_value if self.period_show_unit is not None: result['PeriodShowUnit'] = self.period_show_unit if self.period_show_value is not None: result['PeriodShowValue'] = self.period_show_value 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: dict = None): m = m or dict() if m.get('EndTime') is not None: self.end_time = m.get('EndTime') if m.get('InitBaseUnit') is not None: self.init_base_unit = m.get('InitBaseUnit') if m.get('InitBaseValue') is not None: self.init_base_value = m.get('InitBaseValue') if m.get('InitShowUnit') is not None: self.init_show_unit = m.get('InitShowUnit') if m.get('InitShowValue') is not None: self.init_show_value = m.get('InitShowValue') if m.get('IsFreeTierUser') is not None: self.is_free_tier_user = m.get('IsFreeTierUser') if m.get('PeriodBaseUnit') is not None: self.period_base_unit = m.get('PeriodBaseUnit') if m.get('PeriodBaseValue') is not None: self.period_base_value = m.get('PeriodBaseValue') if m.get('PeriodShowUnit') is not None: self.period_show_unit = m.get('PeriodShowUnit') if m.get('PeriodShowValue') is not None: self.period_show_value = m.get('PeriodShowValue') 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 GetUserConfigResponseBody(TeaModel): def __init__( self, account_sufficient: bool = None, code: str = None, enable_eci_disk: bool = None, free_tier: GetUserConfigResponseBodyFreeTier = None, free_tier_spec_available: bool = None, http_status_code: int = None, message: str = None, request_id: str = None, success: bool = None, ): self.account_sufficient = account_sufficient self.code = code self.enable_eci_disk = enable_eci_disk self.free_tier = free_tier self.free_tier_spec_available = free_tier_spec_available self.http_status_code = http_status_code self.message = message self.request_id = request_id self.success = success def validate(self): if self.free_tier: self.free_tier.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.account_sufficient is not None: result['AccountSufficient'] = self.account_sufficient if self.code is not None: result['Code'] = self.code if self.enable_eci_disk is not None: result['EnableEciDisk'] = self.enable_eci_disk if self.free_tier is not None: result['FreeTier'] = self.free_tier.to_map() if self.free_tier_spec_available is not None: result['FreeTierSpecAvailable'] = self.free_tier_spec_available if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.message is not None: result['Message'] = self.message 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: dict = None): m = m or dict() if m.get('AccountSufficient') is not None: self.account_sufficient = m.get('AccountSufficient') if m.get('Code') is not None: self.code = m.get('Code') if m.get('EnableEciDisk') is not None: self.enable_eci_disk = m.get('EnableEciDisk') if m.get('FreeTier') is not None: temp_model = GetUserConfigResponseBodyFreeTier() self.free_tier = temp_model.from_map(m['FreeTier']) if m.get('FreeTierSpecAvailable') is not None: self.free_tier_spec_available = m.get('FreeTierSpecAvailable') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('Message') is not None: self.message = m.get('Message') 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 GetUserConfigResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: GetUserConfigResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = GetUserConfigResponseBody() self.body = temp_model.from_map(m['body']) return self class ListEcsSpecsRequest(TeaModel): def __init__( self, accelerator_type: str = None, order: str = None, page_number: int = None, page_size: int = None, sort_by: str = None, ): # This parameter is required. self.accelerator_type = accelerator_type self.order = order self.page_number = page_number self.page_size = page_size self.sort_by = sort_by def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.accelerator_type is not None: result['AcceleratorType'] = self.accelerator_type if self.order is not None: result['Order'] = self.order 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.sort_by is not None: result['SortBy'] = self.sort_by return result def from_map(self, m: dict = None): m = m or dict() if m.get('AcceleratorType') is not None: self.accelerator_type = m.get('AcceleratorType') if m.get('Order') is not None: self.order = m.get('Order') 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('SortBy') is not None: self.sort_by = m.get('SortBy') return self class ListEcsSpecsResponseBodyEcsSpecsLabels(TeaModel): def __init__( self, key: str = None, value: str = None, ): self.key = key self.value = value def validate(self): pass def to_map(self): _map = super().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: dict = 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 ListEcsSpecsResponseBodyEcsSpecs(TeaModel): def __init__( self, accelerator_type: str = None, cpu: int = None, currency: str = None, gpu: int = None, gputype: str = None, instance_bandwidth_rx: int = None, instance_type: str = None, is_available: bool = None, labels: List[ListEcsSpecsResponseBodyEcsSpecsLabels] = None, memory: float = None, price: float = None, system_disk_capacity: int = None, ): self.accelerator_type = accelerator_type self.cpu = cpu self.currency = currency self.gpu = gpu self.gputype = gputype self.instance_bandwidth_rx = instance_bandwidth_rx self.instance_type = instance_type self.is_available = is_available self.labels = labels self.memory = memory self.price = price self.system_disk_capacity = system_disk_capacity def validate(self): if self.labels: for k in self.labels: if k: k.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.accelerator_type is not None: result['AcceleratorType'] = self.accelerator_type if self.cpu is not None: result['CPU'] = self.cpu if self.currency is not None: result['Currency'] = self.currency if self.gpu is not None: result['GPU'] = self.gpu if self.gputype is not None: result['GPUType'] = self.gputype if self.instance_bandwidth_rx is not None: result['InstanceBandwidthRx'] = self.instance_bandwidth_rx if self.instance_type is not None: result['InstanceType'] = self.instance_type if self.is_available is not None: result['IsAvailable'] = self.is_available result['Labels'] = [] if self.labels is not None: for k in self.labels: result['Labels'].append(k.to_map() if k else None) if self.memory is not None: result['Memory'] = self.memory if self.price is not None: result['Price'] = self.price if self.system_disk_capacity is not None: result['SystemDiskCapacity'] = self.system_disk_capacity return result def from_map(self, m: dict = None): m = m or dict() if m.get('AcceleratorType') is not None: self.accelerator_type = m.get('AcceleratorType') if m.get('CPU') is not None: self.cpu = m.get('CPU') if m.get('Currency') is not None: self.currency = m.get('Currency') if m.get('GPU') is not None: self.gpu = m.get('GPU') if m.get('GPUType') is not None: self.gputype = m.get('GPUType') if m.get('InstanceBandwidthRx') is not None: self.instance_bandwidth_rx = m.get('InstanceBandwidthRx') if m.get('InstanceType') is not None: self.instance_type = m.get('InstanceType') if m.get('IsAvailable') is not None: self.is_available = m.get('IsAvailable') self.labels = [] if m.get('Labels') is not None: for k in m.get('Labels'): temp_model = ListEcsSpecsResponseBodyEcsSpecsLabels() self.labels.append(temp_model.from_map(k)) if m.get('Memory') is not None: self.memory = m.get('Memory') if m.get('Price') is not None: self.price = m.get('Price') if m.get('SystemDiskCapacity') is not None: self.system_disk_capacity = m.get('SystemDiskCapacity') return self class ListEcsSpecsResponseBody(TeaModel): def __init__( self, code: str = None, ecs_specs: List[ListEcsSpecsResponseBodyEcsSpecs] = None, http_status_code: int = None, message: str = None, request_id: str = None, success: bool = None, total_count: int = None, ): self.code = code self.ecs_specs = ecs_specs self.http_status_code = http_status_code self.message = message self.request_id = request_id self.success = success self.total_count = total_count def validate(self): if self.ecs_specs: for k in self.ecs_specs: if k: k.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code result['EcsSpecs'] = [] if self.ecs_specs is not None: for k in self.ecs_specs: result['EcsSpecs'].append(k.to_map() if k else None) if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.message is not None: result['Message'] = self.message 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_count is not None: result['TotalCount'] = self.total_count return result def from_map(self, m: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') self.ecs_specs = [] if m.get('EcsSpecs') is not None: for k in m.get('EcsSpecs'): temp_model = ListEcsSpecsResponseBodyEcsSpecs() self.ecs_specs.append(temp_model.from_map(k)) if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('Message') is not None: self.message = m.get('Message') 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('TotalCount') is not None: self.total_count = m.get('TotalCount') return self class ListEcsSpecsResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: ListEcsSpecsResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = ListEcsSpecsResponseBody() self.body = temp_model.from_map(m['body']) return self class ListInstanceSnapshotRequest(TeaModel): def __init__( self, order: str = None, page_number: int = None, page_size: int = None, sort_by: str = None, ): self.order = order self.page_number = page_number self.page_size = page_size self.sort_by = sort_by def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.order is not None: result['Order'] = self.order 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.sort_by is not None: result['SortBy'] = self.sort_by return result def from_map(self, m: dict = None): m = m or dict() if m.get('Order') is not None: self.order = m.get('Order') 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('SortBy') is not None: self.sort_by = m.get('SortBy') return self class ListInstanceSnapshotResponseBodySnapshotsLabels(TeaModel): def __init__( self, key: str = None, value: str = None, ): self.key = key self.value = value def validate(self): pass def to_map(self): _map = super().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: dict = 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 ListInstanceSnapshotResponseBodySnapshots(TeaModel): def __init__( self, exclude_paths: List[str] = None, gmt_create_time: str = None, gmt_modified_time: str = None, image_id: str = None, image_url: str = None, instance_id: str = None, labels: List[ListInstanceSnapshotResponseBodySnapshotsLabels] = None, reason_code: str = None, reason_message: str = None, snapshot_id: str = None, snapshot_name: str = None, status: str = None, ): self.exclude_paths = exclude_paths self.gmt_create_time = gmt_create_time self.gmt_modified_time = gmt_modified_time self.image_id = image_id self.image_url = image_url self.instance_id = instance_id self.labels = labels self.reason_code = reason_code self.reason_message = reason_message self.snapshot_id = snapshot_id self.snapshot_name = snapshot_name self.status = status def validate(self): if self.labels: for k in self.labels: if k: k.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.exclude_paths is not None: result['ExcludePaths'] = self.exclude_paths if self.gmt_create_time is not None: result['GmtCreateTime'] = self.gmt_create_time if self.gmt_modified_time is not None: result['GmtModifiedTime'] = self.gmt_modified_time if self.image_id is not None: result['ImageId'] = self.image_id if self.image_url is not None: result['ImageUrl'] = self.image_url if self.instance_id is not None: result['InstanceId'] = self.instance_id result['Labels'] = [] if self.labels is not None: for k in self.labels: result['Labels'].append(k.to_map() if k else None) if self.reason_code is not None: result['ReasonCode'] = self.reason_code if self.reason_message is not None: result['ReasonMessage'] = self.reason_message if self.snapshot_id is not None: result['SnapshotId'] = self.snapshot_id if self.snapshot_name is not None: result['SnapshotName'] = self.snapshot_name if self.status is not None: result['Status'] = self.status return result def from_map(self, m: dict = None): m = m or dict() if m.get('ExcludePaths') is not None: self.exclude_paths = m.get('ExcludePaths') if m.get('GmtCreateTime') is not None: self.gmt_create_time = m.get('GmtCreateTime') if m.get('GmtModifiedTime') is not None: self.gmt_modified_time = m.get('GmtModifiedTime') if m.get('ImageId') is not None: self.image_id = m.get('ImageId') if m.get('ImageUrl') is not None: self.image_url = m.get('ImageUrl') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') self.labels = [] if m.get('Labels') is not None: for k in m.get('Labels'): temp_model = ListInstanceSnapshotResponseBodySnapshotsLabels() self.labels.append(temp_model.from_map(k)) if m.get('ReasonCode') is not None: self.reason_code = m.get('ReasonCode') if m.get('ReasonMessage') is not None: self.reason_message = m.get('ReasonMessage') if m.get('SnapshotId') is not None: self.snapshot_id = m.get('SnapshotId') if m.get('SnapshotName') is not None: self.snapshot_name = m.get('SnapshotName') if m.get('Status') is not None: self.status = m.get('Status') return self class ListInstanceSnapshotResponseBody(TeaModel): def __init__( self, code: str = None, http_status_code: int = None, message: str = None, request_id: str = None, snapshots: List[ListInstanceSnapshotResponseBodySnapshots] = None, success: bool = None, total_count: int = None, ): self.code = code self.http_status_code = http_status_code self.message = message self.request_id = request_id self.snapshots = snapshots self.success = success self.total_count = total_count def validate(self): if self.snapshots: for k in self.snapshots: if k: k.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.message is not None: result['Message'] = self.message if self.request_id is not None: result['RequestId'] = self.request_id result['Snapshots'] = [] if self.snapshots is not None: for k in self.snapshots: result['Snapshots'].append(k.to_map() if k else None) if self.success is not None: result['Success'] = self.success if self.total_count is not None: result['TotalCount'] = self.total_count return result def from_map(self, m: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('Message') is not None: self.message = m.get('Message') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') self.snapshots = [] if m.get('Snapshots') is not None: for k in m.get('Snapshots'): temp_model = ListInstanceSnapshotResponseBodySnapshots() self.snapshots.append(temp_model.from_map(k)) if m.get('Success') is not None: self.success = m.get('Success') if m.get('TotalCount') is not None: self.total_count = m.get('TotalCount') return self class ListInstanceSnapshotResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: ListInstanceSnapshotResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = ListInstanceSnapshotResponseBody() self.body = temp_model.from_map(m['body']) return self class ListInstanceStatisticsRequest(TeaModel): def __init__( self, workspace_ids: str = None, ): # This parameter is required. self.workspace_ids = workspace_ids def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.workspace_ids is not None: result['WorkspaceIds'] = self.workspace_ids return result def from_map(self, m: dict = None): m = m or dict() if m.get('WorkspaceIds') is not None: self.workspace_ids = m.get('WorkspaceIds') return self class ListInstanceStatisticsResponseBody(TeaModel): def __init__( self, code: str = None, http_status_code: int = None, message: str = None, request_id: str = None, statistics: Dict[str, dict] = None, success: bool = None, ): self.code = code self.http_status_code = http_status_code self.message = message self.request_id = request_id self.statistics = statistics self.success = success def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.message is not None: result['Message'] = self.message if self.request_id is not None: result['RequestId'] = self.request_id if self.statistics is not None: result['Statistics'] = self.statistics if self.success is not None: result['Success'] = self.success return result def from_map(self, m: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('Message') is not None: self.message = m.get('Message') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('Statistics') is not None: self.statistics = m.get('Statistics') if m.get('Success') is not None: self.success = m.get('Success') return self class ListInstanceStatisticsResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: ListInstanceStatisticsResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = ListInstanceStatisticsResponseBody() self.body = temp_model.from_map(m['body']) return self class ListInstancesRequestTag(TeaModel): def __init__( self, key: str = None, value: str = None, ): self.key = key self.value = value def validate(self): pass def to_map(self): _map = super().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: dict = 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 ListInstancesRequest(TeaModel): def __init__( self, accelerator_type: str = None, accessibility: str = None, create_user_id: str = None, gpu_type: str = None, image_name: str = None, instance_id: str = None, instance_name: str = None, labels: Dict[str, Any] = None, max_cpu: str = None, max_gpu: str = None, max_gpu_memory: str = None, max_memory: str = None, min_cpu: str = None, min_gpu: str = None, min_gpu_memory: str = None, min_memory: str = None, order: str = None, page_number: int = None, page_size: int = None, payment_type: str = None, resource_id: str = None, sort_by: str = None, status: str = None, tag: List[ListInstancesRequestTag] = None, workspace_id: str = None, ): self.accelerator_type = accelerator_type self.accessibility = accessibility self.create_user_id = create_user_id self.gpu_type = gpu_type self.image_name = image_name self.instance_id = instance_id self.instance_name = instance_name self.labels = labels self.max_cpu = max_cpu self.max_gpu = max_gpu self.max_gpu_memory = max_gpu_memory self.max_memory = max_memory self.min_cpu = min_cpu self.min_gpu = min_gpu self.min_gpu_memory = min_gpu_memory self.min_memory = min_memory self.order = order self.page_number = page_number self.page_size = page_size self.payment_type = payment_type self.resource_id = resource_id self.sort_by = sort_by self.status = status self.tag = tag self.workspace_id = workspace_id def validate(self): if self.tag: for k in self.tag: if k: k.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.accelerator_type is not None: result['AcceleratorType'] = self.accelerator_type if self.accessibility is not None: result['Accessibility'] = self.accessibility if self.create_user_id is not None: result['CreateUserId'] = self.create_user_id if self.gpu_type is not None: result['GpuType'] = self.gpu_type if self.image_name is not None: result['ImageName'] = self.image_name if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.instance_name is not None: result['InstanceName'] = self.instance_name if self.labels is not None: result['Labels'] = self.labels if self.max_cpu is not None: result['MaxCpu'] = self.max_cpu if self.max_gpu is not None: result['MaxGpu'] = self.max_gpu if self.max_gpu_memory is not None: result['MaxGpuMemory'] = self.max_gpu_memory if self.max_memory is not None: result['MaxMemory'] = self.max_memory if self.min_cpu is not None: result['MinCpu'] = self.min_cpu if self.min_gpu is not None: result['MinGpu'] = self.min_gpu if self.min_gpu_memory is not None: result['MinGpuMemory'] = self.min_gpu_memory if self.min_memory is not None: result['MinMemory'] = self.min_memory if self.order is not None: result['Order'] = self.order 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.payment_type is not None: result['PaymentType'] = self.payment_type if self.resource_id is not None: result['ResourceId'] = self.resource_id if self.sort_by is not None: result['SortBy'] = self.sort_by if self.status is not None: result['Status'] = self.status result['Tag'] = [] if self.tag is not None: for k in self.tag: result['Tag'].append(k.to_map() if k else None) if self.workspace_id is not None: result['WorkspaceId'] = self.workspace_id return result def from_map(self, m: dict = None): m = m or dict() if m.get('AcceleratorType') is not None: self.accelerator_type = m.get('AcceleratorType') if m.get('Accessibility') is not None: self.accessibility = m.get('Accessibility') if m.get('CreateUserId') is not None: self.create_user_id = m.get('CreateUserId') if m.get('GpuType') is not None: self.gpu_type = m.get('GpuType') if m.get('ImageName') is not None: self.image_name = m.get('ImageName') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('InstanceName') is not None: self.instance_name = m.get('InstanceName') if m.get('Labels') is not None: self.labels = m.get('Labels') if m.get('MaxCpu') is not None: self.max_cpu = m.get('MaxCpu') if m.get('MaxGpu') is not None: self.max_gpu = m.get('MaxGpu') if m.get('MaxGpuMemory') is not None: self.max_gpu_memory = m.get('MaxGpuMemory') if m.get('MaxMemory') is not None: self.max_memory = m.get('MaxMemory') if m.get('MinCpu') is not None: self.min_cpu = m.get('MinCpu') if m.get('MinGpu') is not None: self.min_gpu = m.get('MinGpu') if m.get('MinGpuMemory') is not None: self.min_gpu_memory = m.get('MinGpuMemory') if m.get('MinMemory') is not None: self.min_memory = m.get('MinMemory') if m.get('Order') is not None: self.order = m.get('Order') 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('PaymentType') is not None: self.payment_type = m.get('PaymentType') if m.get('ResourceId') is not None: self.resource_id = m.get('ResourceId') if m.get('SortBy') is not None: self.sort_by = m.get('SortBy') if m.get('Status') is not None: self.status = m.get('Status') self.tag = [] if m.get('Tag') is not None: for k in m.get('Tag'): temp_model = ListInstancesRequestTag() self.tag.append(temp_model.from_map(k)) if m.get('WorkspaceId') is not None: self.workspace_id = m.get('WorkspaceId') return self class ListInstancesShrinkRequest(TeaModel): def __init__( self, accelerator_type: str = None, accessibility: str = None, create_user_id: str = None, gpu_type: str = None, image_name: str = None, instance_id: str = None, instance_name: str = None, labels_shrink: str = None, max_cpu: str = None, max_gpu: str = None, max_gpu_memory: str = None, max_memory: str = None, min_cpu: str = None, min_gpu: str = None, min_gpu_memory: str = None, min_memory: str = None, order: str = None, page_number: int = None, page_size: int = None, payment_type: str = None, resource_id: str = None, sort_by: str = None, status: str = None, tag_shrink: str = None, workspace_id: str = None, ): self.accelerator_type = accelerator_type self.accessibility = accessibility self.create_user_id = create_user_id self.gpu_type = gpu_type self.image_name = image_name self.instance_id = instance_id self.instance_name = instance_name self.labels_shrink = labels_shrink self.max_cpu = max_cpu self.max_gpu = max_gpu self.max_gpu_memory = max_gpu_memory self.max_memory = max_memory self.min_cpu = min_cpu self.min_gpu = min_gpu self.min_gpu_memory = min_gpu_memory self.min_memory = min_memory self.order = order self.page_number = page_number self.page_size = page_size self.payment_type = payment_type self.resource_id = resource_id self.sort_by = sort_by self.status = status self.tag_shrink = tag_shrink self.workspace_id = workspace_id def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.accelerator_type is not None: result['AcceleratorType'] = self.accelerator_type if self.accessibility is not None: result['Accessibility'] = self.accessibility if self.create_user_id is not None: result['CreateUserId'] = self.create_user_id if self.gpu_type is not None: result['GpuType'] = self.gpu_type if self.image_name is not None: result['ImageName'] = self.image_name if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.instance_name is not None: result['InstanceName'] = self.instance_name if self.labels_shrink is not None: result['Labels'] = self.labels_shrink if self.max_cpu is not None: result['MaxCpu'] = self.max_cpu if self.max_gpu is not None: result['MaxGpu'] = self.max_gpu if self.max_gpu_memory is not None: result['MaxGpuMemory'] = self.max_gpu_memory if self.max_memory is not None: result['MaxMemory'] = self.max_memory if self.min_cpu is not None: result['MinCpu'] = self.min_cpu if self.min_gpu is not None: result['MinGpu'] = self.min_gpu if self.min_gpu_memory is not None: result['MinGpuMemory'] = self.min_gpu_memory if self.min_memory is not None: result['MinMemory'] = self.min_memory if self.order is not None: result['Order'] = self.order 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.payment_type is not None: result['PaymentType'] = self.payment_type if self.resource_id is not None: result['ResourceId'] = self.resource_id if self.sort_by is not None: result['SortBy'] = self.sort_by if self.status is not None: result['Status'] = self.status if self.tag_shrink is not None: result['Tag'] = self.tag_shrink if self.workspace_id is not None: result['WorkspaceId'] = self.workspace_id return result def from_map(self, m: dict = None): m = m or dict() if m.get('AcceleratorType') is not None: self.accelerator_type = m.get('AcceleratorType') if m.get('Accessibility') is not None: self.accessibility = m.get('Accessibility') if m.get('CreateUserId') is not None: self.create_user_id = m.get('CreateUserId') if m.get('GpuType') is not None: self.gpu_type = m.get('GpuType') if m.get('ImageName') is not None: self.image_name = m.get('ImageName') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('InstanceName') is not None: self.instance_name = m.get('InstanceName') if m.get('Labels') is not None: self.labels_shrink = m.get('Labels') if m.get('MaxCpu') is not None: self.max_cpu = m.get('MaxCpu') if m.get('MaxGpu') is not None: self.max_gpu = m.get('MaxGpu') if m.get('MaxGpuMemory') is not None: self.max_gpu_memory = m.get('MaxGpuMemory') if m.get('MaxMemory') is not None: self.max_memory = m.get('MaxMemory') if m.get('MinCpu') is not None: self.min_cpu = m.get('MinCpu') if m.get('MinGpu') is not None: self.min_gpu = m.get('MinGpu') if m.get('MinGpuMemory') is not None: self.min_gpu_memory = m.get('MinGpuMemory') if m.get('MinMemory') is not None: self.min_memory = m.get('MinMemory') if m.get('Order') is not None: self.order = m.get('Order') 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('PaymentType') is not None: self.payment_type = m.get('PaymentType') if m.get('ResourceId') is not None: self.resource_id = m.get('ResourceId') if m.get('SortBy') is not None: self.sort_by = m.get('SortBy') if m.get('Status') is not None: self.status = m.get('Status') if m.get('Tag') is not None: self.tag_shrink = m.get('Tag') if m.get('WorkspaceId') is not None: self.workspace_id = m.get('WorkspaceId') return self class ListInstancesResponseBodyInstancesAffinityCPU(TeaModel): def __init__( self, enable: bool = None, ): self.enable = enable def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.enable is not None: result['Enable'] = self.enable return result def from_map(self, m: dict = None): m = m or dict() if m.get('Enable') is not None: self.enable = m.get('Enable') return self class ListInstancesResponseBodyInstancesAffinity(TeaModel): def __init__( self, cpu: ListInstancesResponseBodyInstancesAffinityCPU = None, ): self.cpu = cpu def validate(self): if self.cpu: self.cpu.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.cpu is not None: result['CPU'] = self.cpu.to_map() return result def from_map(self, m: dict = None): m = m or dict() if m.get('CPU') is not None: temp_model = ListInstancesResponseBodyInstancesAffinityCPU() self.cpu = temp_model.from_map(m['CPU']) return self class ListInstancesResponseBodyInstancesCloudDisks(TeaModel): def __init__( self, capacity: str = None, mount_path: str = None, path: str = None, sub_type: str = None, ): self.capacity = capacity self.mount_path = mount_path self.path = path self.sub_type = sub_type def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.capacity is not None: result['Capacity'] = self.capacity if self.mount_path is not None: result['MountPath'] = self.mount_path if self.path is not None: result['Path'] = self.path if self.sub_type is not None: result['SubType'] = self.sub_type return result def from_map(self, m: dict = None): m = m or dict() if m.get('Capacity') is not None: self.capacity = m.get('Capacity') if m.get('MountPath') is not None: self.mount_path = m.get('MountPath') if m.get('Path') is not None: self.path = m.get('Path') if m.get('SubType') is not None: self.sub_type = m.get('SubType') return self class ListInstancesResponseBodyInstancesDatasets(TeaModel): def __init__( self, dataset_id: str = None, dataset_version: str = None, dynamic: bool = None, mount_access: str = None, mount_path: str = None, option_type: str = None, options: str = None, uri: str = None, ): self.dataset_id = dataset_id self.dataset_version = dataset_version self.dynamic = dynamic self.mount_access = mount_access self.mount_path = mount_path self.option_type = option_type self.options = options self.uri = uri def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.dataset_id is not None: result['DatasetId'] = self.dataset_id if self.dataset_version is not None: result['DatasetVersion'] = self.dataset_version if self.dynamic is not None: result['Dynamic'] = self.dynamic if self.mount_access is not None: result['MountAccess'] = self.mount_access if self.mount_path is not None: result['MountPath'] = self.mount_path if self.option_type is not None: result['OptionType'] = self.option_type if self.options is not None: result['Options'] = self.options if self.uri is not None: result['Uri'] = self.uri return result def from_map(self, m: dict = None): m = m or dict() if m.get('DatasetId') is not None: self.dataset_id = m.get('DatasetId') if m.get('DatasetVersion') is not None: self.dataset_version = m.get('DatasetVersion') if m.get('Dynamic') is not None: self.dynamic = m.get('Dynamic') if m.get('MountAccess') is not None: self.mount_access = m.get('MountAccess') if m.get('MountPath') is not None: self.mount_path = m.get('MountPath') if m.get('OptionType') is not None: self.option_type = m.get('OptionType') if m.get('Options') is not None: self.options = m.get('Options') if m.get('Uri') is not None: self.uri = m.get('Uri') return self class ListInstancesResponseBodyInstancesIdleInstanceCuller(TeaModel): def __init__( self, cpu_percent_threshold: int = None, gpu_percent_threshold: int = None, idle_time_in_minutes: int = None, instance_id: str = None, max_idle_time_in_minutes: int = None, ): self.cpu_percent_threshold = cpu_percent_threshold self.gpu_percent_threshold = gpu_percent_threshold self.idle_time_in_minutes = idle_time_in_minutes self.instance_id = instance_id self.max_idle_time_in_minutes = max_idle_time_in_minutes def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.cpu_percent_threshold is not None: result['CpuPercentThreshold'] = self.cpu_percent_threshold if self.gpu_percent_threshold is not None: result['GpuPercentThreshold'] = self.gpu_percent_threshold if self.idle_time_in_minutes is not None: result['IdleTimeInMinutes'] = self.idle_time_in_minutes if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.max_idle_time_in_minutes is not None: result['MaxIdleTimeInMinutes'] = self.max_idle_time_in_minutes return result def from_map(self, m: dict = None): m = m or dict() if m.get('CpuPercentThreshold') is not None: self.cpu_percent_threshold = m.get('CpuPercentThreshold') if m.get('GpuPercentThreshold') is not None: self.gpu_percent_threshold = m.get('GpuPercentThreshold') if m.get('IdleTimeInMinutes') is not None: self.idle_time_in_minutes = m.get('IdleTimeInMinutes') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('MaxIdleTimeInMinutes') is not None: self.max_idle_time_in_minutes = m.get('MaxIdleTimeInMinutes') return self class ListInstancesResponseBodyInstancesInstanceShutdownTimer(TeaModel): def __init__( self, due_time: str = None, gmt_create_time: str = None, gmt_modified_time: str = None, instance_id: str = None, remaining_time_in_ms: int = None, ): self.due_time = due_time self.gmt_create_time = gmt_create_time self.gmt_modified_time = gmt_modified_time self.instance_id = instance_id self.remaining_time_in_ms = remaining_time_in_ms def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.due_time is not None: result['DueTime'] = self.due_time if self.gmt_create_time is not None: result['GmtCreateTime'] = self.gmt_create_time if self.gmt_modified_time is not None: result['GmtModifiedTime'] = self.gmt_modified_time if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.remaining_time_in_ms is not None: result['RemainingTimeInMs'] = self.remaining_time_in_ms return result def from_map(self, m: dict = None): m = m or dict() if m.get('DueTime') is not None: self.due_time = m.get('DueTime') if m.get('GmtCreateTime') is not None: self.gmt_create_time = m.get('GmtCreateTime') if m.get('GmtModifiedTime') is not None: self.gmt_modified_time = m.get('GmtModifiedTime') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('RemainingTimeInMs') is not None: self.remaining_time_in_ms = m.get('RemainingTimeInMs') return self class ListInstancesResponseBodyInstancesInstanceSnapshotList(TeaModel): def __init__( self, gmt_create_time: str = None, gmt_modified_time: str = None, image_id: str = None, image_name: str = None, image_url: str = None, reason_code: str = None, reason_message: str = None, repository_url: str = None, status: str = None, ): self.gmt_create_time = gmt_create_time self.gmt_modified_time = gmt_modified_time self.image_id = image_id self.image_name = image_name self.image_url = image_url self.reason_code = reason_code self.reason_message = reason_message self.repository_url = repository_url self.status = status def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.gmt_create_time is not None: result['GmtCreateTime'] = self.gmt_create_time if self.gmt_modified_time is not None: result['GmtModifiedTime'] = self.gmt_modified_time if self.image_id is not None: result['ImageId'] = self.image_id if self.image_name is not None: result['ImageName'] = self.image_name if self.image_url is not None: result['ImageUrl'] = self.image_url if self.reason_code is not None: result['ReasonCode'] = self.reason_code if self.reason_message is not None: result['ReasonMessage'] = self.reason_message if self.repository_url is not None: result['RepositoryUrl'] = self.repository_url if self.status is not None: result['Status'] = self.status return result def from_map(self, m: dict = None): m = m or dict() if m.get('GmtCreateTime') is not None: self.gmt_create_time = m.get('GmtCreateTime') if m.get('GmtModifiedTime') is not None: self.gmt_modified_time = m.get('GmtModifiedTime') if m.get('ImageId') is not None: self.image_id = m.get('ImageId') if m.get('ImageName') is not None: self.image_name = m.get('ImageName') if m.get('ImageUrl') is not None: self.image_url = m.get('ImageUrl') if m.get('ReasonCode') is not None: self.reason_code = m.get('ReasonCode') if m.get('ReasonMessage') is not None: self.reason_message = m.get('ReasonMessage') if m.get('RepositoryUrl') is not None: self.repository_url = m.get('RepositoryUrl') if m.get('Status') is not None: self.status = m.get('Status') return self class ListInstancesResponseBodyInstancesLabels(TeaModel): def __init__( self, key: str = None, value: str = None, ): self.key = key self.value = value def validate(self): pass def to_map(self): _map = super().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: dict = 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 ListInstancesResponseBodyInstancesLatestSnapshot(TeaModel): def __init__( self, gmt_create_time: str = None, gmt_modified_time: str = None, image_id: str = None, image_name: str = None, image_url: str = None, reason_code: str = None, reason_message: str = None, repository_url: str = None, status: str = None, ): self.gmt_create_time = gmt_create_time self.gmt_modified_time = gmt_modified_time self.image_id = image_id self.image_name = image_name self.image_url = image_url self.reason_code = reason_code self.reason_message = reason_message self.repository_url = repository_url self.status = status def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.gmt_create_time is not None: result['GmtCreateTime'] = self.gmt_create_time if self.gmt_modified_time is not None: result['GmtModifiedTime'] = self.gmt_modified_time if self.image_id is not None: result['ImageId'] = self.image_id if self.image_name is not None: result['ImageName'] = self.image_name if self.image_url is not None: result['ImageUrl'] = self.image_url if self.reason_code is not None: result['ReasonCode'] = self.reason_code if self.reason_message is not None: result['ReasonMessage'] = self.reason_message if self.repository_url is not None: result['RepositoryUrl'] = self.repository_url if self.status is not None: result['Status'] = self.status return result def from_map(self, m: dict = None): m = m or dict() if m.get('GmtCreateTime') is not None: self.gmt_create_time = m.get('GmtCreateTime') if m.get('GmtModifiedTime') is not None: self.gmt_modified_time = m.get('GmtModifiedTime') if m.get('ImageId') is not None: self.image_id = m.get('ImageId') if m.get('ImageName') is not None: self.image_name = m.get('ImageName') if m.get('ImageUrl') is not None: self.image_url = m.get('ImageUrl') if m.get('ReasonCode') is not None: self.reason_code = m.get('ReasonCode') if m.get('ReasonMessage') is not None: self.reason_message = m.get('ReasonMessage') if m.get('RepositoryUrl') is not None: self.repository_url = m.get('RepositoryUrl') if m.get('Status') is not None: self.status = m.get('Status') return self class ListInstancesResponseBodyInstancesRequestedResource(TeaModel): def __init__( self, cpu: str = None, gpu: str = None, gputype: str = None, memory: str = None, shared_memory: str = None, ): self.cpu = cpu self.gpu = gpu self.gputype = gputype self.memory = memory self.shared_memory = shared_memory def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.cpu is not None: result['CPU'] = self.cpu if self.gpu is not None: result['GPU'] = self.gpu if self.gputype is not None: result['GPUType'] = self.gputype if self.memory is not None: result['Memory'] = self.memory if self.shared_memory is not None: result['SharedMemory'] = self.shared_memory return result def from_map(self, m: dict = None): m = m or dict() if m.get('CPU') is not None: self.cpu = m.get('CPU') if m.get('GPU') is not None: self.gpu = m.get('GPU') if m.get('GPUType') is not None: self.gputype = m.get('GPUType') if m.get('Memory') is not None: self.memory = m.get('Memory') if m.get('SharedMemory') is not None: self.shared_memory = m.get('SharedMemory') return self class ListInstancesResponseBodyInstancesTags(TeaModel): def __init__( self, tag_key: str = None, tag_value: str = None, ): self.tag_key = tag_key self.tag_value = tag_value def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() 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: dict = None): m = m or dict() 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 ListInstancesResponseBodyInstancesUserVpc(TeaModel): def __init__( self, default_route: str = None, extended_cidrs: List[str] = None, forward_infos: List[ForwardInfoResponse] = None, security_group_id: str = None, v_switch_id: str = None, vpc_id: str = None, ): self.default_route = default_route self.extended_cidrs = extended_cidrs self.forward_infos = forward_infos self.security_group_id = security_group_id self.v_switch_id = v_switch_id self.vpc_id = vpc_id def validate(self): if self.forward_infos: for k in self.forward_infos: if k: k.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.default_route is not None: result['DefaultRoute'] = self.default_route if self.extended_cidrs is not None: result['ExtendedCIDRs'] = self.extended_cidrs result['ForwardInfos'] = [] if self.forward_infos is not None: for k in self.forward_infos: result['ForwardInfos'].append(k.to_map() if k else None) if self.security_group_id is not None: result['SecurityGroupId'] = self.security_group_id if self.v_switch_id is not None: result['VSwitchId'] = self.v_switch_id if self.vpc_id is not None: result['VpcId'] = self.vpc_id return result def from_map(self, m: dict = None): m = m or dict() if m.get('DefaultRoute') is not None: self.default_route = m.get('DefaultRoute') if m.get('ExtendedCIDRs') is not None: self.extended_cidrs = m.get('ExtendedCIDRs') self.forward_infos = [] if m.get('ForwardInfos') is not None: for k in m.get('ForwardInfos'): temp_model = ForwardInfoResponse() self.forward_infos.append(temp_model.from_map(k)) if m.get('SecurityGroupId') is not None: self.security_group_id = m.get('SecurityGroupId') if m.get('VSwitchId') is not None: self.v_switch_id = m.get('VSwitchId') if m.get('VpcId') is not None: self.vpc_id = m.get('VpcId') return self class ListInstancesResponseBodyInstances(TeaModel): def __init__( self, accelerator_type: str = None, accessibility: str = None, accumulated_running_time_in_ms: int = None, affinity: ListInstancesResponseBodyInstancesAffinity = None, cloud_disks: List[ListInstancesResponseBodyInstancesCloudDisks] = None, credential_config: CredentialConfig = None, datasets: List[ListInstancesResponseBodyInstancesDatasets] = None, driver: str = None, dynamic_mount: DynamicMount = None, ecs_spec: str = None, environment_variables: Dict[str, str] = None, gmt_create_time: str = None, gmt_modified_time: str = None, idle_instance_culler: ListInstancesResponseBodyInstancesIdleInstanceCuller = None, image_auth: str = None, image_id: str = None, image_name: str = None, image_url: str = None, instance_id: str = None, instance_name: str = None, instance_shutdown_timer: ListInstancesResponseBodyInstancesInstanceShutdownTimer = None, instance_snapshot_list: List[ListInstancesResponseBodyInstancesInstanceSnapshotList] = None, instance_url: str = None, jupyterlab_url: str = None, labels: List[ListInstancesResponseBodyInstancesLabels] = None, latest_snapshot: ListInstancesResponseBodyInstancesLatestSnapshot = None, payment_type: str = None, priority: int = None, reason_code: str = None, reason_message: str = None, requested_resource: ListInstancesResponseBodyInstancesRequestedResource = None, resource_id: str = None, resource_name: str = None, status: str = None, tags: List[ListInstancesResponseBodyInstancesTags] = None, terminal_url: str = None, user_id: str = None, user_name: str = None, user_vpc: ListInstancesResponseBodyInstancesUserVpc = None, web_ideurl: str = None, workspace_id: str = None, workspace_name: str = None, workspace_source: str = None, ): self.accelerator_type = accelerator_type self.accessibility = accessibility self.accumulated_running_time_in_ms = accumulated_running_time_in_ms self.affinity = affinity self.cloud_disks = cloud_disks self.credential_config = credential_config self.datasets = datasets self.driver = driver self.dynamic_mount = dynamic_mount self.ecs_spec = ecs_spec self.environment_variables = environment_variables self.gmt_create_time = gmt_create_time self.gmt_modified_time = gmt_modified_time self.idle_instance_culler = idle_instance_culler self.image_auth = image_auth self.image_id = image_id self.image_name = image_name self.image_url = image_url self.instance_id = instance_id self.instance_name = instance_name self.instance_shutdown_timer = instance_shutdown_timer self.instance_snapshot_list = instance_snapshot_list self.instance_url = instance_url # Jupyterlab Url。 self.jupyterlab_url = jupyterlab_url self.labels = labels self.latest_snapshot = latest_snapshot self.payment_type = payment_type self.priority = priority self.reason_code = reason_code self.reason_message = reason_message self.requested_resource = requested_resource self.resource_id = resource_id self.resource_name = resource_name self.status = status self.tags = tags self.terminal_url = terminal_url self.user_id = user_id self.user_name = user_name self.user_vpc = user_vpc # Web IDE url。 self.web_ideurl = web_ideurl self.workspace_id = workspace_id self.workspace_name = workspace_name self.workspace_source = workspace_source def validate(self): if self.affinity: self.affinity.validate() if self.cloud_disks: for k in self.cloud_disks: if k: k.validate() if self.credential_config: self.credential_config.validate() if self.datasets: for k in self.datasets: if k: k.validate() if self.dynamic_mount: self.dynamic_mount.validate() if self.idle_instance_culler: self.idle_instance_culler.validate() if self.instance_shutdown_timer: self.instance_shutdown_timer.validate() if self.instance_snapshot_list: for k in self.instance_snapshot_list: if k: k.validate() if self.labels: for k in self.labels: if k: k.validate() if self.latest_snapshot: self.latest_snapshot.validate() if self.requested_resource: self.requested_resource.validate() if self.tags: for k in self.tags: if k: k.validate() if self.user_vpc: self.user_vpc.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.accelerator_type is not None: result['AcceleratorType'] = self.accelerator_type if self.accessibility is not None: result['Accessibility'] = self.accessibility if self.accumulated_running_time_in_ms is not None: result['AccumulatedRunningTimeInMs'] = self.accumulated_running_time_in_ms if self.affinity is not None: result['Affinity'] = self.affinity.to_map() result['CloudDisks'] = [] if self.cloud_disks is not None: for k in self.cloud_disks: result['CloudDisks'].append(k.to_map() if k else None) if self.credential_config is not None: result['CredentialConfig'] = self.credential_config.to_map() result['Datasets'] = [] if self.datasets is not None: for k in self.datasets: result['Datasets'].append(k.to_map() if k else None) if self.driver is not None: result['Driver'] = self.driver if self.dynamic_mount is not None: result['DynamicMount'] = self.dynamic_mount.to_map() if self.ecs_spec is not None: result['EcsSpec'] = self.ecs_spec if self.environment_variables is not None: result['EnvironmentVariables'] = self.environment_variables if self.gmt_create_time is not None: result['GmtCreateTime'] = self.gmt_create_time if self.gmt_modified_time is not None: result['GmtModifiedTime'] = self.gmt_modified_time if self.idle_instance_culler is not None: result['IdleInstanceCuller'] = self.idle_instance_culler.to_map() if self.image_auth is not None: result['ImageAuth'] = self.image_auth if self.image_id is not None: result['ImageId'] = self.image_id if self.image_name is not None: result['ImageName'] = self.image_name if self.image_url is not None: result['ImageUrl'] = self.image_url if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.instance_name is not None: result['InstanceName'] = self.instance_name if self.instance_shutdown_timer is not None: result['InstanceShutdownTimer'] = self.instance_shutdown_timer.to_map() result['InstanceSnapshotList'] = [] if self.instance_snapshot_list is not None: for k in self.instance_snapshot_list: result['InstanceSnapshotList'].append(k.to_map() if k else None) if self.instance_url is not None: result['InstanceUrl'] = self.instance_url if self.jupyterlab_url is not None: result['JupyterlabUrl'] = self.jupyterlab_url result['Labels'] = [] if self.labels is not None: for k in self.labels: result['Labels'].append(k.to_map() if k else None) if self.latest_snapshot is not None: result['LatestSnapshot'] = self.latest_snapshot.to_map() if self.payment_type is not None: result['PaymentType'] = self.payment_type if self.priority is not None: result['Priority'] = self.priority if self.reason_code is not None: result['ReasonCode'] = self.reason_code if self.reason_message is not None: result['ReasonMessage'] = self.reason_message if self.requested_resource is not None: result['RequestedResource'] = self.requested_resource.to_map() if self.resource_id is not None: result['ResourceId'] = self.resource_id if self.resource_name is not None: result['ResourceName'] = self.resource_name if self.status is not None: result['Status'] = self.status result['Tags'] = [] if self.tags is not None: for k in self.tags: result['Tags'].append(k.to_map() if k else None) if self.terminal_url is not None: result['TerminalUrl'] = self.terminal_url if self.user_id is not None: result['UserId'] = self.user_id if self.user_name is not None: result['UserName'] = self.user_name if self.user_vpc is not None: result['UserVpc'] = self.user_vpc.to_map() if self.web_ideurl is not None: result['WebIDEUrl'] = self.web_ideurl if self.workspace_id is not None: result['WorkspaceId'] = self.workspace_id if self.workspace_name is not None: result['WorkspaceName'] = self.workspace_name if self.workspace_source is not None: result['WorkspaceSource'] = self.workspace_source return result def from_map(self, m: dict = None): m = m or dict() if m.get('AcceleratorType') is not None: self.accelerator_type = m.get('AcceleratorType') if m.get('Accessibility') is not None: self.accessibility = m.get('Accessibility') if m.get('AccumulatedRunningTimeInMs') is not None: self.accumulated_running_time_in_ms = m.get('AccumulatedRunningTimeInMs') if m.get('Affinity') is not None: temp_model = ListInstancesResponseBodyInstancesAffinity() self.affinity = temp_model.from_map(m['Affinity']) self.cloud_disks = [] if m.get('CloudDisks') is not None: for k in m.get('CloudDisks'): temp_model = ListInstancesResponseBodyInstancesCloudDisks() self.cloud_disks.append(temp_model.from_map(k)) if m.get('CredentialConfig') is not None: temp_model = CredentialConfig() self.credential_config = temp_model.from_map(m['CredentialConfig']) self.datasets = [] if m.get('Datasets') is not None: for k in m.get('Datasets'): temp_model = ListInstancesResponseBodyInstancesDatasets() self.datasets.append(temp_model.from_map(k)) if m.get('Driver') is not None: self.driver = m.get('Driver') if m.get('DynamicMount') is not None: temp_model = DynamicMount() self.dynamic_mount = temp_model.from_map(m['DynamicMount']) if m.get('EcsSpec') is not None: self.ecs_spec = m.get('EcsSpec') if m.get('EnvironmentVariables') is not None: self.environment_variables = m.get('EnvironmentVariables') if m.get('GmtCreateTime') is not None: self.gmt_create_time = m.get('GmtCreateTime') if m.get('GmtModifiedTime') is not None: self.gmt_modified_time = m.get('GmtModifiedTime') if m.get('IdleInstanceCuller') is not None: temp_model = ListInstancesResponseBodyInstancesIdleInstanceCuller() self.idle_instance_culler = temp_model.from_map(m['IdleInstanceCuller']) if m.get('ImageAuth') is not None: self.image_auth = m.get('ImageAuth') if m.get('ImageId') is not None: self.image_id = m.get('ImageId') if m.get('ImageName') is not None: self.image_name = m.get('ImageName') if m.get('ImageUrl') is not None: self.image_url = m.get('ImageUrl') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('InstanceName') is not None: self.instance_name = m.get('InstanceName') if m.get('InstanceShutdownTimer') is not None: temp_model = ListInstancesResponseBodyInstancesInstanceShutdownTimer() self.instance_shutdown_timer = temp_model.from_map(m['InstanceShutdownTimer']) self.instance_snapshot_list = [] if m.get('InstanceSnapshotList') is not None: for k in m.get('InstanceSnapshotList'): temp_model = ListInstancesResponseBodyInstancesInstanceSnapshotList() self.instance_snapshot_list.append(temp_model.from_map(k)) if m.get('InstanceUrl') is not None: self.instance_url = m.get('InstanceUrl') if m.get('JupyterlabUrl') is not None: self.jupyterlab_url = m.get('JupyterlabUrl') self.labels = [] if m.get('Labels') is not None: for k in m.get('Labels'): temp_model = ListInstancesResponseBodyInstancesLabels() self.labels.append(temp_model.from_map(k)) if m.get('LatestSnapshot') is not None: temp_model = ListInstancesResponseBodyInstancesLatestSnapshot() self.latest_snapshot = temp_model.from_map(m['LatestSnapshot']) if m.get('PaymentType') is not None: self.payment_type = m.get('PaymentType') if m.get('Priority') is not None: self.priority = m.get('Priority') if m.get('ReasonCode') is not None: self.reason_code = m.get('ReasonCode') if m.get('ReasonMessage') is not None: self.reason_message = m.get('ReasonMessage') if m.get('RequestedResource') is not None: temp_model = ListInstancesResponseBodyInstancesRequestedResource() self.requested_resource = temp_model.from_map(m['RequestedResource']) if m.get('ResourceId') is not None: self.resource_id = m.get('ResourceId') if m.get('ResourceName') is not None: self.resource_name = m.get('ResourceName') if m.get('Status') is not None: self.status = m.get('Status') self.tags = [] if m.get('Tags') is not None: for k in m.get('Tags'): temp_model = ListInstancesResponseBodyInstancesTags() self.tags.append(temp_model.from_map(k)) if m.get('TerminalUrl') is not None: self.terminal_url = m.get('TerminalUrl') if m.get('UserId') is not None: self.user_id = m.get('UserId') if m.get('UserName') is not None: self.user_name = m.get('UserName') if m.get('UserVpc') is not None: temp_model = ListInstancesResponseBodyInstancesUserVpc() self.user_vpc = temp_model.from_map(m['UserVpc']) if m.get('WebIDEUrl') is not None: self.web_ideurl = m.get('WebIDEUrl') if m.get('WorkspaceId') is not None: self.workspace_id = m.get('WorkspaceId') if m.get('WorkspaceName') is not None: self.workspace_name = m.get('WorkspaceName') if m.get('WorkspaceSource') is not None: self.workspace_source = m.get('WorkspaceSource') return self class ListInstancesResponseBody(TeaModel): def __init__( self, code: str = None, http_status_code: int = None, instances: List[ListInstancesResponseBodyInstances] = None, message: str = None, request_id: str = None, success: bool = None, total_count: int = None, ): self.code = code self.http_status_code = http_status_code self.instances = instances self.message = message self.request_id = request_id self.success = success self.total_count = total_count def validate(self): if self.instances: for k in self.instances: if k: k.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code 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.message is not None: result['Message'] = self.message 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_count is not None: result['TotalCount'] = self.total_count return result def from_map(self, m: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') self.instances = [] if m.get('Instances') is not None: for k in m.get('Instances'): temp_model = ListInstancesResponseBodyInstances() self.instances.append(temp_model.from_map(k)) if m.get('Message') is not None: self.message = m.get('Message') 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('TotalCount') is not None: self.total_count = m.get('TotalCount') return self class ListInstancesResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: ListInstancesResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = ListInstancesResponseBody() self.body = temp_model.from_map(m['body']) return self class StartInstanceResponseBody(TeaModel): def __init__( self, code: str = None, http_status_code: int = None, instance_id: str = None, message: str = None, request_id: str = None, success: bool = None, ): self.code = code self.http_status_code = http_status_code self.instance_id = instance_id self.message = message self.request_id = request_id self.success = success def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.message is not None: result['Message'] = self.message 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: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Message') is not None: self.message = m.get('Message') 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 StartInstanceResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: StartInstanceResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = StartInstanceResponseBody() self.body = temp_model.from_map(m['body']) return self class StopInstanceRequest(TeaModel): def __init__( self, save_image: bool = None, ): self.save_image = save_image def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.save_image is not None: result['SaveImage'] = self.save_image return result def from_map(self, m: dict = None): m = m or dict() if m.get('SaveImage') is not None: self.save_image = m.get('SaveImage') return self class StopInstanceResponseBody(TeaModel): def __init__( self, code: str = None, http_status_code: int = None, instance_id: str = None, message: str = None, request_id: str = None, success: bool = None, ): self.code = code self.http_status_code = http_status_code self.instance_id = instance_id self.message = message self.request_id = request_id self.success = success def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.message is not None: result['Message'] = self.message 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: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Message') is not None: self.message = m.get('Message') 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 StopInstanceResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: StopInstanceResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = StopInstanceResponseBody() self.body = temp_model.from_map(m['body']) return self class UpdateInstanceRequestAffinityCPU(TeaModel): def __init__( self, enable: bool = None, ): self.enable = enable def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.enable is not None: result['Enable'] = self.enable return result def from_map(self, m: dict = None): m = m or dict() if m.get('Enable') is not None: self.enable = m.get('Enable') return self class UpdateInstanceRequestAffinity(TeaModel): def __init__( self, cpu: UpdateInstanceRequestAffinityCPU = None, ): self.cpu = cpu def validate(self): if self.cpu: self.cpu.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.cpu is not None: result['CPU'] = self.cpu.to_map() return result def from_map(self, m: dict = None): m = m or dict() if m.get('CPU') is not None: temp_model = UpdateInstanceRequestAffinityCPU() self.cpu = temp_model.from_map(m['CPU']) return self class UpdateInstanceRequestCloudDisks(TeaModel): def __init__( self, capacity: str = None, sub_type: str = None, ): self.capacity = capacity self.sub_type = sub_type def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.capacity is not None: result['Capacity'] = self.capacity if self.sub_type is not None: result['SubType'] = self.sub_type return result def from_map(self, m: dict = None): m = m or dict() if m.get('Capacity') is not None: self.capacity = m.get('Capacity') if m.get('SubType') is not None: self.sub_type = m.get('SubType') return self class UpdateInstanceRequestDatasets(TeaModel): def __init__( self, dataset_id: str = None, dataset_version: str = None, dynamic: bool = None, mount_access: str = None, mount_path: str = None, option_type: str = None, options: str = None, uri: str = None, ): self.dataset_id = dataset_id self.dataset_version = dataset_version self.dynamic = dynamic self.mount_access = mount_access self.mount_path = mount_path self.option_type = option_type self.options = options self.uri = uri def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.dataset_id is not None: result['DatasetId'] = self.dataset_id if self.dataset_version is not None: result['DatasetVersion'] = self.dataset_version if self.dynamic is not None: result['Dynamic'] = self.dynamic if self.mount_access is not None: result['MountAccess'] = self.mount_access if self.mount_path is not None: result['MountPath'] = self.mount_path if self.option_type is not None: result['OptionType'] = self.option_type if self.options is not None: result['Options'] = self.options if self.uri is not None: result['Uri'] = self.uri return result def from_map(self, m: dict = None): m = m or dict() if m.get('DatasetId') is not None: self.dataset_id = m.get('DatasetId') if m.get('DatasetVersion') is not None: self.dataset_version = m.get('DatasetVersion') if m.get('Dynamic') is not None: self.dynamic = m.get('Dynamic') if m.get('MountAccess') is not None: self.mount_access = m.get('MountAccess') if m.get('MountPath') is not None: self.mount_path = m.get('MountPath') if m.get('OptionType') is not None: self.option_type = m.get('OptionType') if m.get('Options') is not None: self.options = m.get('Options') if m.get('Uri') is not None: self.uri = m.get('Uri') return self class UpdateInstanceRequestRequestedResource(TeaModel): def __init__( self, cpu: str = None, gpu: str = None, gputype: str = None, memory: str = None, shared_memory: str = None, ): self.cpu = cpu self.gpu = gpu self.gputype = gputype self.memory = memory self.shared_memory = shared_memory def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.cpu is not None: result['CPU'] = self.cpu if self.gpu is not None: result['GPU'] = self.gpu if self.gputype is not None: result['GPUType'] = self.gputype if self.memory is not None: result['Memory'] = self.memory if self.shared_memory is not None: result['SharedMemory'] = self.shared_memory return result def from_map(self, m: dict = None): m = m or dict() if m.get('CPU') is not None: self.cpu = m.get('CPU') if m.get('GPU') is not None: self.gpu = m.get('GPU') if m.get('GPUType') is not None: self.gputype = m.get('GPUType') if m.get('Memory') is not None: self.memory = m.get('Memory') if m.get('SharedMemory') is not None: self.shared_memory = m.get('SharedMemory') return self class UpdateInstanceRequestUserVpc(TeaModel): def __init__( self, default_route: str = None, extended_cidrs: List[str] = None, forward_infos: List[ForwardInfo] = None, security_group_id: str = None, v_switch_id: str = None, vpc_id: str = None, ): self.default_route = default_route self.extended_cidrs = extended_cidrs self.forward_infos = forward_infos self.security_group_id = security_group_id self.v_switch_id = v_switch_id self.vpc_id = vpc_id def validate(self): if self.forward_infos: for k in self.forward_infos: if k: k.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.default_route is not None: result['DefaultRoute'] = self.default_route if self.extended_cidrs is not None: result['ExtendedCIDRs'] = self.extended_cidrs result['ForwardInfos'] = [] if self.forward_infos is not None: for k in self.forward_infos: result['ForwardInfos'].append(k.to_map() if k else None) if self.security_group_id is not None: result['SecurityGroupId'] = self.security_group_id if self.v_switch_id is not None: result['VSwitchId'] = self.v_switch_id if self.vpc_id is not None: result['VpcId'] = self.vpc_id return result def from_map(self, m: dict = None): m = m or dict() if m.get('DefaultRoute') is not None: self.default_route = m.get('DefaultRoute') if m.get('ExtendedCIDRs') is not None: self.extended_cidrs = m.get('ExtendedCIDRs') self.forward_infos = [] if m.get('ForwardInfos') is not None: for k in m.get('ForwardInfos'): temp_model = ForwardInfo() self.forward_infos.append(temp_model.from_map(k)) if m.get('SecurityGroupId') is not None: self.security_group_id = m.get('SecurityGroupId') if m.get('VSwitchId') is not None: self.v_switch_id = m.get('VSwitchId') if m.get('VpcId') is not None: self.vpc_id = m.get('VpcId') return self class UpdateInstanceRequest(TeaModel): def __init__( self, accessibility: str = None, affinity: UpdateInstanceRequestAffinity = None, cloud_disks: List[UpdateInstanceRequestCloudDisks] = None, credential_config: CredentialConfig = None, datasets: List[UpdateInstanceRequestDatasets] = None, disassociate_credential: bool = None, disassociate_datasets: bool = None, disassociate_driver: bool = None, disassociate_forward_infos: bool = None, disassociate_vpc: bool = None, driver: str = None, dynamic_mount: DynamicMount = None, ecs_spec: str = None, image_auth: str = None, image_id: str = None, image_url: str = None, instance_name: str = None, priority: int = None, requested_resource: UpdateInstanceRequestRequestedResource = None, user_id: str = None, user_vpc: UpdateInstanceRequestUserVpc = None, workspace_source: str = None, ): self.accessibility = accessibility self.affinity = affinity self.cloud_disks = cloud_disks self.credential_config = credential_config self.datasets = datasets self.disassociate_credential = disassociate_credential self.disassociate_datasets = disassociate_datasets self.disassociate_driver = disassociate_driver self.disassociate_forward_infos = disassociate_forward_infos self.disassociate_vpc = disassociate_vpc self.driver = driver self.dynamic_mount = dynamic_mount self.ecs_spec = ecs_spec self.image_auth = image_auth self.image_id = image_id self.image_url = image_url self.instance_name = instance_name self.priority = priority self.requested_resource = requested_resource self.user_id = user_id self.user_vpc = user_vpc self.workspace_source = workspace_source def validate(self): if self.affinity: self.affinity.validate() if self.cloud_disks: for k in self.cloud_disks: if k: k.validate() if self.credential_config: self.credential_config.validate() if self.datasets: for k in self.datasets: if k: k.validate() if self.dynamic_mount: self.dynamic_mount.validate() if self.requested_resource: self.requested_resource.validate() if self.user_vpc: self.user_vpc.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.accessibility is not None: result['Accessibility'] = self.accessibility if self.affinity is not None: result['Affinity'] = self.affinity.to_map() result['CloudDisks'] = [] if self.cloud_disks is not None: for k in self.cloud_disks: result['CloudDisks'].append(k.to_map() if k else None) if self.credential_config is not None: result['CredentialConfig'] = self.credential_config.to_map() result['Datasets'] = [] if self.datasets is not None: for k in self.datasets: result['Datasets'].append(k.to_map() if k else None) if self.disassociate_credential is not None: result['DisassociateCredential'] = self.disassociate_credential if self.disassociate_datasets is not None: result['DisassociateDatasets'] = self.disassociate_datasets if self.disassociate_driver is not None: result['DisassociateDriver'] = self.disassociate_driver if self.disassociate_forward_infos is not None: result['DisassociateForwardInfos'] = self.disassociate_forward_infos if self.disassociate_vpc is not None: result['DisassociateVpc'] = self.disassociate_vpc if self.driver is not None: result['Driver'] = self.driver if self.dynamic_mount is not None: result['DynamicMount'] = self.dynamic_mount.to_map() if self.ecs_spec is not None: result['EcsSpec'] = self.ecs_spec if self.image_auth is not None: result['ImageAuth'] = self.image_auth if self.image_id is not None: result['ImageId'] = self.image_id if self.image_url is not None: result['ImageUrl'] = self.image_url if self.instance_name is not None: result['InstanceName'] = self.instance_name if self.priority is not None: result['Priority'] = self.priority if self.requested_resource is not None: result['RequestedResource'] = self.requested_resource.to_map() if self.user_id is not None: result['UserId'] = self.user_id if self.user_vpc is not None: result['UserVpc'] = self.user_vpc.to_map() if self.workspace_source is not None: result['WorkspaceSource'] = self.workspace_source return result def from_map(self, m: dict = None): m = m or dict() if m.get('Accessibility') is not None: self.accessibility = m.get('Accessibility') if m.get('Affinity') is not None: temp_model = UpdateInstanceRequestAffinity() self.affinity = temp_model.from_map(m['Affinity']) self.cloud_disks = [] if m.get('CloudDisks') is not None: for k in m.get('CloudDisks'): temp_model = UpdateInstanceRequestCloudDisks() self.cloud_disks.append(temp_model.from_map(k)) if m.get('CredentialConfig') is not None: temp_model = CredentialConfig() self.credential_config = temp_model.from_map(m['CredentialConfig']) self.datasets = [] if m.get('Datasets') is not None: for k in m.get('Datasets'): temp_model = UpdateInstanceRequestDatasets() self.datasets.append(temp_model.from_map(k)) if m.get('DisassociateCredential') is not None: self.disassociate_credential = m.get('DisassociateCredential') if m.get('DisassociateDatasets') is not None: self.disassociate_datasets = m.get('DisassociateDatasets') if m.get('DisassociateDriver') is not None: self.disassociate_driver = m.get('DisassociateDriver') if m.get('DisassociateForwardInfos') is not None: self.disassociate_forward_infos = m.get('DisassociateForwardInfos') if m.get('DisassociateVpc') is not None: self.disassociate_vpc = m.get('DisassociateVpc') if m.get('Driver') is not None: self.driver = m.get('Driver') if m.get('DynamicMount') is not None: temp_model = DynamicMount() self.dynamic_mount = temp_model.from_map(m['DynamicMount']) if m.get('EcsSpec') is not None: self.ecs_spec = m.get('EcsSpec') if m.get('ImageAuth') is not None: self.image_auth = m.get('ImageAuth') if m.get('ImageId') is not None: self.image_id = m.get('ImageId') if m.get('ImageUrl') is not None: self.image_url = m.get('ImageUrl') if m.get('InstanceName') is not None: self.instance_name = m.get('InstanceName') if m.get('Priority') is not None: self.priority = m.get('Priority') if m.get('RequestedResource') is not None: temp_model = UpdateInstanceRequestRequestedResource() self.requested_resource = temp_model.from_map(m['RequestedResource']) if m.get('UserId') is not None: self.user_id = m.get('UserId') if m.get('UserVpc') is not None: temp_model = UpdateInstanceRequestUserVpc() self.user_vpc = temp_model.from_map(m['UserVpc']) if m.get('WorkspaceSource') is not None: self.workspace_source = m.get('WorkspaceSource') return self class UpdateInstanceResponseBody(TeaModel): def __init__( self, code: str = None, http_status_code: int = None, instance_id: str = None, message: str = None, request_id: str = None, success: bool = None, ): self.code = code self.http_status_code = http_status_code self.instance_id = instance_id self.message = message self.request_id = request_id self.success = success def validate(self): pass def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() if self.code is not None: result['Code'] = self.code if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.message is not None: result['Message'] = self.message 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: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Message') is not None: self.message = m.get('Message') 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 UpdateInstanceResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: UpdateInstanceResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = UpdateInstanceResponseBody() self.body = temp_model.from_map(m['body']) return self class UpdateInstanceLabelsRequestLabels(TeaModel): def __init__( self, key: str = None, value: str = None, ): # This parameter is required. self.key = key # This parameter is required. self.value = value def validate(self): pass def to_map(self): _map = super().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: dict = 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 UpdateInstanceLabelsRequest(TeaModel): def __init__( self, labels: List[UpdateInstanceLabelsRequestLabels] = None, ): # This parameter is required. self.labels = labels def validate(self): if self.labels: for k in self.labels: if k: k.validate() def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() result['Labels'] = [] if self.labels is not None: for k in self.labels: result['Labels'].append(k.to_map() if k else None) return result def from_map(self, m: dict = None): m = m or dict() self.labels = [] if m.get('Labels') is not None: for k in m.get('Labels'): temp_model = UpdateInstanceLabelsRequestLabels() self.labels.append(temp_model.from_map(k)) return self class UpdateInstanceLabelsResponseBody(TeaModel): def __init__( self, request_id: str = None, ): self.request_id = request_id def validate(self): pass def to_map(self): _map = super().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: dict = None): m = m or dict() if m.get('RequestId') is not None: self.request_id = m.get('RequestId') return self class UpdateInstanceLabelsResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, body: UpdateInstanceLabelsResponseBody = None, ): self.headers = headers self.status_code = status_code self.body = body def validate(self): if self.body: self.body.validate() def to_map(self): _map = super().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: dict = 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 = UpdateInstanceLabelsResponseBody() self.body = temp_model.from_map(m['body']) return self