def save_draft(self, target_folder=OutlookWellKnowFolderNames.DRAFTS):
if self.object_id:<EOL><INDENT>if not self.__is_draft:<EOL><INDENT>raise RuntimeError('<STR_LIT>')<EOL><DEDENT>if not self._track_changes:<EOL><INDENT>return True  <EOL><DEDENT>url = self.build_url(<EOL>self._endpoints.get('<STR_LIT>').format(id=self.object_id))<EOL>method = self.con.patch<EOL>data = self.to_api_data(restrict_keys=self._track_changes)<EOL>data.pop(self._cc('<STR_LIT>'),<EOL>None)  <EOL>self.attachments._update_attachments_to_cloud()<EOL><DEDENT>else:<EOL><INDENT>if not self.__is_draft:<EOL><INDENT>raise RuntimeError('<STR_LIT>')<EOL><DEDENT>target_folder = target_folder or OutlookWellKnowFolderNames.DRAFTS<EOL>if isinstance(target_folder, OutlookWellKnowFolderNames):<EOL><INDENT>target_folder = target_folder.value<EOL><DEDENT>elif not isinstance(target_folder, str):<EOL><INDENT>target_folder = getattr(target_folder, '<STR_LIT>',<EOL>OutlookWellKnowFolderNames.DRAFTS.value)<EOL><DEDENT>url = self.build_url(<EOL>self._endpoints.get('<STR_LIT>').format(<EOL>id=target_folder))<EOL>method = self.con.post<EOL>data = self.to_api_data()<EOL><DEDENT>if not data:<EOL><INDENT>return True<EOL><DEDENT>response = method(url, data=data)<EOL>if not response:<EOL><INDENT>return False<EOL><DEDENT>self._track_changes.clear()  <EOL>if not self.object_id:<EOL><INDENT>message = response.json()<EOL>self.object_id = message.get(self._cc('<STR_LIT:id>'), None)<EOL>self.folder_id = message.get(self._cc('<STR_LIT>'), None)<EOL>self.__created = message.get(self._cc('<STR_LIT>'),<EOL>message.get(<EOL>self._cc('<STR_LIT>'),<EOL>None))<EOL>self.__modified = message.get(self._cc('<STR_LIT>'),<EOL>message.get(<EOL>self._cc('<STR_LIT>'),<EOL>None))<EOL>self.__created = parse(self.__created).astimezone(<EOL>self.protocol.timezone) if self.__created else None<EOL>self.__modified = parse(self.__modified).astimezone(<EOL>self.protocol.timezone) if self.__modified else None<EOL><DEDENT>else:<EOL><INDENT>self.__modified = self.protocol.timezone.localize(dt.datetime.now())<EOL><DEDENT>return True<EOL>
Save this message as a draft on the cloud

        :param target_folder: name of the drafts folder
        :return: Success / Failure
        :rtype: bool