From f5812c8c3b062b5efb34e45702ee7df507f71e16 Mon Sep 17 00:00:00 2001
From: Bryan Newbold <bnewbold@robocracy.org>
Date: Tue, 11 Sep 2018 16:16:39 -0700
Subject: python implementation of new editgroup param

---
 python/fatcat/crossref_importer.py              | 16 +++----
 python/fatcat/importer_common.py                |  4 +-
 python/fatcat/issn_importer.py                  | 11 ++---
 python/fatcat/manifest_importer.py              |  7 ++-
 python/fatcat/orcid_importer.py                 | 11 ++---
 python/fatcat_client/api/default_api.py         | 60 +++++++++++++++++++----
 python/fatcat_client/models/container_entity.py | 62 +++++++++++-------------
 python/fatcat_client/models/creator_entity.py   | 64 +++++++++++--------------
 python/fatcat_client/models/file_entity.py      | 62 +++++++++++-------------
 python/fatcat_client/models/release_entity.py   | 64 +++++++++++--------------
 python/fatcat_client/models/work_entity.py      | 62 +++++++++++-------------
 11 files changed, 206 insertions(+), 217 deletions(-)

(limited to 'python')

diff --git a/python/fatcat/crossref_importer.py b/python/fatcat/crossref_importer.py
index 54a3e84f..a59d0a45 100644
--- a/python/fatcat/crossref_importer.py
+++ b/python/fatcat/crossref_importer.py
@@ -119,22 +119,20 @@ class FatcatCrossrefImporter(FatcatImporter):
             extra=extra)
         return (re, ce)
 
-    def create_row(self, row, editgroup_id=None):
+    def create_row(self, row, editgroup=None):
         if row is None:
             return
         obj = json.loads(row)
         entities = self.parse_crossref_dict(obj)
         if entities is not None:
             (re, ce) = entities
-            re.editgroup_id = editgroup_id
             if ce is not None:
-                ce.editgroup_id = editgroup_id
-                container = self.api.create_container(ce)
+                container = self.api.create_container(ce, editgroup=editgroup)
                 re.container_id = container.ident
                 self._issnl_id_map[ce.issnl] = container.ident
-            self.api.create_release(re)
+            self.api.create_release(re, editgroup=editgroup)
 
-    def create_batch(self, batch, editgroup_id=None):
+    def create_batch(self, batch, editgroup=None):
         """Current work/release pairing disallows batch creation of releases.
         Could do batch work creation and then match against releases, but meh."""
         release_batch = []
@@ -145,11 +143,9 @@ class FatcatCrossrefImporter(FatcatImporter):
             entities = self.parse_crossref_dict(obj)
             if entities is not None:
                 (re, ce) = entities
-                re.editgroup_id = editgroup_id
                 if ce is not None:
-                    ce.editgroup_id = editgroup_id
-                    container = self.api.create_container(ce)
+                    container = self.api.create_container(ce, editgroup=editgroup)
                     re.container_id = container.ident
                     self._issnl_id_map[ce.issnl] = container.ident
                 release_batch.append(re)
-        self.api.create_release_batch(release_batch, autoaccept="true", editgroup=editgroup_id)
+        self.api.create_release_batch(release_batch, autoaccept="true", editgroup=editgroup)
diff --git a/python/fatcat/importer_common.py b/python/fatcat/importer_common.py
index 74a57ac1..ff0c8a27 100644
--- a/python/fatcat/importer_common.py
+++ b/python/fatcat/importer_common.py
@@ -32,7 +32,7 @@ class FatcatImporter:
         eg = self.api.create_editgroup(
             fatcat_client.Editgroup(editor_id='aaaaaaaaaaaabkvkaaaaaaaaae'))
         for i, row in enumerate(source):
-            self.create_row(row, editgroup_id=eg.id)
+            self.create_row(row, editgroup=eg.id)
             if i > 0 and (i % group_size) == 0:
                 self.api.accept_editgroup(eg)
                 eg = self.api.create_editgroup(
@@ -45,7 +45,7 @@ class FatcatImporter:
         for rows in grouper(source, size):
             eg = self.api.create_editgroup(
                 fatcat_client.Editgroup(editor_id='aaaaaaaaaaaabkvkaaaaaaaaae'))
-            self.create_batch(rows, editgroup_id=eg.id)
+            self.create_batch(rows, editgroup=eg.id)
 
     def process_csv_source(self, source, group_size=100, delimiter=','):
         reader = csv.DictReader(source, delimiter=delimiter)
diff --git a/python/fatcat/issn_importer.py b/python/fatcat/issn_importer.py
index eb8a50ba..ad2cad78 100644
--- a/python/fatcat/issn_importer.py
+++ b/python/fatcat/issn_importer.py
@@ -57,17 +57,14 @@ class FatcatIssnImporter(FatcatImporter):
             extra=extra)
         return ce
 
-    def create_row(self, row, editgroup_id=None):
+    def create_row(self, row, editgroup=None):
         ce = self.parse_issn_row(row)
         if ce is not None:
-            ce.editgroup_id = editgroup_id
-            self.api.create_container(ce)
+            self.api.create_container(ce, editgroup=editgroup)
 
-    def create_batch(self, batch, editgroup_id=None):
+    def create_batch(self, batch, editgroup=None):
         """Reads and processes in batches (not API-call-per-line)"""
         objects = [self.parse_issn_row(l)
                    for l in batch if l != None]
         objects = [o for o in objects if o != None]
