class TencentCloud::Emr::V20190103::CreateInstanceRequest

def deserialize(params)

def deserialize(params)
  @ProductId = params['ProductId']
  @Software = params['Software']
  @SupportHA = params['SupportHA']
  @InstanceName = params['InstanceName']
  @PayMode = params['PayMode']
  @TimeSpan = params['TimeSpan']
  @TimeUnit = params['TimeUnit']
  unless params['LoginSettings'].nil?
    @LoginSettings = LoginSettings.new
    @LoginSettings.deserialize(params['LoginSettings'])
  end
  unless params['VPCSettings'].nil?
    @VPCSettings = VPCSettings.new
    @VPCSettings.deserialize(params['VPCSettings'])
  end
  unless params['ResourceSpec'].nil?
    @ResourceSpec = NewResourceSpec.new
    @ResourceSpec.deserialize(params['ResourceSpec'])
  end
  unless params['COSSettings'].nil?
    @COSSettings = COSSettings.new
    @COSSettings.deserialize(params['COSSettings'])
  end
  unless params['Placement'].nil?
    @Placement = Placement.new
    @Placement.deserialize(params['Placement'])
  end
  @SgId = params['SgId']
  unless params['PreExecutedFileSettings'].nil?
    @PreExecutedFileSettings = []
    params['PreExecutedFileSettings'].each do |i|
      preexecutefilesettings_tmp = PreExecuteFileSettings.new
      preexecutefilesettings_tmp.deserialize(i)
      @PreExecutedFileSettings << preexecutefilesettings_tmp
    end
  end
  @AutoRenew = params['AutoRenew']
  @ClientToken = params['ClientToken']
  @NeedMasterWan = params['NeedMasterWan']
  @RemoteLoginAtCreate = params['RemoteLoginAtCreate']
  @CheckSecurity = params['CheckSecurity']
  @ExtendFsField = params['ExtendFsField']
  unless params['Tags'].nil?
    @Tags = []
    params['Tags'].each do |i|
      tag_tmp = Tag.new
      tag_tmp.deserialize(i)
      @Tags << tag_tmp
    end
  end
  @DisasterRecoverGroupIds = params['DisasterRecoverGroupIds']
  @CbsEncrypt = params['CbsEncrypt']
  @MetaType = params['MetaType']
  @UnifyMetaInstanceId = params['UnifyMetaInstanceId']
  unless params['MetaDBInfo'].nil?
    @MetaDBInfo = CustomMetaInfo.new
    @MetaDBInfo.deserialize(params['MetaDBInfo'])
  end
  @ApplicationRole = params['ApplicationRole']
  @SceneName = params['SceneName']
  unless params['ExternalService'].nil?
    @ExternalService = []
    params['ExternalService'].each do |i|
      externalservice_tmp = ExternalService.new
      externalservice_tmp.deserialize(i)
      @ExternalService << externalservice_tmp
    end
  end
  @VersionID = params['VersionID']
  @MultiZone = params['MultiZone']
  unless params['MultiZoneSettings'].nil?
    @MultiZoneSettings = []
    params['MultiZoneSettings'].each do |i|
      multizonesetting_tmp = MultiZoneSetting.new
      multizonesetting_tmp.deserialize(i)
      @MultiZoneSettings << multizonesetting_tmp
    end
  end
end