code: def create_attachment(self, upload_stream, file_name, repository_id, pull_request_id, project=None, **kwargs):
          
          route_values = {}
          if project is not None:
              route_values['project'] = self._serialize.url('project', project, 'str')
          if file_name is not None:
              route_values['fileName'] = self._serialize.url('file_name', file_name, 'str')
          if repository_id is not None:
              route_values['repositoryId'] = self._serialize.url('repository_id', repository_id, 'str')
          if pull_request_id is not None:
              route_values['pullRequestId'] = self._serialize.url('pull_request_id', pull_request_id, 'int')
          if "callback" in kwargs:
              callback = kwargs["callback"]
          else:
              callback = None
          content = self._client.stream_upload(upload_stream, callback=callback)
          response = self._send(http_method='POST',
                                location_id='965d9361-878b-413b-a494-45d5b5fd8ab7',
                                version='5.1-preview.1',
                                route_values=route_values,
                                content=content,
                                media_type='application/octet-stream')
          return self._deserialize('Attachment', response)
docs: CreateAttachment.
          [Preview API] Attach a new file to a pull request.
          :param object upload_stream: Stream to upload
          :param str file_name: The name of the file.
          :param str repository_id: The repository ID of the pull request’s target branch.
          :param int pull_request_id: ID of the pull request.
          :param str project: Project ID or project name
          :rtype: :class:`<Attachment> <azure.devops.v5_1.git.models.Attachment>`