-        for o in objects:
-            o.editgroup_id = editgroup_id
-        self.api.create_container_batch(objects, autoaccept="true", editgroup=editgroup_id)
+        self.api.create_container_batch(objects, autoaccept="true", editgroup=editgroup)
diff --git a/python/fatcat/manifest_importer.py b/python/fatcat/manifest_importer.py
index 2965d0ef..3b0b3815 100644
--- a/python/fatcat/manifest_importer.py
+++ b/python/fatcat/manifest_importer.py
@@ -50,10 +50,9 @@ class FatcatManifestImporter(FatcatImporter):
             extra=extra)
         return fe
 
-    def create_entity(self, entity, editgroup_id=None):
+    def create_entity(self, entity, editgroup=None):
         if entity is not None:
-            entity.editgroup_id = editgroup_id
-            self.api.create_file(entity)
+            self.api.create_file(entity, editgroup=editgroup)
 
     def process_db(self, db_path, size=100):
         # TODO: multiple DOIs per sha1
@@ -78,7 +77,7 @@ class FatcatManifestImporter(FatcatImporter):
             fe = self.parse_manifest_row(row)
             if fe is None:
                 continue
-            self.create_entity(fe, editgroup_id=eg.id)
+            self.create_entity(fe, editgroup=eg.id)
             if i > 0 and (i % size) == 0:
                 self.api.accept_editgroup(eg.id)
                 eg = self.api.create_editgroup(fatcat_client.Editgroup(editor_id="aaaaaaaaaaaabkvkaaaaaaaaae"))
diff --git a/python/fatcat/orcid_importer.py b/python/fatcat/orcid_importer.py
index fe76b02c..2eeac122 100644
--- a/python/fatcat/orcid_importer.py
+++ b/python/fatcat/orcid_importer.py
@@ -57,18 +57,15 @@ class FatcatOrcidImporter(FatcatImporter):
             extra=extra)
         return ce
 
-    def create_row(self, row, editgroup_id=None):
+    def create_row(self, row, editgroup=None):
         obj = json.loads(row)
         ce = self.parse_orcid_dict(obj)
         if ce is not None:
-            ce.editgroup_id = editgroup_id
-            self.api.create_creator(ce)
+            self.api.create_creator(ce, editgroup=editgroup)
 
-    def create_batch(self, batch, editgroup_id=None):
+    def create_batch(self, batch, editgroup=None):
         """Reads and processes in batches (not API-call-per-line)"""
         objects = [self.parse_orcid_dict(json.loads(l))
                    for l in batch if l != None]
         objects = [o for o in objects if o != None]
-        for o in objects:
-            o.editgroup_id = editgroup_id
-        self.api.create_creator_batch(objects, autoaccept="true", editgroup=editgroup_id)
+        self.api.create_creator_batch(objects, autoaccept="true", editgroup=editgroup)
diff --git a/python/fatcat_client/api/default_api.py b/python/fatcat_client/api/default_api.py
index 23c8d7ca..0db7be3d 100644
--- a/python/fatcat_client/api/default_api.py
+++ b/python/fatcat_client/api/default_api.py
@@ -148,6 +148,7 @@ class DefaultApi(object):
 
         :param async bool
         :param ContainerEntity entity: (required)
+        :param str editgroup:
         :return: EntityEdit
                  If the method is called asynchronously,
                  returns the request thread.
@@ -169,12 +170,13 @@ class DefaultApi(object):
 
         :param async bool
         :param ContainerEntity entity: (required)
+        :param str editgroup:
         :return: EntityEdit
                  If the method is called asynchronously,
                  returns the request thread.
         """
 
-        all_params = ['entity']  # noqa: E501
+        all_params = ['entity', 'editgroup']  # noqa: E501
         all_params.append('async')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -199,6 +201,8 @@ class DefaultApi(object):
         path_params = {}
 
         query_params = []
+        if 'editgroup' in params:
+            query_params.append(('editgroup', params['editgroup']))  # noqa: E501
 
         header_params = {}
 
@@ -350,6 +354,7 @@ class DefaultApi(object):
 
         :param async bool
         :param CreatorEntity entity: (required)
+        :param str editgroup:
         :return: EntityEdit
                  If the method is called asynchronously,
                  returns the request thread.
@@ -371,12 +376,13 @@ class DefaultApi(object):
 
         :param async bool
         :param CreatorEntity entity: (required)
+        :param str editgroup:
         :return: EntityEdit
                  If the method is called asynchronously,
                  returns the request thread.
         """
 
-        all_params = ['entity']  # noqa: E501
+        all_params = ['entity', 'editgroup']  # noqa: E501
         all_params.append('async')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -401,6 +407,8 @@ class DefaultApi(object):
         path_params = {}
 
         query_params = []
+        if 'editgroup' in params:
+            query_params.append(('editgroup', params['editgroup']))  # noqa: E501
 
         header_params = {}
 
@@ -649,6 +657,7 @@ class DefaultApi(object):
 
         :param async bool
         :param FileEntity entity: (required)
+        :param str editgroup:
         :return: EntityEdit
                  If the method is called asynchronously,
                  returns the request thread.
@@ -670,12 +679,13 @@ class DefaultApi(object):
 
         :param async bool
         :param FileEntity entity: (required)
+        :param str editgroup:
         :return: EntityEdit
                  If the method is called asynchronously,
                  returns the request thread.
         """
 
-        all_params = ['entity']  # noqa: E501
+        all_params = ['entity', 'editgroup']  # noqa: E501
         all_params.append('async')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -700,6 +710,8 @@ class DefaultApi(object):
         path_params = {}
 
         query_params = []
+        if 'editgroup' in params:
+            query_params.append(('editgroup', params['editgroup']))  # noqa: E501
 
         header_params = {}
 
@@ -851,6 +863,7 @@ class DefaultApi(object):
 
         :param async bool
         :param ReleaseEntity entity: (required)
+        :param str editgroup:
         :return: EntityEdit
                  If the method is called asynchronously,
                  returns the request thread.
@@ -872,12 +885,13 @@ class DefaultApi(object):
 
         :param async bool
         :param ReleaseEntity entity: (required)
+        :param str editgroup:
         :return: EntityEdit
                  If the method is called asynchronously,
                  returns the request thread.
         """
 
-        all_params = ['entity']  # noqa: E501
+        all_params = ['entity', 'editgroup']  # noqa: E501
         all_params.append('async')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -902,6 +916,8 @@ class DefaultApi(object):
         path_params = {}
 
         query_params = []
+        if 'editgroup' in params:
+            query_params.append(('editgroup', params['editgroup']))  # noqa: E501
 
         header_params = {}
 
@@ -1053,6 +1069,7 @@ class DefaultApi(object):
 
         :param async bool
         :param WorkEntity entity: (required)
+        :param str editgroup:
         :return: EntityEdit
                  If the method is called asynchronously,
                  returns the request thread.
@@ -1074,12 +1091,13 @@ class DefaultApi(object):
 
         :param async bool
         :param WorkEntity entity: (required)
+        :param str editgroup:
         :return: EntityEdit
                  If the method is called asynchronously,
                  returns the request thread.
         """
 
-        all_params = ['entity']  # noqa: E501
+        all_params = ['entity', 'editgroup']  # noqa: E501
         all_params.append('async')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -1104,6 +1122,8 @@ class DefaultApi(object):
         path_params = {}
 
         query_params = []
+        if 'editgroup' in params:
+            query_params.append(('editgroup', params['editgroup']))  # noqa: E501
 
         header_params = {}
 
@@ -4048,6 +4068,7 @@ class DefaultApi(object):
         :param async bool
         :param str id: (required)
         :param ContainerEntity entity: (required)
+        :param str editgroup:
         :return: EntityEdit
                  If the method is called asynchronously,
                  returns the request thread.
@@ -4070,12 +4091,13 @@ class DefaultApi(object):
         :param async bool
         :param str id: (required)
         :param ContainerEntity entity: (required)
+        :param str editgroup:
         :return: EntityEdit
                  If the method is called asynchronously,
                  returns the request thread.
         """
 
-        all_params = ['id', 'entity']  # noqa: E501
+        all_params = ['id', 'entity', 'editgroup']  # noqa: E501
         all_params.append('async')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -4106,6 +4128,8 @@ class DefaultApi(object):
             path_params['id'] = params['id']  # noqa: E501
 
         query_params = []
+        if 'editgroup' in params:
+            query_params.append(('editgroup', params['editgroup']))  # noqa: E501
 
         header_params = {}
 
@@ -4153,6 +4177,7 @@ class DefaultApi(object):
         :param async bool
         :param str id: (required)
         :param CreatorEntity entity: (required)
+        :param str editgroup:
         :return: EntityEdit
                  If the method is called asynchronously,
                  returns the request thread.
@@ -4175,12 +4200,13 @@ class DefaultApi(object):
         :param async bool
         :param str id: (required)
         :param CreatorEntity entity: (required)
+        :param str editgroup:
         :return: EntityEdit
                  If the method is called asynchronously,
                  returns the request thread.
         """
 
-        all_params = ['id', 'entity']  # noqa: E501
+        all_params = ['id', 'entity', 'editgroup']  # noqa: E501
         all_params.append('async')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -4211,6 +4237,8 @@ class DefaultApi(object):
             path_params['id'] = params['id']  # noqa: E501
 
         query_params = []
+        if 'editgroup' in params:
+            query_params.append(('editgroup', params['editgroup']))  # noqa: E501
 
         header_params = {}
 
@@ -4258,6 +4286,7 @@ class DefaultApi(object):
         :param async bool
         :param str id: (required)
         :param FileEntity entity: (required)
+        :param str editgroup:
         :return: EntityEdit
                  If the method is called asynchronously,
                  returns the request thread.
@@ -4280,12 +4309,13 @@ class DefaultApi(object):
         :param async bool
         :param str id: (required)
         :param FileEntity entity: (required)
+        :param str editgroup:
         :return: EntityEdit
                  If the method is called asynchronously,
                  returns the request thread.
         """
 
-        all_params = ['id', 'entity']  # noqa: E501
+        all_params = ['id', 'entity', 'editgroup']  # noqa: E501
         all_params.append('async')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -4316,6 +4346,8 @@ class DefaultApi(object):
             path_params['id'] = params['id']  # noqa: E501
 
         query_params = []
+        if 'editgroup' in params:
+            query_params.append(('editgroup', params['editgroup']))  # noqa: E501
 
         header_params = {}
 
@@ -4363,6 +4395,7 @@ class DefaultApi(object):
         :param async bool
         :param str id: (required)
         :param ReleaseEntity entity: (required)
+        :param str editgroup:
         :return: EntityEdit
                  If the method is called asynchronously,
                  returns the request thread.
@@ -4385,12 +4418,13 @@ class DefaultApi(object):
         :param async bool
         :param str id: (required)
         :param ReleaseEntity entity: (required)
+        :param str editgroup:
         :return: EntityEdit
                  If the method is called asynchronously,
                  returns the request thread.
         """
 
-        all_params = ['id', 'entity']  # noqa: E501
+        all_params = ['id', 'entity', 'editgroup']  # noqa: E501
         all_params.append('async')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -4421,6 +4455,8 @@ class DefaultApi(object):
             path_params['id'] = params['id']  # noqa: E501
 
         query_params = []
+        if 'editgroup' in params:
+            query_params.append(('editgroup', params['editgroup']))  # noqa: E501
 
         header_params = {}
 
@@ -4468,6 +4504,7 @@ class DefaultApi(object):
         :param async bool
         :param str id: (required)
         :param WorkEntity entity: (required)
+        :param str editgroup:
         :return: EntityEdit
                  If the method is called asynchronously,
                  returns the request thread.
@@ -4490,12 +4527,13 @@ class DefaultApi(object):
         :param async bool
         :param str id: (required)
         :param WorkEntity entity: (required)
+        :param str editgroup:
         :return: EntityEdit
                  If the method is called asynchronously,
                  returns the request thread.
         """
 
-        all_params = ['id', 'entity']  # noqa: E501
+        all_params = ['id', 'entity', 'editgroup']  # noqa: E501
         all_params.append('async')
         all_params.append('_return_http_data_only')
         all_params.append('_preload_content')
@@ -4526,6 +4564,8 @@ class DefaultApi(object):
             path_params['id'] = params['id']  # noqa: E501
 
         query_params = []
+        if 'editgroup' in params:
+            query_params.append(('editgroup', params['editgroup']))  # noqa: E501
 
         header_params = {}
 
diff --git a/python/fatcat_client/models/container_entity.py b/python/fatcat_client/models/container_entity.py
index 4ca2653e..5fc48a7e 100644
--- a/python/fatcat_client/models/container_entity.py
+++ b/python/fatcat_client/models/container_entity.py
@@ -37,8 +37,8 @@ class ContainerEntity(object):
         'issnl': 'str',
         'publisher': 'str',
         'name': 'str',
+        'edit_extra': 'object',
         'extra': 'object',
-        'editgroup_id': 'str',
         'redirect': 'str',
         'revision': 'str',
         'ident': 'str',
@@ -52,15 +52,15 @@ class ContainerEntity(object):
         'issnl': 'issnl',
         'publisher': 'publisher',
         'name': 'name',
+        'edit_extra': 'edit_extra',
         'extra': 'extra',
-        'editgroup_id': 'editgroup_id',
         'redirect': 'redirect',
         'revision': 'revision',
         'ident': 'ident',
         'state': 'state'
     }
 
-    def __init__(self, coden=None, abbrev=None, wikidata_qid=None, issnl=None, publisher=None, name=None, extra=None, editgroup_id=None, redirect=None, revision=None, ident=None, state=None):  # noqa: E501
+    def __init__(self, coden=None, abbrev=None, wikidata_qid=None, issnl=None, publisher=None, name=None, edit_extra=None, extra=None, redirect=None, revision=None, ident=None, state=None):  # noqa: E501
         """ContainerEntity - a model defined in Swagger"""  # noqa: E501
 
         self._coden = None
@@ -69,8 +69,8 @@ class ContainerEntity(object):
         self._issnl = None
         self._publisher = None
         self._name = None
+        self._edit_extra = None
         self._extra = None
-        self._editgroup_id = None
         self._redirect = None
         self._revision = None
         self._ident = None
@@ -88,10 +88,10 @@ class ContainerEntity(object):
         if publisher is not None:
             self.publisher = publisher
         self.name = name
+        if edit_extra is not None:
+            self.edit_extra = edit_extra
         if extra is not None:
             self.extra = extra
-        if editgroup_id is not None:
-            self.editgroup_id = editgroup_id
         if redirect is not None:
             self.redirect = redirect
         if revision is not None:
@@ -236,54 +236,46 @@ class ContainerEntity(object):
         self._name = name
 
     @property
-    def extra(self):
-        """Gets the extra of this ContainerEntity.  # noqa: E501
+    def edit_extra(self):
+        """Gets the edit_extra of this ContainerEntity.  # noqa: E501
 
 
-        :return: The extra of this ContainerEntity.  # noqa: E501
+        :return: The edit_extra of this ContainerEntity.  # noqa: E501
         :rtype: object
         """
-        return self._extra
+        return self._edit_extra
 
-    @extra.setter
-    def extra(self, extra):
-        """Sets the extra of this ContainerEntity.
+    @edit_extra.setter
+    def edit_extra(self, edit_extra):
+        """Sets the edit_extra of this ContainerEntity.
 
 
-        :param extra: The extra of this ContainerEntity.  # noqa: E501
+        :param edit_extra: The edit_extra of this ContainerEntity.  # noqa: E501
         :type: object
         """
 
-        self._extra = extra
+        self._edit_extra = edit_extra
 
     @property
-    def editgroup_id(self):
-        """Gets the editgroup_id of this ContainerEntity.  # noqa: E501
+    def extra(self):
+        """Gets the extra of this ContainerEntity.  # noqa: E501
 
-        base32-encoded unique identifier  # noqa: E501
 
-        :return: The editgroup_id of this ContainerEntity.  # noqa: E501
-        :rtype: str
+        :return: The extra of this ContainerEntity.  # noqa: E501
+        :rtype: object
         """
-        return self._editgroup_id
+        return self._extra
 
-    @editgroup_id.setter
-    def editgroup_id(self, editgroup_id):
-        """Sets the editgroup_id of this ContainerEntity.
+    @extra.setter
+    def extra(self, extra):
+        """Sets the extra of this ContainerEntity.
 
-        base32-encoded unique identifier  # noqa: E501
 
-        :param editgroup_id: The editgroup_id of this ContainerEntity.  # noqa: E501
-        :type: str
+        :param extra: The extra of this ContainerEntity.  # noqa: E501
+        :type: object
         """
-        if editgroup_id is not None and len(editgroup_id) > 26:
-            raise ValueError("Invalid value for `editgroup_id`, length must be less than or equal to `26`")  # noqa: E501
-        if editgroup_id is not None and len(editgroup_id) < 26:
-            raise ValueError("Invalid value for `editgroup_id`, length must be greater than or equal to `26`")  # noqa: E501
-        if editgroup_id is not None and not re.search('[a-zA-Z2-7]{26}', editgroup_id):  # noqa: E501
-            raise ValueError("Invalid value for `editgroup_id`, must be a follow pattern or equal to `/[a-zA-Z2-7]{26}/`")  # noqa: E501
-
-        self._editgroup_id = editgroup_id
+
+        self._extra = extra
 
     @property
     def redirect(self):
diff --git a/python/fatcat_client/models/creator_entity.py b/python/fatcat_client/models/creator_entity.py
index de096281..34035f81 100644
--- a/python/fatcat_client/models/creator_entity.py
+++ b/python/fatcat_client/models/creator_entity.py
@@ -40,8 +40,8 @@ class CreatorEntity(object):
         'ident': 'str',
         'revision': 'str',
         'redirect': 'str',
-        'editgroup_id': 'str',
-        'extra': 'object'
+        'extra': 'object',
+        'edit_extra': 'object'
     }
 
     attribute_map = {
@@ -54,11 +54,11 @@ class CreatorEntity(object):
         'ident': 'ident',
         'revision': 'revision',
         'redirect': 'redirect',
-        'editgroup_id': 'editgroup_id',
-        'extra': 'extra'
+        'extra': 'extra',
+        'edit_extra': 'edit_extra'
     }
 
-    def __init__(self, wikidata_qid=None, orcid=None, surname=None, given_name=None, display_name=None, state=None, ident=None, revision=None, redirect=None, editgroup_id=None, extra=None):  # noqa: E501
+    def __init__(self, wikidata_qid=None, orcid=None, surname=None, given_name=None, display_name=None, state=None, ident=None, revision=None, redirect=None, extra=None, edit_extra=None):  # noqa: E501
         """CreatorEntity - a model defined in Swagger"""  # noqa: E501
 
         self._wikidata_qid = None
@@ -70,8 +70,8 @@ class CreatorEntity(object):
         self._ident = None
         self._revision = None
         self._redirect = None
-        self._editgroup_id = None
         self._extra = None
+        self._edit_extra = None
         self.discriminator = None
 
         if wikidata_qid is not None:
@@ -91,10 +91,10 @@ class CreatorEntity(object):
             self.revision = revision
         if redirect is not None:
             self.redirect = redirect
-        if editgroup_id is not None:
-            self.editgroup_id = editgroup_id
         if extra is not None:
             self.extra = extra
+        if edit_extra is not None:
+            self.edit_extra = edit_extra
 
     @property
     def wikidata_qid(self):
@@ -324,54 +324,46 @@ class CreatorEntity(object):
         self._redirect = redirect
 
     @property
-    def editgroup_id(self):
-        """Gets the editgroup_id of this CreatorEntity.  # noqa: E501
+    def extra(self):
+        """Gets the extra of this CreatorEntity.  # noqa: E501
 
-        base32-encoded unique identifier  # noqa: E501
 
-        :return: The editgroup_id of this CreatorEntity.  # noqa: E501
-        :rtype: str
+        :return: The extra of this CreatorEntity.  # noqa: E501
+        :rtype: object
         """
-        return self._editgroup_id
+        return self._extra
 
-    @editgroup_id.setter
-    def editgroup_id(self, editgroup_id):
-        """Sets the editgroup_id of this CreatorEntity.
+    @extra.setter
+    def extra(self, extra):
+        """Sets the extra of this CreatorEntity.
 
-        base32-encoded unique identifier  # noqa: E501
 
-        :param editgroup_id: The editgroup_id of this CreatorEntity.  # noqa: E501
-        :type: str
+        :param extra: The extra of this CreatorEntity.  # noqa: E501
+        :type: object
         """
-        if editgroup_id is not None and len(editgroup_id) > 26:
-            raise ValueError("Invalid value for `editgroup_id`, length must be less than or equal to `26`")  # noqa: E501
-        if editgroup_id is not None and len(editgroup_id) < 26:
-            raise ValueError("Invalid value for `editgroup_id`, length must be greater than or equal to `26`")  # noqa: E501
-        if editgroup_id is not None and not re.search('[a-zA-Z2-7]{26}', editgroup_id):  # noqa: E501
-            raise ValueError("Invalid value for `editgroup_id`, must be a follow pattern or equal to `/[a-zA-Z2-7]{26}/`")  # noqa: E501
 
-        self._editgroup_id = editgroup_id
+        self._extra = extra
 
     @property
-    def extra(self):
-        """Gets the extra of this CreatorEntity.  # noqa: E501
+    def edit_extra(self):
+        """Gets the edit_extra of this CreatorEntity.  # noqa: E501
 
 
-        :return: The extra of this CreatorEntity.  # noqa: E501
+        :return: The edit_extra of this CreatorEntity.  # noqa: E501
         :rtype: object
         """
-        return self._extra
+        return self._edit_extra
 
-    @extra.setter
-    def extra(self, extra):
-        """Sets the extra of this CreatorEntity.
+    @edit_extra.setter
+    def edit_extra(self, edit_extra):
+        """Sets the edit_extra of this CreatorEntity.
 
 
-        :param extra: The extra of this CreatorEntity.  # noqa: E501
+        :param edit_extra: The edit_extra of this CreatorEntity.  # noqa: E501
         :type: object
         """
 
-        self._extra = extra
+        self._edit_extra = edit_extra
 
     def to_dict(self):
         """Returns the model properties as a dict"""
diff --git a/python/fatcat_client/models/file_entity.py b/python/fatcat_client/models/file_entity.py
index 475b914b..40073f62 100644
--- a/python/fatcat_client/models/file_entity.py
+++ b/python/fatcat_client/models/file_entity.py
@@ -40,8 +40,8 @@ class FileEntity(object):
         'md5': 'str',
         'sha1': 'str',
         'size': 'int',
+        'edit_extra': 'object',
         'extra': 'object',
-        'editgroup_id': 'str',
         'redirect': 'str',
         'revision': 'str',
         'ident': 'str',
@@ -56,15 +56,15 @@ class FileEntity(object):
         'md5': 'md5',
         'sha1': 'sha1',
         'size': 'size',
+        'edit_extra': 'edit_extra',
         'extra': 'extra',
-        'editgroup_id': 'editgroup_id',
         'redirect': 'redirect',
         'revision': 'revision',
         'ident': 'ident',
         'state': 'state'
     }
 
-    def __init__(self, releases=None, mimetype=None, urls=None, sha256=None, md5=None, sha1=None, size=None, extra=None, editgroup_id=None, redirect=None, revision=None, ident=None, state=None):  # noqa: E501
+    def __init__(self, releases=None, mimetype=None, urls=None, sha256=None, md5=None, sha1=None, size=None, edit_extra=None, extra=None, redirect=None, revision=None, ident=None, state=None):  # noqa: E501
         """FileEntity - a model defined in Swagger"""  # noqa: E501
 
         self._releases = None
@@ -74,8 +74,8 @@ class FileEntity(object):
         self._md5 = None
         self._sha1 = None
         self._size = None
+        self._edit_extra = None
         self._extra = None
-        self._editgroup_id = None
         self._redirect = None
         self._revision = None
         self._ident = None
@@ -96,10 +96,10 @@ class FileEntity(object):
             self.sha1 = sha1
         if size is not None:
             self.size = size
+        if edit_extra is not None:
+            self.edit_extra = edit_extra
         if extra is not None:
             self.extra = extra
-        if editgroup_id is not None:
-            self.editgroup_id = editgroup_id
         if redirect is not None:
             self.redirect = redirect
         if revision is not None:
@@ -257,54 +257,46 @@ class FileEntity(object):
         self._size = size
 
     @property
-    def extra(self):
-        """Gets the extra of this FileEntity.  # noqa: E501
+    def edit_extra(self):
+        """Gets the edit_extra of this FileEntity.  # noqa: E501
 
 
-        :return: The extra of this FileEntity.  # noqa: E501
+        :return: The edit_extra of this FileEntity.  # noqa: E501
         :rtype: object
         """
-        return self._extra
+        return self._edit_extra
 
-    @extra.setter
-    def extra(self, extra):
-        """Sets the extra of this FileEntity.
+    @edit_extra.setter
+    def edit_extra(self, edit_extra):
+        """Sets the edit_extra of this FileEntity.
 
 
-        :param extra: The extra of this FileEntity.  # noqa: E501
+        :param edit_extra: The edit_extra of this FileEntity.  # noqa: E501
         :type: object
         """
 
-        self._extra = extra
+        self._edit_extra = edit_extra
 
     @property
-    def editgroup_id(self):
-        """Gets the editgroup_id of this FileEntity.  # noqa: E501
+    def extra(self):
+        """Gets the extra of this FileEntity.  # noqa: E501
 
-        base32-encoded unique identifier  # noqa: E501
 
-        :return: The editgroup_id of this FileEntity.  # noqa: E501
-        :rtype: str
+        :return: The extra of this FileEntity.  # noqa: E501
+        :rtype: object
         """
-        return self._editgroup_id
+        return self._extra
 
-    @editgroup_id.setter
-    def editgroup_id(self, editgroup_id):
-        """Sets the editgroup_id of this FileEntity.
+    @extra.setter
+    def extra(self, extra):
+        """Sets the extra of this FileEntity.
 
-        base32-encoded unique identifier  # noqa: E501
 
-        :param editgroup_id: The editgroup_id of this FileEntity.  # noqa: E501
-        :type: str
+        :param extra: The extra of this FileEntity.  # noqa: E501
+        :type: object
         """
-        if editgroup_id is not None and len(editgroup_id) > 26:
-            raise ValueError("Invalid value for `editgroup_id`, length must be less than or equal to `26`")  # noqa: E501
-        if editgroup_id is not None and len(editgroup_id) < 26:
-            raise ValueError("Invalid value for `editgroup_id`, length must be greater than or equal to `26`")  # noqa: E501
-        if editgroup_id is not None and not re.search('[a-zA-Z2-7]{26}', editgroup_id):  # noqa: E501
-            raise ValueError("Invalid value for `editgroup_id`, must be a follow pattern or equal to `/[a-zA-Z2-7]{26}/`")  # noqa: E501
-
-        self._editgroup_id = editgroup_id
+
+        self._extra = extra
 
     @property
     def redirect(self):
diff --git a/python/fatcat_client/models/release_entity.py b/python/fatcat_client/models/release_entity.py
index 79e2c64f..a35ced5e 100644
--- a/python/fatcat_client/models/release_entity.py
+++ b/python/fatcat_client/models/release_entity.py
@@ -63,8 +63,8 @@ class ReleaseEntity(object):
         'ident': 'str',
         'revision': 'str',
         'redirect': 'str',
-        'editgroup_id': 'str',
-        'extra': 'object'
+        'extra': 'object',
+        'edit_extra': 'object'
     }
 
     attribute_map = {
@@ -94,11 +94,11 @@ class ReleaseEntity(object):
         'ident': 'ident',
         'revision': 'revision',
         'redirect': 'redirect',
-        'editgroup_id': 'editgroup_id',
-        'extra': 'extra'
+        'extra': 'extra',
+        'edit_extra': 'edit_extra'
     }
 
-    def __init__(self, abstracts=None, refs=None, contribs=None, language=None, publisher=None, pages=None, issue=None, volume=None, wikidata_qid=None, pmcid=None, pmid=None, core_id=None, isbn13=None, doi=None, release_date=None, release_status=None, release_type=None, container_id=None, files=None, container=None, work_id=None, title=None, state=None, ident=None, revision=None, redirect=None, editgroup_id=None, extra=None):  # noqa: E501
+    def __init__(self, abstracts=None, refs=None, contribs=None, language=None, publisher=None, pages=None, issue=None, volume=None, wikidata_qid=None, pmcid=None, pmid=None, core_id=None, isbn13=None, doi=None, release_date=None, release_status=None, release_type=None, container_id=None, files=None, container=None, work_id=None, title=None, state=None, ident=None, revision=None, redirect=None, extra=None, edit_extra=None):  # noqa: E501
         """ReleaseEntity - a model defined in Swagger"""  # noqa: E501
 
         self._abstracts = None
@@ -127,8 +127,8 @@ class ReleaseEntity(object):
         self._ident = None
         self._revision = None
         self._redirect = None
-        self._editgroup_id = None
         self._extra = None
+        self._edit_extra = None
         self.discriminator = None
 
         if abstracts is not None:
@@ -182,10 +182,10 @@ class ReleaseEntity(object):
             self.revision = revision
         if redirect is not None:
             self.redirect = redirect
-        if editgroup_id is not None:
-            self.editgroup_id = editgroup_id
         if extra is not None:
             self.extra = extra
+        if edit_extra is not None:
+            self.edit_extra = edit_extra
 
     @property
     def abstracts(self):
@@ -772,54 +772,46 @@ class ReleaseEntity(object):
         self._redirect = redirect
 
     @property
-    def editgroup_id(self):
-        """Gets the editgroup_id of this ReleaseEntity.  # noqa: E501
+    def extra(self):
+        """Gets the extra of this ReleaseEntity.  # noqa: E501
 
-        base32-encoded unique identifier  # noqa: E501
 
-        :return: The editgroup_id of this ReleaseEntity.  # noqa: E501
-        :rtype: str
+        :return: The extra of this ReleaseEntity.  # noqa: E501
+        :rtype: object
         """
-        return self._editgroup_id
+        return self._extra
 
-    @editgroup_id.setter
-    def editgroup_id(self, editgroup_id):
-        """Sets the editgroup_id of this ReleaseEntity.
+    @extra.setter
+    def extra(self, extra):
+        """Sets the extra of this ReleaseEntity.
 
-        base32-encoded unique identifier  # noqa: E501
 
-        :param editgroup_id: The editgroup_id of this ReleaseEntity.  # noqa: E501
-        :type: str
+        :param extra: The extra of this ReleaseEntity.  # noqa: E501
+        :type: object
         """
-        if editgroup_id is not None and len(editgroup_id) > 26:
-            raise ValueError("Invalid value for `editgroup_id`, length must be less than or equal to `26`")  # noqa: E501
-        if editgroup_id is not None and len(editgroup_id) < 26:
-            raise ValueError("Invalid value for `editgroup_id`, length must be greater than or equal to `26`")  # noqa: E501
-        if editgroup_id is not None and not re.search('[a-zA-Z2-7]{26}', editgroup_id):  # noqa: E501
-            raise ValueError("Invalid value for `editgroup_id`, must be a follow pattern or equal to `/[a-zA-Z2-7]{26}/`")  # noqa: E501
 
-        self._editgroup_id = editgroup_id
+        self._extra = extra
 
     @property
-    def extra(self):
-        """Gets the extra of this ReleaseEntity.  # noqa: E501
+    def edit_extra(self):
+        """Gets the edit_extra of this ReleaseEntity.  # noqa: E501
 
 
-        :return: The extra of this ReleaseEntity.  # noqa: E501
+        :return: The edit_extra of this ReleaseEntity.  # noqa: E501
         :rtype: object
         """
-        return self._extra
+        return self._edit_extra
 
-    @extra.setter
-    def extra(self, extra):
-        """Sets the extra of this ReleaseEntity.
+    @edit_extra.setter
+    def edit_extra(self, edit_extra):
+        """Sets the edit_extra of this ReleaseEntity.
 
 
-        :param extra: The extra of this ReleaseEntity.  # noqa: E501
+        :param edit_extra: The edit_extra of this ReleaseEntity.  # noqa: E501
         :type: object
         """
 
-        self._extra = extra
+        self._edit_extra = edit_extra
 
     def to_dict(self):
         """Returns the model properties as a dict"""
diff --git a/python/fatcat_client/models/work_entity.py b/python/fatcat_client/models/work_entity.py
index f49ccadf..13b40de5 100644
--- a/python/fatcat_client/models/work_entity.py
+++ b/python/fatcat_client/models/work_entity.py
@@ -31,8 +31,8 @@ class WorkEntity(object):
                             and the value is json key in definition.
     """
     swagger_types = {
+        'edit_extra': 'object',
         'extra': 'object',
-        'editgroup_id': 'str',
         'redirect': 'str',
         'revision': 'str',
         'ident': 'str',
@@ -40,29 +40,29 @@ class WorkEntity(object):
     }
 
     attribute_map = {
+        'edit_extra': 'edit_extra',
         'extra': 'extra',
-        'editgroup_id': 'editgroup_id',
         'redirect': 'redirect',
         'revision': 'revision',
         'ident': 'ident',
         'state': 'state'
     }
 
-    def __init__(self, extra=None, editgroup_id=None, redirect=None, revision=None, ident=None, state=None):  # noqa: E501
+    def __init__(self, edit_extra=None, extra=None, redirect=None, revision=None, ident=None, state=None):  # noqa: E501
         """WorkEntity - a model defined in Swagger"""  # noqa: E501
 
+        self._edit_extra = None
         self._extra = None
-        self._editgroup_id = None
         self._redirect = None
         self._revision = None
         self._ident = None
         self._state = None
         self.discriminator = None
 
+        if edit_extra is not None:
+            self.edit_extra = edit_extra
         if extra is not None:
             self.extra = extra
-        if editgroup_id is not None:
-            self.editgroup_id = editgroup_id
         if redirect is not None:
             self.redirect = redirect
         if revision is not None:
@@ -73,54 +73,46 @@ class WorkEntity(object):
             self.state = state
 
     @property
-    def extra(self):
-        """Gets the extra of this WorkEntity.  # noqa: E501
+    def edit_extra(self):
+        """Gets the edit_extra of this WorkEntity.  # noqa: E501
 
 
-        :return: The extra of this WorkEntity.  # noqa: E501
+        :return: The edit_extra of this WorkEntity.  # noqa: E501
         :rtype: object
         """
-        return self._extra
+        return self._edit_extra
 
-    @extra.setter
-    def extra(self, extra):
-        """Sets the extra of this WorkEntity.
+    @edit_extra.setter
+    def edit_extra(self, edit_extra):
+        """Sets the edit_extra of this WorkEntity.
 
 
-        :param extra: The extra of this WorkEntity.  # noqa: E501
+        :param edit_extra: The edit_extra of this WorkEntity.  # noqa: E501
         :type: object
         """
 
-        self._extra = extra
+        self._edit_extra = edit_extra
 
     @property
-    def editgroup_id(self):
-        """Gets the editgroup_id of this WorkEntity.  # noqa: E501
+    def extra(self):
+        """Gets the extra of this WorkEntity.  # noqa: E501
 
-        base32-encoded unique identifier  # noqa: E501
 
-        :return: The editgroup_id of this WorkEntity.  # noqa: E501
-        :rtype: str
+        :return: The extra of this WorkEntity.  # noqa: E501
+        :rtype: object
         """
-        return self._editgroup_id
+        return self._extra
 
-    @editgroup_id.setter
-    def editgroup_id(self, editgroup_id):
-        """Sets the editgroup_id of this WorkEntity.
+    @extra.setter
+    def extra(self, extra):
+        """Sets the extra of this WorkEntity.
 
-        base32-encoded unique identifier  # noqa: E501
 
-        :param editgroup_id: The editgroup_id of this WorkEntity.  # noqa: E501
-        :type: str
+        :param extra: The extra of this WorkEntity.  # noqa: E501
+        :type: object
         """
-        if editgroup_id is not None and len(editgroup_id) > 26:
-            raise ValueError("Invalid value for `editgroup_id`, length must be less than or equal to `26`")  # noqa: E501
-        if editgroup_id is not None and len(editgroup_id) < 26:
-            raise ValueError("Invalid value for `editgroup_id`, length must be greater than or equal to `26`")  # noqa: E501
-        if editgroup_id is not None and not re.search('[a-zA-Z2-7]{26}', editgroup_id):  # noqa: E501
-            raise ValueError("Invalid value for `editgroup_id`, must be a follow pattern or equal to `/[a-zA-Z2-7]{26}/`")  # noqa: E501
-
-        self._editgroup_id = editgroup_id
+
+        self._extra = extra
 
     @property
     def redirect(self):
-- 
cgit v1.2.3