class TencentCloud::Cvm::V20170312::Instance

def deserialize(params)

def deserialize(params)
  unless params['Placement'].nil?
    @Placement = Placement.new
    @Placement.deserialize(params['Placement'])
  end
  @InstanceId = params['InstanceId']
  @InstanceType = params['InstanceType']
  @CPU = params['CPU']
  @Memory = params['Memory']
  @RestrictState = params['RestrictState']
  @InstanceName = params['InstanceName']
  @InstanceChargeType = params['InstanceChargeType']
  unless params['SystemDisk'].nil?
    @SystemDisk = SystemDisk.new
    @SystemDisk.deserialize(params['SystemDisk'])
  end
  unless params['DataDisks'].nil?
    @DataDisks = []
    params['DataDisks'].each do |i|
      datadisk_tmp = DataDisk.new
      datadisk_tmp.deserialize(i)
      @DataDisks << datadisk_tmp
    end
  end
  @PrivateIpAddresses = params['PrivateIpAddresses']
  @PublicIpAddresses = params['PublicIpAddresses']
  unless params['InternetAccessible'].nil?
    @InternetAccessible = InternetAccessible.new
    @InternetAccessible.deserialize(params['InternetAccessible'])
  end
  unless params['VirtualPrivateCloud'].nil?
    @VirtualPrivateCloud = VirtualPrivateCloud.new
    @VirtualPrivateCloud.deserialize(params['VirtualPrivateCloud'])
  end
  @ImageId = params['ImageId']
  @RenewFlag = params['RenewFlag']
  @CreatedTime = params['CreatedTime']
  @ExpiredTime = params['ExpiredTime']
  @OsName = params['OsName']
  @SecurityGroupIds = params['SecurityGroupIds']
  unless params['LoginSettings'].nil?
    @LoginSettings = LoginSettings.new
    @LoginSettings.deserialize(params['LoginSettings'])
  end
  @InstanceState = params['InstanceState']
  unless params['Tags'].nil?
    @Tags = []
    params['Tags'].each do |i|
      tag_tmp = Tag.new
      tag_tmp.deserialize(i)
      @Tags << tag_tmp
    end
  end
  @StopChargingMode = params['StopChargingMode']
  @Uuid = params['Uuid']
  @LatestOperation = params['LatestOperation']
  @LatestOperationState = params['LatestOperationState']
  @LatestOperationRequestId = params['LatestOperationRequestId']
  @DisasterRecoverGroupId = params['DisasterRecoverGroupId']
  @IPv6Addresses = params['IPv6Addresses']
  @CamRoleName = params['CamRoleName']
  @HpcClusterId = params['HpcClusterId']
  @RdmaIpAddresses = params['RdmaIpAddresses']
  @DedicatedClusterId = params['DedicatedClusterId']
  @IsolatedSource = params['IsolatedSource']
  unless params['GPUInfo'].nil?
    @GPUInfo = GPUInfo.new
    @GPUInfo.deserialize(params['GPUInfo'])
  end
  @LicenseType = params['LicenseType']
  @DisableApiTermination = params['DisableApiTermination']
  @DefaultLoginUser = params['DefaultLoginUser']
  @DefaultLoginPort = params['DefaultLoginPort']
  @LatestOperationErrorMsg = params['LatestOperationErrorMsg']
end