def create_source_import(self, vcs, vcs_url, vcs_username=github.GithubObject.NotSet, vcs_password=github.GithubObject.NotSet):
assert isinstance(vcs, (str, unicode)), vcs<EOL>assert isinstance(vcs_url, (str, unicode)), vcs_url<EOL>assert vcs_username is github.GithubObject.NotSet or isinstance(vcs_username, (str, unicode)), vcs_username<EOL>assert vcs_password is github.GithubObject.NotSet or isinstance(vcs_password, (str, unicode)), vcs_password<EOL>put_parameters = {<EOL>"<STR_LIT>": vcs,<EOL>"<STR_LIT>": vcs_url<EOL>}<EOL>if vcs_username is not github.GithubObject.NotSet:<EOL><INDENT>put_parameters["<STR_LIT>"] = vcs_username<EOL><DEDENT>if vcs_password is not github.GithubObject.NotSet:<EOL><INDENT>put_parameters["<STR_LIT>"] = vcs_password<EOL><DEDENT>import_header = {"<STR_LIT>": Consts.mediaTypeImportPreview}<EOL>headers, data = self._requester.requestJsonAndCheck(<EOL>"<STR_LIT>",<EOL>self.url + "<STR_LIT>",<EOL>headers=import_header,<EOL>input=put_parameters<EOL>)<EOL>return github.SourceImport.SourceImport(self._requester, headers, data, completed=False)<EOL>
:calls: `PUT /repos/:owner/:repo/import <https://developer.github.com/v3/migration/source_imports/#start-an-import>`_
:param vcs: string
:param vcs_url: string
:param vcs_username: string
:param vcs_password: string
:rtype: :class:`github.SourceImport.SourceImport`