code: def add_package(self, metadata, feed_id, package_name, package_version):
          
          route_values = {}
          if feed_id is not None:
              route_values['feedId'] = self._serialize.url('feed_id', feed_id, 'str')
          if package_name is not None:
              route_values['packageName'] = self._serialize.url('package_name', package_name, 'str')
          if package_version is not None:
              route_values['packageVersion'] = self._serialize.url('package_version', package_version, 'str')
          content = self._serialize.body(metadata, 'UPackPackagePushMetadata')
          self._send(http_method='PUT',
                     location_id='4cdb2ced-0758-4651-8032-010f070dd7e5',
                     version='5.0-preview.1',
                     route_values=route_values,
                     content=content)
docs: AddPackage.
          [Preview API]
          :param :class:`<UPackPackagePushMetadata> <azure.devops.v5_0.upack_packaging.models.UPackPackagePushMetadata>` metadata:
          :param str feed_id:
          :param str package_name:
          :param str package_version: