diff --git a/build-requirements.txt b/build-requirements.txt
index 2ce74a76afa3bf2ec8cbe48fac27d99caa467c0a..0d90b1c10ad83d29f3d338eea8f9ed808ac07a0b 100644
--- a/build-requirements.txt
+++ b/build-requirements.txt
@@ -10,7 +10,7 @@ filelock==3.0.12
 flake8==3.9.2
 grpcio==1.38.0
 grpcio-tools==1.38.0
-idna==3.1
+idna==2.10
 importlib-metadata==4.0.1
 lazy==1.4
 mccabe==0.6.1
diff --git a/examples/collections_auth_client.py b/examples/collections_auth_client.py
index 16cdd2f4a0925be67e83e8457a3f244781368aa1..0c9022b9b7f27842e5849ddaf9dacfb895a1e518 100644
--- a/examples/collections_auth_client.py
+++ b/examples/collections_auth_client.py
@@ -4,8 +4,7 @@ import grpc
 from oauthlib.oauth2 import BackendApplicationClient
 
 from perxis.auth import OAuth2Plugin
-from perxis.collections_perxis.collections_pb2 import ListRequest
-from perxis.collections_perxis.collections_pb2_grpc import CollectionsStub
+from perxis.collections import collections_pb2, collections_pb2_grpc
 
 
 def main():
@@ -27,8 +26,8 @@ def main():
             channel_credentials, call_credentials
     )
     with grpc.secure_channel('envoy.perxis.pt.perx.ru:443', composite_credentials) as channel:
-        stub = CollectionsStub(channel)
-        collections = stub.List(ListRequest(space_id="c1mrvup3e6litup7tf0g", env_id="master"))
+        stub = collections_pb2_grpc.CollectionsStub(channel)
+        collections = stub.List(collections_pb2.ListRequest(space_id="c2qcp9cuaccmpj8lmom0", env_id="master"))
         print(collections)
 
 
diff --git a/examples/collections_client.py b/examples/collections_client.py
index b2383d9b8606ef8de26273320a7262c2da76e3fa..e38586d7b1f3b4a838c77d9ef5f2742d44176bcd 100644
--- a/examples/collections_client.py
+++ b/examples/collections_client.py
@@ -3,17 +3,17 @@ import logging
 
 import grpc
 
-from perxis.collections_perxis import collections_pb2, collections_pb2_grpc
+from perxis.collections import collections_pb2, collections_pb2_grpc
 
 
-ACCESS_TOKEN = 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5UWXhSVE5FTnprek5qSkVPRFkyTmpORk9VVXhRVEUzUmpWRVFqY3pRVE5CTjBJeE1ETTNOUSJ9.eyJodHRwczovL2hvb3AucGVyeC5ydS9pZGVudGl0eSI6eyJncm91cHMiOltdfSwibmlja25hbWUiOiJnb3NoaWstZSIsIm5hbWUiOiJHZW9yZ2l5IEV0ZXJldnNraXkiLCJwaWN0dXJlIjoiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzc2NjAzMzE_dj00IiwidXBkYXRlZF9hdCI6IjIwMjEtMDQtMjBUMDc6MDM6NTAuMzM5WiIsImlzcyI6Imh0dHBzOi8vYWR3ei5hdXRoMC5jb20vIiwic3ViIjoiZ2l0aHVifDc2NjAzMzEiLCJhdWQiOiJ6d3JaaGZrd0owNlQ3MlE4ZXhOZHRFS0NxTzBja0ZpWCIsImlhdCI6MTYxODkwMjIzMCwiZXhwIjoxNjE4OTM4MjMwLCJhdXRoX3RpbWUiOjE2MTg5MDIyMzAsImF0X2hhc2giOiJNZU1FdkxBRm14N1JXZ3pDaEwxdlBBIiwibm9uY2UiOiJrTEExZDZhM0V4cjBDMlU5UVBoNG5DUkhiQ3ZvcU1TdiJ9.BqkhCwRi7_LZ0FANXU9fe_9MP0lIq7TewBo3OiSe92FXSXmyKMIEeUPnPtp0oUzf6taFgVCyQJiKrbJfpnlZYK4rVetPEWKvGpMiyv4IsQ_6Y7ZTBKdOFZrej0sKB9EFUjkBX01g4ihDyLUaz3xJYZX4qLApEPS4ubAFTuqsa_M1-rI9_8cXa3leMnQHqEOkL2Cb-N2M2uWrXYYzch8PpVyTMiBK39CA8-EJ1z8MGwjcKsqR8wryG4OWCAn84i8kt7wFAad9Tjb6YsCp1v8HlZR4cUj7u2-ztEzHDs5BNbG2dyloizBqh1XScCA261asybQgYDJDEBmqztk9mKgsVg'
-SPACE_ID = "c1mrvup3e6litup7tf0g"
+ACCESS_TOKEN = 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5UWXhSVE5FTnprek5qSkVPRFkyTmpORk9VVXhRVEUzUmpWRVFqY3pRVE5CTjBJeE1ETTNOUSJ9.eyJodHRwczovL2hvb3AucGVyeC5ydS9pZGVudGl0eSI6eyJncm91cHMiOltdfSwibmlja25hbWUiOiJnb3NoaWstZSIsIm5hbWUiOiJHZW9yZ2l5IEV0ZXJldnNraXkiLCJwaWN0dXJlIjoiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzc2NjAzMzE_dj00IiwidXBkYXRlZF9hdCI6IjIwMjEtMDYtMTFUMTI6MDU6MDkuMjQ3WiIsImlzcyI6Imh0dHBzOi8vYWR3ei5hdXRoMC5jb20vIiwic3ViIjoiZ2l0aHVifDc2NjAzMzEiLCJhdWQiOiJ6d3JaaGZrd0owNlQ3MlE4ZXhOZHRFS0NxTzBja0ZpWCIsImlhdCI6MTYyMzQxMzEwOSwiZXhwIjoxNjIzNDQ5MTA5LCJhdXRoX3RpbWUiOjE2MjM0MTMxMDksImF0X2hhc2giOiIwVTNrRmJTTXpnWllWSVlKTHpMUWNBIiwibm9uY2UiOiJxTGxKZmVMSUtBOUtoMVRoWXE3UkxLSkxCMjF-X29TZCJ9.Z3BYpwyAUQYt5gyGyQSD14Lj5zwegYqfyaA-tsgVrHYdyYzb8VCG8Tb_CbZ6zjpRGpcOSuDCgPo6b8METTUoHTBgWyPgaYXLWeoecE4FjRrFgonL0Yltg0BAMG8hACxTkLsg3q3s1pA0FdUzNesDPRWgoyTQehh7ODwFCV9FLpV3aV1RYwqj3I_qMsfATCoDsn2_msozB2asge9PsH8cblQj5ZdT2JEFTU0ZLI-MFNu6aubpHd3WIgMXmfgmDASrsARx-W59enwZSls01Y3WRLfoQVZ8YqjdnOIXeolfkpr32DSuzcgOP_oxylXSa_grMlCbRBOZd1Z84teYteNU0g'
+SPACE_ID = 'c2qcp9cuaccmpj8lmom0'
 ENV_ID = "master"
 
 
 def create(stub, space_id, env_id, coll_id, name):
     return stub.Create.with_call(
-        collections_pb2.CreateRequest(coll=collections_pb2.Collection(space_id=space_id, env_id=env_id, id=coll_id, name=name)),
+        collections_pb2.CreateRequest(collection=collections_pb2.Collection(space_id=space_id, env_id=env_id, id=coll_id, name=name)),
         metadata=(
             ('authorization', f'{ACCESS_TOKEN}'),
         )
@@ -41,7 +41,7 @@ def list(stub, space_id, env_id):
 def update(stub, space_id, env_id, coll_id, name):
     return stub.Update.with_call(
         collections_pb2.UpdateRequest(
-            coll=collections_pb2.Collection(space_id=space_id, env_id=env_id, id=coll_id, name=name)),
+            collection=collections_pb2.Collection(space_id=space_id, env_id=env_id, id=coll_id, name=name)),
         metadata=(
             ('authorization', f'{ACCESS_TOKEN}'),
         )
diff --git a/examples/environments.py b/examples/environments.py
index d4cc6c5355b0970c7c879d51aeff00737cf8591c..2879b0074c1d1e9a5d434ac96134b4bc2f735e21 100644
--- a/examples/environments.py
+++ b/examples/environments.py
@@ -5,8 +5,8 @@ import grpc
 
 from perxis.environments import environments_pb2, environments_pb2_grpc
 
-ACCESS_TOKEN = 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5UWXhSVE5FTnprek5qSkVPRFkyTmpORk9VVXhRVEUzUmpWRVFqY3pRVE5CTjBJeE1ETTNOUSJ9.eyJodHRwczovL2hvb3AucGVyeC5ydS9pZGVudGl0eSI6eyJncm91cHMiOltdfSwibmlja25hbWUiOiJnb3NoaWstZSIsIm5hbWUiOiJHZW9yZ2l5IEV0ZXJldnNraXkiLCJwaWN0dXJlIjoiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzc2NjAzMzE_dj00IiwidXBkYXRlZF9hdCI6IjIwMjEtMDQtMTlUMTg6MjU6NDYuOTYxWiIsImlzcyI6Imh0dHBzOi8vYWR3ei5hdXRoMC5jb20vIiwic3ViIjoiZ2l0aHVifDc2NjAzMzEiLCJhdWQiOiJ6d3JaaGZrd0owNlQ3MlE4ZXhOZHRFS0NxTzBja0ZpWCIsImlhdCI6MTYxODg1Njc0NywiZXhwIjoxNjE4ODkyNzQ3LCJhdXRoX3RpbWUiOjE2MTg4NTY3NDYsImF0X2hhc2giOiJoWnF4QkJUSzFrNmxobEdONXRjZXZnIiwibm9uY2UiOiJzQWFFUkJNMGI3dlprVGtZeU9xelRBT3N2S0pad0lraiJ9.Styt3ppV18Pfn_ZW3s8GPzg4nekadUjClpQXvbWZNvQb--fb8jbLsR2_pQnpjsHwO65XpEiWDinCk_cP8Qw5pqtRwhLNqueYoLPsUVKn31VyF16CSHEmRI0vaBiVPiHJmPEOHCGfKdzYlEzy73mFiSvr-oKGoXF4nkKE6a1ahimw07x8pHI5uM6JPYMMeli-1SQ7kgclFbMUhUV5hCtItKaxFfxSLDi0OjQXqGXlgMBi2k7VOfEbhMimCRnkBCsAR9kCrL1vDR8Eg3IMcVh1b-XbTX1YFxYk8B9no7qFq2Ut8PervBNSutD4rNpvtSDxGJb6fuSrxKqkAJDmB6MA9Q'
-SPACE_ID = 'c1mrvup3e6litup7tf0g'
+ACCESS_TOKEN = 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5UWXhSVE5FTnprek5qSkVPRFkyTmpORk9VVXhRVEUzUmpWRVFqY3pRVE5CTjBJeE1ETTNOUSJ9.eyJodHRwczovL2hvb3AucGVyeC5ydS9pZGVudGl0eSI6eyJncm91cHMiOltdfSwibmlja25hbWUiOiJnb3NoaWstZSIsIm5hbWUiOiJHZW9yZ2l5IEV0ZXJldnNraXkiLCJwaWN0dXJlIjoiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzc2NjAzMzE_dj00IiwidXBkYXRlZF9hdCI6IjIwMjEtMDYtMTFUMTI6MDU6MDkuMjQ3WiIsImlzcyI6Imh0dHBzOi8vYWR3ei5hdXRoMC5jb20vIiwic3ViIjoiZ2l0aHVifDc2NjAzMzEiLCJhdWQiOiJ6d3JaaGZrd0owNlQ3MlE4ZXhOZHRFS0NxTzBja0ZpWCIsImlhdCI6MTYyMzQxMzEwOSwiZXhwIjoxNjIzNDQ5MTA5LCJhdXRoX3RpbWUiOjE2MjM0MTMxMDksImF0X2hhc2giOiIwVTNrRmJTTXpnWllWSVlKTHpMUWNBIiwibm9uY2UiOiJxTGxKZmVMSUtBOUtoMVRoWXE3UkxLSkxCMjF-X29TZCJ9.Z3BYpwyAUQYt5gyGyQSD14Lj5zwegYqfyaA-tsgVrHYdyYzb8VCG8Tb_CbZ6zjpRGpcOSuDCgPo6b8METTUoHTBgWyPgaYXLWeoecE4FjRrFgonL0Yltg0BAMG8hACxTkLsg3q3s1pA0FdUzNesDPRWgoyTQehh7ODwFCV9FLpV3aV1RYwqj3I_qMsfATCoDsn2_msozB2asge9PsH8cblQj5ZdT2JEFTU0ZLI-MFNu6aubpHd3WIgMXmfgmDASrsARx-W59enwZSls01Y3WRLfoQVZ8YqjdnOIXeolfkpr32DSuzcgOP_oxylXSa_grMlCbRBOZd1Z84teYteNU0g'
+SPACE_ID = 'c2qcp9cuaccmpj8lmom0'
 
 
 def create(stub, space_id, description):
diff --git a/examples/items.py b/examples/items.py
index 1d2d58be33277d9aa792684a35119343eea333fe..1a04d4e1e857017e840f772408b130e8d5183481 100644
--- a/examples/items.py
+++ b/examples/items.py
@@ -7,8 +7,8 @@ from perxis.items import items_pb2, items_pb2_grpc
 from google.protobuf.struct_pb2 import Struct
 
 
-ACCESS_TOKEN = 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5UWXhSVE5FTnprek5qSkVPRFkyTmpORk9VVXhRVEUzUmpWRVFqY3pRVE5CTjBJeE1ETTNOUSJ9.eyJodHRwczovL2hvb3AucGVyeC5ydS9pZGVudGl0eSI6eyJncm91cHMiOltdfSwibmlja25hbWUiOiJnb3NoaWstZSIsIm5hbWUiOiJHZW9yZ2l5IEV0ZXJldnNraXkiLCJwaWN0dXJlIjoiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzc2NjAzMzE_dj00IiwidXBkYXRlZF9hdCI6IjIwMjEtMDQtMjBUMDc6MDM6NTAuMzM5WiIsImlzcyI6Imh0dHBzOi8vYWR3ei5hdXRoMC5jb20vIiwic3ViIjoiZ2l0aHVifDc2NjAzMzEiLCJhdWQiOiJ6d3JaaGZrd0owNlQ3MlE4ZXhOZHRFS0NxTzBja0ZpWCIsImlhdCI6MTYxODkwMjIzMCwiZXhwIjoxNjE4OTM4MjMwLCJhdXRoX3RpbWUiOjE2MTg5MDIyMzAsImF0X2hhc2giOiJNZU1FdkxBRm14N1JXZ3pDaEwxdlBBIiwibm9uY2UiOiJrTEExZDZhM0V4cjBDMlU5UVBoNG5DUkhiQ3ZvcU1TdiJ9.BqkhCwRi7_LZ0FANXU9fe_9MP0lIq7TewBo3OiSe92FXSXmyKMIEeUPnPtp0oUzf6taFgVCyQJiKrbJfpnlZYK4rVetPEWKvGpMiyv4IsQ_6Y7ZTBKdOFZrej0sKB9EFUjkBX01g4ihDyLUaz3xJYZX4qLApEPS4ubAFTuqsa_M1-rI9_8cXa3leMnQHqEOkL2Cb-N2M2uWrXYYzch8PpVyTMiBK39CA8-EJ1z8MGwjcKsqR8wryG4OWCAn84i8kt7wFAad9Tjb6YsCp1v8HlZR4cUj7u2-ztEzHDs5BNbG2dyloizBqh1XScCA261asybQgYDJDEBmqztk9mKgsVg'
-SPACE_ID = 'c1mrvup3e6litup7tf0g'
+ACCESS_TOKEN = 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5UWXhSVE5FTnprek5qSkVPRFkyTmpORk9VVXhRVEUzUmpWRVFqY3pRVE5CTjBJeE1ETTNOUSJ9.eyJodHRwczovL2hvb3AucGVyeC5ydS9pZGVudGl0eSI6eyJncm91cHMiOltdfSwibmlja25hbWUiOiJnb3NoaWstZSIsIm5hbWUiOiJHZW9yZ2l5IEV0ZXJldnNraXkiLCJwaWN0dXJlIjoiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzc2NjAzMzE_dj00IiwidXBkYXRlZF9hdCI6IjIwMjEtMDYtMTFUMTI6MDU6MDkuMjQ3WiIsImlzcyI6Imh0dHBzOi8vYWR3ei5hdXRoMC5jb20vIiwic3ViIjoiZ2l0aHVifDc2NjAzMzEiLCJhdWQiOiJ6d3JaaGZrd0owNlQ3MlE4ZXhOZHRFS0NxTzBja0ZpWCIsImlhdCI6MTYyMzQxMzEwOSwiZXhwIjoxNjIzNDQ5MTA5LCJhdXRoX3RpbWUiOjE2MjM0MTMxMDksImF0X2hhc2giOiIwVTNrRmJTTXpnWllWSVlKTHpMUWNBIiwibm9uY2UiOiJxTGxKZmVMSUtBOUtoMVRoWXE3UkxLSkxCMjF-X29TZCJ9.Z3BYpwyAUQYt5gyGyQSD14Lj5zwegYqfyaA-tsgVrHYdyYzb8VCG8Tb_CbZ6zjpRGpcOSuDCgPo6b8METTUoHTBgWyPgaYXLWeoecE4FjRrFgonL0Yltg0BAMG8hACxTkLsg3q3s1pA0FdUzNesDPRWgoyTQehh7ODwFCV9FLpV3aV1RYwqj3I_qMsfATCoDsn2_msozB2asge9PsH8cblQj5ZdT2JEFTU0ZLI-MFNu6aubpHd3WIgMXmfgmDASrsARx-W59enwZSls01Y3WRLfoQVZ8YqjdnOIXeolfkpr32DSuzcgOP_oxylXSa_grMlCbRBOZd1Z84teYteNU0g'
+SPACE_ID = 'c2qcp9cuaccmpj8lmom0'
 ENV_ID = 'master'
 COLL_ID = 'test_eterevskiy'
 
diff --git a/examples/spaces.py b/examples/spaces.py
index 13d474b1590d508f65c3c2cd9e03e9888850af41..667de051c9963f236fcc641b2d6579d8679a46f5 100644
--- a/examples/spaces.py
+++ b/examples/spaces.py
@@ -5,8 +5,8 @@ import grpc
 
 from perxis.spaces import spaces_pb2, spaces_pb2_grpc
 
-ACCESS_TOKEN = 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5UWXhSVE5FTnprek5qSkVPRFkyTmpORk9VVXhRVEUzUmpWRVFqY3pRVE5CTjBJeE1ETTNOUSJ9.eyJodHRwczovL2hvb3AucGVyeC5ydS9pZGVudGl0eSI6eyJncm91cHMiOltdfSwibmlja25hbWUiOiJnb3NoaWstZSIsIm5hbWUiOiJHZW9yZ2l5IEV0ZXJldnNraXkiLCJwaWN0dXJlIjoiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzc2NjAzMzE_dj00IiwidXBkYXRlZF9hdCI6IjIwMjEtMDQtMTlUMTg6MjU6NDYuOTYxWiIsImlzcyI6Imh0dHBzOi8vYWR3ei5hdXRoMC5jb20vIiwic3ViIjoiZ2l0aHVifDc2NjAzMzEiLCJhdWQiOiJ6d3JaaGZrd0owNlQ3MlE4ZXhOZHRFS0NxTzBja0ZpWCIsImlhdCI6MTYxODg1Njc0NywiZXhwIjoxNjE4ODkyNzQ3LCJhdXRoX3RpbWUiOjE2MTg4NTY3NDYsImF0X2hhc2giOiJoWnF4QkJUSzFrNmxobEdONXRjZXZnIiwibm9uY2UiOiJzQWFFUkJNMGI3dlprVGtZeU9xelRBT3N2S0pad0lraiJ9.Styt3ppV18Pfn_ZW3s8GPzg4nekadUjClpQXvbWZNvQb--fb8jbLsR2_pQnpjsHwO65XpEiWDinCk_cP8Qw5pqtRwhLNqueYoLPsUVKn31VyF16CSHEmRI0vaBiVPiHJmPEOHCGfKdzYlEzy73mFiSvr-oKGoXF4nkKE6a1ahimw07x8pHI5uM6JPYMMeli-1SQ7kgclFbMUhUV5hCtItKaxFfxSLDi0OjQXqGXlgMBi2k7VOfEbhMimCRnkBCsAR9kCrL1vDR8Eg3IMcVh1b-XbTX1YFxYk8B9no7qFq2Ut8PervBNSutD4rNpvtSDxGJb6fuSrxKqkAJDmB6MA9Q'
-SPACE_ID = 'c1mrvup3e6litup7tf0g'
+ACCESS_TOKEN = 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5UWXhSVE5FTnprek5qSkVPRFkyTmpORk9VVXhRVEUzUmpWRVFqY3pRVE5CTjBJeE1ETTNOUSJ9.eyJodHRwczovL2hvb3AucGVyeC5ydS9pZGVudGl0eSI6eyJncm91cHMiOltdfSwibmlja25hbWUiOiJnb3NoaWstZSIsIm5hbWUiOiJHZW9yZ2l5IEV0ZXJldnNraXkiLCJwaWN0dXJlIjoiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzc2NjAzMzE_dj00IiwidXBkYXRlZF9hdCI6IjIwMjEtMDYtMTFUMTI6MDU6MDkuMjQ3WiIsImlzcyI6Imh0dHBzOi8vYWR3ei5hdXRoMC5jb20vIiwic3ViIjoiZ2l0aHVifDc2NjAzMzEiLCJhdWQiOiJ6d3JaaGZrd0owNlQ3MlE4ZXhOZHRFS0NxTzBja0ZpWCIsImlhdCI6MTYyMzQxMzEwOSwiZXhwIjoxNjIzNDQ5MTA5LCJhdXRoX3RpbWUiOjE2MjM0MTMxMDksImF0X2hhc2giOiIwVTNrRmJTTXpnWllWSVlKTHpMUWNBIiwibm9uY2UiOiJxTGxKZmVMSUtBOUtoMVRoWXE3UkxLSkxCMjF-X29TZCJ9.Z3BYpwyAUQYt5gyGyQSD14Lj5zwegYqfyaA-tsgVrHYdyYzb8VCG8Tb_CbZ6zjpRGpcOSuDCgPo6b8METTUoHTBgWyPgaYXLWeoecE4FjRrFgonL0Yltg0BAMG8hACxTkLsg3q3s1pA0FdUzNesDPRWgoyTQehh7ODwFCV9FLpV3aV1RYwqj3I_qMsfATCoDsn2_msozB2asge9PsH8cblQj5ZdT2JEFTU0ZLI-MFNu6aubpHd3WIgMXmfgmDASrsARx-W59enwZSls01Y3WRLfoQVZ8YqjdnOIXeolfkpr32DSuzcgOP_oxylXSa_grMlCbRBOZd1Z84teYteNU0g'
+SPACE_ID = 'c2qcp9cuaccmpj8lmom0'
 
 
 def get(stub, space_id):
diff --git a/perxis/accountmanagement/__init__.py b/perxis/accountmanagement/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/perxis/accountmanagement/accountmanagement_pb2.py b/perxis/accountmanagement/accountmanagement_pb2.py
deleted file mode 100644
index c2554031077c3a936fef0e86ffd1865a4705b379..0000000000000000000000000000000000000000
--- a/perxis/accountmanagement/accountmanagement_pb2.py
+++ /dev/null
@@ -1,2981 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: perxis/accountmanagement/accountmanagement.proto
-"""Generated protocol buffer code."""
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
-from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
-from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2
-from perxis.common import common_pb2 as perxis_dot_common_dot_common__pb2
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='perxis/accountmanagement/accountmanagement.proto',
-  package='accountmanagement',
-  syntax='proto3',
-  serialized_options=b'ZDgithub.com/perxteam/perxis/proto/accountmanagement;accountmanagement',
-  create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n0perxis/accountmanagement/accountmanagement.proto\x12\x11\x61\x63\x63ountmanagement\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1aperxis/common/common.proto\"P\n\x19\x43reateOrganizationRequest\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x10\n\x08logo_uri\x18\x04 \x01(\t\"H\n\x1a\x43reateOrganizationResponse\x12*\n\x0corganization\x18\x01 \x01(\x0b\x32\x14.common.Organization\"i\n\x19UpdateOrganizationRequest\x12\x17\n\x0forganization_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x10\n\x08logo_uri\x18\x04 \x01(\t\"H\n\x1aUpdateOrganizationResponse\x12*\n\x0corganization\x18\x01 \x01(\x0b\x32\x14.common.Organization\"4\n\x19\x44\x65leteOrganizationRequest\x12\x17\n\x0forganization_id\x18\x01 \x01(\t\"\x1c\n\x1a\x44\x65leteOrganizationResponse\"[\n\x18\x46indOrganizationsRequest\x12\x10\n\x08page_num\x18\x01 \x01(\x05\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x0b\n\x03ids\x18\x03 \x03(\t\x12\r\n\x05names\x18\x04 \x03(\t\"W\n\x19\x46indOrganizationsResponse\x12+\n\rorganizations\x18\x01 \x03(\x0b\x32\x14.common.Organization\x12\r\n\x05total\x18\x02 \x01(\x05\"k\n#UpdateOrganizationMembershipRequest\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x17\n\x0forganization_id\x18\x02 \x01(\t\x12\x1a\n\x04role\x18\x03 \x01(\x0e\x32\x0c.common.Role\"O\n#DeleteOrganizationMembershipRequest\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x17\n\x0forganization_id\x18\x02 \x01(\t\"\x92\x01\n\"FindOrganizationMembershipsRequest\x12\x18\n\x10organization_ids\x18\x01 \x03(\t\x12\x10\n\x08user_ids\x18\x02 \x03(\t\x12\x1b\n\x05roles\x18\x03 \x03(\x0e\x32\x0c.common.Role\x12\x10\n\x08page_num\x18\t \x01(\x05\x12\x11\n\tpage_size\x18\n \x01(\x05\"i\n#FindOrganizationMembershipsResponse\x12\x33\n\x0bmemberships\x18\x01 \x03(\x0b\x32\x1e.common.OrganizationMembership\x12\r\n\x05total\x18\x02 \x01(\x05\"P\n\x12\x43reateSpaceRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x17\n\x0forganization_id\x18\x03 \x01(\t\"3\n\x13\x43reateSpaceResponse\x12\x1c\n\x05space\x18\x01 \x01(\x0b\x32\r.common.Space\"#\n\x0fGetSpaceRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\"0\n\x10GetSpaceResponse\x12\x1c\n\x05space\x18\x01 \x01(\x0b\x32\r.common.Space\"8\n\x1dListOrganizationSpacesRequest\x12\x17\n\x0forganization_id\x18\x01 \x01(\t\"?\n\x1eListOrganizationSpacesResponse\x12\x1d\n\x06spaces\x18\x01 \x03(\x0b\x32\r.common.Space\"Z\n\x12UpdateSpaceRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0f\n\x07\x61pi_url\x18\x04 \x01(\t\"3\n\x13UpdateSpaceResponse\x12\x1c\n\x05space\x18\x01 \x01(\x0b\x32\r.common.Space\"&\n\x12\x44\x65leteSpaceRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\"\x15\n\x13\x44\x65leteSpaceResponse\"S\n\x1c\x43reateSpaceInvitationRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x12\n\nspace_role\x18\x02 \x01(\t\x12\r\n\x05\x65mail\x18\x03 \x01(\t\"L\n\x1d\x43reateSpaceInvitationResponse\x12+\n\ninvitation\x18\x01 \x01(\x0b\x32\x17.common.SpaceInvitation\"2\n\x19GetSpaceInvitationRequest\x12\x15\n\rinvitation_id\x18\x01 \x01(\t\"I\n\x1aGetSpaceInvitationResponse\x12+\n\ninvitation\x18\x01 \x01(\x0b\x32\x17.common.SpaceInvitation\"\xea\x01\n\x1cUpdateSpaceInvitationRequest\x12\x15\n\rinvitation_id\x18\x01 \x01(\t\x12(\n\x04sent\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12+\n\x07pending\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12+\n\x07sent_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bvalid_until\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x1f\n\x1dUpdateSpaceInvitationResponse\"5\n\x1c\x41\x63\x63\x65ptSpaceInvitationRequest\x12\x15\n\rinvitation_id\x18\x01 \x01(\t\"\x1f\n\x1d\x41\x63\x63\x65ptSpaceInvitationResponse\"\x83\x02\n\x1b\x46indSpaceInvitationsRequest\x12\x16\n\x0einvitation_ids\x18\x01 \x03(\t\x12\x18\n\x10organization_ids\x18\x02 \x03(\t\x12\x11\n\tspace_ids\x18\x03 \x03(\t\x12\x0e\n\x06\x65mails\x18\x04 \x03(\t\x12\x13\n\x0bspace_roles\x18\x05 \x03(\t\x12(\n\x04sent\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12+\n\x07pending\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x10\n\x08page_num\x18\t \x01(\x05\x12\x11\n\tpage_size\x18\n \x01(\x05\"[\n\x1c\x46indSpaceInvitationsResponse\x12,\n\x0binvitations\x18\x01 \x03(\x0b\x32\x17.common.SpaceInvitation\x12\r\n\x05total\x18\x02 \x01(\x05\"5\n\x1c\x44\x65leteSpaceInvitationRequest\x12\x15\n\rinvitation_id\x18\x01 \x01(\t\"\x1f\n\x1d\x44\x65leteSpaceInvitationResponse\"R\n\x19SetSpaceMembershipRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12\x12\n\nspace_role\x18\x03 \x01(\t\"\x1c\n\x1aSetSpaceMembershipResponse\"A\n\x1c\x44\x65leteSpaceMembershipRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\"\x1f\n\x1d\x44\x65leteSpaceMembershipResponse\"\x96\x01\n\x1b\x46indSpaceMembershipsRequest\x12\x18\n\x10organization_ids\x18\x01 \x03(\t\x12\x11\n\tspace_ids\x18\x02 \x03(\t\x12\x10\n\x08user_ids\x18\x03 \x03(\t\x12\x13\n\x0bspace_roles\x18\x04 \x03(\t\x12\x10\n\x08page_num\x18\t \x01(\x05\x12\x11\n\tpage_size\x18\n \x01(\x05\"\xe6\x01\n\x1c\x46indSpaceMembershipsResponse\x12T\n\x0bmemberships\x18\x01 \x03(\x0b\x32?.accountmanagement.FindSpaceMembershipsResponse.SpaceMembership\x12\r\n\x05total\x18\x02 \x01(\x05\x1a\x61\n\x0fSpaceMembership\x12\x17\n\x0forganization_id\x18\x01 \x01(\t\x12\x10\n\x08space_id\x18\x02 \x01(\t\x12\x0f\n\x07user_id\x18\x03 \x01(\t\x12\x12\n\nspace_role\x18\x04 \x01(\t\"\x96\x01\n\x11\x43reateUserRequest\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12\x12\n\nidentities\x18\x04 \x03(\t\x12\r\n\x05\x65mail\x18\x05 \x01(\t\x12\x16\n\x0e\x65mail_verified\x18\x06 \x01(\x08\x12\x12\n\navatar_uri\x18\x07 \x01(\t\x12\x0e\n\x06system\x18\n \x01(\x08\"0\n\x12\x43reateUserResponse\x12\x1a\n\x04user\x18\x01 \x01(\x0b\x32\x0c.common.User\"\x17\n\x15GetCurrentUserRequest\"4\n\x16GetCurrentUserResponse\x12\x1a\n\x04user\x18\x01 \x01(\x0b\x32\x0c.common.User\"a\n\x18UpdateCurrentUserRequest\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12\r\n\x05\x65mail\x18\x04 \x01(\t\x12\x12\n\navatar_uri\x18\x06 \x01(\t\"7\n\x19UpdateCurrentUserResponse\x12\x1a\n\x04user\x18\x01 \x01(\x0b\x32\x0c.common.User\"!\n\x0eGetUserRequest\x12\x0f\n\x07user_id\x18\x01 \x01(\t\"-\n\x0fGetUserResponse\x12\x1a\n\x04user\x18\x01 \x01(\x0b\x32\x0c.common.User\"\x82\x02\n\x10\x46indUsersRequest\x12\x0b\n\x03ids\x18\x01 \x03(\t\x12\x12\n\nidentities\x18\x02 \x03(\t\x12\r\n\x05names\x18\x03 \x03(\t\x12\x15\n\rdisplay_names\x18\x04 \x03(\t\x12\x0e\n\x06\x65mails\x18\x05 \x03(\t\x12\x32\n\x0e\x65mail_verified\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x12\n\navatar_uri\x18\t \x03(\t\x12*\n\x06system\x18\n \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x10\n\x08page_num\x18\x0b \x01(\x05\x12\x11\n\tpage_size\x18\x0c \x01(\x05\"?\n\x11\x46indUsersResponse\x12\x1b\n\x05users\x18\x01 \x03(\x0b\x32\x0c.common.User\x12\r\n\x05total\x18\x02 \x01(\x05\"B\n\x11UpdateUserRequest\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x1c\n\x06update\x18\x02 \x01(\x0b\x32\x0c.common.User\"0\n\x12UpdateUserResponse\x12\x1a\n\x04user\x18\x01 \x01(\x0b\x32\x0c.common.User\"$\n\x11\x44\x65leteUserRequest\x12\x0f\n\x07user_id\x18\x01 \x01(\t\"\x14\n\x12\x44\x65leteUserResponse2\x80\x17\n\x11\x41\x63\x63ountManagement\x12[\n\nCreateUser\x12$.accountmanagement.CreateUserRequest\x1a%.accountmanagement.CreateUserResponse\"\x00\x12R\n\x07GetUser\x12!.accountmanagement.GetUserRequest\x1a\".accountmanagement.GetUserResponse\"\x00\x12X\n\tFindUsers\x12#.accountmanagement.FindUsersRequest\x1a$.accountmanagement.FindUsersResponse\"\x00\x12[\n\nUpdateUser\x12$.accountmanagement.UpdateUserRequest\x1a%.accountmanagement.UpdateUserResponse\"\x00\x12L\n\nDeleteUser\x12$.accountmanagement.DeleteUserRequest\x1a\x16.google.protobuf.Empty\"\x00\x12U\n\x0eGetCurrentUser\x12\x16.google.protobuf.Empty\x1a).accountmanagement.GetCurrentUserResponse\"\x00\x12p\n\x11UpdateCurrentUser\x12+.accountmanagement.UpdateCurrentUserRequest\x1a,.accountmanagement.UpdateCurrentUserResponse\"\x00\x12s\n\x12\x43reateOrganization\x12,.accountmanagement.CreateOrganizationRequest\x1a-.accountmanagement.CreateOrganizationResponse\"\x00\x12\\\n\x12\x44\x65leteOrganization\x12,.accountmanagement.DeleteOrganizationRequest\x1a\x16.google.protobuf.Empty\"\x00\x12p\n\x11\x46indOrganizations\x12+.accountmanagement.FindOrganizationsRequest\x1a,.accountmanagement.FindOrganizationsResponse\"\x00\x12s\n\x12UpdateOrganization\x12,.accountmanagement.UpdateOrganizationRequest\x1a-.accountmanagement.UpdateOrganizationResponse\"\x00\x12p\n\x1cUpdateOrganizationMembership\x12\x36.accountmanagement.UpdateOrganizationMembershipRequest\x1a\x16.google.protobuf.Empty\"\x00\x12p\n\x1c\x44\x65leteOrganizationMembership\x12\x36.accountmanagement.DeleteOrganizationMembershipRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x8e\x01\n\x1b\x46indOrganizationMemberships\x12\x35.accountmanagement.FindOrganizationMembershipsRequest\x1a\x36.accountmanagement.FindOrganizationMembershipsResponse\"\x00\x12^\n\x0b\x43reateSpace\x12%.accountmanagement.CreateSpaceRequest\x1a&.accountmanagement.CreateSpaceResponse\"\x00\x12U\n\x08GetSpace\x12\".accountmanagement.GetSpaceRequest\x1a#.accountmanagement.GetSpaceResponse\"\x00\x12\x7f\n\x16ListOrganizationSpaces\x12\x30.accountmanagement.ListOrganizationSpacesRequest\x1a\x31.accountmanagement.ListOrganizationSpacesResponse\"\x00\x12^\n\x0bUpdateSpace\x12%.accountmanagement.UpdateSpaceRequest\x1a&.accountmanagement.UpdateSpaceResponse\"\x00\x12N\n\x0b\x44\x65leteSpace\x12%.accountmanagement.DeleteSpaceRequest\x1a\x16.google.protobuf.Empty\"\x00\x12|\n\x15\x43reateSpaceInvitation\x12/.accountmanagement.CreateSpaceInvitationRequest\x1a\x30.accountmanagement.CreateSpaceInvitationResponse\"\x00\x12s\n\x12GetSpaceInvitation\x12,.accountmanagement.GetSpaceInvitationRequest\x1a-.accountmanagement.GetSpaceInvitationResponse\"\x00\x12\x62\n\x15UpdateSpaceInvitation\x12/.accountmanagement.UpdateSpaceInvitationRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x62\n\x15\x41\x63\x63\x65ptSpaceInvitation\x12/.accountmanagement.AcceptSpaceInvitationRequest\x1a\x16.google.protobuf.Empty\"\x00\x12y\n\x14\x46indSpaceInvitations\x12..accountmanagement.FindSpaceInvitationsRequest\x1a/.accountmanagement.FindSpaceInvitationsResponse\"\x00\x12\x62\n\x15\x44\x65leteSpaceInvitation\x12/.accountmanagement.DeleteSpaceInvitationRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\\\n\x12SetSpaceMembership\x12,.accountmanagement.SetSpaceMembershipRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x62\n\x15\x44\x65leteSpaceMembership\x12/.accountmanagement.DeleteSpaceMembershipRequest\x1a\x16.google.protobuf.Empty\"\x00\x12y\n\x14\x46indSpaceMemberships\x12..accountmanagement.FindSpaceMembershipsRequest\x1a/.accountmanagement.FindSpaceMembershipsResponse\"\x00\x42\x46ZDgithub.com/perxteam/perxis/proto/accountmanagement;accountmanagementb\x06proto3'
-  ,
-  dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,perxis_dot_common_dot_common__pb2.DESCRIPTOR,])
-
-
-
-
-_CREATEORGANIZATIONREQUEST = _descriptor.Descriptor(
-  name='CreateOrganizationRequest',
-  full_name='accountmanagement.CreateOrganizationRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='name', full_name='accountmanagement.CreateOrganizationRequest.name', index=0,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='description', full_name='accountmanagement.CreateOrganizationRequest.description', index=1,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='logo_uri', full_name='accountmanagement.CreateOrganizationRequest.logo_uri', index=2,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=193,
-  serialized_end=273,
-)
-
-
-_CREATEORGANIZATIONRESPONSE = _descriptor.Descriptor(
-  name='CreateOrganizationResponse',
-  full_name='accountmanagement.CreateOrganizationResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='organization', full_name='accountmanagement.CreateOrganizationResponse.organization', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=275,
-  serialized_end=347,
-)
-
-
-_UPDATEORGANIZATIONREQUEST = _descriptor.Descriptor(
-  name='UpdateOrganizationRequest',
-  full_name='accountmanagement.UpdateOrganizationRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='organization_id', full_name='accountmanagement.UpdateOrganizationRequest.organization_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='name', full_name='accountmanagement.UpdateOrganizationRequest.name', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='description', full_name='accountmanagement.UpdateOrganizationRequest.description', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='logo_uri', full_name='accountmanagement.UpdateOrganizationRequest.logo_uri', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=349,
-  serialized_end=454,
-)
-
-
-_UPDATEORGANIZATIONRESPONSE = _descriptor.Descriptor(
-  name='UpdateOrganizationResponse',
-  full_name='accountmanagement.UpdateOrganizationResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='organization', full_name='accountmanagement.UpdateOrganizationResponse.organization', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=456,
-  serialized_end=528,
-)
-
-
-_DELETEORGANIZATIONREQUEST = _descriptor.Descriptor(
-  name='DeleteOrganizationRequest',
-  full_name='accountmanagement.DeleteOrganizationRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='organization_id', full_name='accountmanagement.DeleteOrganizationRequest.organization_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=530,
-  serialized_end=582,
-)
-
-
-_DELETEORGANIZATIONRESPONSE = _descriptor.Descriptor(
-  name='DeleteOrganizationResponse',
-  full_name='accountmanagement.DeleteOrganizationResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=584,
-  serialized_end=612,
-)
-
-
-_FINDORGANIZATIONSREQUEST = _descriptor.Descriptor(
-  name='FindOrganizationsRequest',
-  full_name='accountmanagement.FindOrganizationsRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='page_num', full_name='accountmanagement.FindOrganizationsRequest.page_num', index=0,
-      number=1, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_size', full_name='accountmanagement.FindOrganizationsRequest.page_size', index=1,
-      number=2, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='ids', full_name='accountmanagement.FindOrganizationsRequest.ids', index=2,
-      number=3, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='names', full_name='accountmanagement.FindOrganizationsRequest.names', index=3,
-      number=4, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=614,
-  serialized_end=705,
-)
-
-
-_FINDORGANIZATIONSRESPONSE = _descriptor.Descriptor(
-  name='FindOrganizationsResponse',
-  full_name='accountmanagement.FindOrganizationsResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='organizations', full_name='accountmanagement.FindOrganizationsResponse.organizations', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='total', full_name='accountmanagement.FindOrganizationsResponse.total', index=1,
-      number=2, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=707,
-  serialized_end=794,
-)
-
-
-_UPDATEORGANIZATIONMEMBERSHIPREQUEST = _descriptor.Descriptor(
-  name='UpdateOrganizationMembershipRequest',
-  full_name='accountmanagement.UpdateOrganizationMembershipRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='user_id', full_name='accountmanagement.UpdateOrganizationMembershipRequest.user_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='organization_id', full_name='accountmanagement.UpdateOrganizationMembershipRequest.organization_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='role', full_name='accountmanagement.UpdateOrganizationMembershipRequest.role', index=2,
-      number=3, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=796,
-  serialized_end=903,
-)
-
-
-_DELETEORGANIZATIONMEMBERSHIPREQUEST = _descriptor.Descriptor(
-  name='DeleteOrganizationMembershipRequest',
-  full_name='accountmanagement.DeleteOrganizationMembershipRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='user_id', full_name='accountmanagement.DeleteOrganizationMembershipRequest.user_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='organization_id', full_name='accountmanagement.DeleteOrganizationMembershipRequest.organization_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=905,
-  serialized_end=984,
-)
-
-
-_FINDORGANIZATIONMEMBERSHIPSREQUEST = _descriptor.Descriptor(
-  name='FindOrganizationMembershipsRequest',
-  full_name='accountmanagement.FindOrganizationMembershipsRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='organization_ids', full_name='accountmanagement.FindOrganizationMembershipsRequest.organization_ids', index=0,
-      number=1, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='user_ids', full_name='accountmanagement.FindOrganizationMembershipsRequest.user_ids', index=1,
-      number=2, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='roles', full_name='accountmanagement.FindOrganizationMembershipsRequest.roles', index=2,
-      number=3, type=14, cpp_type=8, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_num', full_name='accountmanagement.FindOrganizationMembershipsRequest.page_num', index=3,
-      number=9, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_size', full_name='accountmanagement.FindOrganizationMembershipsRequest.page_size', index=4,
-      number=10, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=987,
-  serialized_end=1133,
-)
-
-
-_FINDORGANIZATIONMEMBERSHIPSRESPONSE = _descriptor.Descriptor(
-  name='FindOrganizationMembershipsResponse',
-  full_name='accountmanagement.FindOrganizationMembershipsResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='memberships', full_name='accountmanagement.FindOrganizationMembershipsResponse.memberships', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='total', full_name='accountmanagement.FindOrganizationMembershipsResponse.total', index=1,
-      number=2, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1135,
-  serialized_end=1240,
-)
-
-
-_CREATESPACEREQUEST = _descriptor.Descriptor(
-  name='CreateSpaceRequest',
-  full_name='accountmanagement.CreateSpaceRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='name', full_name='accountmanagement.CreateSpaceRequest.name', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='description', full_name='accountmanagement.CreateSpaceRequest.description', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='organization_id', full_name='accountmanagement.CreateSpaceRequest.organization_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1242,
-  serialized_end=1322,
-)
-
-
-_CREATESPACERESPONSE = _descriptor.Descriptor(
-  name='CreateSpaceResponse',
-  full_name='accountmanagement.CreateSpaceResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space', full_name='accountmanagement.CreateSpaceResponse.space', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1324,
-  serialized_end=1375,
-)
-
-
-_GETSPACEREQUEST = _descriptor.Descriptor(
-  name='GetSpaceRequest',
-  full_name='accountmanagement.GetSpaceRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='accountmanagement.GetSpaceRequest.space_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1377,
-  serialized_end=1412,
-)
-
-
-_GETSPACERESPONSE = _descriptor.Descriptor(
-  name='GetSpaceResponse',
-  full_name='accountmanagement.GetSpaceResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space', full_name='accountmanagement.GetSpaceResponse.space', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1414,
-  serialized_end=1462,
-)
-
-
-_LISTORGANIZATIONSPACESREQUEST = _descriptor.Descriptor(
-  name='ListOrganizationSpacesRequest',
-  full_name='accountmanagement.ListOrganizationSpacesRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='organization_id', full_name='accountmanagement.ListOrganizationSpacesRequest.organization_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1464,
-  serialized_end=1520,
-)
-
-
-_LISTORGANIZATIONSPACESRESPONSE = _descriptor.Descriptor(
-  name='ListOrganizationSpacesResponse',
-  full_name='accountmanagement.ListOrganizationSpacesResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='spaces', full_name='accountmanagement.ListOrganizationSpacesResponse.spaces', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1522,
-  serialized_end=1585,
-)
-
-
-_UPDATESPACEREQUEST = _descriptor.Descriptor(
-  name='UpdateSpaceRequest',
-  full_name='accountmanagement.UpdateSpaceRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='accountmanagement.UpdateSpaceRequest.space_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='name', full_name='accountmanagement.UpdateSpaceRequest.name', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='description', full_name='accountmanagement.UpdateSpaceRequest.description', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='api_url', full_name='accountmanagement.UpdateSpaceRequest.api_url', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1587,
-  serialized_end=1677,
-)
-
-
-_UPDATESPACERESPONSE = _descriptor.Descriptor(
-  name='UpdateSpaceResponse',
-  full_name='accountmanagement.UpdateSpaceResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space', full_name='accountmanagement.UpdateSpaceResponse.space', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1679,
-  serialized_end=1730,
-)
-
-
-_DELETESPACEREQUEST = _descriptor.Descriptor(
-  name='DeleteSpaceRequest',
-  full_name='accountmanagement.DeleteSpaceRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='accountmanagement.DeleteSpaceRequest.space_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1732,
-  serialized_end=1770,
-)
-
-
-_DELETESPACERESPONSE = _descriptor.Descriptor(
-  name='DeleteSpaceResponse',
-  full_name='accountmanagement.DeleteSpaceResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1772,
-  serialized_end=1793,
-)
-
-
-_CREATESPACEINVITATIONREQUEST = _descriptor.Descriptor(
-  name='CreateSpaceInvitationRequest',
-  full_name='accountmanagement.CreateSpaceInvitationRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='accountmanagement.CreateSpaceInvitationRequest.space_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_role', full_name='accountmanagement.CreateSpaceInvitationRequest.space_role', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='email', full_name='accountmanagement.CreateSpaceInvitationRequest.email', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1795,
-  serialized_end=1878,
-)
-
-
-_CREATESPACEINVITATIONRESPONSE = _descriptor.Descriptor(
-  name='CreateSpaceInvitationResponse',
-  full_name='accountmanagement.CreateSpaceInvitationResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='invitation', full_name='accountmanagement.CreateSpaceInvitationResponse.invitation', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1880,
-  serialized_end=1956,
-)
-
-
-_GETSPACEINVITATIONREQUEST = _descriptor.Descriptor(
-  name='GetSpaceInvitationRequest',
-  full_name='accountmanagement.GetSpaceInvitationRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='invitation_id', full_name='accountmanagement.GetSpaceInvitationRequest.invitation_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1958,
-  serialized_end=2008,
-)
-
-
-_GETSPACEINVITATIONRESPONSE = _descriptor.Descriptor(
-  name='GetSpaceInvitationResponse',
-  full_name='accountmanagement.GetSpaceInvitationResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='invitation', full_name='accountmanagement.GetSpaceInvitationResponse.invitation', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2010,
-  serialized_end=2083,
-)
-
-
-_UPDATESPACEINVITATIONREQUEST = _descriptor.Descriptor(
-  name='UpdateSpaceInvitationRequest',
-  full_name='accountmanagement.UpdateSpaceInvitationRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='invitation_id', full_name='accountmanagement.UpdateSpaceInvitationRequest.invitation_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='sent', full_name='accountmanagement.UpdateSpaceInvitationRequest.sent', index=1,
-      number=2, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='pending', full_name='accountmanagement.UpdateSpaceInvitationRequest.pending', index=2,
-      number=3, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='sent_at', full_name='accountmanagement.UpdateSpaceInvitationRequest.sent_at', index=3,
-      number=4, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='valid_until', full_name='accountmanagement.UpdateSpaceInvitationRequest.valid_until', index=4,
-      number=5, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2086,
-  serialized_end=2320,
-)
-
-
-_UPDATESPACEINVITATIONRESPONSE = _descriptor.Descriptor(
-  name='UpdateSpaceInvitationResponse',
-  full_name='accountmanagement.UpdateSpaceInvitationResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2322,
-  serialized_end=2353,
-)
-
-
-_ACCEPTSPACEINVITATIONREQUEST = _descriptor.Descriptor(
-  name='AcceptSpaceInvitationRequest',
-  full_name='accountmanagement.AcceptSpaceInvitationRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='invitation_id', full_name='accountmanagement.AcceptSpaceInvitationRequest.invitation_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2355,
-  serialized_end=2408,
-)
-
-
-_ACCEPTSPACEINVITATIONRESPONSE = _descriptor.Descriptor(
-  name='AcceptSpaceInvitationResponse',
-  full_name='accountmanagement.AcceptSpaceInvitationResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2410,
-  serialized_end=2441,
-)
-
-
-_FINDSPACEINVITATIONSREQUEST = _descriptor.Descriptor(
-  name='FindSpaceInvitationsRequest',
-  full_name='accountmanagement.FindSpaceInvitationsRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='invitation_ids', full_name='accountmanagement.FindSpaceInvitationsRequest.invitation_ids', index=0,
-      number=1, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='organization_ids', full_name='accountmanagement.FindSpaceInvitationsRequest.organization_ids', index=1,
-      number=2, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_ids', full_name='accountmanagement.FindSpaceInvitationsRequest.space_ids', index=2,
-      number=3, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='emails', full_name='accountmanagement.FindSpaceInvitationsRequest.emails', index=3,
-      number=4, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_roles', full_name='accountmanagement.FindSpaceInvitationsRequest.space_roles', index=4,
-      number=5, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='sent', full_name='accountmanagement.FindSpaceInvitationsRequest.sent', index=5,
-      number=6, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='pending', full_name='accountmanagement.FindSpaceInvitationsRequest.pending', index=6,
-      number=7, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_num', full_name='accountmanagement.FindSpaceInvitationsRequest.page_num', index=7,
-      number=9, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_size', full_name='accountmanagement.FindSpaceInvitationsRequest.page_size', index=8,
-      number=10, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2444,
-  serialized_end=2703,
-)
-
-
-_FINDSPACEINVITATIONSRESPONSE = _descriptor.Descriptor(
-  name='FindSpaceInvitationsResponse',
-  full_name='accountmanagement.FindSpaceInvitationsResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='invitations', full_name='accountmanagement.FindSpaceInvitationsResponse.invitations', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='total', full_name='accountmanagement.FindSpaceInvitationsResponse.total', index=1,
-      number=2, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2705,
-  serialized_end=2796,
-)
-
-
-_DELETESPACEINVITATIONREQUEST = _descriptor.Descriptor(
-  name='DeleteSpaceInvitationRequest',
-  full_name='accountmanagement.DeleteSpaceInvitationRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='invitation_id', full_name='accountmanagement.DeleteSpaceInvitationRequest.invitation_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2798,
-  serialized_end=2851,
-)
-
-
-_DELETESPACEINVITATIONRESPONSE = _descriptor.Descriptor(
-  name='DeleteSpaceInvitationResponse',
-  full_name='accountmanagement.DeleteSpaceInvitationResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2853,
-  serialized_end=2884,
-)
-
-
-_SETSPACEMEMBERSHIPREQUEST = _descriptor.Descriptor(
-  name='SetSpaceMembershipRequest',
-  full_name='accountmanagement.SetSpaceMembershipRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='accountmanagement.SetSpaceMembershipRequest.space_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='user_id', full_name='accountmanagement.SetSpaceMembershipRequest.user_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_role', full_name='accountmanagement.SetSpaceMembershipRequest.space_role', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2886,
-  serialized_end=2968,
-)
-
-
-_SETSPACEMEMBERSHIPRESPONSE = _descriptor.Descriptor(
-  name='SetSpaceMembershipResponse',
-  full_name='accountmanagement.SetSpaceMembershipResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2970,
-  serialized_end=2998,
-)
-
-
-_DELETESPACEMEMBERSHIPREQUEST = _descriptor.Descriptor(
-  name='DeleteSpaceMembershipRequest',
-  full_name='accountmanagement.DeleteSpaceMembershipRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='accountmanagement.DeleteSpaceMembershipRequest.space_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='user_id', full_name='accountmanagement.DeleteSpaceMembershipRequest.user_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3000,
-  serialized_end=3065,
-)
-
-
-_DELETESPACEMEMBERSHIPRESPONSE = _descriptor.Descriptor(
-  name='DeleteSpaceMembershipResponse',
-  full_name='accountmanagement.DeleteSpaceMembershipResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3067,
-  serialized_end=3098,
-)
-
-
-_FINDSPACEMEMBERSHIPSREQUEST = _descriptor.Descriptor(
-  name='FindSpaceMembershipsRequest',
-  full_name='accountmanagement.FindSpaceMembershipsRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='organization_ids', full_name='accountmanagement.FindSpaceMembershipsRequest.organization_ids', index=0,
-      number=1, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_ids', full_name='accountmanagement.FindSpaceMembershipsRequest.space_ids', index=1,
-      number=2, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='user_ids', full_name='accountmanagement.FindSpaceMembershipsRequest.user_ids', index=2,
-      number=3, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_roles', full_name='accountmanagement.FindSpaceMembershipsRequest.space_roles', index=3,
-      number=4, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_num', full_name='accountmanagement.FindSpaceMembershipsRequest.page_num', index=4,
-      number=9, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_size', full_name='accountmanagement.FindSpaceMembershipsRequest.page_size', index=5,
-      number=10, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3101,
-  serialized_end=3251,
-)
-
-
-_FINDSPACEMEMBERSHIPSRESPONSE_SPACEMEMBERSHIP = _descriptor.Descriptor(
-  name='SpaceMembership',
-  full_name='accountmanagement.FindSpaceMembershipsResponse.SpaceMembership',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='organization_id', full_name='accountmanagement.FindSpaceMembershipsResponse.SpaceMembership.organization_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='accountmanagement.FindSpaceMembershipsResponse.SpaceMembership.space_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='user_id', full_name='accountmanagement.FindSpaceMembershipsResponse.SpaceMembership.user_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_role', full_name='accountmanagement.FindSpaceMembershipsResponse.SpaceMembership.space_role', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3387,
-  serialized_end=3484,
-)
-
-_FINDSPACEMEMBERSHIPSRESPONSE = _descriptor.Descriptor(
-  name='FindSpaceMembershipsResponse',
-  full_name='accountmanagement.FindSpaceMembershipsResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='memberships', full_name='accountmanagement.FindSpaceMembershipsResponse.memberships', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='total', full_name='accountmanagement.FindSpaceMembershipsResponse.total', index=1,
-      number=2, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[_FINDSPACEMEMBERSHIPSRESPONSE_SPACEMEMBERSHIP, ],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3254,
-  serialized_end=3484,
-)
-
-
-_CREATEUSERREQUEST = _descriptor.Descriptor(
-  name='CreateUserRequest',
-  full_name='accountmanagement.CreateUserRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='name', full_name='accountmanagement.CreateUserRequest.name', index=0,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='display_name', full_name='accountmanagement.CreateUserRequest.display_name', index=1,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='identities', full_name='accountmanagement.CreateUserRequest.identities', index=2,
-      number=4, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='email', full_name='accountmanagement.CreateUserRequest.email', index=3,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='email_verified', full_name='accountmanagement.CreateUserRequest.email_verified', index=4,
-      number=6, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='avatar_uri', full_name='accountmanagement.CreateUserRequest.avatar_uri', index=5,
-      number=7, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='system', full_name='accountmanagement.CreateUserRequest.system', index=6,
-      number=10, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3487,
-  serialized_end=3637,
-)
-
-
-_CREATEUSERRESPONSE = _descriptor.Descriptor(
-  name='CreateUserResponse',
-  full_name='accountmanagement.CreateUserResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='user', full_name='accountmanagement.CreateUserResponse.user', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3639,
-  serialized_end=3687,
-)
-
-
-_GETCURRENTUSERREQUEST = _descriptor.Descriptor(
-  name='GetCurrentUserRequest',
-  full_name='accountmanagement.GetCurrentUserRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3689,
-  serialized_end=3712,
-)
-
-
-_GETCURRENTUSERRESPONSE = _descriptor.Descriptor(
-  name='GetCurrentUserResponse',
-  full_name='accountmanagement.GetCurrentUserResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='user', full_name='accountmanagement.GetCurrentUserResponse.user', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3714,
-  serialized_end=3766,
-)
-
-
-_UPDATECURRENTUSERREQUEST = _descriptor.Descriptor(
-  name='UpdateCurrentUserRequest',
-  full_name='accountmanagement.UpdateCurrentUserRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='name', full_name='accountmanagement.UpdateCurrentUserRequest.name', index=0,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='display_name', full_name='accountmanagement.UpdateCurrentUserRequest.display_name', index=1,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='email', full_name='accountmanagement.UpdateCurrentUserRequest.email', index=2,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='avatar_uri', full_name='accountmanagement.UpdateCurrentUserRequest.avatar_uri', index=3,
-      number=6, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3768,
-  serialized_end=3865,
-)
-
-
-_UPDATECURRENTUSERRESPONSE = _descriptor.Descriptor(
-  name='UpdateCurrentUserResponse',
-  full_name='accountmanagement.UpdateCurrentUserResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='user', full_name='accountmanagement.UpdateCurrentUserResponse.user', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3867,
-  serialized_end=3922,
-)
-
-
-_GETUSERREQUEST = _descriptor.Descriptor(
-  name='GetUserRequest',
-  full_name='accountmanagement.GetUserRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='user_id', full_name='accountmanagement.GetUserRequest.user_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3924,
-  serialized_end=3957,
-)
-
-
-_GETUSERRESPONSE = _descriptor.Descriptor(
-  name='GetUserResponse',
-  full_name='accountmanagement.GetUserResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='user', full_name='accountmanagement.GetUserResponse.user', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3959,
-  serialized_end=4004,
-)
-
-
-_FINDUSERSREQUEST = _descriptor.Descriptor(
-  name='FindUsersRequest',
-  full_name='accountmanagement.FindUsersRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='ids', full_name='accountmanagement.FindUsersRequest.ids', index=0,
-      number=1, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='identities', full_name='accountmanagement.FindUsersRequest.identities', index=1,
-      number=2, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='names', full_name='accountmanagement.FindUsersRequest.names', index=2,
-      number=3, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='display_names', full_name='accountmanagement.FindUsersRequest.display_names', index=3,
-      number=4, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='emails', full_name='accountmanagement.FindUsersRequest.emails', index=4,
-      number=5, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='email_verified', full_name='accountmanagement.FindUsersRequest.email_verified', index=5,
-      number=6, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='avatar_uri', full_name='accountmanagement.FindUsersRequest.avatar_uri', index=6,
-      number=9, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='system', full_name='accountmanagement.FindUsersRequest.system', index=7,
-      number=10, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_num', full_name='accountmanagement.FindUsersRequest.page_num', index=8,
-      number=11, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_size', full_name='accountmanagement.FindUsersRequest.page_size', index=9,
-      number=12, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4007,
-  serialized_end=4265,
-)
-
-
-_FINDUSERSRESPONSE = _descriptor.Descriptor(
-  name='FindUsersResponse',
-  full_name='accountmanagement.FindUsersResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='users', full_name='accountmanagement.FindUsersResponse.users', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='total', full_name='accountmanagement.FindUsersResponse.total', index=1,
-      number=2, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4267,
-  serialized_end=4330,
-)
-
-
-_UPDATEUSERREQUEST = _descriptor.Descriptor(
-  name='UpdateUserRequest',
-  full_name='accountmanagement.UpdateUserRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='user_id', full_name='accountmanagement.UpdateUserRequest.user_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='update', full_name='accountmanagement.UpdateUserRequest.update', index=1,
-      number=2, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4332,
-  serialized_end=4398,
-)
-
-
-_UPDATEUSERRESPONSE = _descriptor.Descriptor(
-  name='UpdateUserResponse',
-  full_name='accountmanagement.UpdateUserResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='user', full_name='accountmanagement.UpdateUserResponse.user', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4400,
-  serialized_end=4448,
-)
-
-
-_DELETEUSERREQUEST = _descriptor.Descriptor(
-  name='DeleteUserRequest',
-  full_name='accountmanagement.DeleteUserRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='user_id', full_name='accountmanagement.DeleteUserRequest.user_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4450,
-  serialized_end=4486,
-)
-
-
-_DELETEUSERRESPONSE = _descriptor.Descriptor(
-  name='DeleteUserResponse',
-  full_name='accountmanagement.DeleteUserResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4488,
-  serialized_end=4508,
-)
-
-_CREATEORGANIZATIONRESPONSE.fields_by_name['organization'].message_type = perxis_dot_common_dot_common__pb2._ORGANIZATION
-_UPDATEORGANIZATIONRESPONSE.fields_by_name['organization'].message_type = perxis_dot_common_dot_common__pb2._ORGANIZATION
-_FINDORGANIZATIONSRESPONSE.fields_by_name['organizations'].message_type = perxis_dot_common_dot_common__pb2._ORGANIZATION
-_UPDATEORGANIZATIONMEMBERSHIPREQUEST.fields_by_name['role'].enum_type = perxis_dot_common_dot_common__pb2._ROLE
-_FINDORGANIZATIONMEMBERSHIPSREQUEST.fields_by_name['roles'].enum_type = perxis_dot_common_dot_common__pb2._ROLE
-_FINDORGANIZATIONMEMBERSHIPSRESPONSE.fields_by_name['memberships'].message_type = perxis_dot_common_dot_common__pb2._ORGANIZATIONMEMBERSHIP
-_CREATESPACERESPONSE.fields_by_name['space'].message_type = perxis_dot_common_dot_common__pb2._SPACE
-_GETSPACERESPONSE.fields_by_name['space'].message_type = perxis_dot_common_dot_common__pb2._SPACE
-_LISTORGANIZATIONSPACESRESPONSE.fields_by_name['spaces'].message_type = perxis_dot_common_dot_common__pb2._SPACE
-_UPDATESPACERESPONSE.fields_by_name['space'].message_type = perxis_dot_common_dot_common__pb2._SPACE
-_CREATESPACEINVITATIONRESPONSE.fields_by_name['invitation'].message_type = perxis_dot_common_dot_common__pb2._SPACEINVITATION
-_GETSPACEINVITATIONRESPONSE.fields_by_name['invitation'].message_type = perxis_dot_common_dot_common__pb2._SPACEINVITATION
-_UPDATESPACEINVITATIONREQUEST.fields_by_name['sent'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE
-_UPDATESPACEINVITATIONREQUEST.fields_by_name['pending'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE
-_UPDATESPACEINVITATIONREQUEST.fields_by_name['sent_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
-_UPDATESPACEINVITATIONREQUEST.fields_by_name['valid_until'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
-_FINDSPACEINVITATIONSREQUEST.fields_by_name['sent'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE
-_FINDSPACEINVITATIONSREQUEST.fields_by_name['pending'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE
-_FINDSPACEINVITATIONSRESPONSE.fields_by_name['invitations'].message_type = perxis_dot_common_dot_common__pb2._SPACEINVITATION
-_FINDSPACEMEMBERSHIPSRESPONSE_SPACEMEMBERSHIP.containing_type = _FINDSPACEMEMBERSHIPSRESPONSE
-_FINDSPACEMEMBERSHIPSRESPONSE.fields_by_name['memberships'].message_type = _FINDSPACEMEMBERSHIPSRESPONSE_SPACEMEMBERSHIP
-_CREATEUSERRESPONSE.fields_by_name['user'].message_type = perxis_dot_common_dot_common__pb2._USER
-_GETCURRENTUSERRESPONSE.fields_by_name['user'].message_type = perxis_dot_common_dot_common__pb2._USER
-_UPDATECURRENTUSERRESPONSE.fields_by_name['user'].message_type = perxis_dot_common_dot_common__pb2._USER
-_GETUSERRESPONSE.fields_by_name['user'].message_type = perxis_dot_common_dot_common__pb2._USER
-_FINDUSERSREQUEST.fields_by_name['email_verified'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE
-_FINDUSERSREQUEST.fields_by_name['system'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE
-_FINDUSERSRESPONSE.fields_by_name['users'].message_type = perxis_dot_common_dot_common__pb2._USER
-_UPDATEUSERREQUEST.fields_by_name['update'].message_type = perxis_dot_common_dot_common__pb2._USER
-_UPDATEUSERRESPONSE.fields_by_name['user'].message_type = perxis_dot_common_dot_common__pb2._USER
-DESCRIPTOR.message_types_by_name['CreateOrganizationRequest'] = _CREATEORGANIZATIONREQUEST
-DESCRIPTOR.message_types_by_name['CreateOrganizationResponse'] = _CREATEORGANIZATIONRESPONSE
-DESCRIPTOR.message_types_by_name['UpdateOrganizationRequest'] = _UPDATEORGANIZATIONREQUEST
-DESCRIPTOR.message_types_by_name['UpdateOrganizationResponse'] = _UPDATEORGANIZATIONRESPONSE
-DESCRIPTOR.message_types_by_name['DeleteOrganizationRequest'] = _DELETEORGANIZATIONREQUEST
-DESCRIPTOR.message_types_by_name['DeleteOrganizationResponse'] = _DELETEORGANIZATIONRESPONSE
-DESCRIPTOR.message_types_by_name['FindOrganizationsRequest'] = _FINDORGANIZATIONSREQUEST
-DESCRIPTOR.message_types_by_name['FindOrganizationsResponse'] = _FINDORGANIZATIONSRESPONSE
-DESCRIPTOR.message_types_by_name['UpdateOrganizationMembershipRequest'] = _UPDATEORGANIZATIONMEMBERSHIPREQUEST
-DESCRIPTOR.message_types_by_name['DeleteOrganizationMembershipRequest'] = _DELETEORGANIZATIONMEMBERSHIPREQUEST
-DESCRIPTOR.message_types_by_name['FindOrganizationMembershipsRequest'] = _FINDORGANIZATIONMEMBERSHIPSREQUEST
-DESCRIPTOR.message_types_by_name['FindOrganizationMembershipsResponse'] = _FINDORGANIZATIONMEMBERSHIPSRESPONSE
-DESCRIPTOR.message_types_by_name['CreateSpaceRequest'] = _CREATESPACEREQUEST
-DESCRIPTOR.message_types_by_name['CreateSpaceResponse'] = _CREATESPACERESPONSE
-DESCRIPTOR.message_types_by_name['GetSpaceRequest'] = _GETSPACEREQUEST
-DESCRIPTOR.message_types_by_name['GetSpaceResponse'] = _GETSPACERESPONSE
-DESCRIPTOR.message_types_by_name['ListOrganizationSpacesRequest'] = _LISTORGANIZATIONSPACESREQUEST
-DESCRIPTOR.message_types_by_name['ListOrganizationSpacesResponse'] = _LISTORGANIZATIONSPACESRESPONSE
-DESCRIPTOR.message_types_by_name['UpdateSpaceRequest'] = _UPDATESPACEREQUEST
-DESCRIPTOR.message_types_by_name['UpdateSpaceResponse'] = _UPDATESPACERESPONSE
-DESCRIPTOR.message_types_by_name['DeleteSpaceRequest'] = _DELETESPACEREQUEST
-DESCRIPTOR.message_types_by_name['DeleteSpaceResponse'] = _DELETESPACERESPONSE
-DESCRIPTOR.message_types_by_name['CreateSpaceInvitationRequest'] = _CREATESPACEINVITATIONREQUEST
-DESCRIPTOR.message_types_by_name['CreateSpaceInvitationResponse'] = _CREATESPACEINVITATIONRESPONSE
-DESCRIPTOR.message_types_by_name['GetSpaceInvitationRequest'] = _GETSPACEINVITATIONREQUEST
-DESCRIPTOR.message_types_by_name['GetSpaceInvitationResponse'] = _GETSPACEINVITATIONRESPONSE
-DESCRIPTOR.message_types_by_name['UpdateSpaceInvitationRequest'] = _UPDATESPACEINVITATIONREQUEST
-DESCRIPTOR.message_types_by_name['UpdateSpaceInvitationResponse'] = _UPDATESPACEINVITATIONRESPONSE
-DESCRIPTOR.message_types_by_name['AcceptSpaceInvitationRequest'] = _ACCEPTSPACEINVITATIONREQUEST
-DESCRIPTOR.message_types_by_name['AcceptSpaceInvitationResponse'] = _ACCEPTSPACEINVITATIONRESPONSE
-DESCRIPTOR.message_types_by_name['FindSpaceInvitationsRequest'] = _FINDSPACEINVITATIONSREQUEST
-DESCRIPTOR.message_types_by_name['FindSpaceInvitationsResponse'] = _FINDSPACEINVITATIONSRESPONSE
-DESCRIPTOR.message_types_by_name['DeleteSpaceInvitationRequest'] = _DELETESPACEINVITATIONREQUEST
-DESCRIPTOR.message_types_by_name['DeleteSpaceInvitationResponse'] = _DELETESPACEINVITATIONRESPONSE
-DESCRIPTOR.message_types_by_name['SetSpaceMembershipRequest'] = _SETSPACEMEMBERSHIPREQUEST
-DESCRIPTOR.message_types_by_name['SetSpaceMembershipResponse'] = _SETSPACEMEMBERSHIPRESPONSE
-DESCRIPTOR.message_types_by_name['DeleteSpaceMembershipRequest'] = _DELETESPACEMEMBERSHIPREQUEST
-DESCRIPTOR.message_types_by_name['DeleteSpaceMembershipResponse'] = _DELETESPACEMEMBERSHIPRESPONSE
-DESCRIPTOR.message_types_by_name['FindSpaceMembershipsRequest'] = _FINDSPACEMEMBERSHIPSREQUEST
-DESCRIPTOR.message_types_by_name['FindSpaceMembershipsResponse'] = _FINDSPACEMEMBERSHIPSRESPONSE
-DESCRIPTOR.message_types_by_name['CreateUserRequest'] = _CREATEUSERREQUEST
-DESCRIPTOR.message_types_by_name['CreateUserResponse'] = _CREATEUSERRESPONSE
-DESCRIPTOR.message_types_by_name['GetCurrentUserRequest'] = _GETCURRENTUSERREQUEST
-DESCRIPTOR.message_types_by_name['GetCurrentUserResponse'] = _GETCURRENTUSERRESPONSE
-DESCRIPTOR.message_types_by_name['UpdateCurrentUserRequest'] = _UPDATECURRENTUSERREQUEST
-DESCRIPTOR.message_types_by_name['UpdateCurrentUserResponse'] = _UPDATECURRENTUSERRESPONSE
-DESCRIPTOR.message_types_by_name['GetUserRequest'] = _GETUSERREQUEST
-DESCRIPTOR.message_types_by_name['GetUserResponse'] = _GETUSERRESPONSE
-DESCRIPTOR.message_types_by_name['FindUsersRequest'] = _FINDUSERSREQUEST
-DESCRIPTOR.message_types_by_name['FindUsersResponse'] = _FINDUSERSRESPONSE
-DESCRIPTOR.message_types_by_name['UpdateUserRequest'] = _UPDATEUSERREQUEST
-DESCRIPTOR.message_types_by_name['UpdateUserResponse'] = _UPDATEUSERRESPONSE
-DESCRIPTOR.message_types_by_name['DeleteUserRequest'] = _DELETEUSERREQUEST
-DESCRIPTOR.message_types_by_name['DeleteUserResponse'] = _DELETEUSERRESPONSE
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-CreateOrganizationRequest = _reflection.GeneratedProtocolMessageType('CreateOrganizationRequest', (_message.Message,), {
-  'DESCRIPTOR' : _CREATEORGANIZATIONREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.CreateOrganizationRequest)
-  })
-_sym_db.RegisterMessage(CreateOrganizationRequest)
-
-CreateOrganizationResponse = _reflection.GeneratedProtocolMessageType('CreateOrganizationResponse', (_message.Message,), {
-  'DESCRIPTOR' : _CREATEORGANIZATIONRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.CreateOrganizationResponse)
-  })
-_sym_db.RegisterMessage(CreateOrganizationResponse)
-
-UpdateOrganizationRequest = _reflection.GeneratedProtocolMessageType('UpdateOrganizationRequest', (_message.Message,), {
-  'DESCRIPTOR' : _UPDATEORGANIZATIONREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.UpdateOrganizationRequest)
-  })
-_sym_db.RegisterMessage(UpdateOrganizationRequest)
-
-UpdateOrganizationResponse = _reflection.GeneratedProtocolMessageType('UpdateOrganizationResponse', (_message.Message,), {
-  'DESCRIPTOR' : _UPDATEORGANIZATIONRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.UpdateOrganizationResponse)
-  })
-_sym_db.RegisterMessage(UpdateOrganizationResponse)
-
-DeleteOrganizationRequest = _reflection.GeneratedProtocolMessageType('DeleteOrganizationRequest', (_message.Message,), {
-  'DESCRIPTOR' : _DELETEORGANIZATIONREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.DeleteOrganizationRequest)
-  })
-_sym_db.RegisterMessage(DeleteOrganizationRequest)
-
-DeleteOrganizationResponse = _reflection.GeneratedProtocolMessageType('DeleteOrganizationResponse', (_message.Message,), {
-  'DESCRIPTOR' : _DELETEORGANIZATIONRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.DeleteOrganizationResponse)
-  })
-_sym_db.RegisterMessage(DeleteOrganizationResponse)
-
-FindOrganizationsRequest = _reflection.GeneratedProtocolMessageType('FindOrganizationsRequest', (_message.Message,), {
-  'DESCRIPTOR' : _FINDORGANIZATIONSREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.FindOrganizationsRequest)
-  })
-_sym_db.RegisterMessage(FindOrganizationsRequest)
-
-FindOrganizationsResponse = _reflection.GeneratedProtocolMessageType('FindOrganizationsResponse', (_message.Message,), {
-  'DESCRIPTOR' : _FINDORGANIZATIONSRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.FindOrganizationsResponse)
-  })
-_sym_db.RegisterMessage(FindOrganizationsResponse)
-
-UpdateOrganizationMembershipRequest = _reflection.GeneratedProtocolMessageType('UpdateOrganizationMembershipRequest', (_message.Message,), {
-  'DESCRIPTOR' : _UPDATEORGANIZATIONMEMBERSHIPREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.UpdateOrganizationMembershipRequest)
-  })
-_sym_db.RegisterMessage(UpdateOrganizationMembershipRequest)
-
-DeleteOrganizationMembershipRequest = _reflection.GeneratedProtocolMessageType('DeleteOrganizationMembershipRequest', (_message.Message,), {
-  'DESCRIPTOR' : _DELETEORGANIZATIONMEMBERSHIPREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.DeleteOrganizationMembershipRequest)
-  })
-_sym_db.RegisterMessage(DeleteOrganizationMembershipRequest)
-
-FindOrganizationMembershipsRequest = _reflection.GeneratedProtocolMessageType('FindOrganizationMembershipsRequest', (_message.Message,), {
-  'DESCRIPTOR' : _FINDORGANIZATIONMEMBERSHIPSREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.FindOrganizationMembershipsRequest)
-  })
-_sym_db.RegisterMessage(FindOrganizationMembershipsRequest)
-
-FindOrganizationMembershipsResponse = _reflection.GeneratedProtocolMessageType('FindOrganizationMembershipsResponse', (_message.Message,), {
-  'DESCRIPTOR' : _FINDORGANIZATIONMEMBERSHIPSRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.FindOrganizationMembershipsResponse)
-  })
-_sym_db.RegisterMessage(FindOrganizationMembershipsResponse)
-
-CreateSpaceRequest = _reflection.GeneratedProtocolMessageType('CreateSpaceRequest', (_message.Message,), {
-  'DESCRIPTOR' : _CREATESPACEREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.CreateSpaceRequest)
-  })
-_sym_db.RegisterMessage(CreateSpaceRequest)
-
-CreateSpaceResponse = _reflection.GeneratedProtocolMessageType('CreateSpaceResponse', (_message.Message,), {
-  'DESCRIPTOR' : _CREATESPACERESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.CreateSpaceResponse)
-  })
-_sym_db.RegisterMessage(CreateSpaceResponse)
-
-GetSpaceRequest = _reflection.GeneratedProtocolMessageType('GetSpaceRequest', (_message.Message,), {
-  'DESCRIPTOR' : _GETSPACEREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.GetSpaceRequest)
-  })
-_sym_db.RegisterMessage(GetSpaceRequest)
-
-GetSpaceResponse = _reflection.GeneratedProtocolMessageType('GetSpaceResponse', (_message.Message,), {
-  'DESCRIPTOR' : _GETSPACERESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.GetSpaceResponse)
-  })
-_sym_db.RegisterMessage(GetSpaceResponse)
-
-ListOrganizationSpacesRequest = _reflection.GeneratedProtocolMessageType('ListOrganizationSpacesRequest', (_message.Message,), {
-  'DESCRIPTOR' : _LISTORGANIZATIONSPACESREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.ListOrganizationSpacesRequest)
-  })
-_sym_db.RegisterMessage(ListOrganizationSpacesRequest)
-
-ListOrganizationSpacesResponse = _reflection.GeneratedProtocolMessageType('ListOrganizationSpacesResponse', (_message.Message,), {
-  'DESCRIPTOR' : _LISTORGANIZATIONSPACESRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.ListOrganizationSpacesResponse)
-  })
-_sym_db.RegisterMessage(ListOrganizationSpacesResponse)
-
-UpdateSpaceRequest = _reflection.GeneratedProtocolMessageType('UpdateSpaceRequest', (_message.Message,), {
-  'DESCRIPTOR' : _UPDATESPACEREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.UpdateSpaceRequest)
-  })
-_sym_db.RegisterMessage(UpdateSpaceRequest)
-
-UpdateSpaceResponse = _reflection.GeneratedProtocolMessageType('UpdateSpaceResponse', (_message.Message,), {
-  'DESCRIPTOR' : _UPDATESPACERESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.UpdateSpaceResponse)
-  })
-_sym_db.RegisterMessage(UpdateSpaceResponse)
-
-DeleteSpaceRequest = _reflection.GeneratedProtocolMessageType('DeleteSpaceRequest', (_message.Message,), {
-  'DESCRIPTOR' : _DELETESPACEREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.DeleteSpaceRequest)
-  })
-_sym_db.RegisterMessage(DeleteSpaceRequest)
-
-DeleteSpaceResponse = _reflection.GeneratedProtocolMessageType('DeleteSpaceResponse', (_message.Message,), {
-  'DESCRIPTOR' : _DELETESPACERESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.DeleteSpaceResponse)
-  })
-_sym_db.RegisterMessage(DeleteSpaceResponse)
-
-CreateSpaceInvitationRequest = _reflection.GeneratedProtocolMessageType('CreateSpaceInvitationRequest', (_message.Message,), {
-  'DESCRIPTOR' : _CREATESPACEINVITATIONREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.CreateSpaceInvitationRequest)
-  })
-_sym_db.RegisterMessage(CreateSpaceInvitationRequest)
-
-CreateSpaceInvitationResponse = _reflection.GeneratedProtocolMessageType('CreateSpaceInvitationResponse', (_message.Message,), {
-  'DESCRIPTOR' : _CREATESPACEINVITATIONRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.CreateSpaceInvitationResponse)
-  })
-_sym_db.RegisterMessage(CreateSpaceInvitationResponse)
-
-GetSpaceInvitationRequest = _reflection.GeneratedProtocolMessageType('GetSpaceInvitationRequest', (_message.Message,), {
-  'DESCRIPTOR' : _GETSPACEINVITATIONREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.GetSpaceInvitationRequest)
-  })
-_sym_db.RegisterMessage(GetSpaceInvitationRequest)
-
-GetSpaceInvitationResponse = _reflection.GeneratedProtocolMessageType('GetSpaceInvitationResponse', (_message.Message,), {
-  'DESCRIPTOR' : _GETSPACEINVITATIONRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.GetSpaceInvitationResponse)
-  })
-_sym_db.RegisterMessage(GetSpaceInvitationResponse)
-
-UpdateSpaceInvitationRequest = _reflection.GeneratedProtocolMessageType('UpdateSpaceInvitationRequest', (_message.Message,), {
-  'DESCRIPTOR' : _UPDATESPACEINVITATIONREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.UpdateSpaceInvitationRequest)
-  })
-_sym_db.RegisterMessage(UpdateSpaceInvitationRequest)
-
-UpdateSpaceInvitationResponse = _reflection.GeneratedProtocolMessageType('UpdateSpaceInvitationResponse', (_message.Message,), {
-  'DESCRIPTOR' : _UPDATESPACEINVITATIONRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.UpdateSpaceInvitationResponse)
-  })
-_sym_db.RegisterMessage(UpdateSpaceInvitationResponse)
-
-AcceptSpaceInvitationRequest = _reflection.GeneratedProtocolMessageType('AcceptSpaceInvitationRequest', (_message.Message,), {
-  'DESCRIPTOR' : _ACCEPTSPACEINVITATIONREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.AcceptSpaceInvitationRequest)
-  })
-_sym_db.RegisterMessage(AcceptSpaceInvitationRequest)
-
-AcceptSpaceInvitationResponse = _reflection.GeneratedProtocolMessageType('AcceptSpaceInvitationResponse', (_message.Message,), {
-  'DESCRIPTOR' : _ACCEPTSPACEINVITATIONRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.AcceptSpaceInvitationResponse)
-  })
-_sym_db.RegisterMessage(AcceptSpaceInvitationResponse)
-
-FindSpaceInvitationsRequest = _reflection.GeneratedProtocolMessageType('FindSpaceInvitationsRequest', (_message.Message,), {
-  'DESCRIPTOR' : _FINDSPACEINVITATIONSREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.FindSpaceInvitationsRequest)
-  })
-_sym_db.RegisterMessage(FindSpaceInvitationsRequest)
-
-FindSpaceInvitationsResponse = _reflection.GeneratedProtocolMessageType('FindSpaceInvitationsResponse', (_message.Message,), {
-  'DESCRIPTOR' : _FINDSPACEINVITATIONSRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.FindSpaceInvitationsResponse)
-  })
-_sym_db.RegisterMessage(FindSpaceInvitationsResponse)
-
-DeleteSpaceInvitationRequest = _reflection.GeneratedProtocolMessageType('DeleteSpaceInvitationRequest', (_message.Message,), {
-  'DESCRIPTOR' : _DELETESPACEINVITATIONREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.DeleteSpaceInvitationRequest)
-  })
-_sym_db.RegisterMessage(DeleteSpaceInvitationRequest)
-
-DeleteSpaceInvitationResponse = _reflection.GeneratedProtocolMessageType('DeleteSpaceInvitationResponse', (_message.Message,), {
-  'DESCRIPTOR' : _DELETESPACEINVITATIONRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.DeleteSpaceInvitationResponse)
-  })
-_sym_db.RegisterMessage(DeleteSpaceInvitationResponse)
-
-SetSpaceMembershipRequest = _reflection.GeneratedProtocolMessageType('SetSpaceMembershipRequest', (_message.Message,), {
-  'DESCRIPTOR' : _SETSPACEMEMBERSHIPREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.SetSpaceMembershipRequest)
-  })
-_sym_db.RegisterMessage(SetSpaceMembershipRequest)
-
-SetSpaceMembershipResponse = _reflection.GeneratedProtocolMessageType('SetSpaceMembershipResponse', (_message.Message,), {
-  'DESCRIPTOR' : _SETSPACEMEMBERSHIPRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.SetSpaceMembershipResponse)
-  })
-_sym_db.RegisterMessage(SetSpaceMembershipResponse)
-
-DeleteSpaceMembershipRequest = _reflection.GeneratedProtocolMessageType('DeleteSpaceMembershipRequest', (_message.Message,), {
-  'DESCRIPTOR' : _DELETESPACEMEMBERSHIPREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.DeleteSpaceMembershipRequest)
-  })
-_sym_db.RegisterMessage(DeleteSpaceMembershipRequest)
-
-DeleteSpaceMembershipResponse = _reflection.GeneratedProtocolMessageType('DeleteSpaceMembershipResponse', (_message.Message,), {
-  'DESCRIPTOR' : _DELETESPACEMEMBERSHIPRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.DeleteSpaceMembershipResponse)
-  })
-_sym_db.RegisterMessage(DeleteSpaceMembershipResponse)
-
-FindSpaceMembershipsRequest = _reflection.GeneratedProtocolMessageType('FindSpaceMembershipsRequest', (_message.Message,), {
-  'DESCRIPTOR' : _FINDSPACEMEMBERSHIPSREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.FindSpaceMembershipsRequest)
-  })
-_sym_db.RegisterMessage(FindSpaceMembershipsRequest)
-
-FindSpaceMembershipsResponse = _reflection.GeneratedProtocolMessageType('FindSpaceMembershipsResponse', (_message.Message,), {
-
-  'SpaceMembership' : _reflection.GeneratedProtocolMessageType('SpaceMembership', (_message.Message,), {
-    'DESCRIPTOR' : _FINDSPACEMEMBERSHIPSRESPONSE_SPACEMEMBERSHIP,
-    '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-    # @@protoc_insertion_point(class_scope:accountmanagement.FindSpaceMembershipsResponse.SpaceMembership)
-    })
-  ,
-  'DESCRIPTOR' : _FINDSPACEMEMBERSHIPSRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.FindSpaceMembershipsResponse)
-  })
-_sym_db.RegisterMessage(FindSpaceMembershipsResponse)
-_sym_db.RegisterMessage(FindSpaceMembershipsResponse.SpaceMembership)
-
-CreateUserRequest = _reflection.GeneratedProtocolMessageType('CreateUserRequest', (_message.Message,), {
-  'DESCRIPTOR' : _CREATEUSERREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.CreateUserRequest)
-  })
-_sym_db.RegisterMessage(CreateUserRequest)
-
-CreateUserResponse = _reflection.GeneratedProtocolMessageType('CreateUserResponse', (_message.Message,), {
-  'DESCRIPTOR' : _CREATEUSERRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.CreateUserResponse)
-  })
-_sym_db.RegisterMessage(CreateUserResponse)
-
-GetCurrentUserRequest = _reflection.GeneratedProtocolMessageType('GetCurrentUserRequest', (_message.Message,), {
-  'DESCRIPTOR' : _GETCURRENTUSERREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.GetCurrentUserRequest)
-  })
-_sym_db.RegisterMessage(GetCurrentUserRequest)
-
-GetCurrentUserResponse = _reflection.GeneratedProtocolMessageType('GetCurrentUserResponse', (_message.Message,), {
-  'DESCRIPTOR' : _GETCURRENTUSERRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.GetCurrentUserResponse)
-  })
-_sym_db.RegisterMessage(GetCurrentUserResponse)
-
-UpdateCurrentUserRequest = _reflection.GeneratedProtocolMessageType('UpdateCurrentUserRequest', (_message.Message,), {
-  'DESCRIPTOR' : _UPDATECURRENTUSERREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.UpdateCurrentUserRequest)
-  })
-_sym_db.RegisterMessage(UpdateCurrentUserRequest)
-
-UpdateCurrentUserResponse = _reflection.GeneratedProtocolMessageType('UpdateCurrentUserResponse', (_message.Message,), {
-  'DESCRIPTOR' : _UPDATECURRENTUSERRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.UpdateCurrentUserResponse)
-  })
-_sym_db.RegisterMessage(UpdateCurrentUserResponse)
-
-GetUserRequest = _reflection.GeneratedProtocolMessageType('GetUserRequest', (_message.Message,), {
-  'DESCRIPTOR' : _GETUSERREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.GetUserRequest)
-  })
-_sym_db.RegisterMessage(GetUserRequest)
-
-GetUserResponse = _reflection.GeneratedProtocolMessageType('GetUserResponse', (_message.Message,), {
-  'DESCRIPTOR' : _GETUSERRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.GetUserResponse)
-  })
-_sym_db.RegisterMessage(GetUserResponse)
-
-FindUsersRequest = _reflection.GeneratedProtocolMessageType('FindUsersRequest', (_message.Message,), {
-  'DESCRIPTOR' : _FINDUSERSREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.FindUsersRequest)
-  })
-_sym_db.RegisterMessage(FindUsersRequest)
-
-FindUsersResponse = _reflection.GeneratedProtocolMessageType('FindUsersResponse', (_message.Message,), {
-  'DESCRIPTOR' : _FINDUSERSRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.FindUsersResponse)
-  })
-_sym_db.RegisterMessage(FindUsersResponse)
-
-UpdateUserRequest = _reflection.GeneratedProtocolMessageType('UpdateUserRequest', (_message.Message,), {
-  'DESCRIPTOR' : _UPDATEUSERREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.UpdateUserRequest)
-  })
-_sym_db.RegisterMessage(UpdateUserRequest)
-
-UpdateUserResponse = _reflection.GeneratedProtocolMessageType('UpdateUserResponse', (_message.Message,), {
-  'DESCRIPTOR' : _UPDATEUSERRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.UpdateUserResponse)
-  })
-_sym_db.RegisterMessage(UpdateUserResponse)
-
-DeleteUserRequest = _reflection.GeneratedProtocolMessageType('DeleteUserRequest', (_message.Message,), {
-  'DESCRIPTOR' : _DELETEUSERREQUEST,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.DeleteUserRequest)
-  })
-_sym_db.RegisterMessage(DeleteUserRequest)
-
-DeleteUserResponse = _reflection.GeneratedProtocolMessageType('DeleteUserResponse', (_message.Message,), {
-  'DESCRIPTOR' : _DELETEUSERRESPONSE,
-  '__module__' : 'perxis.accountmanagement.accountmanagement_pb2'
-  # @@protoc_insertion_point(class_scope:accountmanagement.DeleteUserResponse)
-  })
-_sym_db.RegisterMessage(DeleteUserResponse)
-
-
-DESCRIPTOR._options = None
-
-_ACCOUNTMANAGEMENT = _descriptor.ServiceDescriptor(
-  name='AccountManagement',
-  full_name='accountmanagement.AccountManagement',
-  file=DESCRIPTOR,
-  index=0,
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_start=4511,
-  serialized_end=7455,
-  methods=[
-  _descriptor.MethodDescriptor(
-    name='CreateUser',
-    full_name='accountmanagement.AccountManagement.CreateUser',
-    index=0,
-    containing_service=None,
-    input_type=_CREATEUSERREQUEST,
-    output_type=_CREATEUSERRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetUser',
-    full_name='accountmanagement.AccountManagement.GetUser',
-    index=1,
-    containing_service=None,
-    input_type=_GETUSERREQUEST,
-    output_type=_GETUSERRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='FindUsers',
-    full_name='accountmanagement.AccountManagement.FindUsers',
-    index=2,
-    containing_service=None,
-    input_type=_FINDUSERSREQUEST,
-    output_type=_FINDUSERSRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='UpdateUser',
-    full_name='accountmanagement.AccountManagement.UpdateUser',
-    index=3,
-    containing_service=None,
-    input_type=_UPDATEUSERREQUEST,
-    output_type=_UPDATEUSERRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='DeleteUser',
-    full_name='accountmanagement.AccountManagement.DeleteUser',
-    index=4,
-    containing_service=None,
-    input_type=_DELETEUSERREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetCurrentUser',
-    full_name='accountmanagement.AccountManagement.GetCurrentUser',
-    index=5,
-    containing_service=None,
-    input_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    output_type=_GETCURRENTUSERRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='UpdateCurrentUser',
-    full_name='accountmanagement.AccountManagement.UpdateCurrentUser',
-    index=6,
-    containing_service=None,
-    input_type=_UPDATECURRENTUSERREQUEST,
-    output_type=_UPDATECURRENTUSERRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='CreateOrganization',
-    full_name='accountmanagement.AccountManagement.CreateOrganization',
-    index=7,
-    containing_service=None,
-    input_type=_CREATEORGANIZATIONREQUEST,
-    output_type=_CREATEORGANIZATIONRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='DeleteOrganization',
-    full_name='accountmanagement.AccountManagement.DeleteOrganization',
-    index=8,
-    containing_service=None,
-    input_type=_DELETEORGANIZATIONREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='FindOrganizations',
-    full_name='accountmanagement.AccountManagement.FindOrganizations',
-    index=9,
-    containing_service=None,
-    input_type=_FINDORGANIZATIONSREQUEST,
-    output_type=_FINDORGANIZATIONSRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='UpdateOrganization',
-    full_name='accountmanagement.AccountManagement.UpdateOrganization',
-    index=10,
-    containing_service=None,
-    input_type=_UPDATEORGANIZATIONREQUEST,
-    output_type=_UPDATEORGANIZATIONRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='UpdateOrganizationMembership',
-    full_name='accountmanagement.AccountManagement.UpdateOrganizationMembership',
-    index=11,
-    containing_service=None,
-    input_type=_UPDATEORGANIZATIONMEMBERSHIPREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='DeleteOrganizationMembership',
-    full_name='accountmanagement.AccountManagement.DeleteOrganizationMembership',
-    index=12,
-    containing_service=None,
-    input_type=_DELETEORGANIZATIONMEMBERSHIPREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='FindOrganizationMemberships',
-    full_name='accountmanagement.AccountManagement.FindOrganizationMemberships',
-    index=13,
-    containing_service=None,
-    input_type=_FINDORGANIZATIONMEMBERSHIPSREQUEST,
-    output_type=_FINDORGANIZATIONMEMBERSHIPSRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='CreateSpace',
-    full_name='accountmanagement.AccountManagement.CreateSpace',
-    index=14,
-    containing_service=None,
-    input_type=_CREATESPACEREQUEST,
-    output_type=_CREATESPACERESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetSpace',
-    full_name='accountmanagement.AccountManagement.GetSpace',
-    index=15,
-    containing_service=None,
-    input_type=_GETSPACEREQUEST,
-    output_type=_GETSPACERESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListOrganizationSpaces',
-    full_name='accountmanagement.AccountManagement.ListOrganizationSpaces',
-    index=16,
-    containing_service=None,
-    input_type=_LISTORGANIZATIONSPACESREQUEST,
-    output_type=_LISTORGANIZATIONSPACESRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='UpdateSpace',
-    full_name='accountmanagement.AccountManagement.UpdateSpace',
-    index=17,
-    containing_service=None,
-    input_type=_UPDATESPACEREQUEST,
-    output_type=_UPDATESPACERESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='DeleteSpace',
-    full_name='accountmanagement.AccountManagement.DeleteSpace',
-    index=18,
-    containing_service=None,
-    input_type=_DELETESPACEREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='CreateSpaceInvitation',
-    full_name='accountmanagement.AccountManagement.CreateSpaceInvitation',
-    index=19,
-    containing_service=None,
-    input_type=_CREATESPACEINVITATIONREQUEST,
-    output_type=_CREATESPACEINVITATIONRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetSpaceInvitation',
-    full_name='accountmanagement.AccountManagement.GetSpaceInvitation',
-    index=20,
-    containing_service=None,
-    input_type=_GETSPACEINVITATIONREQUEST,
-    output_type=_GETSPACEINVITATIONRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='UpdateSpaceInvitation',
-    full_name='accountmanagement.AccountManagement.UpdateSpaceInvitation',
-    index=21,
-    containing_service=None,
-    input_type=_UPDATESPACEINVITATIONREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='AcceptSpaceInvitation',
-    full_name='accountmanagement.AccountManagement.AcceptSpaceInvitation',
-    index=22,
-    containing_service=None,
-    input_type=_ACCEPTSPACEINVITATIONREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='FindSpaceInvitations',
-    full_name='accountmanagement.AccountManagement.FindSpaceInvitations',
-    index=23,
-    containing_service=None,
-    input_type=_FINDSPACEINVITATIONSREQUEST,
-    output_type=_FINDSPACEINVITATIONSRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='DeleteSpaceInvitation',
-    full_name='accountmanagement.AccountManagement.DeleteSpaceInvitation',
-    index=24,
-    containing_service=None,
-    input_type=_DELETESPACEINVITATIONREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SetSpaceMembership',
-    full_name='accountmanagement.AccountManagement.SetSpaceMembership',
-    index=25,
-    containing_service=None,
-    input_type=_SETSPACEMEMBERSHIPREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='DeleteSpaceMembership',
-    full_name='accountmanagement.AccountManagement.DeleteSpaceMembership',
-    index=26,
-    containing_service=None,
-    input_type=_DELETESPACEMEMBERSHIPREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='FindSpaceMemberships',
-    full_name='accountmanagement.AccountManagement.FindSpaceMemberships',
-    index=27,
-    containing_service=None,
-    input_type=_FINDSPACEMEMBERSHIPSREQUEST,
-    output_type=_FINDSPACEMEMBERSHIPSRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-])
-_sym_db.RegisterServiceDescriptor(_ACCOUNTMANAGEMENT)
-
-DESCRIPTOR.services_by_name['AccountManagement'] = _ACCOUNTMANAGEMENT
-
-# @@protoc_insertion_point(module_scope)
diff --git a/perxis/accountmanagement/accountmanagement_pb2_grpc.py b/perxis/accountmanagement/accountmanagement_pb2_grpc.py
deleted file mode 100644
index e4dd970a10d3ab18bd955e00d5691a572373716b..0000000000000000000000000000000000000000
--- a/perxis/accountmanagement/accountmanagement_pb2_grpc.py
+++ /dev/null
@@ -1,1024 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-"""Client and server classes corresponding to protobuf-defined services."""
-import grpc
-
-from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
-from perxis.accountmanagement import accountmanagement_pb2 as perxis_dot_accountmanagement_dot_accountmanagement__pb2
-
-
-class AccountManagementStub(object):
-    """Пользователи
-    """
-
-    def __init__(self, channel):
-        """Constructor.
-
-        Args:
-            channel: A grpc.Channel.
-        """
-        self.CreateUser = channel.unary_unary(
-                '/accountmanagement.AccountManagement/CreateUser',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateUserRequest.SerializeToString,
-                response_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateUserResponse.FromString,
-                )
-        self.GetUser = channel.unary_unary(
-                '/accountmanagement.AccountManagement/GetUser',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.GetUserRequest.SerializeToString,
-                response_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.GetUserResponse.FromString,
-                )
-        self.FindUsers = channel.unary_unary(
-                '/accountmanagement.AccountManagement/FindUsers',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindUsersRequest.SerializeToString,
-                response_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindUsersResponse.FromString,
-                )
-        self.UpdateUser = channel.unary_unary(
-                '/accountmanagement.AccountManagement/UpdateUser',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateUserRequest.SerializeToString,
-                response_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateUserResponse.FromString,
-                )
-        self.DeleteUser = channel.unary_unary(
-                '/accountmanagement.AccountManagement/DeleteUser',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.DeleteUserRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.GetCurrentUser = channel.unary_unary(
-                '/accountmanagement.AccountManagement/GetCurrentUser',
-                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-                response_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.GetCurrentUserResponse.FromString,
-                )
-        self.UpdateCurrentUser = channel.unary_unary(
-                '/accountmanagement.AccountManagement/UpdateCurrentUser',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateCurrentUserRequest.SerializeToString,
-                response_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateCurrentUserResponse.FromString,
-                )
-        self.CreateOrganization = channel.unary_unary(
-                '/accountmanagement.AccountManagement/CreateOrganization',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateOrganizationRequest.SerializeToString,
-                response_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateOrganizationResponse.FromString,
-                )
-        self.DeleteOrganization = channel.unary_unary(
-                '/accountmanagement.AccountManagement/DeleteOrganization',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.DeleteOrganizationRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.FindOrganizations = channel.unary_unary(
-                '/accountmanagement.AccountManagement/FindOrganizations',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindOrganizationsRequest.SerializeToString,
-                response_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindOrganizationsResponse.FromString,
-                )
-        self.UpdateOrganization = channel.unary_unary(
-                '/accountmanagement.AccountManagement/UpdateOrganization',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateOrganizationRequest.SerializeToString,
-                response_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateOrganizationResponse.FromString,
-                )
-        self.UpdateOrganizationMembership = channel.unary_unary(
-                '/accountmanagement.AccountManagement/UpdateOrganizationMembership',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateOrganizationMembershipRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.DeleteOrganizationMembership = channel.unary_unary(
-                '/accountmanagement.AccountManagement/DeleteOrganizationMembership',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.DeleteOrganizationMembershipRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.FindOrganizationMemberships = channel.unary_unary(
-                '/accountmanagement.AccountManagement/FindOrganizationMemberships',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindOrganizationMembershipsRequest.SerializeToString,
-                response_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindOrganizationMembershipsResponse.FromString,
-                )
-        self.CreateSpace = channel.unary_unary(
-                '/accountmanagement.AccountManagement/CreateSpace',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateSpaceRequest.SerializeToString,
-                response_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateSpaceResponse.FromString,
-                )
-        self.GetSpace = channel.unary_unary(
-                '/accountmanagement.AccountManagement/GetSpace',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.GetSpaceRequest.SerializeToString,
-                response_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.GetSpaceResponse.FromString,
-                )
-        self.ListOrganizationSpaces = channel.unary_unary(
-                '/accountmanagement.AccountManagement/ListOrganizationSpaces',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.ListOrganizationSpacesRequest.SerializeToString,
-                response_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.ListOrganizationSpacesResponse.FromString,
-                )
-        self.UpdateSpace = channel.unary_unary(
-                '/accountmanagement.AccountManagement/UpdateSpace',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateSpaceRequest.SerializeToString,
-                response_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateSpaceResponse.FromString,
-                )
-        self.DeleteSpace = channel.unary_unary(
-                '/accountmanagement.AccountManagement/DeleteSpace',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.DeleteSpaceRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.CreateSpaceInvitation = channel.unary_unary(
-                '/accountmanagement.AccountManagement/CreateSpaceInvitation',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateSpaceInvitationRequest.SerializeToString,
-                response_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateSpaceInvitationResponse.FromString,
-                )
-        self.GetSpaceInvitation = channel.unary_unary(
-                '/accountmanagement.AccountManagement/GetSpaceInvitation',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.GetSpaceInvitationRequest.SerializeToString,
-                response_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.GetSpaceInvitationResponse.FromString,
-                )
-        self.UpdateSpaceInvitation = channel.unary_unary(
-                '/accountmanagement.AccountManagement/UpdateSpaceInvitation',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateSpaceInvitationRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.AcceptSpaceInvitation = channel.unary_unary(
-                '/accountmanagement.AccountManagement/AcceptSpaceInvitation',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.AcceptSpaceInvitationRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.FindSpaceInvitations = channel.unary_unary(
-                '/accountmanagement.AccountManagement/FindSpaceInvitations',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindSpaceInvitationsRequest.SerializeToString,
-                response_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindSpaceInvitationsResponse.FromString,
-                )
-        self.DeleteSpaceInvitation = channel.unary_unary(
-                '/accountmanagement.AccountManagement/DeleteSpaceInvitation',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.DeleteSpaceInvitationRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.SetSpaceMembership = channel.unary_unary(
-                '/accountmanagement.AccountManagement/SetSpaceMembership',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.SetSpaceMembershipRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.DeleteSpaceMembership = channel.unary_unary(
-                '/accountmanagement.AccountManagement/DeleteSpaceMembership',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.DeleteSpaceMembershipRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.FindSpaceMemberships = channel.unary_unary(
-                '/accountmanagement.AccountManagement/FindSpaceMemberships',
-                request_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindSpaceMembershipsRequest.SerializeToString,
-                response_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindSpaceMembershipsResponse.FromString,
-                )
-
-
-class AccountManagementServicer(object):
-    """Пользователи
-    """
-
-    def CreateUser(self, request, context):
-        """Создать пользователя
-        System API: только системный пользователь может использовать
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def GetUser(self, request, context):
-        """Получить текущего пользователя
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def FindUsers(self, request, context):
-        """Получить список пользователей
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def UpdateUser(self, request, context):
-        """Обновить текущего пользователя
-        System API: только системный пользователь может использовать
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def DeleteUser(self, request, context):
-        """Удалить пользователя
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def GetCurrentUser(self, request, context):
-        """Получить текущего пользователя
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def UpdateCurrentUser(self, request, context):
-        """Обновить или зарегистрировать текущего пользователя
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def CreateOrganization(self, request, context):
-        """
-        Organizations (Организации)
-
-
-        Создает организацию
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def DeleteOrganization(self, request, context):
-        """Удалить организацию
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def FindOrganizations(self, request, context):
-        """Поиск организаций
-
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def UpdateOrganization(self, request, context):
-        """Обновление организации
-
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def UpdateOrganizationMembership(self, request, context):
-        """
-        Memberships (Членство в организации)
-
-
-        Обновить членство пользователя в организации
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def DeleteOrganizationMembership(self, request, context):
-        """Удалить пользователя из организации
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def FindOrganizationMemberships(self, request, context):
-        """Получить членство пользователей в организации или команде
-        Использование параметров
-        - Для поиска членов организации: organization_id
-        - Для поиска организаций где пользователь является членом: user_id
-        - Для поиска организаций владельцем которых является пользователь: user_id, Role = OWNER
-        - Для поиска организаций которыми пользователь может управлять: user_id, Role = [OWNER, ADMIN]
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def CreateSpace(self, request, context):
-        """
-        Spaces (Пространства)
-
-
-        Создает пространство в организации или пользователе
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def GetSpace(self, request, context):
-        """Получить информацию о пространстве
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def ListOrganizationSpaces(self, request, context):
-        """Получить список пространств в организации доступных
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def UpdateSpace(self, request, context):
-        """Обновить информацию о пространстве
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def DeleteSpace(self, request, context):
-        """Удалить пространство
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def CreateSpaceInvitation(self, request, context):
-        """
-        Членство в Spaces
-
-
-        Создать приглашение для пользователя в space
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def GetSpaceInvitation(self, request, context):
-        """Получить данные о приглашении
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def UpdateSpaceInvitation(self, request, context):
-        """Обновить данные о приглашении
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def AcceptSpaceInvitation(self, request, context):
-        """Принять приглашение
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def FindSpaceInvitations(self, request, context):
-        """Получить список приглашений для пространства
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def DeleteSpaceInvitation(self, request, context):
-        """Удалить приглашение
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def SetSpaceMembership(self, request, context):
-        """Обновляет участие пользователя в пространстве
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def DeleteSpaceMembership(self, request, context):
-        """Удаляет участия пользователя в пространстве
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def FindSpaceMemberships(self, request, context):
-        """Поиск членства пользователей в пространствах
-        Доступы:
-        - System - может получать что хочет
-        - Owner, Admin - может запрашивать что хочет в своих организациях (даже если сам не является членом пространства)
-        - стальные - может запрашивать что хочет в пространствах в которых является членом (не только свои но и других пользователей в пространстве)
-        Использование параметров
-        - Для поиска членств для всех пространств организации: organization_id
-        - Для поиска членов пространства: space_id
-        - Для поиска пространств, где пользователь является членом: user_id
-        - Для поиска пространств, где пользователю соответствует данная роль - user_id, space_role
-        Сортировка по умолчанию по "organization_id", "space_id", "user_id"
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-
-def add_AccountManagementServicer_to_server(servicer, server):
-    rpc_method_handlers = {
-            'CreateUser': grpc.unary_unary_rpc_method_handler(
-                    servicer.CreateUser,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateUserRequest.FromString,
-                    response_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateUserResponse.SerializeToString,
-            ),
-            'GetUser': grpc.unary_unary_rpc_method_handler(
-                    servicer.GetUser,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.GetUserRequest.FromString,
-                    response_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.GetUserResponse.SerializeToString,
-            ),
-            'FindUsers': grpc.unary_unary_rpc_method_handler(
-                    servicer.FindUsers,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindUsersRequest.FromString,
-                    response_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindUsersResponse.SerializeToString,
-            ),
-            'UpdateUser': grpc.unary_unary_rpc_method_handler(
-                    servicer.UpdateUser,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateUserRequest.FromString,
-                    response_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateUserResponse.SerializeToString,
-            ),
-            'DeleteUser': grpc.unary_unary_rpc_method_handler(
-                    servicer.DeleteUser,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.DeleteUserRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'GetCurrentUser': grpc.unary_unary_rpc_method_handler(
-                    servicer.GetCurrentUser,
-                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                    response_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.GetCurrentUserResponse.SerializeToString,
-            ),
-            'UpdateCurrentUser': grpc.unary_unary_rpc_method_handler(
-                    servicer.UpdateCurrentUser,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateCurrentUserRequest.FromString,
-                    response_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateCurrentUserResponse.SerializeToString,
-            ),
-            'CreateOrganization': grpc.unary_unary_rpc_method_handler(
-                    servicer.CreateOrganization,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateOrganizationRequest.FromString,
-                    response_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateOrganizationResponse.SerializeToString,
-            ),
-            'DeleteOrganization': grpc.unary_unary_rpc_method_handler(
-                    servicer.DeleteOrganization,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.DeleteOrganizationRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'FindOrganizations': grpc.unary_unary_rpc_method_handler(
-                    servicer.FindOrganizations,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindOrganizationsRequest.FromString,
-                    response_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindOrganizationsResponse.SerializeToString,
-            ),
-            'UpdateOrganization': grpc.unary_unary_rpc_method_handler(
-                    servicer.UpdateOrganization,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateOrganizationRequest.FromString,
-                    response_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateOrganizationResponse.SerializeToString,
-            ),
-            'UpdateOrganizationMembership': grpc.unary_unary_rpc_method_handler(
-                    servicer.UpdateOrganizationMembership,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateOrganizationMembershipRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'DeleteOrganizationMembership': grpc.unary_unary_rpc_method_handler(
-                    servicer.DeleteOrganizationMembership,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.DeleteOrganizationMembershipRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'FindOrganizationMemberships': grpc.unary_unary_rpc_method_handler(
-                    servicer.FindOrganizationMemberships,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindOrganizationMembershipsRequest.FromString,
-                    response_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindOrganizationMembershipsResponse.SerializeToString,
-            ),
-            'CreateSpace': grpc.unary_unary_rpc_method_handler(
-                    servicer.CreateSpace,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateSpaceRequest.FromString,
-                    response_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateSpaceResponse.SerializeToString,
-            ),
-            'GetSpace': grpc.unary_unary_rpc_method_handler(
-                    servicer.GetSpace,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.GetSpaceRequest.FromString,
-                    response_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.GetSpaceResponse.SerializeToString,
-            ),
-            'ListOrganizationSpaces': grpc.unary_unary_rpc_method_handler(
-                    servicer.ListOrganizationSpaces,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.ListOrganizationSpacesRequest.FromString,
-                    response_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.ListOrganizationSpacesResponse.SerializeToString,
-            ),
-            'UpdateSpace': grpc.unary_unary_rpc_method_handler(
-                    servicer.UpdateSpace,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateSpaceRequest.FromString,
-                    response_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateSpaceResponse.SerializeToString,
-            ),
-            'DeleteSpace': grpc.unary_unary_rpc_method_handler(
-                    servicer.DeleteSpace,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.DeleteSpaceRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'CreateSpaceInvitation': grpc.unary_unary_rpc_method_handler(
-                    servicer.CreateSpaceInvitation,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateSpaceInvitationRequest.FromString,
-                    response_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateSpaceInvitationResponse.SerializeToString,
-            ),
-            'GetSpaceInvitation': grpc.unary_unary_rpc_method_handler(
-                    servicer.GetSpaceInvitation,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.GetSpaceInvitationRequest.FromString,
-                    response_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.GetSpaceInvitationResponse.SerializeToString,
-            ),
-            'UpdateSpaceInvitation': grpc.unary_unary_rpc_method_handler(
-                    servicer.UpdateSpaceInvitation,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateSpaceInvitationRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'AcceptSpaceInvitation': grpc.unary_unary_rpc_method_handler(
-                    servicer.AcceptSpaceInvitation,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.AcceptSpaceInvitationRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'FindSpaceInvitations': grpc.unary_unary_rpc_method_handler(
-                    servicer.FindSpaceInvitations,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindSpaceInvitationsRequest.FromString,
-                    response_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindSpaceInvitationsResponse.SerializeToString,
-            ),
-            'DeleteSpaceInvitation': grpc.unary_unary_rpc_method_handler(
-                    servicer.DeleteSpaceInvitation,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.DeleteSpaceInvitationRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'SetSpaceMembership': grpc.unary_unary_rpc_method_handler(
-                    servicer.SetSpaceMembership,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.SetSpaceMembershipRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'DeleteSpaceMembership': grpc.unary_unary_rpc_method_handler(
-                    servicer.DeleteSpaceMembership,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.DeleteSpaceMembershipRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'FindSpaceMemberships': grpc.unary_unary_rpc_method_handler(
-                    servicer.FindSpaceMemberships,
-                    request_deserializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindSpaceMembershipsRequest.FromString,
-                    response_serializer=perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindSpaceMembershipsResponse.SerializeToString,
-            ),
-    }
-    generic_handler = grpc.method_handlers_generic_handler(
-            'accountmanagement.AccountManagement', rpc_method_handlers)
-    server.add_generic_rpc_handlers((generic_handler,))
-
-
- # This class is part of an EXPERIMENTAL API.
-class AccountManagement(object):
-    """Пользователи
-    """
-
-    @staticmethod
-    def CreateUser(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/CreateUser',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateUserRequest.SerializeToString,
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateUserResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def GetUser(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/GetUser',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.GetUserRequest.SerializeToString,
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.GetUserResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def FindUsers(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/FindUsers',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindUsersRequest.SerializeToString,
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindUsersResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def UpdateUser(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/UpdateUser',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateUserRequest.SerializeToString,
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateUserResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def DeleteUser(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/DeleteUser',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.DeleteUserRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def GetCurrentUser(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/GetCurrentUser',
-            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.GetCurrentUserResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def UpdateCurrentUser(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/UpdateCurrentUser',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateCurrentUserRequest.SerializeToString,
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateCurrentUserResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def CreateOrganization(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/CreateOrganization',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateOrganizationRequest.SerializeToString,
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateOrganizationResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def DeleteOrganization(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/DeleteOrganization',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.DeleteOrganizationRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def FindOrganizations(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/FindOrganizations',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindOrganizationsRequest.SerializeToString,
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindOrganizationsResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def UpdateOrganization(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/UpdateOrganization',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateOrganizationRequest.SerializeToString,
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateOrganizationResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def UpdateOrganizationMembership(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/UpdateOrganizationMembership',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateOrganizationMembershipRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def DeleteOrganizationMembership(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/DeleteOrganizationMembership',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.DeleteOrganizationMembershipRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def FindOrganizationMemberships(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/FindOrganizationMemberships',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindOrganizationMembershipsRequest.SerializeToString,
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindOrganizationMembershipsResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def CreateSpace(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/CreateSpace',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateSpaceRequest.SerializeToString,
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateSpaceResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def GetSpace(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/GetSpace',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.GetSpaceRequest.SerializeToString,
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.GetSpaceResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def ListOrganizationSpaces(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/ListOrganizationSpaces',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.ListOrganizationSpacesRequest.SerializeToString,
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.ListOrganizationSpacesResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def UpdateSpace(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/UpdateSpace',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateSpaceRequest.SerializeToString,
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateSpaceResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def DeleteSpace(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/DeleteSpace',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.DeleteSpaceRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def CreateSpaceInvitation(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/CreateSpaceInvitation',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateSpaceInvitationRequest.SerializeToString,
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.CreateSpaceInvitationResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def GetSpaceInvitation(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/GetSpaceInvitation',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.GetSpaceInvitationRequest.SerializeToString,
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.GetSpaceInvitationResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def UpdateSpaceInvitation(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/UpdateSpaceInvitation',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.UpdateSpaceInvitationRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def AcceptSpaceInvitation(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/AcceptSpaceInvitation',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.AcceptSpaceInvitationRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def FindSpaceInvitations(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/FindSpaceInvitations',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindSpaceInvitationsRequest.SerializeToString,
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindSpaceInvitationsResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def DeleteSpaceInvitation(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/DeleteSpaceInvitation',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.DeleteSpaceInvitationRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def SetSpaceMembership(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/SetSpaceMembership',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.SetSpaceMembershipRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def DeleteSpaceMembership(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/DeleteSpaceMembership',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.DeleteSpaceMembershipRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def FindSpaceMemberships(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/accountmanagement.AccountManagement/FindSpaceMemberships',
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindSpaceMembershipsRequest.SerializeToString,
-            perxis_dot_accountmanagement_dot_accountmanagement__pb2.FindSpaceMembershipsResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
diff --git a/perxis/auth.py b/perxis/auth.py
index a11c983ceab34e8d6243d4fe867a7db3bf31ad8d..d6a3e06c32fc447e76f6e861321d00439ac1b4cd 100644
--- a/perxis/auth.py
+++ b/perxis/auth.py
@@ -1,5 +1,4 @@
 import time
-from typing import Type
 
 import grpc
 
@@ -10,7 +9,7 @@ from requests_oauthlib import OAuth2Session
 class OAuth2Plugin(grpc.AuthMetadataPlugin):
     _token = None
 
-    def __init__(self, client: Type[Client], client_secret: str, token_url: str, audience: str,
+    def __init__(self, client: Client, client_secret: str, token_url: str, audience: str,
                  signature_header_key: str = 'authorization', token_type: str = 'Bearer') -> None:
 
         self._client_secret = client_secret
diff --git a/perxis/common/common_pb2.py b/perxis/common/common_pb2.py
index a3cc66597e94a0a7b1f52243c1f776248585c3f1..50b568f080a6b1c2a1acbcfe472e250e506c91d5 100644
--- a/perxis/common/common_pb2.py
+++ b/perxis/common/common_pb2.py
@@ -12,9 +12,7 @@ from google.protobuf import symbol_database as _symbol_database
 _sym_db = _symbol_database.Default()
 
 
-from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
 from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
-from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2
 
 
 DESCRIPTOR = _descriptor.FileDescriptor(
@@ -23,67 +21,10 @@ DESCRIPTOR = _descriptor.FileDescriptor(
   syntax='proto3',
   serialized_options=b'Z.github.com/perxteam/perxis/proto/common;common',
   create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x1aperxis/common/common.proto\x12\x06\x63ommon\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xb1\x01\n\x04User\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x12\n\nidentities\x18\x03 \x03(\t\x12\x14\n\x0c\x64isplay_name\x18\x04 \x01(\t\x12\r\n\x05\x65mail\x18\x05 \x01(\t\x12\x16\n\x0e\x65mail_verified\x18\x06 \x01(\x08\x12\x12\n\navatar_uri\x18\x07 \x01(\t\x12*\n\x06system\x18\n \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"O\n\x0cOrganization\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x10\n\x08logo_uri\x18\x05 \x01(\t\"j\n\x16OrganizationMembership\x12\n\n\x02id\x18\x01 \x01(\t\x12\x17\n\x0forganization_id\x18\x02 \x01(\t\x12\x0f\n\x07user_id\x18\x03 \x01(\t\x12\x1a\n\x04role\x18\x04 \x01(\x0e\x32\x0c.common.Role\"\xac\x02\n\x0fSpaceInvitation\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x17\n\x0forganization_id\x18\x03 \x01(\t\x12\x10\n\x08space_id\x18\x04 \x01(\t\x12\x12\n\ncreated_by\x18\x05 \x01(\t\x12\x12\n\nspace_role\x18\x06 \x01(\t\x12\x0c\n\x04sent\x18\x07 \x01(\x08\x12\x0f\n\x07pending\x18\x08 \x01(\x08\x12.\n\ncreated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12+\n\x07sent_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bvalid_until\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"n\n\x05Space\x12\n\n\x02id\x18\x01 \x01(\t\x12\x17\n\x0forganization_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x0c\n\x04host\x18\x05 \x01(\t\x12\x0f\n\x07\x61pi_url\x18\x06 \x01(\t\"\xe4\x01\n\nCollection\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08space_id\x18\x02 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x0e\n\x06schema\x18\x05 \x01(\t\x12*\n\x06single\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12*\n\x06hidden\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12*\n\x06system\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\xf5\x03\n\x04Item\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08space_id\x18\x02 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x03 \x01(\t\x12\x15\n\rcollection_id\x18\x04 \x01(\t\x12\x0e\n\x06status\x18\x05 \x01(\t\x12.\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\ncreated_by\x18\x07 \x01(\t\x12%\n\x04\x64\x61ta\x18\x08 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x34\n\x0ctranslations\x18\t \x03(\x0b\x32\x1e.common.Item.TranslationsEntry\x12\x13\n\x0brevision_id\x18\n \x01(\t\x12\x30\n\x0cpublished_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x0cpublished_by\x18\x0c \x01(\t\x12/\n\x0b\x61rchived_at\x18\r \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x0b\x61rchived_by\x18\x0e \x01(\t\x1aL\n\x11TranslationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct:\x02\x38\x01\"\xa7\x01\n\x10\x46indItemsOptions\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12\x1f\n\x07\x66ilters\x18\x04 \x03(\x0b\x32\x0e.common.Filter\x12\x10\n\x08page_num\x18\x08 \x01(\x05\x12\x11\n\tpage_size\x18\t \x01(\x05\x12\x0c\n\x04sort\x18\n \x03(\t\"\xb5\x01\n\x0b\x45nvironment\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08space_id\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12(\n\x05state\x18\x04 \x01(\x0e\x32\x19.common.Environment.State\x12\x0f\n\x07\x61liases\x18\x05 \x03(\t\"8\n\x05State\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\t\n\x05READY\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\"4\n\x06Locale\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08space_id\x18\x03 \x01(\t\"x\n\tSpaceRole\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08space_id\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12*\n\rcontent_rules\x18\x06 \x03(\x0b\x32\x13.common.ContentRule\"\xfd\x01\n\x0b\x43ontentRule\x12\n\n\x02id\x18\x01 \x01(\t\x12\x15\n\rcollection_id\x18\x02 \x01(\t\x12\"\n\x06\x63reate\x18\x05 \x01(\x0e\x32\x12.common.ItemAccess\x12 \n\x04read\x18\x06 \x01(\x0e\x32\x12.common.ItemAccess\x12\"\n\x06update\x18\x07 \x01(\x0e\x32\x12.common.ItemAccess\x12\"\n\x06\x64\x65lete\x18\x08 \x01(\x0e\x32\x12.common.ItemAccess\x12\x1d\n\x15\x66ields_read_blacklist\x18\n \x03(\t\x12\x1e\n\x16\x66ields_write_blacklist\x18\x0b \x03(\t\"J\n\x06\x46ilter\x12\n\n\x02op\x18\x01 \x01(\t\x12\r\n\x05\x66ield\x18\x02 \x01(\t\x12%\n\x05value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.Value\"N\n\x04\x46ile\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04size\x18\x03 \x01(\x05\x12\x11\n\tmime_type\x18\x04 \x01(\t\x12\x0b\n\x03url\x18\x05 \x01(\t\"@\n\x0b\x46indOptions\x12\x0c\n\x04sort\x18\x01 \x03(\t\x12\x10\n\x08page_num\x18\x02 \x01(\x05\x12\x11\n\tpage_size\x18\x03 \x01(\x05\"\x86\x01\n\x04Rule\x12\x15\n\rcollection_id\x18\x01 \x01(\t\x12\x1f\n\x07\x61\x63tions\x18\x02 \x03(\x0e\x32\x0e.common.Action\x12\x1e\n\x06\x61\x63\x63\x65ss\x18\x03 \x01(\x0e\x32\x0e.common.Access\x12\x0e\n\x06\x66ields\x18\x06 \x03(\t\x12\x16\n\x0e\x66ields_allowed\x18\x07 \x01(\x08\"?\n\x0c\x43ollaborator\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12\x0c\n\x04role\x18\x03 \x01(\t\"p\n\x07Version\x12\x16\n\x0eserver_version\x18\x01 \x01(\t\x12\x13\n\x0b\x61pi_version\x18\x02 \x01(\t\x12\x12\n\nbuild_time\x18\x03 \x01(\t\x12\x0e\n\x06\x63ommit\x18\x04 \x01(\t\x12\x14\n\x0c\x62uild_number\x18\x05 \x01(\x05*8\n\x04Role\x12\x0e\n\nNOT_MEMBER\x10\x00\x12\n\n\x06MEMBER\x10\x01\x12\t\n\x05OWNER\x10\x02\x12\t\n\x05\x41\x44MIN\x10\x03*\x16\n\nItemAccess\x12\x08\n\x04NONE\x10\x00*%\n\x06\x41\x63\x63\x65ss\x12\x07\n\x03\x41NY\x10\x00\x12\x08\n\x04MINE\x10\x01\x12\x08\n\x04ROLE\x10\x02*C\n\x06\x41\x63tion\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x43REATE\x10\x01\x12\x08\n\x04READ\x10\x02\x12\n\n\x06UPDATE\x10\x03\x12\n\n\x06\x44\x45LETE\x10\x04\x42\x30Z.github.com/perxteam/perxis/proto/common;commonb\x06proto3'
+  serialized_pb=b'\n\x1aperxis/common/common.proto\x12\x06\x63ommon\x1a\x1cgoogle/protobuf/struct.proto\"\xa6\x05\n\x05\x45rror\x12\x12\n\nerror_code\x18\x01 \x01(\x04\x12\x10\n\x08\x65rror_id\x18\x02 \x01(\t\x12\x0e\n\x06reason\x18\x03 \x01(\t\x12\x0e\n\x06\x64omain\x18\x04 \x01(\t\x12-\n\x08metadata\x18\t \x03(\x0b\x32\x1b.common.Error.MetadataEntry\x12-\n\x0b\x62\x61\x64_request\x18\n \x01(\x0b\x32\x18.common.Error.BadRequest\x12+\n\ndebug_info\x18\x0b \x01(\x0b\x32\x17.common.Error.DebugInfo\x12 \n\x04help\x18\x64 \x01(\x0b\x32\x12.common.Error.Help\x12;\n\x12localized_messages\x18\xc8\x01 \x03(\x0b\x32\x1e.common.Error.LocalizedMessage\x1a{\n\nBadRequest\x12\x37\n\x06\x65rrors\x18\x01 \x03(\x0b\x32\'.common.Error.BadRequest.FieldViolation\x1a\x34\n\x0e\x46ieldViolation\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x1aX\n\x04Help\x12&\n\x05links\x18\x01 \x03(\x0b\x32\x17.common.Error.Help.Link\x1a(\n\x04Link\x12\x13\n\x0b\x64\x65scription\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x1a\x30\n\tDebugInfo\x12\x13\n\x0bstack_trace\x18\x01 \x03(\t\x12\x0e\n\x06\x64\x65tail\x18\x02 \x01(\t\x1a\x33\n\x10LocalizedMessage\x12\x0e\n\x06locale\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"J\n\x06\x46ilter\x12\n\n\x02op\x18\x01 \x01(\t\x12\r\n\x05\x66ield\x18\x02 \x01(\t\x12%\n\x05value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.Value\"@\n\x0b\x46indOptions\x12\x0c\n\x04sort\x18\x01 \x03(\t\x12\x10\n\x08page_num\x18\x02 \x01(\x05\x12\x11\n\tpage_size\x18\x03 \x01(\x05\"\xa8\x01\n\x04Rule\x12\x15\n\rcollection_id\x18\x01 \x01(\t\x12\x1f\n\x07\x61\x63tions\x18\x02 \x03(\x0e\x32\x0e.common.Action\x12\x1e\n\x06\x61\x63\x63\x65ss\x18\x03 \x01(\x0e\x32\x0e.common.Access\x12\x15\n\rhidden_fields\x18\x05 \x03(\t\x12\x17\n\x0freadonly_fields\x18\x06 \x03(\t\x12\x18\n\x10writeonly_fields\x18\x07 \x03(\t\"?\n\x0c\x43ollaborator\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12\x0c\n\x04role\x18\x03 \x01(\t\"p\n\x07Version\x12\x16\n\x0eserver_version\x18\x01 \x01(\t\x12\x13\n\x0b\x61pi_version\x18\x02 \x01(\t\x12\x12\n\nbuild_time\x18\x03 \x01(\t\x12\x0e\n\x06\x63ommit\x18\x04 \x01(\t\x12\x14\n\x0c\x62uild_number\x18\x05 \x01(\x05*%\n\x06\x41\x63\x63\x65ss\x12\x07\n\x03\x41NY\x10\x00\x12\x08\n\x04MINE\x10\x01\x12\x08\n\x04ROLE\x10\x02*C\n\x06\x41\x63tion\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06\x43REATE\x10\x01\x12\x08\n\x04READ\x10\x02\x12\n\n\x06UPDATE\x10\x03\x12\n\n\x06\x44\x45LETE\x10\x04\x42\x30Z.github.com/perxteam/perxis/proto/common;commonb\x06proto3'
   ,
-  dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,google_dot_protobuf_dot_struct__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,])
+  dependencies=[google_dot_protobuf_dot_struct__pb2.DESCRIPTOR,])
 
-_ROLE = _descriptor.EnumDescriptor(
-  name='Role',
-  full_name='common.Role',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='NOT_MEMBER', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='MEMBER', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='OWNER', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='ADMIN', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=2976,
-  serialized_end=3032,
-)
-_sym_db.RegisterEnumDescriptor(_ROLE)
-
-Role = enum_type_wrapper.EnumTypeWrapper(_ROLE)
-_ITEMACCESS = _descriptor.EnumDescriptor(
-  name='ItemAccess',
-  full_name='common.ItemAccess',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='NONE', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=3034,
-  serialized_end=3056,
-)
-_sym_db.RegisterEnumDescriptor(_ITEMACCESS)
-
-ItemAccess = enum_type_wrapper.EnumTypeWrapper(_ITEMACCESS)
 _ACCESS = _descriptor.EnumDescriptor(
   name='Access',
   full_name='common.Access',
@@ -109,8 +50,8 @@ _ACCESS = _descriptor.EnumDescriptor(
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=3058,
-  serialized_end=3095,
+  serialized_start=1241,
+  serialized_end=1278,
 )
 _sym_db.RegisterEnumDescriptor(_ACCESS)
 
@@ -150,17 +91,12 @@ _ACTION = _descriptor.EnumDescriptor(
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=3097,
-  serialized_end=3164,
+  serialized_start=1280,
+  serialized_end=1347,
 )
 _sym_db.RegisterEnumDescriptor(_ACTION)
 
 Action = enum_type_wrapper.EnumTypeWrapper(_ACTION)
-NOT_MEMBER = 0
-MEMBER = 1
-OWNER = 2
-ADMIN = 3
-NONE = 0
 ANY = 0
 MINE = 1
 ROLE = 2
@@ -168,630 +104,67 @@ UNKNOWN = 0
 CREATE = 1
 READ = 2
 UPDATE = 3
-DELETE = 4
-
-
-_ENVIRONMENT_STATE = _descriptor.EnumDescriptor(
-  name='State',
-  full_name='common.Environment.State',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='PENDING', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='READY', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='FAILED', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=1948,
-  serialized_end=2004,
-)
-_sym_db.RegisterEnumDescriptor(_ENVIRONMENT_STATE)
-
-
-_USER = _descriptor.Descriptor(
-  name='User',
-  full_name='common.User',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='common.User.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='name', full_name='common.User.name', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='identities', full_name='common.User.identities', index=2,
-      number=3, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='display_name', full_name='common.User.display_name', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='email', full_name='common.User.email', index=4,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='email_verified', full_name='common.User.email_verified', index=5,
-      number=6, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='avatar_uri', full_name='common.User.avatar_uri', index=6,
-      number=7, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='system', full_name='common.User.system', index=7,
-      number=10, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=134,
-  serialized_end=311,
-)
-
-
-_ORGANIZATION = _descriptor.Descriptor(
-  name='Organization',
-  full_name='common.Organization',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='common.Organization.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='name', full_name='common.Organization.name', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='description', full_name='common.Organization.description', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='logo_uri', full_name='common.Organization.logo_uri', index=3,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=313,
-  serialized_end=392,
-)
-
-
-_ORGANIZATIONMEMBERSHIP = _descriptor.Descriptor(
-  name='OrganizationMembership',
-  full_name='common.OrganizationMembership',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='common.OrganizationMembership.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='organization_id', full_name='common.OrganizationMembership.organization_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='user_id', full_name='common.OrganizationMembership.user_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='role', full_name='common.OrganizationMembership.role', index=3,
-      number=4, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=394,
-  serialized_end=500,
-)
-
-
-_SPACEINVITATION = _descriptor.Descriptor(
-  name='SpaceInvitation',
-  full_name='common.SpaceInvitation',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='common.SpaceInvitation.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='email', full_name='common.SpaceInvitation.email', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='organization_id', full_name='common.SpaceInvitation.organization_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='common.SpaceInvitation.space_id', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='created_by', full_name='common.SpaceInvitation.created_by', index=4,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_role', full_name='common.SpaceInvitation.space_role', index=5,
-      number=6, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='sent', full_name='common.SpaceInvitation.sent', index=6,
-      number=7, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='pending', full_name='common.SpaceInvitation.pending', index=7,
-      number=8, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='created_at', full_name='common.SpaceInvitation.created_at', index=8,
-      number=9, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='sent_at', full_name='common.SpaceInvitation.sent_at', index=9,
-      number=10, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='valid_until', full_name='common.SpaceInvitation.valid_until', index=10,
-      number=11, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=503,
-  serialized_end=803,
-)
-
-
-_SPACE = _descriptor.Descriptor(
-  name='Space',
-  full_name='common.Space',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='common.Space.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='organization_id', full_name='common.Space.organization_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='name', full_name='common.Space.name', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='description', full_name='common.Space.description', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='host', full_name='common.Space.host', index=4,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='api_url', full_name='common.Space.api_url', index=5,
-      number=6, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=805,
-  serialized_end=915,
-)
-
-
-_COLLECTION = _descriptor.Descriptor(
-  name='Collection',
-  full_name='common.Collection',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='common.Collection.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='common.Collection.space_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='environment_id', full_name='common.Collection.environment_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='name', full_name='common.Collection.name', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='schema', full_name='common.Collection.schema', index=4,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='single', full_name='common.Collection.single', index=5,
-      number=6, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='hidden', full_name='common.Collection.hidden', index=6,
-      number=7, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='system', full_name='common.Collection.system', index=7,
-      number=8, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=918,
-  serialized_end=1146,
-)
-
-
-_ITEM_TRANSLATIONSENTRY = _descriptor.Descriptor(
-  name='TranslationsEntry',
-  full_name='common.Item.TranslationsEntry',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='key', full_name='common.Item.TranslationsEntry.key', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='value', full_name='common.Item.TranslationsEntry.value', index=1,
-      number=2, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=b'8\001',
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1574,
-  serialized_end=1650,
-)
-
-_ITEM = _descriptor.Descriptor(
-  name='Item',
-  full_name='common.Item',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='common.Item.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='common.Item.space_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='environment_id', full_name='common.Item.environment_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='collection_id', full_name='common.Item.collection_id', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='status', full_name='common.Item.status', index=4,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='created_at', full_name='common.Item.created_at', index=5,
-      number=6, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='created_by', full_name='common.Item.created_by', index=6,
-      number=7, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='data', full_name='common.Item.data', index=7,
-      number=8, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='translations', full_name='common.Item.translations', index=8,
-      number=9, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+DELETE = 4
+
+
+
+_ERROR_BADREQUEST_FIELDVIOLATION = _descriptor.Descriptor(
+  name='FieldViolation',
+  full_name='common.Error.BadRequest.FieldViolation',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
     _descriptor.FieldDescriptor(
-      name='revision_id', full_name='common.Item.revision_id', index=9,
-      number=10, type=9, cpp_type=9, label=1,
+      name='field', full_name='common.Error.BadRequest.FieldViolation.field', index=0,
+      number=1, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=b"".decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
     _descriptor.FieldDescriptor(
-      name='published_at', full_name='common.Item.published_at', index=10,
-      number=11, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='published_by', full_name='common.Item.published_by', index=11,
-      number=12, type=9, cpp_type=9, label=1,
+      name='description', full_name='common.Error.BadRequest.FieldViolation.description', index=1,
+      number=2, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=b"".decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=453,
+  serialized_end=505,
+)
+
+_ERROR_BADREQUEST = _descriptor.Descriptor(
+  name='BadRequest',
+  full_name='common.Error.BadRequest',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
     _descriptor.FieldDescriptor(
-      name='archived_at', full_name='common.Item.archived_at', index=12,
-      number=13, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='archived_by', full_name='common.Item.archived_by', index=13,
-      number=14, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
+      name='errors', full_name='common.Error.BadRequest.errors', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
   ],
   extensions=[
   ],
-  nested_types=[_ITEM_TRANSLATIONSENTRY, ],
+  nested_types=[_ERROR_BADREQUEST_FIELDVIOLATION, ],
   enum_types=[
   ],
   serialized_options=None,
@@ -800,64 +173,59 @@ _ITEM = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1149,
-  serialized_end=1650,
+  serialized_start=382,
+  serialized_end=505,
 )
 
-
-_FINDITEMSOPTIONS = _descriptor.Descriptor(
-  name='FindItemsOptions',
-  full_name='common.FindItemsOptions',
+_ERROR_HELP_LINK = _descriptor.Descriptor(
+  name='Link',
+  full_name='common.Error.Help.Link',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   create_key=_descriptor._internal_create_key,
   fields=[
     _descriptor.FieldDescriptor(
-      name='space_id', full_name='common.FindItemsOptions.space_id', index=0,
+      name='description', full_name='common.Error.Help.Link.description', index=0,
       number=1, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=b"".decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
     _descriptor.FieldDescriptor(
-      name='environment_id', full_name='common.FindItemsOptions.environment_id', index=1,
+      name='url', full_name='common.Error.Help.Link.url', index=1,
       number=2, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=b"".decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=555,
+  serialized_end=595,
+)
+
+_ERROR_HELP = _descriptor.Descriptor(
+  name='Help',
+  full_name='common.Error.Help',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
     _descriptor.FieldDescriptor(
-      name='collection_id', full_name='common.FindItemsOptions.collection_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='filters', full_name='common.FindItemsOptions.filters', index=3,
-      number=4, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_num', full_name='common.FindItemsOptions.page_num', index=4,
-      number=8, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_size', full_name='common.FindItemsOptions.page_size', index=5,
-      number=9, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='sort', full_name='common.FindItemsOptions.sort', index=6,
-      number=10, type=9, cpp_type=9, label=3,
+      name='links', full_name='common.Error.Help.links', index=0,
+      number=1, type=11, cpp_type=10, label=3,
       has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
@@ -865,7 +233,7 @@ _FINDITEMSOPTIONS = _descriptor.Descriptor(
   ],
   extensions=[
   ],
-  nested_types=[],
+  nested_types=[_ERROR_HELP_LINK, ],
   enum_types=[
   ],
   serialized_options=None,
@@ -874,60 +242,37 @@ _FINDITEMSOPTIONS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1653,
-  serialized_end=1820,
+  serialized_start=507,
+  serialized_end=595,
 )
 
-
-_ENVIRONMENT = _descriptor.Descriptor(
-  name='Environment',
-  full_name='common.Environment',
+_ERROR_DEBUGINFO = _descriptor.Descriptor(
+  name='DebugInfo',
+  full_name='common.Error.DebugInfo',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   create_key=_descriptor._internal_create_key,
   fields=[
     _descriptor.FieldDescriptor(
-      name='id', full_name='common.Environment.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
+      name='stack_trace', full_name='common.Error.DebugInfo.stack_trace', index=0,
+      number=1, type=9, cpp_type=9, label=3,
+      has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
     _descriptor.FieldDescriptor(
-      name='space_id', full_name='common.Environment.space_id', index=1,
+      name='detail', full_name='common.Error.DebugInfo.detail', index=1,
       number=2, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=b"".decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='description', full_name='common.Environment.description', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='state', full_name='common.Environment.state', index=3,
-      number=4, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='aliases', full_name='common.Environment.aliases', index=4,
-      number=5, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
   ],
   extensions=[
   ],
   nested_types=[],
   enum_types=[
-    _ENVIRONMENT_STATE,
   ],
   serialized_options=None,
   is_extendable=False,
@@ -935,40 +280,32 @@ _ENVIRONMENT = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1823,
-  serialized_end=2004,
+  serialized_start=597,
+  serialized_end=645,
 )
 
-
-_LOCALE = _descriptor.Descriptor(
-  name='Locale',
-  full_name='common.Locale',
+_ERROR_LOCALIZEDMESSAGE = _descriptor.Descriptor(
+  name='LocalizedMessage',
+  full_name='common.Error.LocalizedMessage',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   create_key=_descriptor._internal_create_key,
   fields=[
     _descriptor.FieldDescriptor(
-      name='id', full_name='common.Locale.id', index=0,
+      name='locale', full_name='common.Error.LocalizedMessage.locale', index=0,
       number=1, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=b"".decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
     _descriptor.FieldDescriptor(
-      name='name', full_name='common.Locale.name', index=1,
+      name='message', full_name='common.Error.LocalizedMessage.message', index=1,
       number=2, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=b"".decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='common.Locale.space_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
   ],
   extensions=[
   ],
@@ -981,131 +318,115 @@ _LOCALE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2006,
-  serialized_end=2058,
+  serialized_start=647,
+  serialized_end=698,
 )
 
-
-_SPACEROLE = _descriptor.Descriptor(
-  name='SpaceRole',
-  full_name='common.SpaceRole',
+_ERROR_METADATAENTRY = _descriptor.Descriptor(
+  name='MetadataEntry',
+  full_name='common.Error.MetadataEntry',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   create_key=_descriptor._internal_create_key,
   fields=[
     _descriptor.FieldDescriptor(
-      name='id', full_name='common.SpaceRole.id', index=0,
+      name='key', full_name='common.Error.MetadataEntry.key', index=0,
       number=1, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=b"".decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
     _descriptor.FieldDescriptor(
-      name='name', full_name='common.SpaceRole.name', index=1,
+      name='value', full_name='common.Error.MetadataEntry.value', index=1,
       number=2, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=b"".decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='common.SpaceRole.space_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='description', full_name='common.SpaceRole.description', index=3,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='content_rules', full_name='common.SpaceRole.content_rules', index=4,
-      number=6, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
   ],
   extensions=[
   ],
   nested_types=[],
   enum_types=[
   ],
-  serialized_options=None,
+  serialized_options=b'8\001',
   is_extendable=False,
   syntax='proto3',
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2060,
-  serialized_end=2180,
+  serialized_start=700,
+  serialized_end=747,
 )
 
-
-_CONTENTRULE = _descriptor.Descriptor(
-  name='ContentRule',
-  full_name='common.ContentRule',
+_ERROR = _descriptor.Descriptor(
+  name='Error',
+  full_name='common.Error',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   create_key=_descriptor._internal_create_key,
   fields=[
     _descriptor.FieldDescriptor(
-      name='id', full_name='common.ContentRule.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
+      name='error_code', full_name='common.Error.error_code', index=0,
+      number=1, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
     _descriptor.FieldDescriptor(
-      name='collection_id', full_name='common.ContentRule.collection_id', index=1,
+      name='error_id', full_name='common.Error.error_id', index=1,
       number=2, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=b"".decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
     _descriptor.FieldDescriptor(
-      name='create', full_name='common.ContentRule.create', index=2,
-      number=5, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
+      name='reason', full_name='common.Error.reason', index=2,
+      number=3, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"".decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
     _descriptor.FieldDescriptor(
-      name='read', full_name='common.ContentRule.read', index=3,
-      number=6, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
+      name='domain', full_name='common.Error.domain', index=3,
+      number=4, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"".decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
     _descriptor.FieldDescriptor(
-      name='update', full_name='common.ContentRule.update', index=4,
-      number=7, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
+      name='metadata', full_name='common.Error.metadata', index=4,
+      number=9, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
     _descriptor.FieldDescriptor(
-      name='delete', full_name='common.ContentRule.delete', index=5,
-      number=8, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
+      name='bad_request', full_name='common.Error.bad_request', index=5,
+      number=10, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
     _descriptor.FieldDescriptor(
-      name='fields_read_blacklist', full_name='common.ContentRule.fields_read_blacklist', index=6,
-      number=10, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
+      name='debug_info', full_name='common.Error.debug_info', index=6,
+      number=11, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
     _descriptor.FieldDescriptor(
-      name='fields_write_blacklist', full_name='common.ContentRule.fields_write_blacklist', index=7,
-      number=11, type=9, cpp_type=9, label=3,
+      name='help', full_name='common.Error.help', index=7,
+      number=100, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='localized_messages', full_name='common.Error.localized_messages', index=8,
+      number=200, type=11, cpp_type=10, label=3,
       has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
@@ -1113,7 +434,7 @@ _CONTENTRULE = _descriptor.Descriptor(
   ],
   extensions=[
   ],
-  nested_types=[],
+  nested_types=[_ERROR_BADREQUEST, _ERROR_HELP, _ERROR_DEBUGINFO, _ERROR_LOCALIZEDMESSAGE, _ERROR_METADATAENTRY, ],
   enum_types=[
   ],
   serialized_options=None,
@@ -1122,8 +443,8 @@ _CONTENTRULE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2183,
-  serialized_end=2436,
+  serialized_start=69,
+  serialized_end=747,
 )
 
 
@@ -1168,68 +489,8 @@ _FILTER = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2438,
-  serialized_end=2512,
-)
-
-
-_FILE = _descriptor.Descriptor(
-  name='File',
-  full_name='common.File',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='common.File.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='name', full_name='common.File.name', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='size', full_name='common.File.size', index=2,
-      number=3, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='mime_type', full_name='common.File.mime_type', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='url', full_name='common.File.url', index=4,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2514,
-  serialized_end=2592,
+  serialized_start=749,
+  serialized_end=823,
 )
 
 
@@ -1274,8 +535,8 @@ _FINDOPTIONS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2594,
-  serialized_end=2658,
+  serialized_start=825,
+  serialized_end=889,
 )
 
 
@@ -1309,16 +570,23 @@ _RULE = _descriptor.Descriptor(
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
     _descriptor.FieldDescriptor(
-      name='fields', full_name='common.Rule.fields', index=3,
+      name='hidden_fields', full_name='common.Rule.hidden_fields', index=3,
+      number=5, type=9, cpp_type=9, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='readonly_fields', full_name='common.Rule.readonly_fields', index=4,
       number=6, type=9, cpp_type=9, label=3,
       has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
     _descriptor.FieldDescriptor(
-      name='fields_allowed', full_name='common.Rule.fields_allowed', index=4,
-      number=7, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
+      name='writeonly_fields', full_name='common.Rule.writeonly_fields', index=5,
+      number=7, type=9, cpp_type=9, label=3,
+      has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
@@ -1334,8 +602,8 @@ _RULE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2661,
-  serialized_end=2795,
+  serialized_start=892,
+  serialized_end=1060,
 )
 
 
@@ -1380,8 +648,8 @@ _COLLABORATOR = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2797,
-  serialized_end=2860,
+  serialized_start=1062,
+  serialized_end=1125,
 )
 
 
@@ -1440,151 +708,99 @@ _VERSION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2862,
-  serialized_end=2974,
+  serialized_start=1127,
+  serialized_end=1239,
 )
 
-_USER.fields_by_name['system'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE
-_ORGANIZATIONMEMBERSHIP.fields_by_name['role'].enum_type = _ROLE
-_SPACEINVITATION.fields_by_name['created_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
-_SPACEINVITATION.fields_by_name['sent_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
-_SPACEINVITATION.fields_by_name['valid_until'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
-_COLLECTION.fields_by_name['single'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE
-_COLLECTION.fields_by_name['hidden'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE
-_COLLECTION.fields_by_name['system'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE
-_ITEM_TRANSLATIONSENTRY.fields_by_name['value'].message_type = google_dot_protobuf_dot_struct__pb2._STRUCT
-_ITEM_TRANSLATIONSENTRY.containing_type = _ITEM
-_ITEM.fields_by_name['created_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
-_ITEM.fields_by_name['data'].message_type = google_dot_protobuf_dot_struct__pb2._STRUCT
-_ITEM.fields_by_name['translations'].message_type = _ITEM_TRANSLATIONSENTRY
-_ITEM.fields_by_name['published_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
-_ITEM.fields_by_name['archived_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
-_FINDITEMSOPTIONS.fields_by_name['filters'].message_type = _FILTER
-_ENVIRONMENT.fields_by_name['state'].enum_type = _ENVIRONMENT_STATE
-_ENVIRONMENT_STATE.containing_type = _ENVIRONMENT
-_SPACEROLE.fields_by_name['content_rules'].message_type = _CONTENTRULE
-_CONTENTRULE.fields_by_name['create'].enum_type = _ITEMACCESS
-_CONTENTRULE.fields_by_name['read'].enum_type = _ITEMACCESS
-_CONTENTRULE.fields_by_name['update'].enum_type = _ITEMACCESS
-_CONTENTRULE.fields_by_name['delete'].enum_type = _ITEMACCESS
+_ERROR_BADREQUEST_FIELDVIOLATION.containing_type = _ERROR_BADREQUEST
+_ERROR_BADREQUEST.fields_by_name['errors'].message_type = _ERROR_BADREQUEST_FIELDVIOLATION
+_ERROR_BADREQUEST.containing_type = _ERROR
+_ERROR_HELP_LINK.containing_type = _ERROR_HELP
+_ERROR_HELP.fields_by_name['links'].message_type = _ERROR_HELP_LINK
+_ERROR_HELP.containing_type = _ERROR
+_ERROR_DEBUGINFO.containing_type = _ERROR
+_ERROR_LOCALIZEDMESSAGE.containing_type = _ERROR
+_ERROR_METADATAENTRY.containing_type = _ERROR
+_ERROR.fields_by_name['metadata'].message_type = _ERROR_METADATAENTRY
+_ERROR.fields_by_name['bad_request'].message_type = _ERROR_BADREQUEST
+_ERROR.fields_by_name['debug_info'].message_type = _ERROR_DEBUGINFO
+_ERROR.fields_by_name['help'].message_type = _ERROR_HELP
+_ERROR.fields_by_name['localized_messages'].message_type = _ERROR_LOCALIZEDMESSAGE
 _FILTER.fields_by_name['value'].message_type = google_dot_protobuf_dot_struct__pb2._VALUE
 _RULE.fields_by_name['actions'].enum_type = _ACTION
 _RULE.fields_by_name['access'].enum_type = _ACCESS
-DESCRIPTOR.message_types_by_name['User'] = _USER
-DESCRIPTOR.message_types_by_name['Organization'] = _ORGANIZATION
-DESCRIPTOR.message_types_by_name['OrganizationMembership'] = _ORGANIZATIONMEMBERSHIP
-DESCRIPTOR.message_types_by_name['SpaceInvitation'] = _SPACEINVITATION
-DESCRIPTOR.message_types_by_name['Space'] = _SPACE
-DESCRIPTOR.message_types_by_name['Collection'] = _COLLECTION
-DESCRIPTOR.message_types_by_name['Item'] = _ITEM
-DESCRIPTOR.message_types_by_name['FindItemsOptions'] = _FINDITEMSOPTIONS
-DESCRIPTOR.message_types_by_name['Environment'] = _ENVIRONMENT
-DESCRIPTOR.message_types_by_name['Locale'] = _LOCALE
-DESCRIPTOR.message_types_by_name['SpaceRole'] = _SPACEROLE
-DESCRIPTOR.message_types_by_name['ContentRule'] = _CONTENTRULE
+DESCRIPTOR.message_types_by_name['Error'] = _ERROR
 DESCRIPTOR.message_types_by_name['Filter'] = _FILTER
-DESCRIPTOR.message_types_by_name['File'] = _FILE
 DESCRIPTOR.message_types_by_name['FindOptions'] = _FINDOPTIONS
 DESCRIPTOR.message_types_by_name['Rule'] = _RULE
 DESCRIPTOR.message_types_by_name['Collaborator'] = _COLLABORATOR
 DESCRIPTOR.message_types_by_name['Version'] = _VERSION
-DESCRIPTOR.enum_types_by_name['Role'] = _ROLE
-DESCRIPTOR.enum_types_by_name['ItemAccess'] = _ITEMACCESS
 DESCRIPTOR.enum_types_by_name['Access'] = _ACCESS
 DESCRIPTOR.enum_types_by_name['Action'] = _ACTION
 _sym_db.RegisterFileDescriptor(DESCRIPTOR)
 
-User = _reflection.GeneratedProtocolMessageType('User', (_message.Message,), {
-  'DESCRIPTOR' : _USER,
-  '__module__' : 'perxis.common.common_pb2'
-  # @@protoc_insertion_point(class_scope:common.User)
-  })
-_sym_db.RegisterMessage(User)
-
-Organization = _reflection.GeneratedProtocolMessageType('Organization', (_message.Message,), {
-  'DESCRIPTOR' : _ORGANIZATION,
-  '__module__' : 'perxis.common.common_pb2'
-  # @@protoc_insertion_point(class_scope:common.Organization)
-  })
-_sym_db.RegisterMessage(Organization)
-
-OrganizationMembership = _reflection.GeneratedProtocolMessageType('OrganizationMembership', (_message.Message,), {
-  'DESCRIPTOR' : _ORGANIZATIONMEMBERSHIP,
-  '__module__' : 'perxis.common.common_pb2'
-  # @@protoc_insertion_point(class_scope:common.OrganizationMembership)
-  })
-_sym_db.RegisterMessage(OrganizationMembership)
-
-SpaceInvitation = _reflection.GeneratedProtocolMessageType('SpaceInvitation', (_message.Message,), {
-  'DESCRIPTOR' : _SPACEINVITATION,
-  '__module__' : 'perxis.common.common_pb2'
-  # @@protoc_insertion_point(class_scope:common.SpaceInvitation)
-  })
-_sym_db.RegisterMessage(SpaceInvitation)
-
-Space = _reflection.GeneratedProtocolMessageType('Space', (_message.Message,), {
-  'DESCRIPTOR' : _SPACE,
-  '__module__' : 'perxis.common.common_pb2'
-  # @@protoc_insertion_point(class_scope:common.Space)
-  })
-_sym_db.RegisterMessage(Space)
-
-Collection = _reflection.GeneratedProtocolMessageType('Collection', (_message.Message,), {
-  'DESCRIPTOR' : _COLLECTION,
-  '__module__' : 'perxis.common.common_pb2'
-  # @@protoc_insertion_point(class_scope:common.Collection)
-  })
-_sym_db.RegisterMessage(Collection)
+Error = _reflection.GeneratedProtocolMessageType('Error', (_message.Message,), {
 
-Item = _reflection.GeneratedProtocolMessageType('Item', (_message.Message,), {
+  'BadRequest' : _reflection.GeneratedProtocolMessageType('BadRequest', (_message.Message,), {
 
-  'TranslationsEntry' : _reflection.GeneratedProtocolMessageType('TranslationsEntry', (_message.Message,), {
-    'DESCRIPTOR' : _ITEM_TRANSLATIONSENTRY,
+    'FieldViolation' : _reflection.GeneratedProtocolMessageType('FieldViolation', (_message.Message,), {
+      'DESCRIPTOR' : _ERROR_BADREQUEST_FIELDVIOLATION,
+      '__module__' : 'perxis.common.common_pb2'
+      # @@protoc_insertion_point(class_scope:common.Error.BadRequest.FieldViolation)
+      })
+    ,
+    'DESCRIPTOR' : _ERROR_BADREQUEST,
     '__module__' : 'perxis.common.common_pb2'
-    # @@protoc_insertion_point(class_scope:common.Item.TranslationsEntry)
+    # @@protoc_insertion_point(class_scope:common.Error.BadRequest)
     })
   ,
-  'DESCRIPTOR' : _ITEM,
-  '__module__' : 'perxis.common.common_pb2'
-  # @@protoc_insertion_point(class_scope:common.Item)
-  })
-_sym_db.RegisterMessage(Item)
-_sym_db.RegisterMessage(Item.TranslationsEntry)
 
-FindItemsOptions = _reflection.GeneratedProtocolMessageType('FindItemsOptions', (_message.Message,), {
-  'DESCRIPTOR' : _FINDITEMSOPTIONS,
-  '__module__' : 'perxis.common.common_pb2'
-  # @@protoc_insertion_point(class_scope:common.FindItemsOptions)
-  })
-_sym_db.RegisterMessage(FindItemsOptions)
+  'Help' : _reflection.GeneratedProtocolMessageType('Help', (_message.Message,), {
 
-Environment = _reflection.GeneratedProtocolMessageType('Environment', (_message.Message,), {
-  'DESCRIPTOR' : _ENVIRONMENT,
-  '__module__' : 'perxis.common.common_pb2'
-  # @@protoc_insertion_point(class_scope:common.Environment)
-  })
-_sym_db.RegisterMessage(Environment)
+    'Link' : _reflection.GeneratedProtocolMessageType('Link', (_message.Message,), {
+      'DESCRIPTOR' : _ERROR_HELP_LINK,
+      '__module__' : 'perxis.common.common_pb2'
+      # @@protoc_insertion_point(class_scope:common.Error.Help.Link)
+      })
+    ,
+    'DESCRIPTOR' : _ERROR_HELP,
+    '__module__' : 'perxis.common.common_pb2'
+    # @@protoc_insertion_point(class_scope:common.Error.Help)
+    })
+  ,
 
-Locale = _reflection.GeneratedProtocolMessageType('Locale', (_message.Message,), {
-  'DESCRIPTOR' : _LOCALE,
-  '__module__' : 'perxis.common.common_pb2'
-  # @@protoc_insertion_point(class_scope:common.Locale)
-  })
-_sym_db.RegisterMessage(Locale)
+  'DebugInfo' : _reflection.GeneratedProtocolMessageType('DebugInfo', (_message.Message,), {
+    'DESCRIPTOR' : _ERROR_DEBUGINFO,
+    '__module__' : 'perxis.common.common_pb2'
+    # @@protoc_insertion_point(class_scope:common.Error.DebugInfo)
+    })
+  ,
 
-SpaceRole = _reflection.GeneratedProtocolMessageType('SpaceRole', (_message.Message,), {
-  'DESCRIPTOR' : _SPACEROLE,
-  '__module__' : 'perxis.common.common_pb2'
-  # @@protoc_insertion_point(class_scope:common.SpaceRole)
-  })
-_sym_db.RegisterMessage(SpaceRole)
+  'LocalizedMessage' : _reflection.GeneratedProtocolMessageType('LocalizedMessage', (_message.Message,), {
+    'DESCRIPTOR' : _ERROR_LOCALIZEDMESSAGE,
+    '__module__' : 'perxis.common.common_pb2'
+    # @@protoc_insertion_point(class_scope:common.Error.LocalizedMessage)
+    })
+  ,
 
-ContentRule = _reflection.GeneratedProtocolMessageType('ContentRule', (_message.Message,), {
-  'DESCRIPTOR' : _CONTENTRULE,
+  'MetadataEntry' : _reflection.GeneratedProtocolMessageType('MetadataEntry', (_message.Message,), {
+    'DESCRIPTOR' : _ERROR_METADATAENTRY,
+    '__module__' : 'perxis.common.common_pb2'
+    # @@protoc_insertion_point(class_scope:common.Error.MetadataEntry)
+    })
+  ,
+  'DESCRIPTOR' : _ERROR,
   '__module__' : 'perxis.common.common_pb2'
-  # @@protoc_insertion_point(class_scope:common.ContentRule)
+  # @@protoc_insertion_point(class_scope:common.Error)
   })
-_sym_db.RegisterMessage(ContentRule)
+_sym_db.RegisterMessage(Error)
+_sym_db.RegisterMessage(Error.BadRequest)
+_sym_db.RegisterMessage(Error.BadRequest.FieldViolation)
+_sym_db.RegisterMessage(Error.Help)
+_sym_db.RegisterMessage(Error.Help.Link)
+_sym_db.RegisterMessage(Error.DebugInfo)
+_sym_db.RegisterMessage(Error.LocalizedMessage)
+_sym_db.RegisterMessage(Error.MetadataEntry)
 
 Filter = _reflection.GeneratedProtocolMessageType('Filter', (_message.Message,), {
   'DESCRIPTOR' : _FILTER,
@@ -1593,13 +809,6 @@ Filter = _reflection.GeneratedProtocolMessageType('Filter', (_message.Message,),
   })
 _sym_db.RegisterMessage(Filter)
 
-File = _reflection.GeneratedProtocolMessageType('File', (_message.Message,), {
-  'DESCRIPTOR' : _FILE,
-  '__module__' : 'perxis.common.common_pb2'
-  # @@protoc_insertion_point(class_scope:common.File)
-  })
-_sym_db.RegisterMessage(File)
-
 FindOptions = _reflection.GeneratedProtocolMessageType('FindOptions', (_message.Message,), {
   'DESCRIPTOR' : _FINDOPTIONS,
   '__module__' : 'perxis.common.common_pb2'
@@ -1630,5 +839,5 @@ _sym_db.RegisterMessage(Version)
 
 
 DESCRIPTOR._options = None
-_ITEM_TRANSLATIONSENTRY._options = None
+_ERROR_METADATAENTRY._options = None
 # @@protoc_insertion_point(module_scope)
diff --git a/perxis/contentcontrol/__init__.py b/perxis/contentcontrol/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/perxis/contentcontrol/contentcontrol_pb2.py b/perxis/contentcontrol/contentcontrol_pb2.py
deleted file mode 100644
index 80f2203996044bf4547769e827a159d90e7fc38e..0000000000000000000000000000000000000000
--- a/perxis/contentcontrol/contentcontrol_pb2.py
+++ /dev/null
@@ -1,547 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: perxis/contentcontrol/contentcontrol.proto
-"""Generated protocol buffer code."""
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
-from perxis.common import common_pb2 as perxis_dot_common_dot_common__pb2
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='perxis/contentcontrol/contentcontrol.proto',
-  package='contentcontrol',
-  syntax='proto3',
-  serialized_options=b'Z>github.com/perxteam/perxis/proto/contentcontrol;contentcontrol',
-  create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n*perxis/contentcontrol/contentcontrol.proto\x12\x0e\x63ontentcontrol\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1aperxis/common/common.proto\"\x14\n\x04Host\x12\x0c\n\x04name\x18\x01 \x01(\t\"!\n\x11ListSpacesOptions\x12\x0c\n\x04host\x18\x01 \x01(\t\"2\n\x12\x43reateSpaceRequest\x12\x1c\n\x05space\x18\x01 \x01(\x0b\x32\r.common.Space\"3\n\x13\x43reateSpaceResponse\x12\x1c\n\x05space\x18\x01 \x01(\x0b\x32\r.common.Space\" \n\x12\x44\x65leteSpaceRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\x1d\n\x0fGetSpaceRequest\x12\n\n\x02id\x18\x01 \x01(\t\"0\n\x10GetSpaceResponse\x12\x1c\n\x05space\x18\x01 \x01(\x0b\x32\r.common.Space\"3\n\x12ListSpacesResponse\x12\x1d\n\x06spaces\x18\x01 \x03(\x0b\x32\r.common.Space\"D\n\x11ListSpacesRequest\x12/\n\x04opts\x18\x01 \x01(\x0b\x32!.contentcontrol.ListSpacesOptions\"5\n\x15\x43\x61nCreateSpaceRequest\x12\x1c\n\x05space\x18\x01 \x01(\x0b\x32\r.common.Space\"<\n\x16\x43\x61nCreateSpaceResponse\x12\"\n\x04host\x18\x01 \x01(\x0b\x32\x14.contentcontrol.Host2\xc2\x03\n\x0e\x43ontentControl\x12\x61\n\x0e\x43\x61nCreateSpace\x12%.contentcontrol.CanCreateSpaceRequest\x1a&.contentcontrol.CanCreateSpaceResponse\"\x00\x12X\n\x0b\x43reateSpace\x12\".contentcontrol.CreateSpaceRequest\x1a#.contentcontrol.CreateSpaceResponse\"\x00\x12K\n\x0b\x44\x65leteSpace\x12\".contentcontrol.DeleteSpaceRequest\x1a\x16.google.protobuf.Empty\"\x00\x12O\n\x08GetSpace\x12\x1f.contentcontrol.GetSpaceRequest\x1a .contentcontrol.GetSpaceResponse\"\x00\x12U\n\nListSpaces\x12!.contentcontrol.ListSpacesRequest\x1a\".contentcontrol.ListSpacesResponse\"\x00\x42@Z>github.com/perxteam/perxis/proto/contentcontrol;contentcontrolb\x06proto3'
-  ,
-  dependencies=[google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,perxis_dot_common_dot_common__pb2.DESCRIPTOR,])
-
-
-
-
-_HOST = _descriptor.Descriptor(
-  name='Host',
-  full_name='contentcontrol.Host',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='name', full_name='contentcontrol.Host.name', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=119,
-  serialized_end=139,
-)
-
-
-_LISTSPACESOPTIONS = _descriptor.Descriptor(
-  name='ListSpacesOptions',
-  full_name='contentcontrol.ListSpacesOptions',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='host', full_name='contentcontrol.ListSpacesOptions.host', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=141,
-  serialized_end=174,
-)
-
-
-_CREATESPACEREQUEST = _descriptor.Descriptor(
-  name='CreateSpaceRequest',
-  full_name='contentcontrol.CreateSpaceRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space', full_name='contentcontrol.CreateSpaceRequest.space', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=176,
-  serialized_end=226,
-)
-
-
-_CREATESPACERESPONSE = _descriptor.Descriptor(
-  name='CreateSpaceResponse',
-  full_name='contentcontrol.CreateSpaceResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space', full_name='contentcontrol.CreateSpaceResponse.space', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=228,
-  serialized_end=279,
-)
-
-
-_DELETESPACEREQUEST = _descriptor.Descriptor(
-  name='DeleteSpaceRequest',
-  full_name='contentcontrol.DeleteSpaceRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentcontrol.DeleteSpaceRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=281,
-  serialized_end=313,
-)
-
-
-_GETSPACEREQUEST = _descriptor.Descriptor(
-  name='GetSpaceRequest',
-  full_name='contentcontrol.GetSpaceRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentcontrol.GetSpaceRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=315,
-  serialized_end=344,
-)
-
-
-_GETSPACERESPONSE = _descriptor.Descriptor(
-  name='GetSpaceResponse',
-  full_name='contentcontrol.GetSpaceResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space', full_name='contentcontrol.GetSpaceResponse.space', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=346,
-  serialized_end=394,
-)
-
-
-_LISTSPACESRESPONSE = _descriptor.Descriptor(
-  name='ListSpacesResponse',
-  full_name='contentcontrol.ListSpacesResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='spaces', full_name='contentcontrol.ListSpacesResponse.spaces', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=396,
-  serialized_end=447,
-)
-
-
-_LISTSPACESREQUEST = _descriptor.Descriptor(
-  name='ListSpacesRequest',
-  full_name='contentcontrol.ListSpacesRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='opts', full_name='contentcontrol.ListSpacesRequest.opts', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=449,
-  serialized_end=517,
-)
-
-
-_CANCREATESPACEREQUEST = _descriptor.Descriptor(
-  name='CanCreateSpaceRequest',
-  full_name='contentcontrol.CanCreateSpaceRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space', full_name='contentcontrol.CanCreateSpaceRequest.space', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=519,
-  serialized_end=572,
-)
-
-
-_CANCREATESPACERESPONSE = _descriptor.Descriptor(
-  name='CanCreateSpaceResponse',
-  full_name='contentcontrol.CanCreateSpaceResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='host', full_name='contentcontrol.CanCreateSpaceResponse.host', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=574,
-  serialized_end=634,
-)
-
-_CREATESPACEREQUEST.fields_by_name['space'].message_type = perxis_dot_common_dot_common__pb2._SPACE
-_CREATESPACERESPONSE.fields_by_name['space'].message_type = perxis_dot_common_dot_common__pb2._SPACE
-_GETSPACERESPONSE.fields_by_name['space'].message_type = perxis_dot_common_dot_common__pb2._SPACE
-_LISTSPACESRESPONSE.fields_by_name['spaces'].message_type = perxis_dot_common_dot_common__pb2._SPACE
-_LISTSPACESREQUEST.fields_by_name['opts'].message_type = _LISTSPACESOPTIONS
-_CANCREATESPACEREQUEST.fields_by_name['space'].message_type = perxis_dot_common_dot_common__pb2._SPACE
-_CANCREATESPACERESPONSE.fields_by_name['host'].message_type = _HOST
-DESCRIPTOR.message_types_by_name['Host'] = _HOST
-DESCRIPTOR.message_types_by_name['ListSpacesOptions'] = _LISTSPACESOPTIONS
-DESCRIPTOR.message_types_by_name['CreateSpaceRequest'] = _CREATESPACEREQUEST
-DESCRIPTOR.message_types_by_name['CreateSpaceResponse'] = _CREATESPACERESPONSE
-DESCRIPTOR.message_types_by_name['DeleteSpaceRequest'] = _DELETESPACEREQUEST
-DESCRIPTOR.message_types_by_name['GetSpaceRequest'] = _GETSPACEREQUEST
-DESCRIPTOR.message_types_by_name['GetSpaceResponse'] = _GETSPACERESPONSE
-DESCRIPTOR.message_types_by_name['ListSpacesResponse'] = _LISTSPACESRESPONSE
-DESCRIPTOR.message_types_by_name['ListSpacesRequest'] = _LISTSPACESREQUEST
-DESCRIPTOR.message_types_by_name['CanCreateSpaceRequest'] = _CANCREATESPACEREQUEST
-DESCRIPTOR.message_types_by_name['CanCreateSpaceResponse'] = _CANCREATESPACERESPONSE
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-Host = _reflection.GeneratedProtocolMessageType('Host', (_message.Message,), {
-  'DESCRIPTOR' : _HOST,
-  '__module__' : 'perxis.contentcontrol.contentcontrol_pb2'
-  # @@protoc_insertion_point(class_scope:contentcontrol.Host)
-  })
-_sym_db.RegisterMessage(Host)
-
-ListSpacesOptions = _reflection.GeneratedProtocolMessageType('ListSpacesOptions', (_message.Message,), {
-  'DESCRIPTOR' : _LISTSPACESOPTIONS,
-  '__module__' : 'perxis.contentcontrol.contentcontrol_pb2'
-  # @@protoc_insertion_point(class_scope:contentcontrol.ListSpacesOptions)
-  })
-_sym_db.RegisterMessage(ListSpacesOptions)
-
-CreateSpaceRequest = _reflection.GeneratedProtocolMessageType('CreateSpaceRequest', (_message.Message,), {
-  'DESCRIPTOR' : _CREATESPACEREQUEST,
-  '__module__' : 'perxis.contentcontrol.contentcontrol_pb2'
-  # @@protoc_insertion_point(class_scope:contentcontrol.CreateSpaceRequest)
-  })
-_sym_db.RegisterMessage(CreateSpaceRequest)
-
-CreateSpaceResponse = _reflection.GeneratedProtocolMessageType('CreateSpaceResponse', (_message.Message,), {
-  'DESCRIPTOR' : _CREATESPACERESPONSE,
-  '__module__' : 'perxis.contentcontrol.contentcontrol_pb2'
-  # @@protoc_insertion_point(class_scope:contentcontrol.CreateSpaceResponse)
-  })
-_sym_db.RegisterMessage(CreateSpaceResponse)
-
-DeleteSpaceRequest = _reflection.GeneratedProtocolMessageType('DeleteSpaceRequest', (_message.Message,), {
-  'DESCRIPTOR' : _DELETESPACEREQUEST,
-  '__module__' : 'perxis.contentcontrol.contentcontrol_pb2'
-  # @@protoc_insertion_point(class_scope:contentcontrol.DeleteSpaceRequest)
-  })
-_sym_db.RegisterMessage(DeleteSpaceRequest)
-
-GetSpaceRequest = _reflection.GeneratedProtocolMessageType('GetSpaceRequest', (_message.Message,), {
-  'DESCRIPTOR' : _GETSPACEREQUEST,
-  '__module__' : 'perxis.contentcontrol.contentcontrol_pb2'
-  # @@protoc_insertion_point(class_scope:contentcontrol.GetSpaceRequest)
-  })
-_sym_db.RegisterMessage(GetSpaceRequest)
-
-GetSpaceResponse = _reflection.GeneratedProtocolMessageType('GetSpaceResponse', (_message.Message,), {
-  'DESCRIPTOR' : _GETSPACERESPONSE,
-  '__module__' : 'perxis.contentcontrol.contentcontrol_pb2'
-  # @@protoc_insertion_point(class_scope:contentcontrol.GetSpaceResponse)
-  })
-_sym_db.RegisterMessage(GetSpaceResponse)
-
-ListSpacesResponse = _reflection.GeneratedProtocolMessageType('ListSpacesResponse', (_message.Message,), {
-  'DESCRIPTOR' : _LISTSPACESRESPONSE,
-  '__module__' : 'perxis.contentcontrol.contentcontrol_pb2'
-  # @@protoc_insertion_point(class_scope:contentcontrol.ListSpacesResponse)
-  })
-_sym_db.RegisterMessage(ListSpacesResponse)
-
-ListSpacesRequest = _reflection.GeneratedProtocolMessageType('ListSpacesRequest', (_message.Message,), {
-  'DESCRIPTOR' : _LISTSPACESREQUEST,
-  '__module__' : 'perxis.contentcontrol.contentcontrol_pb2'
-  # @@protoc_insertion_point(class_scope:contentcontrol.ListSpacesRequest)
-  })
-_sym_db.RegisterMessage(ListSpacesRequest)
-
-CanCreateSpaceRequest = _reflection.GeneratedProtocolMessageType('CanCreateSpaceRequest', (_message.Message,), {
-  'DESCRIPTOR' : _CANCREATESPACEREQUEST,
-  '__module__' : 'perxis.contentcontrol.contentcontrol_pb2'
-  # @@protoc_insertion_point(class_scope:contentcontrol.CanCreateSpaceRequest)
-  })
-_sym_db.RegisterMessage(CanCreateSpaceRequest)
-
-CanCreateSpaceResponse = _reflection.GeneratedProtocolMessageType('CanCreateSpaceResponse', (_message.Message,), {
-  'DESCRIPTOR' : _CANCREATESPACERESPONSE,
-  '__module__' : 'perxis.contentcontrol.contentcontrol_pb2'
-  # @@protoc_insertion_point(class_scope:contentcontrol.CanCreateSpaceResponse)
-  })
-_sym_db.RegisterMessage(CanCreateSpaceResponse)
-
-
-DESCRIPTOR._options = None
-
-_CONTENTCONTROL = _descriptor.ServiceDescriptor(
-  name='ContentControl',
-  full_name='contentcontrol.ContentControl',
-  file=DESCRIPTOR,
-  index=0,
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_start=637,
-  serialized_end=1087,
-  methods=[
-  _descriptor.MethodDescriptor(
-    name='CanCreateSpace',
-    full_name='contentcontrol.ContentControl.CanCreateSpace',
-    index=0,
-    containing_service=None,
-    input_type=_CANCREATESPACEREQUEST,
-    output_type=_CANCREATESPACERESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='CreateSpace',
-    full_name='contentcontrol.ContentControl.CreateSpace',
-    index=1,
-    containing_service=None,
-    input_type=_CREATESPACEREQUEST,
-    output_type=_CREATESPACERESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='DeleteSpace',
-    full_name='contentcontrol.ContentControl.DeleteSpace',
-    index=2,
-    containing_service=None,
-    input_type=_DELETESPACEREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetSpace',
-    full_name='contentcontrol.ContentControl.GetSpace',
-    index=3,
-    containing_service=None,
-    input_type=_GETSPACEREQUEST,
-    output_type=_GETSPACERESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListSpaces',
-    full_name='contentcontrol.ContentControl.ListSpaces',
-    index=4,
-    containing_service=None,
-    input_type=_LISTSPACESREQUEST,
-    output_type=_LISTSPACESRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-])
-_sym_db.RegisterServiceDescriptor(_CONTENTCONTROL)
-
-DESCRIPTOR.services_by_name['ContentControl'] = _CONTENTCONTROL
-
-# @@protoc_insertion_point(module_scope)
diff --git a/perxis/contentcontrol/contentcontrol_pb2_grpc.py b/perxis/contentcontrol/contentcontrol_pb2_grpc.py
deleted file mode 100644
index 7a5ad699afd40bb060f441a0eed65d44ebef52cb..0000000000000000000000000000000000000000
--- a/perxis/contentcontrol/contentcontrol_pb2_grpc.py
+++ /dev/null
@@ -1,200 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-"""Client and server classes corresponding to protobuf-defined services."""
-import grpc
-
-from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
-from perxis.contentcontrol import contentcontrol_pb2 as perxis_dot_contentcontrol_dot_contentcontrol__pb2
-
-
-class ContentControlStub(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def __init__(self, channel):
-        """Constructor.
-
-        Args:
-            channel: A grpc.Channel.
-        """
-        self.CanCreateSpace = channel.unary_unary(
-                '/contentcontrol.ContentControl/CanCreateSpace',
-                request_serializer=perxis_dot_contentcontrol_dot_contentcontrol__pb2.CanCreateSpaceRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentcontrol_dot_contentcontrol__pb2.CanCreateSpaceResponse.FromString,
-                )
-        self.CreateSpace = channel.unary_unary(
-                '/contentcontrol.ContentControl/CreateSpace',
-                request_serializer=perxis_dot_contentcontrol_dot_contentcontrol__pb2.CreateSpaceRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentcontrol_dot_contentcontrol__pb2.CreateSpaceResponse.FromString,
-                )
-        self.DeleteSpace = channel.unary_unary(
-                '/contentcontrol.ContentControl/DeleteSpace',
-                request_serializer=perxis_dot_contentcontrol_dot_contentcontrol__pb2.DeleteSpaceRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.GetSpace = channel.unary_unary(
-                '/contentcontrol.ContentControl/GetSpace',
-                request_serializer=perxis_dot_contentcontrol_dot_contentcontrol__pb2.GetSpaceRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentcontrol_dot_contentcontrol__pb2.GetSpaceResponse.FromString,
-                )
-        self.ListSpaces = channel.unary_unary(
-                '/contentcontrol.ContentControl/ListSpaces',
-                request_serializer=perxis_dot_contentcontrol_dot_contentcontrol__pb2.ListSpacesRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentcontrol_dot_contentcontrol__pb2.ListSpacesResponse.FromString,
-                )
-
-
-class ContentControlServicer(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def CanCreateSpace(self, request, context):
-        """Space
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def CreateSpace(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def DeleteSpace(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def GetSpace(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def ListSpaces(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-
-def add_ContentControlServicer_to_server(servicer, server):
-    rpc_method_handlers = {
-            'CanCreateSpace': grpc.unary_unary_rpc_method_handler(
-                    servicer.CanCreateSpace,
-                    request_deserializer=perxis_dot_contentcontrol_dot_contentcontrol__pb2.CanCreateSpaceRequest.FromString,
-                    response_serializer=perxis_dot_contentcontrol_dot_contentcontrol__pb2.CanCreateSpaceResponse.SerializeToString,
-            ),
-            'CreateSpace': grpc.unary_unary_rpc_method_handler(
-                    servicer.CreateSpace,
-                    request_deserializer=perxis_dot_contentcontrol_dot_contentcontrol__pb2.CreateSpaceRequest.FromString,
-                    response_serializer=perxis_dot_contentcontrol_dot_contentcontrol__pb2.CreateSpaceResponse.SerializeToString,
-            ),
-            'DeleteSpace': grpc.unary_unary_rpc_method_handler(
-                    servicer.DeleteSpace,
-                    request_deserializer=perxis_dot_contentcontrol_dot_contentcontrol__pb2.DeleteSpaceRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'GetSpace': grpc.unary_unary_rpc_method_handler(
-                    servicer.GetSpace,
-                    request_deserializer=perxis_dot_contentcontrol_dot_contentcontrol__pb2.GetSpaceRequest.FromString,
-                    response_serializer=perxis_dot_contentcontrol_dot_contentcontrol__pb2.GetSpaceResponse.SerializeToString,
-            ),
-            'ListSpaces': grpc.unary_unary_rpc_method_handler(
-                    servicer.ListSpaces,
-                    request_deserializer=perxis_dot_contentcontrol_dot_contentcontrol__pb2.ListSpacesRequest.FromString,
-                    response_serializer=perxis_dot_contentcontrol_dot_contentcontrol__pb2.ListSpacesResponse.SerializeToString,
-            ),
-    }
-    generic_handler = grpc.method_handlers_generic_handler(
-            'contentcontrol.ContentControl', rpc_method_handlers)
-    server.add_generic_rpc_handlers((generic_handler,))
-
-
- # This class is part of an EXPERIMENTAL API.
-class ContentControl(object):
-    """Missing associated documentation comment in .proto file."""
-
-    @staticmethod
-    def CanCreateSpace(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentcontrol.ContentControl/CanCreateSpace',
-            perxis_dot_contentcontrol_dot_contentcontrol__pb2.CanCreateSpaceRequest.SerializeToString,
-            perxis_dot_contentcontrol_dot_contentcontrol__pb2.CanCreateSpaceResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def CreateSpace(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentcontrol.ContentControl/CreateSpace',
-            perxis_dot_contentcontrol_dot_contentcontrol__pb2.CreateSpaceRequest.SerializeToString,
-            perxis_dot_contentcontrol_dot_contentcontrol__pb2.CreateSpaceResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def DeleteSpace(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentcontrol.ContentControl/DeleteSpace',
-            perxis_dot_contentcontrol_dot_contentcontrol__pb2.DeleteSpaceRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def GetSpace(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentcontrol.ContentControl/GetSpace',
-            perxis_dot_contentcontrol_dot_contentcontrol__pb2.GetSpaceRequest.SerializeToString,
-            perxis_dot_contentcontrol_dot_contentcontrol__pb2.GetSpaceResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def ListSpaces(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentcontrol.ContentControl/ListSpaces',
-            perxis_dot_contentcontrol_dot_contentcontrol__pb2.ListSpacesRequest.SerializeToString,
-            perxis_dot_contentcontrol_dot_contentcontrol__pb2.ListSpacesResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
diff --git a/perxis/contentdelivery/__init__.py b/perxis/contentdelivery/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/perxis/contentdelivery/contentdelivery_pb2.py b/perxis/contentdelivery/contentdelivery_pb2.py
deleted file mode 100644
index f8c2e008362fb012eb2fb90ccf6dd2c734acf0a2..0000000000000000000000000000000000000000
--- a/perxis/contentdelivery/contentdelivery_pb2.py
+++ /dev/null
@@ -1,799 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: perxis/contentdelivery/contentdelivery.proto
-"""Generated protocol buffer code."""
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-from perxis.common import common_pb2 as perxis_dot_common_dot_common__pb2
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='perxis/contentdelivery/contentdelivery.proto',
-  package='contentdelivery',
-  syntax='proto3',
-  serialized_options=b'Z@github.com/perxteam/perxis/proto/contentdelivery;contentdelivery',
-  create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n,perxis/contentdelivery/contentdelivery.proto\x12\x0f\x63ontentdelivery\x1a\x1aperxis/common/common.proto\"\x1d\n\x0fGetSpaceRequest\x12\n\n\x02id\x18\x01 \x01(\t\"0\n\x10GetSpaceResponse\x12\x1c\n\x05space\x18\x01 \x01(\x0b\x32\r.common.Space\"&\n\x12ListLocalesRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\"6\n\x13ListLocalesResponse\x12\x1f\n\x07locales\x18\x01 \x03(\x0b\x32\x0e.common.Locale\"5\n\x15GetEnvironmentRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08space_id\x18\x02 \x01(\t\"B\n\x16GetEnvironmentResponse\x12(\n\x0b\x65nvironment\x18\x01 \x01(\x0b\x32\x13.common.Environment\"L\n\x14GetCollectionRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x02 \x01(\t\x12\x10\n\x08space_id\x18\x03 \x01(\t\"?\n\x15GetCollectionResponse\x12&\n\ncollection\x18\x01 \x01(\x0b\x32\x12.common.Collection\"B\n\x16ListCollectionsRequest\x12\x16\n\x0e\x65nvironment_id\x18\x01 \x01(\t\x12\x10\n\x08space_id\x18\x02 \x01(\t\"B\n\x17ListCollectionsResponse\x12\'\n\x0b\x63ollections\x18\x01 \x03(\x0b\x32\x12.common.Collection\"m\n\x0eGetItemRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x15\n\rcollection_id\x18\x02 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x03 \x01(\t\x12\x10\n\x08space_id\x18\x04 \x01(\t\x12\x0e\n\x06locale\x18\x05 \x01(\t\"-\n\x0fGetItemResponse\x12\x1a\n\x04item\x18\x01 \x01(\x0b\x32\x0c.common.Item\"\xb4\x01\n\x10\x46indItemsRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12\x1c\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32\x0e.common.Filter\x12\x0e\n\x06locale\x18\x05 \x01(\t\x12\x10\n\x08page_num\x18\x08 \x01(\x05\x12\x11\n\tpage_size\x18\t \x01(\x05\x12\x0c\n\x04sort\x18\n \x03(\t\"?\n\x11\x46indItemsResponse\x12\x1b\n\x05items\x18\x01 \x03(\x0b\x32\x0c.common.Item\x12\r\n\x05total\x18\x02 \x01(\x05\x32\x95\x05\n\x0f\x43ontentDelivery\x12Q\n\x08GetSpace\x12 .contentdelivery.GetSpaceRequest\x1a!.contentdelivery.GetSpaceResponse\"\x00\x12Z\n\x0bListLocales\x12#.contentdelivery.ListLocalesRequest\x1a$.contentdelivery.ListLocalesResponse\"\x00\x12\x63\n\x0eGetEnvironment\x12&.contentdelivery.GetEnvironmentRequest\x1a\'.contentdelivery.GetEnvironmentResponse\"\x00\x12`\n\rGetCollection\x12%.contentdelivery.GetCollectionRequest\x1a&.contentdelivery.GetCollectionResponse\"\x00\x12\x66\n\x0fListCollections\x12\'.contentdelivery.ListCollectionsRequest\x1a(.contentdelivery.ListCollectionsResponse\"\x00\x12N\n\x07GetItem\x12\x1f.contentdelivery.GetItemRequest\x1a .contentdelivery.GetItemResponse\"\x00\x12T\n\tFindItems\x12!.contentdelivery.FindItemsRequest\x1a\".contentdelivery.FindItemsResponse\"\x00\x42\x42Z@github.com/perxteam/perxis/proto/contentdelivery;contentdeliveryb\x06proto3'
-  ,
-  dependencies=[perxis_dot_common_dot_common__pb2.DESCRIPTOR,])
-
-
-
-
-_GETSPACEREQUEST = _descriptor.Descriptor(
-  name='GetSpaceRequest',
-  full_name='contentdelivery.GetSpaceRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentdelivery.GetSpaceRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=93,
-  serialized_end=122,
-)
-
-
-_GETSPACERESPONSE = _descriptor.Descriptor(
-  name='GetSpaceResponse',
-  full_name='contentdelivery.GetSpaceResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space', full_name='contentdelivery.GetSpaceResponse.space', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=124,
-  serialized_end=172,
-)
-
-
-_LISTLOCALESREQUEST = _descriptor.Descriptor(
-  name='ListLocalesRequest',
-  full_name='contentdelivery.ListLocalesRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentdelivery.ListLocalesRequest.space_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=174,
-  serialized_end=212,
-)
-
-
-_LISTLOCALESRESPONSE = _descriptor.Descriptor(
-  name='ListLocalesResponse',
-  full_name='contentdelivery.ListLocalesResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='locales', full_name='contentdelivery.ListLocalesResponse.locales', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=214,
-  serialized_end=268,
-)
-
-
-_GETENVIRONMENTREQUEST = _descriptor.Descriptor(
-  name='GetEnvironmentRequest',
-  full_name='contentdelivery.GetEnvironmentRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentdelivery.GetEnvironmentRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentdelivery.GetEnvironmentRequest.space_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=270,
-  serialized_end=323,
-)
-
-
-_GETENVIRONMENTRESPONSE = _descriptor.Descriptor(
-  name='GetEnvironmentResponse',
-  full_name='contentdelivery.GetEnvironmentResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='environment', full_name='contentdelivery.GetEnvironmentResponse.environment', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=325,
-  serialized_end=391,
-)
-
-
-_GETCOLLECTIONREQUEST = _descriptor.Descriptor(
-  name='GetCollectionRequest',
-  full_name='contentdelivery.GetCollectionRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentdelivery.GetCollectionRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='environment_id', full_name='contentdelivery.GetCollectionRequest.environment_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentdelivery.GetCollectionRequest.space_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=393,
-  serialized_end=469,
-)
-
-
-_GETCOLLECTIONRESPONSE = _descriptor.Descriptor(
-  name='GetCollectionResponse',
-  full_name='contentdelivery.GetCollectionResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='collection', full_name='contentdelivery.GetCollectionResponse.collection', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=471,
-  serialized_end=534,
-)
-
-
-_LISTCOLLECTIONSREQUEST = _descriptor.Descriptor(
-  name='ListCollectionsRequest',
-  full_name='contentdelivery.ListCollectionsRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='environment_id', full_name='contentdelivery.ListCollectionsRequest.environment_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentdelivery.ListCollectionsRequest.space_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=536,
-  serialized_end=602,
-)
-
-
-_LISTCOLLECTIONSRESPONSE = _descriptor.Descriptor(
-  name='ListCollectionsResponse',
-  full_name='contentdelivery.ListCollectionsResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='collections', full_name='contentdelivery.ListCollectionsResponse.collections', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=604,
-  serialized_end=670,
-)
-
-
-_GETITEMREQUEST = _descriptor.Descriptor(
-  name='GetItemRequest',
-  full_name='contentdelivery.GetItemRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentdelivery.GetItemRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='collection_id', full_name='contentdelivery.GetItemRequest.collection_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='environment_id', full_name='contentdelivery.GetItemRequest.environment_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentdelivery.GetItemRequest.space_id', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='locale', full_name='contentdelivery.GetItemRequest.locale', index=4,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=672,
-  serialized_end=781,
-)
-
-
-_GETITEMRESPONSE = _descriptor.Descriptor(
-  name='GetItemResponse',
-  full_name='contentdelivery.GetItemResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='item', full_name='contentdelivery.GetItemResponse.item', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=783,
-  serialized_end=828,
-)
-
-
-_FINDITEMSREQUEST = _descriptor.Descriptor(
-  name='FindItemsRequest',
-  full_name='contentdelivery.FindItemsRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentdelivery.FindItemsRequest.space_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='environment_id', full_name='contentdelivery.FindItemsRequest.environment_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='collection_id', full_name='contentdelivery.FindItemsRequest.collection_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='data', full_name='contentdelivery.FindItemsRequest.data', index=3,
-      number=4, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='locale', full_name='contentdelivery.FindItemsRequest.locale', index=4,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_num', full_name='contentdelivery.FindItemsRequest.page_num', index=5,
-      number=8, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_size', full_name='contentdelivery.FindItemsRequest.page_size', index=6,
-      number=9, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='sort', full_name='contentdelivery.FindItemsRequest.sort', index=7,
-      number=10, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=831,
-  serialized_end=1011,
-)
-
-
-_FINDITEMSRESPONSE = _descriptor.Descriptor(
-  name='FindItemsResponse',
-  full_name='contentdelivery.FindItemsResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='items', full_name='contentdelivery.FindItemsResponse.items', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='total', full_name='contentdelivery.FindItemsResponse.total', index=1,
-      number=2, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1013,
-  serialized_end=1076,
-)
-
-_GETSPACERESPONSE.fields_by_name['space'].message_type = perxis_dot_common_dot_common__pb2._SPACE
-_LISTLOCALESRESPONSE.fields_by_name['locales'].message_type = perxis_dot_common_dot_common__pb2._LOCALE
-_GETENVIRONMENTRESPONSE.fields_by_name['environment'].message_type = perxis_dot_common_dot_common__pb2._ENVIRONMENT
-_GETCOLLECTIONRESPONSE.fields_by_name['collection'].message_type = perxis_dot_common_dot_common__pb2._COLLECTION
-_LISTCOLLECTIONSRESPONSE.fields_by_name['collections'].message_type = perxis_dot_common_dot_common__pb2._COLLECTION
-_GETITEMRESPONSE.fields_by_name['item'].message_type = perxis_dot_common_dot_common__pb2._ITEM
-_FINDITEMSREQUEST.fields_by_name['data'].message_type = perxis_dot_common_dot_common__pb2._FILTER
-_FINDITEMSRESPONSE.fields_by_name['items'].message_type = perxis_dot_common_dot_common__pb2._ITEM
-DESCRIPTOR.message_types_by_name['GetSpaceRequest'] = _GETSPACEREQUEST
-DESCRIPTOR.message_types_by_name['GetSpaceResponse'] = _GETSPACERESPONSE
-DESCRIPTOR.message_types_by_name['ListLocalesRequest'] = _LISTLOCALESREQUEST
-DESCRIPTOR.message_types_by_name['ListLocalesResponse'] = _LISTLOCALESRESPONSE
-DESCRIPTOR.message_types_by_name['GetEnvironmentRequest'] = _GETENVIRONMENTREQUEST
-DESCRIPTOR.message_types_by_name['GetEnvironmentResponse'] = _GETENVIRONMENTRESPONSE
-DESCRIPTOR.message_types_by_name['GetCollectionRequest'] = _GETCOLLECTIONREQUEST
-DESCRIPTOR.message_types_by_name['GetCollectionResponse'] = _GETCOLLECTIONRESPONSE
-DESCRIPTOR.message_types_by_name['ListCollectionsRequest'] = _LISTCOLLECTIONSREQUEST
-DESCRIPTOR.message_types_by_name['ListCollectionsResponse'] = _LISTCOLLECTIONSRESPONSE
-DESCRIPTOR.message_types_by_name['GetItemRequest'] = _GETITEMREQUEST
-DESCRIPTOR.message_types_by_name['GetItemResponse'] = _GETITEMRESPONSE
-DESCRIPTOR.message_types_by_name['FindItemsRequest'] = _FINDITEMSREQUEST
-DESCRIPTOR.message_types_by_name['FindItemsResponse'] = _FINDITEMSRESPONSE
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-GetSpaceRequest = _reflection.GeneratedProtocolMessageType('GetSpaceRequest', (_message.Message,), {
-  'DESCRIPTOR' : _GETSPACEREQUEST,
-  '__module__' : 'perxis.contentdelivery.contentdelivery_pb2'
-  # @@protoc_insertion_point(class_scope:contentdelivery.GetSpaceRequest)
-  })
-_sym_db.RegisterMessage(GetSpaceRequest)
-
-GetSpaceResponse = _reflection.GeneratedProtocolMessageType('GetSpaceResponse', (_message.Message,), {
-  'DESCRIPTOR' : _GETSPACERESPONSE,
-  '__module__' : 'perxis.contentdelivery.contentdelivery_pb2'
-  # @@protoc_insertion_point(class_scope:contentdelivery.GetSpaceResponse)
-  })
-_sym_db.RegisterMessage(GetSpaceResponse)
-
-ListLocalesRequest = _reflection.GeneratedProtocolMessageType('ListLocalesRequest', (_message.Message,), {
-  'DESCRIPTOR' : _LISTLOCALESREQUEST,
-  '__module__' : 'perxis.contentdelivery.contentdelivery_pb2'
-  # @@protoc_insertion_point(class_scope:contentdelivery.ListLocalesRequest)
-  })
-_sym_db.RegisterMessage(ListLocalesRequest)
-
-ListLocalesResponse = _reflection.GeneratedProtocolMessageType('ListLocalesResponse', (_message.Message,), {
-  'DESCRIPTOR' : _LISTLOCALESRESPONSE,
-  '__module__' : 'perxis.contentdelivery.contentdelivery_pb2'
-  # @@protoc_insertion_point(class_scope:contentdelivery.ListLocalesResponse)
-  })
-_sym_db.RegisterMessage(ListLocalesResponse)
-
-GetEnvironmentRequest = _reflection.GeneratedProtocolMessageType('GetEnvironmentRequest', (_message.Message,), {
-  'DESCRIPTOR' : _GETENVIRONMENTREQUEST,
-  '__module__' : 'perxis.contentdelivery.contentdelivery_pb2'
-  # @@protoc_insertion_point(class_scope:contentdelivery.GetEnvironmentRequest)
-  })
-_sym_db.RegisterMessage(GetEnvironmentRequest)
-
-GetEnvironmentResponse = _reflection.GeneratedProtocolMessageType('GetEnvironmentResponse', (_message.Message,), {
-  'DESCRIPTOR' : _GETENVIRONMENTRESPONSE,
-  '__module__' : 'perxis.contentdelivery.contentdelivery_pb2'
-  # @@protoc_insertion_point(class_scope:contentdelivery.GetEnvironmentResponse)
-  })
-_sym_db.RegisterMessage(GetEnvironmentResponse)
-
-GetCollectionRequest = _reflection.GeneratedProtocolMessageType('GetCollectionRequest', (_message.Message,), {
-  'DESCRIPTOR' : _GETCOLLECTIONREQUEST,
-  '__module__' : 'perxis.contentdelivery.contentdelivery_pb2'
-  # @@protoc_insertion_point(class_scope:contentdelivery.GetCollectionRequest)
-  })
-_sym_db.RegisterMessage(GetCollectionRequest)
-
-GetCollectionResponse = _reflection.GeneratedProtocolMessageType('GetCollectionResponse', (_message.Message,), {
-  'DESCRIPTOR' : _GETCOLLECTIONRESPONSE,
-  '__module__' : 'perxis.contentdelivery.contentdelivery_pb2'
-  # @@protoc_insertion_point(class_scope:contentdelivery.GetCollectionResponse)
-  })
-_sym_db.RegisterMessage(GetCollectionResponse)
-
-ListCollectionsRequest = _reflection.GeneratedProtocolMessageType('ListCollectionsRequest', (_message.Message,), {
-  'DESCRIPTOR' : _LISTCOLLECTIONSREQUEST,
-  '__module__' : 'perxis.contentdelivery.contentdelivery_pb2'
-  # @@protoc_insertion_point(class_scope:contentdelivery.ListCollectionsRequest)
-  })
-_sym_db.RegisterMessage(ListCollectionsRequest)
-
-ListCollectionsResponse = _reflection.GeneratedProtocolMessageType('ListCollectionsResponse', (_message.Message,), {
-  'DESCRIPTOR' : _LISTCOLLECTIONSRESPONSE,
-  '__module__' : 'perxis.contentdelivery.contentdelivery_pb2'
-  # @@protoc_insertion_point(class_scope:contentdelivery.ListCollectionsResponse)
-  })
-_sym_db.RegisterMessage(ListCollectionsResponse)
-
-GetItemRequest = _reflection.GeneratedProtocolMessageType('GetItemRequest', (_message.Message,), {
-  'DESCRIPTOR' : _GETITEMREQUEST,
-  '__module__' : 'perxis.contentdelivery.contentdelivery_pb2'
-  # @@protoc_insertion_point(class_scope:contentdelivery.GetItemRequest)
-  })
-_sym_db.RegisterMessage(GetItemRequest)
-
-GetItemResponse = _reflection.GeneratedProtocolMessageType('GetItemResponse', (_message.Message,), {
-  'DESCRIPTOR' : _GETITEMRESPONSE,
-  '__module__' : 'perxis.contentdelivery.contentdelivery_pb2'
-  # @@protoc_insertion_point(class_scope:contentdelivery.GetItemResponse)
-  })
-_sym_db.RegisterMessage(GetItemResponse)
-
-FindItemsRequest = _reflection.GeneratedProtocolMessageType('FindItemsRequest', (_message.Message,), {
-  'DESCRIPTOR' : _FINDITEMSREQUEST,
-  '__module__' : 'perxis.contentdelivery.contentdelivery_pb2'
-  # @@protoc_insertion_point(class_scope:contentdelivery.FindItemsRequest)
-  })
-_sym_db.RegisterMessage(FindItemsRequest)
-
-FindItemsResponse = _reflection.GeneratedProtocolMessageType('FindItemsResponse', (_message.Message,), {
-  'DESCRIPTOR' : _FINDITEMSRESPONSE,
-  '__module__' : 'perxis.contentdelivery.contentdelivery_pb2'
-  # @@protoc_insertion_point(class_scope:contentdelivery.FindItemsResponse)
-  })
-_sym_db.RegisterMessage(FindItemsResponse)
-
-
-DESCRIPTOR._options = None
-
-_CONTENTDELIVERY = _descriptor.ServiceDescriptor(
-  name='ContentDelivery',
-  full_name='contentdelivery.ContentDelivery',
-  file=DESCRIPTOR,
-  index=0,
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_start=1079,
-  serialized_end=1740,
-  methods=[
-  _descriptor.MethodDescriptor(
-    name='GetSpace',
-    full_name='contentdelivery.ContentDelivery.GetSpace',
-    index=0,
-    containing_service=None,
-    input_type=_GETSPACEREQUEST,
-    output_type=_GETSPACERESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListLocales',
-    full_name='contentdelivery.ContentDelivery.ListLocales',
-    index=1,
-    containing_service=None,
-    input_type=_LISTLOCALESREQUEST,
-    output_type=_LISTLOCALESRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetEnvironment',
-    full_name='contentdelivery.ContentDelivery.GetEnvironment',
-    index=2,
-    containing_service=None,
-    input_type=_GETENVIRONMENTREQUEST,
-    output_type=_GETENVIRONMENTRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetCollection',
-    full_name='contentdelivery.ContentDelivery.GetCollection',
-    index=3,
-    containing_service=None,
-    input_type=_GETCOLLECTIONREQUEST,
-    output_type=_GETCOLLECTIONRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListCollections',
-    full_name='contentdelivery.ContentDelivery.ListCollections',
-    index=4,
-    containing_service=None,
-    input_type=_LISTCOLLECTIONSREQUEST,
-    output_type=_LISTCOLLECTIONSRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetItem',
-    full_name='contentdelivery.ContentDelivery.GetItem',
-    index=5,
-    containing_service=None,
-    input_type=_GETITEMREQUEST,
-    output_type=_GETITEMRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='FindItems',
-    full_name='contentdelivery.ContentDelivery.FindItems',
-    index=6,
-    containing_service=None,
-    input_type=_FINDITEMSREQUEST,
-    output_type=_FINDITEMSRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-])
-_sym_db.RegisterServiceDescriptor(_CONTENTDELIVERY)
-
-DESCRIPTOR.services_by_name['ContentDelivery'] = _CONTENTDELIVERY
-
-# @@protoc_insertion_point(module_scope)
diff --git a/perxis/contentdelivery/contentdelivery_pb2_grpc.py b/perxis/contentdelivery/contentdelivery_pb2_grpc.py
deleted file mode 100644
index bbb40a1dd6ca03fd0d2c5b7016bc30f8ca4ac372..0000000000000000000000000000000000000000
--- a/perxis/contentdelivery/contentdelivery_pb2_grpc.py
+++ /dev/null
@@ -1,264 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-"""Client and server classes corresponding to protobuf-defined services."""
-import grpc
-
-from perxis.contentdelivery import contentdelivery_pb2 as perxis_dot_contentdelivery_dot_contentdelivery__pb2
-
-
-class ContentDeliveryStub(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def __init__(self, channel):
-        """Constructor.
-
-        Args:
-            channel: A grpc.Channel.
-        """
-        self.GetSpace = channel.unary_unary(
-                '/contentdelivery.ContentDelivery/GetSpace',
-                request_serializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetSpaceRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetSpaceResponse.FromString,
-                )
-        self.ListLocales = channel.unary_unary(
-                '/contentdelivery.ContentDelivery/ListLocales',
-                request_serializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.ListLocalesRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.ListLocalesResponse.FromString,
-                )
-        self.GetEnvironment = channel.unary_unary(
-                '/contentdelivery.ContentDelivery/GetEnvironment',
-                request_serializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetEnvironmentRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetEnvironmentResponse.FromString,
-                )
-        self.GetCollection = channel.unary_unary(
-                '/contentdelivery.ContentDelivery/GetCollection',
-                request_serializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetCollectionRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetCollectionResponse.FromString,
-                )
-        self.ListCollections = channel.unary_unary(
-                '/contentdelivery.ContentDelivery/ListCollections',
-                request_serializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.ListCollectionsRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.ListCollectionsResponse.FromString,
-                )
-        self.GetItem = channel.unary_unary(
-                '/contentdelivery.ContentDelivery/GetItem',
-                request_serializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetItemRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetItemResponse.FromString,
-                )
-        self.FindItems = channel.unary_unary(
-                '/contentdelivery.ContentDelivery/FindItems',
-                request_serializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.FindItemsRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.FindItemsResponse.FromString,
-                )
-
-
-class ContentDeliveryServicer(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def GetSpace(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def ListLocales(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def GetEnvironment(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def GetCollection(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def ListCollections(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def GetItem(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def FindItems(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-
-def add_ContentDeliveryServicer_to_server(servicer, server):
-    rpc_method_handlers = {
-            'GetSpace': grpc.unary_unary_rpc_method_handler(
-                    servicer.GetSpace,
-                    request_deserializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetSpaceRequest.FromString,
-                    response_serializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetSpaceResponse.SerializeToString,
-            ),
-            'ListLocales': grpc.unary_unary_rpc_method_handler(
-                    servicer.ListLocales,
-                    request_deserializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.ListLocalesRequest.FromString,
-                    response_serializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.ListLocalesResponse.SerializeToString,
-            ),
-            'GetEnvironment': grpc.unary_unary_rpc_method_handler(
-                    servicer.GetEnvironment,
-                    request_deserializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetEnvironmentRequest.FromString,
-                    response_serializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetEnvironmentResponse.SerializeToString,
-            ),
-            'GetCollection': grpc.unary_unary_rpc_method_handler(
-                    servicer.GetCollection,
-                    request_deserializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetCollectionRequest.FromString,
-                    response_serializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetCollectionResponse.SerializeToString,
-            ),
-            'ListCollections': grpc.unary_unary_rpc_method_handler(
-                    servicer.ListCollections,
-                    request_deserializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.ListCollectionsRequest.FromString,
-                    response_serializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.ListCollectionsResponse.SerializeToString,
-            ),
-            'GetItem': grpc.unary_unary_rpc_method_handler(
-                    servicer.GetItem,
-                    request_deserializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetItemRequest.FromString,
-                    response_serializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetItemResponse.SerializeToString,
-            ),
-            'FindItems': grpc.unary_unary_rpc_method_handler(
-                    servicer.FindItems,
-                    request_deserializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.FindItemsRequest.FromString,
-                    response_serializer=perxis_dot_contentdelivery_dot_contentdelivery__pb2.FindItemsResponse.SerializeToString,
-            ),
-    }
-    generic_handler = grpc.method_handlers_generic_handler(
-            'contentdelivery.ContentDelivery', rpc_method_handlers)
-    server.add_generic_rpc_handlers((generic_handler,))
-
-
- # This class is part of an EXPERIMENTAL API.
-class ContentDelivery(object):
-    """Missing associated documentation comment in .proto file."""
-
-    @staticmethod
-    def GetSpace(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentdelivery.ContentDelivery/GetSpace',
-            perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetSpaceRequest.SerializeToString,
-            perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetSpaceResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def ListLocales(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentdelivery.ContentDelivery/ListLocales',
-            perxis_dot_contentdelivery_dot_contentdelivery__pb2.ListLocalesRequest.SerializeToString,
-            perxis_dot_contentdelivery_dot_contentdelivery__pb2.ListLocalesResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def GetEnvironment(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentdelivery.ContentDelivery/GetEnvironment',
-            perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetEnvironmentRequest.SerializeToString,
-            perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetEnvironmentResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def GetCollection(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentdelivery.ContentDelivery/GetCollection',
-            perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetCollectionRequest.SerializeToString,
-            perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetCollectionResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def ListCollections(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentdelivery.ContentDelivery/ListCollections',
-            perxis_dot_contentdelivery_dot_contentdelivery__pb2.ListCollectionsRequest.SerializeToString,
-            perxis_dot_contentdelivery_dot_contentdelivery__pb2.ListCollectionsResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def GetItem(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentdelivery.ContentDelivery/GetItem',
-            perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetItemRequest.SerializeToString,
-            perxis_dot_contentdelivery_dot_contentdelivery__pb2.GetItemResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def FindItems(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentdelivery.ContentDelivery/FindItems',
-            perxis_dot_contentdelivery_dot_contentdelivery__pb2.FindItemsRequest.SerializeToString,
-            perxis_dot_contentdelivery_dot_contentdelivery__pb2.FindItemsResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
diff --git a/perxis/contentmanagement/__init__.py b/perxis/contentmanagement/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/perxis/contentmanagement/contentmanagment_pb2.py b/perxis/contentmanagement/contentmanagment_pb2.py
deleted file mode 100644
index 9f413d04879863b69f75c5d6b00dad0aca4b124f..0000000000000000000000000000000000000000
--- a/perxis/contentmanagement/contentmanagment_pb2.py
+++ /dev/null
@@ -1,3367 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: perxis/contentmanagement/contentmanagment.proto
-"""Generated protocol buffer code."""
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
-from perxis.common import common_pb2 as perxis_dot_common_dot_common__pb2
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='perxis/contentmanagement/contentmanagment.proto',
-  package='contentmanagement',
-  syntax='proto3',
-  serialized_options=b'ZDgithub.com/perxteam/perxis/proto/contentmanagement;contentmanagement',
-  create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n/perxis/contentmanagement/contentmanagment.proto\x12\x11\x63ontentmanagement\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1aperxis/common/common.proto\"A\n\x17\x43reateCollectionRequest\x12&\n\ncollection\x18\x01 \x01(\x0b\x32\x12.common.Collection\"B\n\x18\x43reateCollectionResponse\x12&\n\ncollection\x18\x01 \x01(\x0b\x32\x12.common.Collection\"L\n\x14GetCollectionRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x02 \x01(\t\x12\x10\n\x08space_id\x18\x03 \x01(\t\"?\n\x15GetCollectionResponse\x12&\n\ncollection\x18\x01 \x01(\x0b\x32\x12.common.Collection\"B\n\x16ListCollectionsRequest\x12\x16\n\x0e\x65nvironment_id\x18\x01 \x01(\t\x12\x10\n\x08space_id\x18\x02 \x01(\t\"B\n\x17ListCollectionsResponse\x12\'\n\x0b\x63ollections\x18\x01 \x03(\x0b\x32\x12.common.Collection\"w\n\x17UpdateCollectionRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x02 \x01(\t\x12\x10\n\x08space_id\x18\x03 \x01(\t\x12&\n\ncollection\x18\x04 \x01(\x0b\x32\x12.common.Collection\"\x1a\n\x18UpdateCollectionResponse\"O\n\x17\x44\x65leteCollectionRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x02 \x01(\t\x12\x10\n\x08space_id\x18\x03 \x01(\t\"\x1a\n\x18\x44\x65leteCollectionResponse\"/\n\x11\x43reateItemRequest\x12\x1a\n\x04item\x18\x01 \x01(\x0b\x32\x0c.common.Item\"0\n\x12\x43reateItemResponse\x12\x1a\n\x04item\x18\x01 \x01(\x0b\x32\x0c.common.Item\"]\n\x0eGetItemRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x02 \x01(\t\x12\x10\n\x08space_id\x18\x03 \x01(\t\x12\x15\n\rcollection_id\x18\x04 \x01(\t\"-\n\x0fGetItemResponse\x12\x1a\n\x04item\x18\x01 \x01(\x0b\x32\x0c.common.Item\"p\n\x11UpdateItemRequest\x12\x16\n\x0e\x65nvironment_id\x18\x01 \x01(\t\x12\x10\n\x08space_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12\x1a\n\x04item\x18\x04 \x01(\x0b\x32\x0c.common.Item\"0\n\x12UpdateItemResponse\x12\x1a\n\x04item\x18\x01 \x01(\x0b\x32\x0c.common.Item\"`\n\x11\x44\x65leteItemRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x02 \x01(\t\x12\x10\n\x08space_id\x18\x03 \x01(\t\x12\x15\n\rcollection_id\x18\x04 \x01(\t\"\x14\n\x12\x44\x65leteItemResponse\"a\n\x12PublishItemRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x02 \x01(\t\x12\x10\n\x08space_id\x18\x03 \x01(\t\x12\x15\n\rcollection_id\x18\x04 \x01(\t\"\x15\n\x13PublishItemResponse\"c\n\x14UnpublishItemRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x02 \x01(\t\x12\x10\n\x08space_id\x18\x03 \x01(\t\x12\x15\n\rcollection_id\x18\x04 \x01(\t\"\x17\n\x15UnpublishItemResponse\"a\n\x12\x41rchiveItemRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x02 \x01(\t\x12\x10\n\x08space_id\x18\x03 \x01(\t\x12\x15\n\rcollection_id\x18\x04 \x01(\t\"\x15\n\x13\x41rchiveItemResponse\"c\n\x14UnarchiveItemRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x02 \x01(\t\x12\x10\n\x08space_id\x18\x03 \x01(\t\x12\x15\n\rcollection_id\x18\x04 \x01(\t\"\x17\n\x15UnarchiveItemResponse\"g\n\x18ListItemRevisionsRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x02 \x01(\t\x12\x10\n\x08space_id\x18\x03 \x01(\t\x12\x15\n\rcollection_id\x18\x04 \x01(\t\"8\n\x19ListItemRevisionsResponse\x12\x1b\n\x05items\x18\x01 \x03(\x0b\x32\x0c.common.Item\"z\n\x16GetItemRevisionRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x02 \x01(\t\x12\x10\n\x08space_id\x18\x03 \x01(\t\x12\x15\n\rcollection_id\x18\x04 \x01(\t\x12\x13\n\x0brevision_id\x18\x05 \x01(\t\"5\n\x17GetItemRevisionResponse\x12\x1a\n\x04item\x18\x01 \x01(\x0b\x32\x0c.common.Item\"\xa4\x01\n\x10\x46indItemsRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12\x1c\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32\x0e.common.Filter\x12\x10\n\x08page_num\x18\x08 \x01(\x05\x12\x11\n\tpage_size\x18\t \x01(\x05\x12\x0c\n\x04sort\x18\n \x03(\t\"?\n\x11\x46indItemsResponse\x12\x1b\n\x05items\x18\x01 \x03(\x0b\x32\x0c.common.Item\x12\r\n\x05total\x18\x02 \x01(\x05\"\xac\x01\n\x18\x46indArchivedItemsRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x16\n\x0e\x65nvironment_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12\x1c\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32\x0e.common.Filter\x12\x10\n\x08page_num\x18\x08 \x01(\x05\x12\x11\n\tpage_size\x18\t \x01(\x05\x12\x0c\n\x04sort\x18\n \x03(\t\"G\n\x19\x46indArchivedItemsResponse\x12\x1b\n\x05items\x18\x01 \x03(\x0b\x32\x0c.common.Item\x12\r\n\x05total\x18\x02 \x01(\x05\"9\n\x19\x43ontentCreateSpaceRequest\x12\x1c\n\x05space\x18\x01 \x01(\x0b\x32\r.common.Space\":\n\x1a\x43ontentCreateSpaceResponse\x12\x1c\n\x05space\x18\x01 \x01(\x0b\x32\r.common.Space\"\'\n\x19\x43ontentDeleteSpaceRequest\x12\n\n\x02id\x18\x01 \x01(\t\"$\n\x16\x43ontentGetSpaceRequest\x12\n\n\x02id\x18\x01 \x01(\t\"7\n\x17\x43ontentGetSpaceResponse\x12\x1c\n\x05space\x18\x01 \x01(\x0b\x32\r.common.Space\"\x13\n\x11ListSpacesRequest\"3\n\x12ListSpacesResponse\x12\x1d\n\x06spaces\x18\x01 \x03(\x0b\x32\r.common.Space\"5\n\x13\x43reateLocaleRequest\x12\x1e\n\x06locale\x18\x01 \x01(\x0b\x32\x0e.common.Locale\"6\n\x14\x43reateLocaleResponse\x12\x1e\n\x06locale\x18\x01 \x01(\x0b\x32\x0e.common.Locale\"&\n\x12ListLocalesRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\"6\n\x13ListLocalesResponse\x12\x1f\n\x07locales\x18\x01 \x03(\x0b\x32\x0e.common.Locale\"3\n\x13\x44\x65leteLocaleRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08space_id\x18\x02 \x01(\t\"\x16\n\x14\x44\x65leteLocaleResponse\"a\n\x18\x43reateEnvironmentRequest\x12\x1b\n\x13\x62\x61se_environment_id\x18\x01 \x01(\t\x12(\n\x0b\x65nvironment\x18\x02 \x01(\x0b\x32\x13.common.Environment\"E\n\x19\x43reateEnvironmentResponse\x12(\n\x0b\x65nvironment\x18\x01 \x01(\x0b\x32\x13.common.Environment\"5\n\x15GetEnvironmentRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08space_id\x18\x02 \x01(\t\"B\n\x16GetEnvironmentResponse\x12(\n\x0b\x65nvironment\x18\x01 \x01(\x0b\x32\x13.common.Environment\"+\n\x17ListEnvironmentsRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\"E\n\x18ListEnvironmentsResponse\x12)\n\x0c\x65nvironments\x18\x01 \x03(\x0b\x32\x13.common.Environment\"b\n\x18UpdateEnvironmentRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08space_id\x18\x02 \x01(\t\x12(\n\x0b\x65nvironment\x18\x03 \x01(\x0b\x32\x13.common.Environment\"\x1b\n\x19UpdateEnvironmentResponse\"8\n\x18\x44\x65leteEnvironmentRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08space_id\x18\x02 \x01(\t\"\x1b\n\x19\x44\x65leteEnvironmentResponse\"I\n\x1aSetEnvironmentAliasRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08space_id\x18\x02 \x01(\t\x12\r\n\x05\x61lias\x18\x03 \x01(\t\"\x1d\n\x1bSetEnvironmentAliasResponse\"L\n\x1dRemoveEnvironmentAliasRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08space_id\x18\x02 \x01(\t\x12\r\n\x05\x61lias\x18\x03 \x01(\t\" \n\x1eRemoveEnvironmentAliasResponse\"?\n\x16\x43reateSpaceRoleRequest\x12%\n\nspace_role\x18\x01 \x01(\x0b\x32\x11.common.SpaceRole\"?\n\x16UpdateSpaceRoleRequest\x12%\n\nspace_role\x18\x01 \x01(\x0b\x32\x11.common.SpaceRole\")\n\x15ListSpaceRolesRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\"@\n\x16ListSpaceRolesResponse\x12&\n\x0bspace_roles\x18\x01 \x03(\x0b\x32\x11.common.SpaceRole\"6\n\x16\x44\x65leteSpaceRoleRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08space_id\x18\x02 \x01(\t2\xa4\x17\n\x11\x43ontentManagement\x12m\n\x10\x43reateCollection\x12*.contentmanagement.CreateCollectionRequest\x1a+.contentmanagement.CreateCollectionResponse\"\x00\x12\x64\n\rGetCollection\x12\'.contentmanagement.GetCollectionRequest\x1a(.contentmanagement.GetCollectionResponse\"\x00\x12j\n\x0fListCollections\x12).contentmanagement.ListCollectionsRequest\x1a*.contentmanagement.ListCollectionsResponse\"\x00\x12X\n\x10UpdateCollection\x12*.contentmanagement.UpdateCollectionRequest\x1a\x16.google.protobuf.Empty\"\x00\x12X\n\x10\x44\x65leteCollection\x12*.contentmanagement.DeleteCollectionRequest\x1a\x16.google.protobuf.Empty\"\x00\x12[\n\nCreateItem\x12$.contentmanagement.CreateItemRequest\x1a%.contentmanagement.CreateItemResponse\"\x00\x12R\n\x07GetItem\x12!.contentmanagement.GetItemRequest\x1a\".contentmanagement.GetItemResponse\"\x00\x12[\n\nUpdateItem\x12$.contentmanagement.UpdateItemRequest\x1a%.contentmanagement.UpdateItemResponse\"\x00\x12L\n\nDeleteItem\x12$.contentmanagement.DeleteItemRequest\x1a\x16.google.protobuf.Empty\"\x00\x12N\n\x0bPublishItem\x12%.contentmanagement.PublishItemRequest\x1a\x16.google.protobuf.Empty\"\x00\x12R\n\rUnpublishItem\x12\'.contentmanagement.UnpublishItemRequest\x1a\x16.google.protobuf.Empty\"\x00\x12N\n\x0b\x41rchiveItem\x12%.contentmanagement.ArchiveItemRequest\x1a\x16.google.protobuf.Empty\"\x00\x12R\n\rUnarchiveItem\x12\'.contentmanagement.UnarchiveItemRequest\x1a\x16.google.protobuf.Empty\"\x00\x12p\n\x11ListItemRevisions\x12+.contentmanagement.ListItemRevisionsRequest\x1a,.contentmanagement.ListItemRevisionsResponse\"\x00\x12j\n\x0fGetItemRevision\x12).contentmanagement.GetItemRevisionRequest\x1a*.contentmanagement.GetItemRevisionResponse\"\x00\x12X\n\tFindItems\x12#.contentmanagement.FindItemsRequest\x1a$.contentmanagement.FindItemsResponse\"\x00\x12p\n\x11\x46indArchivedItems\x12+.contentmanagement.FindArchivedItemsRequest\x1a,.contentmanagement.FindArchivedItemsResponse\"\x00\x12\x61\n\x0c\x43reateLocale\x12&.contentmanagement.CreateLocaleRequest\x1a\'.contentmanagement.CreateLocaleResponse\"\x00\x12^\n\x0bListLocales\x12%.contentmanagement.ListLocalesRequest\x1a&.contentmanagement.ListLocalesResponse\"\x00\x12P\n\x0c\x44\x65leteLocale\x12&.contentmanagement.DeleteLocaleRequest\x1a\x16.google.protobuf.Empty\"\x00\x12p\n\x11\x43reateEnvironment\x12+.contentmanagement.CreateEnvironmentRequest\x1a,.contentmanagement.CreateEnvironmentResponse\"\x00\x12g\n\x0eGetEnvironment\x12(.contentmanagement.GetEnvironmentRequest\x1a).contentmanagement.GetEnvironmentResponse\"\x00\x12m\n\x10ListEnvironments\x12*.contentmanagement.ListEnvironmentsRequest\x1a+.contentmanagement.ListEnvironmentsResponse\"\x00\x12Z\n\x11UpdateEnvironment\x12+.contentmanagement.UpdateEnvironmentRequest\x1a\x16.google.protobuf.Empty\"\x00\x12Z\n\x11\x44\x65leteEnvironment\x12+.contentmanagement.DeleteEnvironmentRequest\x1a\x16.google.protobuf.Empty\"\x00\x12^\n\x13SetEnvironmentAlias\x12-.contentmanagement.SetEnvironmentAliasRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x64\n\x16RemoveEnvironmentAlias\x12\x30.contentmanagement.RemoveEnvironmentAliasRequest\x1a\x16.google.protobuf.Empty\"\x00\x12V\n\x0f\x43reateSpaceRole\x12).contentmanagement.CreateSpaceRoleRequest\x1a\x16.google.protobuf.Empty\"\x00\x12V\n\x0fUpdateSpaceRole\x12).contentmanagement.UpdateSpaceRoleRequest\x1a\x16.google.protobuf.Empty\"\x00\x12g\n\x0eListSpaceRoles\x12(.contentmanagement.ListSpaceRolesRequest\x1a).contentmanagement.ListSpaceRolesResponse\"\x00\x12V\n\x0f\x44\x65leteSpaceRole\x12).contentmanagement.DeleteSpaceRoleRequest\x1a\x16.google.protobuf.Empty\"\x00\x42\x46ZDgithub.com/perxteam/perxis/proto/contentmanagement;contentmanagementb\x06proto3'
-  ,
-  dependencies=[google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,perxis_dot_common_dot_common__pb2.DESCRIPTOR,])
-
-
-
-
-_CREATECOLLECTIONREQUEST = _descriptor.Descriptor(
-  name='CreateCollectionRequest',
-  full_name='contentmanagement.CreateCollectionRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='collection', full_name='contentmanagement.CreateCollectionRequest.collection', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=127,
-  serialized_end=192,
-)
-
-
-_CREATECOLLECTIONRESPONSE = _descriptor.Descriptor(
-  name='CreateCollectionResponse',
-  full_name='contentmanagement.CreateCollectionResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='collection', full_name='contentmanagement.CreateCollectionResponse.collection', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=194,
-  serialized_end=260,
-)
-
-
-_GETCOLLECTIONREQUEST = _descriptor.Descriptor(
-  name='GetCollectionRequest',
-  full_name='contentmanagement.GetCollectionRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentmanagement.GetCollectionRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='environment_id', full_name='contentmanagement.GetCollectionRequest.environment_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.GetCollectionRequest.space_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=262,
-  serialized_end=338,
-)
-
-
-_GETCOLLECTIONRESPONSE = _descriptor.Descriptor(
-  name='GetCollectionResponse',
-  full_name='contentmanagement.GetCollectionResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='collection', full_name='contentmanagement.GetCollectionResponse.collection', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=340,
-  serialized_end=403,
-)
-
-
-_LISTCOLLECTIONSREQUEST = _descriptor.Descriptor(
-  name='ListCollectionsRequest',
-  full_name='contentmanagement.ListCollectionsRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='environment_id', full_name='contentmanagement.ListCollectionsRequest.environment_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.ListCollectionsRequest.space_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=405,
-  serialized_end=471,
-)
-
-
-_LISTCOLLECTIONSRESPONSE = _descriptor.Descriptor(
-  name='ListCollectionsResponse',
-  full_name='contentmanagement.ListCollectionsResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='collections', full_name='contentmanagement.ListCollectionsResponse.collections', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=473,
-  serialized_end=539,
-)
-
-
-_UPDATECOLLECTIONREQUEST = _descriptor.Descriptor(
-  name='UpdateCollectionRequest',
-  full_name='contentmanagement.UpdateCollectionRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentmanagement.UpdateCollectionRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='environment_id', full_name='contentmanagement.UpdateCollectionRequest.environment_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.UpdateCollectionRequest.space_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='collection', full_name='contentmanagement.UpdateCollectionRequest.collection', index=3,
-      number=4, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=541,
-  serialized_end=660,
-)
-
-
-_UPDATECOLLECTIONRESPONSE = _descriptor.Descriptor(
-  name='UpdateCollectionResponse',
-  full_name='contentmanagement.UpdateCollectionResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=662,
-  serialized_end=688,
-)
-
-
-_DELETECOLLECTIONREQUEST = _descriptor.Descriptor(
-  name='DeleteCollectionRequest',
-  full_name='contentmanagement.DeleteCollectionRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentmanagement.DeleteCollectionRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='environment_id', full_name='contentmanagement.DeleteCollectionRequest.environment_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.DeleteCollectionRequest.space_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=690,
-  serialized_end=769,
-)
-
-
-_DELETECOLLECTIONRESPONSE = _descriptor.Descriptor(
-  name='DeleteCollectionResponse',
-  full_name='contentmanagement.DeleteCollectionResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=771,
-  serialized_end=797,
-)
-
-
-_CREATEITEMREQUEST = _descriptor.Descriptor(
-  name='CreateItemRequest',
-  full_name='contentmanagement.CreateItemRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='item', full_name='contentmanagement.CreateItemRequest.item', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=799,
-  serialized_end=846,
-)
-
-
-_CREATEITEMRESPONSE = _descriptor.Descriptor(
-  name='CreateItemResponse',
-  full_name='contentmanagement.CreateItemResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='item', full_name='contentmanagement.CreateItemResponse.item', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=848,
-  serialized_end=896,
-)
-
-
-_GETITEMREQUEST = _descriptor.Descriptor(
-  name='GetItemRequest',
-  full_name='contentmanagement.GetItemRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentmanagement.GetItemRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='environment_id', full_name='contentmanagement.GetItemRequest.environment_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.GetItemRequest.space_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='collection_id', full_name='contentmanagement.GetItemRequest.collection_id', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=898,
-  serialized_end=991,
-)
-
-
-_GETITEMRESPONSE = _descriptor.Descriptor(
-  name='GetItemResponse',
-  full_name='contentmanagement.GetItemResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='item', full_name='contentmanagement.GetItemResponse.item', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=993,
-  serialized_end=1038,
-)
-
-
-_UPDATEITEMREQUEST = _descriptor.Descriptor(
-  name='UpdateItemRequest',
-  full_name='contentmanagement.UpdateItemRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='environment_id', full_name='contentmanagement.UpdateItemRequest.environment_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.UpdateItemRequest.space_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='collection_id', full_name='contentmanagement.UpdateItemRequest.collection_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='item', full_name='contentmanagement.UpdateItemRequest.item', index=3,
-      number=4, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1040,
-  serialized_end=1152,
-)
-
-
-_UPDATEITEMRESPONSE = _descriptor.Descriptor(
-  name='UpdateItemResponse',
-  full_name='contentmanagement.UpdateItemResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='item', full_name='contentmanagement.UpdateItemResponse.item', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1154,
-  serialized_end=1202,
-)
-
-
-_DELETEITEMREQUEST = _descriptor.Descriptor(
-  name='DeleteItemRequest',
-  full_name='contentmanagement.DeleteItemRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentmanagement.DeleteItemRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='environment_id', full_name='contentmanagement.DeleteItemRequest.environment_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.DeleteItemRequest.space_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='collection_id', full_name='contentmanagement.DeleteItemRequest.collection_id', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1204,
-  serialized_end=1300,
-)
-
-
-_DELETEITEMRESPONSE = _descriptor.Descriptor(
-  name='DeleteItemResponse',
-  full_name='contentmanagement.DeleteItemResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1302,
-  serialized_end=1322,
-)
-
-
-_PUBLISHITEMREQUEST = _descriptor.Descriptor(
-  name='PublishItemRequest',
-  full_name='contentmanagement.PublishItemRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentmanagement.PublishItemRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='environment_id', full_name='contentmanagement.PublishItemRequest.environment_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.PublishItemRequest.space_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='collection_id', full_name='contentmanagement.PublishItemRequest.collection_id', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1324,
-  serialized_end=1421,
-)
-
-
-_PUBLISHITEMRESPONSE = _descriptor.Descriptor(
-  name='PublishItemResponse',
-  full_name='contentmanagement.PublishItemResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1423,
-  serialized_end=1444,
-)
-
-
-_UNPUBLISHITEMREQUEST = _descriptor.Descriptor(
-  name='UnpublishItemRequest',
-  full_name='contentmanagement.UnpublishItemRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentmanagement.UnpublishItemRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='environment_id', full_name='contentmanagement.UnpublishItemRequest.environment_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.UnpublishItemRequest.space_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='collection_id', full_name='contentmanagement.UnpublishItemRequest.collection_id', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1446,
-  serialized_end=1545,
-)
-
-
-_UNPUBLISHITEMRESPONSE = _descriptor.Descriptor(
-  name='UnpublishItemResponse',
-  full_name='contentmanagement.UnpublishItemResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1547,
-  serialized_end=1570,
-)
-
-
-_ARCHIVEITEMREQUEST = _descriptor.Descriptor(
-  name='ArchiveItemRequest',
-  full_name='contentmanagement.ArchiveItemRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentmanagement.ArchiveItemRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='environment_id', full_name='contentmanagement.ArchiveItemRequest.environment_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.ArchiveItemRequest.space_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='collection_id', full_name='contentmanagement.ArchiveItemRequest.collection_id', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1572,
-  serialized_end=1669,
-)
-
-
-_ARCHIVEITEMRESPONSE = _descriptor.Descriptor(
-  name='ArchiveItemResponse',
-  full_name='contentmanagement.ArchiveItemResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1671,
-  serialized_end=1692,
-)
-
-
-_UNARCHIVEITEMREQUEST = _descriptor.Descriptor(
-  name='UnarchiveItemRequest',
-  full_name='contentmanagement.UnarchiveItemRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentmanagement.UnarchiveItemRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='environment_id', full_name='contentmanagement.UnarchiveItemRequest.environment_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.UnarchiveItemRequest.space_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='collection_id', full_name='contentmanagement.UnarchiveItemRequest.collection_id', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1694,
-  serialized_end=1793,
-)
-
-
-_UNARCHIVEITEMRESPONSE = _descriptor.Descriptor(
-  name='UnarchiveItemResponse',
-  full_name='contentmanagement.UnarchiveItemResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1795,
-  serialized_end=1818,
-)
-
-
-_LISTITEMREVISIONSREQUEST = _descriptor.Descriptor(
-  name='ListItemRevisionsRequest',
-  full_name='contentmanagement.ListItemRevisionsRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentmanagement.ListItemRevisionsRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='environment_id', full_name='contentmanagement.ListItemRevisionsRequest.environment_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.ListItemRevisionsRequest.space_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='collection_id', full_name='contentmanagement.ListItemRevisionsRequest.collection_id', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1820,
-  serialized_end=1923,
-)
-
-
-_LISTITEMREVISIONSRESPONSE = _descriptor.Descriptor(
-  name='ListItemRevisionsResponse',
-  full_name='contentmanagement.ListItemRevisionsResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='items', full_name='contentmanagement.ListItemRevisionsResponse.items', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1925,
-  serialized_end=1981,
-)
-
-
-_GETITEMREVISIONREQUEST = _descriptor.Descriptor(
-  name='GetItemRevisionRequest',
-  full_name='contentmanagement.GetItemRevisionRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentmanagement.GetItemRevisionRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='environment_id', full_name='contentmanagement.GetItemRevisionRequest.environment_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.GetItemRevisionRequest.space_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='collection_id', full_name='contentmanagement.GetItemRevisionRequest.collection_id', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='revision_id', full_name='contentmanagement.GetItemRevisionRequest.revision_id', index=4,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1983,
-  serialized_end=2105,
-)
-
-
-_GETITEMREVISIONRESPONSE = _descriptor.Descriptor(
-  name='GetItemRevisionResponse',
-  full_name='contentmanagement.GetItemRevisionResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='item', full_name='contentmanagement.GetItemRevisionResponse.item', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2107,
-  serialized_end=2160,
-)
-
-
-_FINDITEMSREQUEST = _descriptor.Descriptor(
-  name='FindItemsRequest',
-  full_name='contentmanagement.FindItemsRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.FindItemsRequest.space_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='environment_id', full_name='contentmanagement.FindItemsRequest.environment_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='collection_id', full_name='contentmanagement.FindItemsRequest.collection_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='data', full_name='contentmanagement.FindItemsRequest.data', index=3,
-      number=4, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_num', full_name='contentmanagement.FindItemsRequest.page_num', index=4,
-      number=8, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_size', full_name='contentmanagement.FindItemsRequest.page_size', index=5,
-      number=9, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='sort', full_name='contentmanagement.FindItemsRequest.sort', index=6,
-      number=10, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2163,
-  serialized_end=2327,
-)
-
-
-_FINDITEMSRESPONSE = _descriptor.Descriptor(
-  name='FindItemsResponse',
-  full_name='contentmanagement.FindItemsResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='items', full_name='contentmanagement.FindItemsResponse.items', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='total', full_name='contentmanagement.FindItemsResponse.total', index=1,
-      number=2, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2329,
-  serialized_end=2392,
-)
-
-
-_FINDARCHIVEDITEMSREQUEST = _descriptor.Descriptor(
-  name='FindArchivedItemsRequest',
-  full_name='contentmanagement.FindArchivedItemsRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.FindArchivedItemsRequest.space_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='environment_id', full_name='contentmanagement.FindArchivedItemsRequest.environment_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='collection_id', full_name='contentmanagement.FindArchivedItemsRequest.collection_id', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='data', full_name='contentmanagement.FindArchivedItemsRequest.data', index=3,
-      number=4, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_num', full_name='contentmanagement.FindArchivedItemsRequest.page_num', index=4,
-      number=8, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_size', full_name='contentmanagement.FindArchivedItemsRequest.page_size', index=5,
-      number=9, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='sort', full_name='contentmanagement.FindArchivedItemsRequest.sort', index=6,
-      number=10, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2395,
-  serialized_end=2567,
-)
-
-
-_FINDARCHIVEDITEMSRESPONSE = _descriptor.Descriptor(
-  name='FindArchivedItemsResponse',
-  full_name='contentmanagement.FindArchivedItemsResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='items', full_name='contentmanagement.FindArchivedItemsResponse.items', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='total', full_name='contentmanagement.FindArchivedItemsResponse.total', index=1,
-      number=2, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2569,
-  serialized_end=2640,
-)
-
-
-_CONTENTCREATESPACEREQUEST = _descriptor.Descriptor(
-  name='ContentCreateSpaceRequest',
-  full_name='contentmanagement.ContentCreateSpaceRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space', full_name='contentmanagement.ContentCreateSpaceRequest.space', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2642,
-  serialized_end=2699,
-)
-
-
-_CONTENTCREATESPACERESPONSE = _descriptor.Descriptor(
-  name='ContentCreateSpaceResponse',
-  full_name='contentmanagement.ContentCreateSpaceResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space', full_name='contentmanagement.ContentCreateSpaceResponse.space', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2701,
-  serialized_end=2759,
-)
-
-
-_CONTENTDELETESPACEREQUEST = _descriptor.Descriptor(
-  name='ContentDeleteSpaceRequest',
-  full_name='contentmanagement.ContentDeleteSpaceRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentmanagement.ContentDeleteSpaceRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2761,
-  serialized_end=2800,
-)
-
-
-_CONTENTGETSPACEREQUEST = _descriptor.Descriptor(
-  name='ContentGetSpaceRequest',
-  full_name='contentmanagement.ContentGetSpaceRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentmanagement.ContentGetSpaceRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2802,
-  serialized_end=2838,
-)
-
-
-_CONTENTGETSPACERESPONSE = _descriptor.Descriptor(
-  name='ContentGetSpaceResponse',
-  full_name='contentmanagement.ContentGetSpaceResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space', full_name='contentmanagement.ContentGetSpaceResponse.space', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2840,
-  serialized_end=2895,
-)
-
-
-_LISTSPACESREQUEST = _descriptor.Descriptor(
-  name='ListSpacesRequest',
-  full_name='contentmanagement.ListSpacesRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2897,
-  serialized_end=2916,
-)
-
-
-_LISTSPACESRESPONSE = _descriptor.Descriptor(
-  name='ListSpacesResponse',
-  full_name='contentmanagement.ListSpacesResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='spaces', full_name='contentmanagement.ListSpacesResponse.spaces', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2918,
-  serialized_end=2969,
-)
-
-
-_CREATELOCALEREQUEST = _descriptor.Descriptor(
-  name='CreateLocaleRequest',
-  full_name='contentmanagement.CreateLocaleRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='locale', full_name='contentmanagement.CreateLocaleRequest.locale', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2971,
-  serialized_end=3024,
-)
-
-
-_CREATELOCALERESPONSE = _descriptor.Descriptor(
-  name='CreateLocaleResponse',
-  full_name='contentmanagement.CreateLocaleResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='locale', full_name='contentmanagement.CreateLocaleResponse.locale', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3026,
-  serialized_end=3080,
-)
-
-
-_LISTLOCALESREQUEST = _descriptor.Descriptor(
-  name='ListLocalesRequest',
-  full_name='contentmanagement.ListLocalesRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.ListLocalesRequest.space_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3082,
-  serialized_end=3120,
-)
-
-
-_LISTLOCALESRESPONSE = _descriptor.Descriptor(
-  name='ListLocalesResponse',
-  full_name='contentmanagement.ListLocalesResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='locales', full_name='contentmanagement.ListLocalesResponse.locales', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3122,
-  serialized_end=3176,
-)
-
-
-_DELETELOCALEREQUEST = _descriptor.Descriptor(
-  name='DeleteLocaleRequest',
-  full_name='contentmanagement.DeleteLocaleRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentmanagement.DeleteLocaleRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.DeleteLocaleRequest.space_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3178,
-  serialized_end=3229,
-)
-
-
-_DELETELOCALERESPONSE = _descriptor.Descriptor(
-  name='DeleteLocaleResponse',
-  full_name='contentmanagement.DeleteLocaleResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3231,
-  serialized_end=3253,
-)
-
-
-_CREATEENVIRONMENTREQUEST = _descriptor.Descriptor(
-  name='CreateEnvironmentRequest',
-  full_name='contentmanagement.CreateEnvironmentRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='base_environment_id', full_name='contentmanagement.CreateEnvironmentRequest.base_environment_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='environment', full_name='contentmanagement.CreateEnvironmentRequest.environment', index=1,
-      number=2, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3255,
-  serialized_end=3352,
-)
-
-
-_CREATEENVIRONMENTRESPONSE = _descriptor.Descriptor(
-  name='CreateEnvironmentResponse',
-  full_name='contentmanagement.CreateEnvironmentResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='environment', full_name='contentmanagement.CreateEnvironmentResponse.environment', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3354,
-  serialized_end=3423,
-)
-
-
-_GETENVIRONMENTREQUEST = _descriptor.Descriptor(
-  name='GetEnvironmentRequest',
-  full_name='contentmanagement.GetEnvironmentRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentmanagement.GetEnvironmentRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.GetEnvironmentRequest.space_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3425,
-  serialized_end=3478,
-)
-
-
-_GETENVIRONMENTRESPONSE = _descriptor.Descriptor(
-  name='GetEnvironmentResponse',
-  full_name='contentmanagement.GetEnvironmentResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='environment', full_name='contentmanagement.GetEnvironmentResponse.environment', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3480,
-  serialized_end=3546,
-)
-
-
-_LISTENVIRONMENTSREQUEST = _descriptor.Descriptor(
-  name='ListEnvironmentsRequest',
-  full_name='contentmanagement.ListEnvironmentsRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.ListEnvironmentsRequest.space_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3548,
-  serialized_end=3591,
-)
-
-
-_LISTENVIRONMENTSRESPONSE = _descriptor.Descriptor(
-  name='ListEnvironmentsResponse',
-  full_name='contentmanagement.ListEnvironmentsResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='environments', full_name='contentmanagement.ListEnvironmentsResponse.environments', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3593,
-  serialized_end=3662,
-)
-
-
-_UPDATEENVIRONMENTREQUEST = _descriptor.Descriptor(
-  name='UpdateEnvironmentRequest',
-  full_name='contentmanagement.UpdateEnvironmentRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentmanagement.UpdateEnvironmentRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.UpdateEnvironmentRequest.space_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='environment', full_name='contentmanagement.UpdateEnvironmentRequest.environment', index=2,
-      number=3, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3664,
-  serialized_end=3762,
-)
-
-
-_UPDATEENVIRONMENTRESPONSE = _descriptor.Descriptor(
-  name='UpdateEnvironmentResponse',
-  full_name='contentmanagement.UpdateEnvironmentResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3764,
-  serialized_end=3791,
-)
-
-
-_DELETEENVIRONMENTREQUEST = _descriptor.Descriptor(
-  name='DeleteEnvironmentRequest',
-  full_name='contentmanagement.DeleteEnvironmentRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentmanagement.DeleteEnvironmentRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.DeleteEnvironmentRequest.space_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3793,
-  serialized_end=3849,
-)
-
-
-_DELETEENVIRONMENTRESPONSE = _descriptor.Descriptor(
-  name='DeleteEnvironmentResponse',
-  full_name='contentmanagement.DeleteEnvironmentResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3851,
-  serialized_end=3878,
-)
-
-
-_SETENVIRONMENTALIASREQUEST = _descriptor.Descriptor(
-  name='SetEnvironmentAliasRequest',
-  full_name='contentmanagement.SetEnvironmentAliasRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentmanagement.SetEnvironmentAliasRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.SetEnvironmentAliasRequest.space_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='alias', full_name='contentmanagement.SetEnvironmentAliasRequest.alias', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3880,
-  serialized_end=3953,
-)
-
-
-_SETENVIRONMENTALIASRESPONSE = _descriptor.Descriptor(
-  name='SetEnvironmentAliasResponse',
-  full_name='contentmanagement.SetEnvironmentAliasResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3955,
-  serialized_end=3984,
-)
-
-
-_REMOVEENVIRONMENTALIASREQUEST = _descriptor.Descriptor(
-  name='RemoveEnvironmentAliasRequest',
-  full_name='contentmanagement.RemoveEnvironmentAliasRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentmanagement.RemoveEnvironmentAliasRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.RemoveEnvironmentAliasRequest.space_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='alias', full_name='contentmanagement.RemoveEnvironmentAliasRequest.alias', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3986,
-  serialized_end=4062,
-)
-
-
-_REMOVEENVIRONMENTALIASRESPONSE = _descriptor.Descriptor(
-  name='RemoveEnvironmentAliasResponse',
-  full_name='contentmanagement.RemoveEnvironmentAliasResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4064,
-  serialized_end=4096,
-)
-
-
-_CREATESPACEROLEREQUEST = _descriptor.Descriptor(
-  name='CreateSpaceRoleRequest',
-  full_name='contentmanagement.CreateSpaceRoleRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space_role', full_name='contentmanagement.CreateSpaceRoleRequest.space_role', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4098,
-  serialized_end=4161,
-)
-
-
-_UPDATESPACEROLEREQUEST = _descriptor.Descriptor(
-  name='UpdateSpaceRoleRequest',
-  full_name='contentmanagement.UpdateSpaceRoleRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space_role', full_name='contentmanagement.UpdateSpaceRoleRequest.space_role', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4163,
-  serialized_end=4226,
-)
-
-
-_LISTSPACEROLESREQUEST = _descriptor.Descriptor(
-  name='ListSpaceRolesRequest',
-  full_name='contentmanagement.ListSpaceRolesRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.ListSpaceRolesRequest.space_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4228,
-  serialized_end=4269,
-)
-
-
-_LISTSPACEROLESRESPONSE = _descriptor.Descriptor(
-  name='ListSpaceRolesResponse',
-  full_name='contentmanagement.ListSpaceRolesResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='space_roles', full_name='contentmanagement.ListSpaceRolesResponse.space_roles', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4271,
-  serialized_end=4335,
-)
-
-
-_DELETESPACEROLEREQUEST = _descriptor.Descriptor(
-  name='DeleteSpaceRoleRequest',
-  full_name='contentmanagement.DeleteSpaceRoleRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='id', full_name='contentmanagement.DeleteSpaceRoleRequest.id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='space_id', full_name='contentmanagement.DeleteSpaceRoleRequest.space_id', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4337,
-  serialized_end=4391,
-)
-
-_CREATECOLLECTIONREQUEST.fields_by_name['collection'].message_type = perxis_dot_common_dot_common__pb2._COLLECTION
-_CREATECOLLECTIONRESPONSE.fields_by_name['collection'].message_type = perxis_dot_common_dot_common__pb2._COLLECTION
-_GETCOLLECTIONRESPONSE.fields_by_name['collection'].message_type = perxis_dot_common_dot_common__pb2._COLLECTION
-_LISTCOLLECTIONSRESPONSE.fields_by_name['collections'].message_type = perxis_dot_common_dot_common__pb2._COLLECTION
-_UPDATECOLLECTIONREQUEST.fields_by_name['collection'].message_type = perxis_dot_common_dot_common__pb2._COLLECTION
-_CREATEITEMREQUEST.fields_by_name['item'].message_type = perxis_dot_common_dot_common__pb2._ITEM
-_CREATEITEMRESPONSE.fields_by_name['item'].message_type = perxis_dot_common_dot_common__pb2._ITEM
-_GETITEMRESPONSE.fields_by_name['item'].message_type = perxis_dot_common_dot_common__pb2._ITEM
-_UPDATEITEMREQUEST.fields_by_name['item'].message_type = perxis_dot_common_dot_common__pb2._ITEM
-_UPDATEITEMRESPONSE.fields_by_name['item'].message_type = perxis_dot_common_dot_common__pb2._ITEM
-_LISTITEMREVISIONSRESPONSE.fields_by_name['items'].message_type = perxis_dot_common_dot_common__pb2._ITEM
-_GETITEMREVISIONRESPONSE.fields_by_name['item'].message_type = perxis_dot_common_dot_common__pb2._ITEM
-_FINDITEMSREQUEST.fields_by_name['data'].message_type = perxis_dot_common_dot_common__pb2._FILTER
-_FINDITEMSRESPONSE.fields_by_name['items'].message_type = perxis_dot_common_dot_common__pb2._ITEM
-_FINDARCHIVEDITEMSREQUEST.fields_by_name['data'].message_type = perxis_dot_common_dot_common__pb2._FILTER
-_FINDARCHIVEDITEMSRESPONSE.fields_by_name['items'].message_type = perxis_dot_common_dot_common__pb2._ITEM
-_CONTENTCREATESPACEREQUEST.fields_by_name['space'].message_type = perxis_dot_common_dot_common__pb2._SPACE
-_CONTENTCREATESPACERESPONSE.fields_by_name['space'].message_type = perxis_dot_common_dot_common__pb2._SPACE
-_CONTENTGETSPACERESPONSE.fields_by_name['space'].message_type = perxis_dot_common_dot_common__pb2._SPACE
-_LISTSPACESRESPONSE.fields_by_name['spaces'].message_type = perxis_dot_common_dot_common__pb2._SPACE
-_CREATELOCALEREQUEST.fields_by_name['locale'].message_type = perxis_dot_common_dot_common__pb2._LOCALE
-_CREATELOCALERESPONSE.fields_by_name['locale'].message_type = perxis_dot_common_dot_common__pb2._LOCALE
-_LISTLOCALESRESPONSE.fields_by_name['locales'].message_type = perxis_dot_common_dot_common__pb2._LOCALE
-_CREATEENVIRONMENTREQUEST.fields_by_name['environment'].message_type = perxis_dot_common_dot_common__pb2._ENVIRONMENT
-_CREATEENVIRONMENTRESPONSE.fields_by_name['environment'].message_type = perxis_dot_common_dot_common__pb2._ENVIRONMENT
-_GETENVIRONMENTRESPONSE.fields_by_name['environment'].message_type = perxis_dot_common_dot_common__pb2._ENVIRONMENT
-_LISTENVIRONMENTSRESPONSE.fields_by_name['environments'].message_type = perxis_dot_common_dot_common__pb2._ENVIRONMENT
-_UPDATEENVIRONMENTREQUEST.fields_by_name['environment'].message_type = perxis_dot_common_dot_common__pb2._ENVIRONMENT
-_CREATESPACEROLEREQUEST.fields_by_name['space_role'].message_type = perxis_dot_common_dot_common__pb2._SPACEROLE
-_UPDATESPACEROLEREQUEST.fields_by_name['space_role'].message_type = perxis_dot_common_dot_common__pb2._SPACEROLE
-_LISTSPACEROLESRESPONSE.fields_by_name['space_roles'].message_type = perxis_dot_common_dot_common__pb2._SPACEROLE
-DESCRIPTOR.message_types_by_name['CreateCollectionRequest'] = _CREATECOLLECTIONREQUEST
-DESCRIPTOR.message_types_by_name['CreateCollectionResponse'] = _CREATECOLLECTIONRESPONSE
-DESCRIPTOR.message_types_by_name['GetCollectionRequest'] = _GETCOLLECTIONREQUEST
-DESCRIPTOR.message_types_by_name['GetCollectionResponse'] = _GETCOLLECTIONRESPONSE
-DESCRIPTOR.message_types_by_name['ListCollectionsRequest'] = _LISTCOLLECTIONSREQUEST
-DESCRIPTOR.message_types_by_name['ListCollectionsResponse'] = _LISTCOLLECTIONSRESPONSE
-DESCRIPTOR.message_types_by_name['UpdateCollectionRequest'] = _UPDATECOLLECTIONREQUEST
-DESCRIPTOR.message_types_by_name['UpdateCollectionResponse'] = _UPDATECOLLECTIONRESPONSE
-DESCRIPTOR.message_types_by_name['DeleteCollectionRequest'] = _DELETECOLLECTIONREQUEST
-DESCRIPTOR.message_types_by_name['DeleteCollectionResponse'] = _DELETECOLLECTIONRESPONSE
-DESCRIPTOR.message_types_by_name['CreateItemRequest'] = _CREATEITEMREQUEST
-DESCRIPTOR.message_types_by_name['CreateItemResponse'] = _CREATEITEMRESPONSE
-DESCRIPTOR.message_types_by_name['GetItemRequest'] = _GETITEMREQUEST
-DESCRIPTOR.message_types_by_name['GetItemResponse'] = _GETITEMRESPONSE
-DESCRIPTOR.message_types_by_name['UpdateItemRequest'] = _UPDATEITEMREQUEST
-DESCRIPTOR.message_types_by_name['UpdateItemResponse'] = _UPDATEITEMRESPONSE
-DESCRIPTOR.message_types_by_name['DeleteItemRequest'] = _DELETEITEMREQUEST
-DESCRIPTOR.message_types_by_name['DeleteItemResponse'] = _DELETEITEMRESPONSE
-DESCRIPTOR.message_types_by_name['PublishItemRequest'] = _PUBLISHITEMREQUEST
-DESCRIPTOR.message_types_by_name['PublishItemResponse'] = _PUBLISHITEMRESPONSE
-DESCRIPTOR.message_types_by_name['UnpublishItemRequest'] = _UNPUBLISHITEMREQUEST
-DESCRIPTOR.message_types_by_name['UnpublishItemResponse'] = _UNPUBLISHITEMRESPONSE
-DESCRIPTOR.message_types_by_name['ArchiveItemRequest'] = _ARCHIVEITEMREQUEST
-DESCRIPTOR.message_types_by_name['ArchiveItemResponse'] = _ARCHIVEITEMRESPONSE
-DESCRIPTOR.message_types_by_name['UnarchiveItemRequest'] = _UNARCHIVEITEMREQUEST
-DESCRIPTOR.message_types_by_name['UnarchiveItemResponse'] = _UNARCHIVEITEMRESPONSE
-DESCRIPTOR.message_types_by_name['ListItemRevisionsRequest'] = _LISTITEMREVISIONSREQUEST
-DESCRIPTOR.message_types_by_name['ListItemRevisionsResponse'] = _LISTITEMREVISIONSRESPONSE
-DESCRIPTOR.message_types_by_name['GetItemRevisionRequest'] = _GETITEMREVISIONREQUEST
-DESCRIPTOR.message_types_by_name['GetItemRevisionResponse'] = _GETITEMREVISIONRESPONSE
-DESCRIPTOR.message_types_by_name['FindItemsRequest'] = _FINDITEMSREQUEST
-DESCRIPTOR.message_types_by_name['FindItemsResponse'] = _FINDITEMSRESPONSE
-DESCRIPTOR.message_types_by_name['FindArchivedItemsRequest'] = _FINDARCHIVEDITEMSREQUEST
-DESCRIPTOR.message_types_by_name['FindArchivedItemsResponse'] = _FINDARCHIVEDITEMSRESPONSE
-DESCRIPTOR.message_types_by_name['ContentCreateSpaceRequest'] = _CONTENTCREATESPACEREQUEST
-DESCRIPTOR.message_types_by_name['ContentCreateSpaceResponse'] = _CONTENTCREATESPACERESPONSE
-DESCRIPTOR.message_types_by_name['ContentDeleteSpaceRequest'] = _CONTENTDELETESPACEREQUEST
-DESCRIPTOR.message_types_by_name['ContentGetSpaceRequest'] = _CONTENTGETSPACEREQUEST
-DESCRIPTOR.message_types_by_name['ContentGetSpaceResponse'] = _CONTENTGETSPACERESPONSE
-DESCRIPTOR.message_types_by_name['ListSpacesRequest'] = _LISTSPACESREQUEST
-DESCRIPTOR.message_types_by_name['ListSpacesResponse'] = _LISTSPACESRESPONSE
-DESCRIPTOR.message_types_by_name['CreateLocaleRequest'] = _CREATELOCALEREQUEST
-DESCRIPTOR.message_types_by_name['CreateLocaleResponse'] = _CREATELOCALERESPONSE
-DESCRIPTOR.message_types_by_name['ListLocalesRequest'] = _LISTLOCALESREQUEST
-DESCRIPTOR.message_types_by_name['ListLocalesResponse'] = _LISTLOCALESRESPONSE
-DESCRIPTOR.message_types_by_name['DeleteLocaleRequest'] = _DELETELOCALEREQUEST
-DESCRIPTOR.message_types_by_name['DeleteLocaleResponse'] = _DELETELOCALERESPONSE
-DESCRIPTOR.message_types_by_name['CreateEnvironmentRequest'] = _CREATEENVIRONMENTREQUEST
-DESCRIPTOR.message_types_by_name['CreateEnvironmentResponse'] = _CREATEENVIRONMENTRESPONSE
-DESCRIPTOR.message_types_by_name['GetEnvironmentRequest'] = _GETENVIRONMENTREQUEST
-DESCRIPTOR.message_types_by_name['GetEnvironmentResponse'] = _GETENVIRONMENTRESPONSE
-DESCRIPTOR.message_types_by_name['ListEnvironmentsRequest'] = _LISTENVIRONMENTSREQUEST
-DESCRIPTOR.message_types_by_name['ListEnvironmentsResponse'] = _LISTENVIRONMENTSRESPONSE
-DESCRIPTOR.message_types_by_name['UpdateEnvironmentRequest'] = _UPDATEENVIRONMENTREQUEST
-DESCRIPTOR.message_types_by_name['UpdateEnvironmentResponse'] = _UPDATEENVIRONMENTRESPONSE
-DESCRIPTOR.message_types_by_name['DeleteEnvironmentRequest'] = _DELETEENVIRONMENTREQUEST
-DESCRIPTOR.message_types_by_name['DeleteEnvironmentResponse'] = _DELETEENVIRONMENTRESPONSE
-DESCRIPTOR.message_types_by_name['SetEnvironmentAliasRequest'] = _SETENVIRONMENTALIASREQUEST
-DESCRIPTOR.message_types_by_name['SetEnvironmentAliasResponse'] = _SETENVIRONMENTALIASRESPONSE
-DESCRIPTOR.message_types_by_name['RemoveEnvironmentAliasRequest'] = _REMOVEENVIRONMENTALIASREQUEST
-DESCRIPTOR.message_types_by_name['RemoveEnvironmentAliasResponse'] = _REMOVEENVIRONMENTALIASRESPONSE
-DESCRIPTOR.message_types_by_name['CreateSpaceRoleRequest'] = _CREATESPACEROLEREQUEST
-DESCRIPTOR.message_types_by_name['UpdateSpaceRoleRequest'] = _UPDATESPACEROLEREQUEST
-DESCRIPTOR.message_types_by_name['ListSpaceRolesRequest'] = _LISTSPACEROLESREQUEST
-DESCRIPTOR.message_types_by_name['ListSpaceRolesResponse'] = _LISTSPACEROLESRESPONSE
-DESCRIPTOR.message_types_by_name['DeleteSpaceRoleRequest'] = _DELETESPACEROLEREQUEST
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-CreateCollectionRequest = _reflection.GeneratedProtocolMessageType('CreateCollectionRequest', (_message.Message,), {
-  'DESCRIPTOR' : _CREATECOLLECTIONREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.CreateCollectionRequest)
-  })
-_sym_db.RegisterMessage(CreateCollectionRequest)
-
-CreateCollectionResponse = _reflection.GeneratedProtocolMessageType('CreateCollectionResponse', (_message.Message,), {
-  'DESCRIPTOR' : _CREATECOLLECTIONRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.CreateCollectionResponse)
-  })
-_sym_db.RegisterMessage(CreateCollectionResponse)
-
-GetCollectionRequest = _reflection.GeneratedProtocolMessageType('GetCollectionRequest', (_message.Message,), {
-  'DESCRIPTOR' : _GETCOLLECTIONREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.GetCollectionRequest)
-  })
-_sym_db.RegisterMessage(GetCollectionRequest)
-
-GetCollectionResponse = _reflection.GeneratedProtocolMessageType('GetCollectionResponse', (_message.Message,), {
-  'DESCRIPTOR' : _GETCOLLECTIONRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.GetCollectionResponse)
-  })
-_sym_db.RegisterMessage(GetCollectionResponse)
-
-ListCollectionsRequest = _reflection.GeneratedProtocolMessageType('ListCollectionsRequest', (_message.Message,), {
-  'DESCRIPTOR' : _LISTCOLLECTIONSREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.ListCollectionsRequest)
-  })
-_sym_db.RegisterMessage(ListCollectionsRequest)
-
-ListCollectionsResponse = _reflection.GeneratedProtocolMessageType('ListCollectionsResponse', (_message.Message,), {
-  'DESCRIPTOR' : _LISTCOLLECTIONSRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.ListCollectionsResponse)
-  })
-_sym_db.RegisterMessage(ListCollectionsResponse)
-
-UpdateCollectionRequest = _reflection.GeneratedProtocolMessageType('UpdateCollectionRequest', (_message.Message,), {
-  'DESCRIPTOR' : _UPDATECOLLECTIONREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.UpdateCollectionRequest)
-  })
-_sym_db.RegisterMessage(UpdateCollectionRequest)
-
-UpdateCollectionResponse = _reflection.GeneratedProtocolMessageType('UpdateCollectionResponse', (_message.Message,), {
-  'DESCRIPTOR' : _UPDATECOLLECTIONRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.UpdateCollectionResponse)
-  })
-_sym_db.RegisterMessage(UpdateCollectionResponse)
-
-DeleteCollectionRequest = _reflection.GeneratedProtocolMessageType('DeleteCollectionRequest', (_message.Message,), {
-  'DESCRIPTOR' : _DELETECOLLECTIONREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.DeleteCollectionRequest)
-  })
-_sym_db.RegisterMessage(DeleteCollectionRequest)
-
-DeleteCollectionResponse = _reflection.GeneratedProtocolMessageType('DeleteCollectionResponse', (_message.Message,), {
-  'DESCRIPTOR' : _DELETECOLLECTIONRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.DeleteCollectionResponse)
-  })
-_sym_db.RegisterMessage(DeleteCollectionResponse)
-
-CreateItemRequest = _reflection.GeneratedProtocolMessageType('CreateItemRequest', (_message.Message,), {
-  'DESCRIPTOR' : _CREATEITEMREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.CreateItemRequest)
-  })
-_sym_db.RegisterMessage(CreateItemRequest)
-
-CreateItemResponse = _reflection.GeneratedProtocolMessageType('CreateItemResponse', (_message.Message,), {
-  'DESCRIPTOR' : _CREATEITEMRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.CreateItemResponse)
-  })
-_sym_db.RegisterMessage(CreateItemResponse)
-
-GetItemRequest = _reflection.GeneratedProtocolMessageType('GetItemRequest', (_message.Message,), {
-  'DESCRIPTOR' : _GETITEMREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.GetItemRequest)
-  })
-_sym_db.RegisterMessage(GetItemRequest)
-
-GetItemResponse = _reflection.GeneratedProtocolMessageType('GetItemResponse', (_message.Message,), {
-  'DESCRIPTOR' : _GETITEMRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.GetItemResponse)
-  })
-_sym_db.RegisterMessage(GetItemResponse)
-
-UpdateItemRequest = _reflection.GeneratedProtocolMessageType('UpdateItemRequest', (_message.Message,), {
-  'DESCRIPTOR' : _UPDATEITEMREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.UpdateItemRequest)
-  })
-_sym_db.RegisterMessage(UpdateItemRequest)
-
-UpdateItemResponse = _reflection.GeneratedProtocolMessageType('UpdateItemResponse', (_message.Message,), {
-  'DESCRIPTOR' : _UPDATEITEMRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.UpdateItemResponse)
-  })
-_sym_db.RegisterMessage(UpdateItemResponse)
-
-DeleteItemRequest = _reflection.GeneratedProtocolMessageType('DeleteItemRequest', (_message.Message,), {
-  'DESCRIPTOR' : _DELETEITEMREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.DeleteItemRequest)
-  })
-_sym_db.RegisterMessage(DeleteItemRequest)
-
-DeleteItemResponse = _reflection.GeneratedProtocolMessageType('DeleteItemResponse', (_message.Message,), {
-  'DESCRIPTOR' : _DELETEITEMRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.DeleteItemResponse)
-  })
-_sym_db.RegisterMessage(DeleteItemResponse)
-
-PublishItemRequest = _reflection.GeneratedProtocolMessageType('PublishItemRequest', (_message.Message,), {
-  'DESCRIPTOR' : _PUBLISHITEMREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.PublishItemRequest)
-  })
-_sym_db.RegisterMessage(PublishItemRequest)
-
-PublishItemResponse = _reflection.GeneratedProtocolMessageType('PublishItemResponse', (_message.Message,), {
-  'DESCRIPTOR' : _PUBLISHITEMRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.PublishItemResponse)
-  })
-_sym_db.RegisterMessage(PublishItemResponse)
-
-UnpublishItemRequest = _reflection.GeneratedProtocolMessageType('UnpublishItemRequest', (_message.Message,), {
-  'DESCRIPTOR' : _UNPUBLISHITEMREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.UnpublishItemRequest)
-  })
-_sym_db.RegisterMessage(UnpublishItemRequest)
-
-UnpublishItemResponse = _reflection.GeneratedProtocolMessageType('UnpublishItemResponse', (_message.Message,), {
-  'DESCRIPTOR' : _UNPUBLISHITEMRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.UnpublishItemResponse)
-  })
-_sym_db.RegisterMessage(UnpublishItemResponse)
-
-ArchiveItemRequest = _reflection.GeneratedProtocolMessageType('ArchiveItemRequest', (_message.Message,), {
-  'DESCRIPTOR' : _ARCHIVEITEMREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.ArchiveItemRequest)
-  })
-_sym_db.RegisterMessage(ArchiveItemRequest)
-
-ArchiveItemResponse = _reflection.GeneratedProtocolMessageType('ArchiveItemResponse', (_message.Message,), {
-  'DESCRIPTOR' : _ARCHIVEITEMRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.ArchiveItemResponse)
-  })
-_sym_db.RegisterMessage(ArchiveItemResponse)
-
-UnarchiveItemRequest = _reflection.GeneratedProtocolMessageType('UnarchiveItemRequest', (_message.Message,), {
-  'DESCRIPTOR' : _UNARCHIVEITEMREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.UnarchiveItemRequest)
-  })
-_sym_db.RegisterMessage(UnarchiveItemRequest)
-
-UnarchiveItemResponse = _reflection.GeneratedProtocolMessageType('UnarchiveItemResponse', (_message.Message,), {
-  'DESCRIPTOR' : _UNARCHIVEITEMRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.UnarchiveItemResponse)
-  })
-_sym_db.RegisterMessage(UnarchiveItemResponse)
-
-ListItemRevisionsRequest = _reflection.GeneratedProtocolMessageType('ListItemRevisionsRequest', (_message.Message,), {
-  'DESCRIPTOR' : _LISTITEMREVISIONSREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.ListItemRevisionsRequest)
-  })
-_sym_db.RegisterMessage(ListItemRevisionsRequest)
-
-ListItemRevisionsResponse = _reflection.GeneratedProtocolMessageType('ListItemRevisionsResponse', (_message.Message,), {
-  'DESCRIPTOR' : _LISTITEMREVISIONSRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.ListItemRevisionsResponse)
-  })
-_sym_db.RegisterMessage(ListItemRevisionsResponse)
-
-GetItemRevisionRequest = _reflection.GeneratedProtocolMessageType('GetItemRevisionRequest', (_message.Message,), {
-  'DESCRIPTOR' : _GETITEMREVISIONREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.GetItemRevisionRequest)
-  })
-_sym_db.RegisterMessage(GetItemRevisionRequest)
-
-GetItemRevisionResponse = _reflection.GeneratedProtocolMessageType('GetItemRevisionResponse', (_message.Message,), {
-  'DESCRIPTOR' : _GETITEMREVISIONRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.GetItemRevisionResponse)
-  })
-_sym_db.RegisterMessage(GetItemRevisionResponse)
-
-FindItemsRequest = _reflection.GeneratedProtocolMessageType('FindItemsRequest', (_message.Message,), {
-  'DESCRIPTOR' : _FINDITEMSREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.FindItemsRequest)
-  })
-_sym_db.RegisterMessage(FindItemsRequest)
-
-FindItemsResponse = _reflection.GeneratedProtocolMessageType('FindItemsResponse', (_message.Message,), {
-  'DESCRIPTOR' : _FINDITEMSRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.FindItemsResponse)
-  })
-_sym_db.RegisterMessage(FindItemsResponse)
-
-FindArchivedItemsRequest = _reflection.GeneratedProtocolMessageType('FindArchivedItemsRequest', (_message.Message,), {
-  'DESCRIPTOR' : _FINDARCHIVEDITEMSREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.FindArchivedItemsRequest)
-  })
-_sym_db.RegisterMessage(FindArchivedItemsRequest)
-
-FindArchivedItemsResponse = _reflection.GeneratedProtocolMessageType('FindArchivedItemsResponse', (_message.Message,), {
-  'DESCRIPTOR' : _FINDARCHIVEDITEMSRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.FindArchivedItemsResponse)
-  })
-_sym_db.RegisterMessage(FindArchivedItemsResponse)
-
-ContentCreateSpaceRequest = _reflection.GeneratedProtocolMessageType('ContentCreateSpaceRequest', (_message.Message,), {
-  'DESCRIPTOR' : _CONTENTCREATESPACEREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.ContentCreateSpaceRequest)
-  })
-_sym_db.RegisterMessage(ContentCreateSpaceRequest)
-
-ContentCreateSpaceResponse = _reflection.GeneratedProtocolMessageType('ContentCreateSpaceResponse', (_message.Message,), {
-  'DESCRIPTOR' : _CONTENTCREATESPACERESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.ContentCreateSpaceResponse)
-  })
-_sym_db.RegisterMessage(ContentCreateSpaceResponse)
-
-ContentDeleteSpaceRequest = _reflection.GeneratedProtocolMessageType('ContentDeleteSpaceRequest', (_message.Message,), {
-  'DESCRIPTOR' : _CONTENTDELETESPACEREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.ContentDeleteSpaceRequest)
-  })
-_sym_db.RegisterMessage(ContentDeleteSpaceRequest)
-
-ContentGetSpaceRequest = _reflection.GeneratedProtocolMessageType('ContentGetSpaceRequest', (_message.Message,), {
-  'DESCRIPTOR' : _CONTENTGETSPACEREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.ContentGetSpaceRequest)
-  })
-_sym_db.RegisterMessage(ContentGetSpaceRequest)
-
-ContentGetSpaceResponse = _reflection.GeneratedProtocolMessageType('ContentGetSpaceResponse', (_message.Message,), {
-  'DESCRIPTOR' : _CONTENTGETSPACERESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.ContentGetSpaceResponse)
-  })
-_sym_db.RegisterMessage(ContentGetSpaceResponse)
-
-ListSpacesRequest = _reflection.GeneratedProtocolMessageType('ListSpacesRequest', (_message.Message,), {
-  'DESCRIPTOR' : _LISTSPACESREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.ListSpacesRequest)
-  })
-_sym_db.RegisterMessage(ListSpacesRequest)
-
-ListSpacesResponse = _reflection.GeneratedProtocolMessageType('ListSpacesResponse', (_message.Message,), {
-  'DESCRIPTOR' : _LISTSPACESRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.ListSpacesResponse)
-  })
-_sym_db.RegisterMessage(ListSpacesResponse)
-
-CreateLocaleRequest = _reflection.GeneratedProtocolMessageType('CreateLocaleRequest', (_message.Message,), {
-  'DESCRIPTOR' : _CREATELOCALEREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.CreateLocaleRequest)
-  })
-_sym_db.RegisterMessage(CreateLocaleRequest)
-
-CreateLocaleResponse = _reflection.GeneratedProtocolMessageType('CreateLocaleResponse', (_message.Message,), {
-  'DESCRIPTOR' : _CREATELOCALERESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.CreateLocaleResponse)
-  })
-_sym_db.RegisterMessage(CreateLocaleResponse)
-
-ListLocalesRequest = _reflection.GeneratedProtocolMessageType('ListLocalesRequest', (_message.Message,), {
-  'DESCRIPTOR' : _LISTLOCALESREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.ListLocalesRequest)
-  })
-_sym_db.RegisterMessage(ListLocalesRequest)
-
-ListLocalesResponse = _reflection.GeneratedProtocolMessageType('ListLocalesResponse', (_message.Message,), {
-  'DESCRIPTOR' : _LISTLOCALESRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.ListLocalesResponse)
-  })
-_sym_db.RegisterMessage(ListLocalesResponse)
-
-DeleteLocaleRequest = _reflection.GeneratedProtocolMessageType('DeleteLocaleRequest', (_message.Message,), {
-  'DESCRIPTOR' : _DELETELOCALEREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.DeleteLocaleRequest)
-  })
-_sym_db.RegisterMessage(DeleteLocaleRequest)
-
-DeleteLocaleResponse = _reflection.GeneratedProtocolMessageType('DeleteLocaleResponse', (_message.Message,), {
-  'DESCRIPTOR' : _DELETELOCALERESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.DeleteLocaleResponse)
-  })
-_sym_db.RegisterMessage(DeleteLocaleResponse)
-
-CreateEnvironmentRequest = _reflection.GeneratedProtocolMessageType('CreateEnvironmentRequest', (_message.Message,), {
-  'DESCRIPTOR' : _CREATEENVIRONMENTREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.CreateEnvironmentRequest)
-  })
-_sym_db.RegisterMessage(CreateEnvironmentRequest)
-
-CreateEnvironmentResponse = _reflection.GeneratedProtocolMessageType('CreateEnvironmentResponse', (_message.Message,), {
-  'DESCRIPTOR' : _CREATEENVIRONMENTRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.CreateEnvironmentResponse)
-  })
-_sym_db.RegisterMessage(CreateEnvironmentResponse)
-
-GetEnvironmentRequest = _reflection.GeneratedProtocolMessageType('GetEnvironmentRequest', (_message.Message,), {
-  'DESCRIPTOR' : _GETENVIRONMENTREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.GetEnvironmentRequest)
-  })
-_sym_db.RegisterMessage(GetEnvironmentRequest)
-
-GetEnvironmentResponse = _reflection.GeneratedProtocolMessageType('GetEnvironmentResponse', (_message.Message,), {
-  'DESCRIPTOR' : _GETENVIRONMENTRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.GetEnvironmentResponse)
-  })
-_sym_db.RegisterMessage(GetEnvironmentResponse)
-
-ListEnvironmentsRequest = _reflection.GeneratedProtocolMessageType('ListEnvironmentsRequest', (_message.Message,), {
-  'DESCRIPTOR' : _LISTENVIRONMENTSREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.ListEnvironmentsRequest)
-  })
-_sym_db.RegisterMessage(ListEnvironmentsRequest)
-
-ListEnvironmentsResponse = _reflection.GeneratedProtocolMessageType('ListEnvironmentsResponse', (_message.Message,), {
-  'DESCRIPTOR' : _LISTENVIRONMENTSRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.ListEnvironmentsResponse)
-  })
-_sym_db.RegisterMessage(ListEnvironmentsResponse)
-
-UpdateEnvironmentRequest = _reflection.GeneratedProtocolMessageType('UpdateEnvironmentRequest', (_message.Message,), {
-  'DESCRIPTOR' : _UPDATEENVIRONMENTREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.UpdateEnvironmentRequest)
-  })
-_sym_db.RegisterMessage(UpdateEnvironmentRequest)
-
-UpdateEnvironmentResponse = _reflection.GeneratedProtocolMessageType('UpdateEnvironmentResponse', (_message.Message,), {
-  'DESCRIPTOR' : _UPDATEENVIRONMENTRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.UpdateEnvironmentResponse)
-  })
-_sym_db.RegisterMessage(UpdateEnvironmentResponse)
-
-DeleteEnvironmentRequest = _reflection.GeneratedProtocolMessageType('DeleteEnvironmentRequest', (_message.Message,), {
-  'DESCRIPTOR' : _DELETEENVIRONMENTREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.DeleteEnvironmentRequest)
-  })
-_sym_db.RegisterMessage(DeleteEnvironmentRequest)
-
-DeleteEnvironmentResponse = _reflection.GeneratedProtocolMessageType('DeleteEnvironmentResponse', (_message.Message,), {
-  'DESCRIPTOR' : _DELETEENVIRONMENTRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.DeleteEnvironmentResponse)
-  })
-_sym_db.RegisterMessage(DeleteEnvironmentResponse)
-
-SetEnvironmentAliasRequest = _reflection.GeneratedProtocolMessageType('SetEnvironmentAliasRequest', (_message.Message,), {
-  'DESCRIPTOR' : _SETENVIRONMENTALIASREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.SetEnvironmentAliasRequest)
-  })
-_sym_db.RegisterMessage(SetEnvironmentAliasRequest)
-
-SetEnvironmentAliasResponse = _reflection.GeneratedProtocolMessageType('SetEnvironmentAliasResponse', (_message.Message,), {
-  'DESCRIPTOR' : _SETENVIRONMENTALIASRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.SetEnvironmentAliasResponse)
-  })
-_sym_db.RegisterMessage(SetEnvironmentAliasResponse)
-
-RemoveEnvironmentAliasRequest = _reflection.GeneratedProtocolMessageType('RemoveEnvironmentAliasRequest', (_message.Message,), {
-  'DESCRIPTOR' : _REMOVEENVIRONMENTALIASREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.RemoveEnvironmentAliasRequest)
-  })
-_sym_db.RegisterMessage(RemoveEnvironmentAliasRequest)
-
-RemoveEnvironmentAliasResponse = _reflection.GeneratedProtocolMessageType('RemoveEnvironmentAliasResponse', (_message.Message,), {
-  'DESCRIPTOR' : _REMOVEENVIRONMENTALIASRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.RemoveEnvironmentAliasResponse)
-  })
-_sym_db.RegisterMessage(RemoveEnvironmentAliasResponse)
-
-CreateSpaceRoleRequest = _reflection.GeneratedProtocolMessageType('CreateSpaceRoleRequest', (_message.Message,), {
-  'DESCRIPTOR' : _CREATESPACEROLEREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.CreateSpaceRoleRequest)
-  })
-_sym_db.RegisterMessage(CreateSpaceRoleRequest)
-
-UpdateSpaceRoleRequest = _reflection.GeneratedProtocolMessageType('UpdateSpaceRoleRequest', (_message.Message,), {
-  'DESCRIPTOR' : _UPDATESPACEROLEREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.UpdateSpaceRoleRequest)
-  })
-_sym_db.RegisterMessage(UpdateSpaceRoleRequest)
-
-ListSpaceRolesRequest = _reflection.GeneratedProtocolMessageType('ListSpaceRolesRequest', (_message.Message,), {
-  'DESCRIPTOR' : _LISTSPACEROLESREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.ListSpaceRolesRequest)
-  })
-_sym_db.RegisterMessage(ListSpaceRolesRequest)
-
-ListSpaceRolesResponse = _reflection.GeneratedProtocolMessageType('ListSpaceRolesResponse', (_message.Message,), {
-  'DESCRIPTOR' : _LISTSPACEROLESRESPONSE,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.ListSpaceRolesResponse)
-  })
-_sym_db.RegisterMessage(ListSpaceRolesResponse)
-
-DeleteSpaceRoleRequest = _reflection.GeneratedProtocolMessageType('DeleteSpaceRoleRequest', (_message.Message,), {
-  'DESCRIPTOR' : _DELETESPACEROLEREQUEST,
-  '__module__' : 'perxis.contentmanagement.contentmanagment_pb2'
-  # @@protoc_insertion_point(class_scope:contentmanagement.DeleteSpaceRoleRequest)
-  })
-_sym_db.RegisterMessage(DeleteSpaceRoleRequest)
-
-
-DESCRIPTOR._options = None
-
-_CONTENTMANAGEMENT = _descriptor.ServiceDescriptor(
-  name='ContentManagement',
-  full_name='contentmanagement.ContentManagement',
-  file=DESCRIPTOR,
-  index=0,
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_start=4394,
-  serialized_end=7374,
-  methods=[
-  _descriptor.MethodDescriptor(
-    name='CreateCollection',
-    full_name='contentmanagement.ContentManagement.CreateCollection',
-    index=0,
-    containing_service=None,
-    input_type=_CREATECOLLECTIONREQUEST,
-    output_type=_CREATECOLLECTIONRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetCollection',
-    full_name='contentmanagement.ContentManagement.GetCollection',
-    index=1,
-    containing_service=None,
-    input_type=_GETCOLLECTIONREQUEST,
-    output_type=_GETCOLLECTIONRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListCollections',
-    full_name='contentmanagement.ContentManagement.ListCollections',
-    index=2,
-    containing_service=None,
-    input_type=_LISTCOLLECTIONSREQUEST,
-    output_type=_LISTCOLLECTIONSRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='UpdateCollection',
-    full_name='contentmanagement.ContentManagement.UpdateCollection',
-    index=3,
-    containing_service=None,
-    input_type=_UPDATECOLLECTIONREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='DeleteCollection',
-    full_name='contentmanagement.ContentManagement.DeleteCollection',
-    index=4,
-    containing_service=None,
-    input_type=_DELETECOLLECTIONREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='CreateItem',
-    full_name='contentmanagement.ContentManagement.CreateItem',
-    index=5,
-    containing_service=None,
-    input_type=_CREATEITEMREQUEST,
-    output_type=_CREATEITEMRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetItem',
-    full_name='contentmanagement.ContentManagement.GetItem',
-    index=6,
-    containing_service=None,
-    input_type=_GETITEMREQUEST,
-    output_type=_GETITEMRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='UpdateItem',
-    full_name='contentmanagement.ContentManagement.UpdateItem',
-    index=7,
-    containing_service=None,
-    input_type=_UPDATEITEMREQUEST,
-    output_type=_UPDATEITEMRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='DeleteItem',
-    full_name='contentmanagement.ContentManagement.DeleteItem',
-    index=8,
-    containing_service=None,
-    input_type=_DELETEITEMREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='PublishItem',
-    full_name='contentmanagement.ContentManagement.PublishItem',
-    index=9,
-    containing_service=None,
-    input_type=_PUBLISHITEMREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='UnpublishItem',
-    full_name='contentmanagement.ContentManagement.UnpublishItem',
-    index=10,
-    containing_service=None,
-    input_type=_UNPUBLISHITEMREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ArchiveItem',
-    full_name='contentmanagement.ContentManagement.ArchiveItem',
-    index=11,
-    containing_service=None,
-    input_type=_ARCHIVEITEMREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='UnarchiveItem',
-    full_name='contentmanagement.ContentManagement.UnarchiveItem',
-    index=12,
-    containing_service=None,
-    input_type=_UNARCHIVEITEMREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListItemRevisions',
-    full_name='contentmanagement.ContentManagement.ListItemRevisions',
-    index=13,
-    containing_service=None,
-    input_type=_LISTITEMREVISIONSREQUEST,
-    output_type=_LISTITEMREVISIONSRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetItemRevision',
-    full_name='contentmanagement.ContentManagement.GetItemRevision',
-    index=14,
-    containing_service=None,
-    input_type=_GETITEMREVISIONREQUEST,
-    output_type=_GETITEMREVISIONRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='FindItems',
-    full_name='contentmanagement.ContentManagement.FindItems',
-    index=15,
-    containing_service=None,
-    input_type=_FINDITEMSREQUEST,
-    output_type=_FINDITEMSRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='FindArchivedItems',
-    full_name='contentmanagement.ContentManagement.FindArchivedItems',
-    index=16,
-    containing_service=None,
-    input_type=_FINDARCHIVEDITEMSREQUEST,
-    output_type=_FINDARCHIVEDITEMSRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='CreateLocale',
-    full_name='contentmanagement.ContentManagement.CreateLocale',
-    index=17,
-    containing_service=None,
-    input_type=_CREATELOCALEREQUEST,
-    output_type=_CREATELOCALERESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListLocales',
-    full_name='contentmanagement.ContentManagement.ListLocales',
-    index=18,
-    containing_service=None,
-    input_type=_LISTLOCALESREQUEST,
-    output_type=_LISTLOCALESRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='DeleteLocale',
-    full_name='contentmanagement.ContentManagement.DeleteLocale',
-    index=19,
-    containing_service=None,
-    input_type=_DELETELOCALEREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='CreateEnvironment',
-    full_name='contentmanagement.ContentManagement.CreateEnvironment',
-    index=20,
-    containing_service=None,
-    input_type=_CREATEENVIRONMENTREQUEST,
-    output_type=_CREATEENVIRONMENTRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetEnvironment',
-    full_name='contentmanagement.ContentManagement.GetEnvironment',
-    index=21,
-    containing_service=None,
-    input_type=_GETENVIRONMENTREQUEST,
-    output_type=_GETENVIRONMENTRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListEnvironments',
-    full_name='contentmanagement.ContentManagement.ListEnvironments',
-    index=22,
-    containing_service=None,
-    input_type=_LISTENVIRONMENTSREQUEST,
-    output_type=_LISTENVIRONMENTSRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='UpdateEnvironment',
-    full_name='contentmanagement.ContentManagement.UpdateEnvironment',
-    index=23,
-    containing_service=None,
-    input_type=_UPDATEENVIRONMENTREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='DeleteEnvironment',
-    full_name='contentmanagement.ContentManagement.DeleteEnvironment',
-    index=24,
-    containing_service=None,
-    input_type=_DELETEENVIRONMENTREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SetEnvironmentAlias',
-    full_name='contentmanagement.ContentManagement.SetEnvironmentAlias',
-    index=25,
-    containing_service=None,
-    input_type=_SETENVIRONMENTALIASREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='RemoveEnvironmentAlias',
-    full_name='contentmanagement.ContentManagement.RemoveEnvironmentAlias',
-    index=26,
-    containing_service=None,
-    input_type=_REMOVEENVIRONMENTALIASREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='CreateSpaceRole',
-    full_name='contentmanagement.ContentManagement.CreateSpaceRole',
-    index=27,
-    containing_service=None,
-    input_type=_CREATESPACEROLEREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='UpdateSpaceRole',
-    full_name='contentmanagement.ContentManagement.UpdateSpaceRole',
-    index=28,
-    containing_service=None,
-    input_type=_UPDATESPACEROLEREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListSpaceRoles',
-    full_name='contentmanagement.ContentManagement.ListSpaceRoles',
-    index=29,
-    containing_service=None,
-    input_type=_LISTSPACEROLESREQUEST,
-    output_type=_LISTSPACEROLESRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='DeleteSpaceRole',
-    full_name='contentmanagement.ContentManagement.DeleteSpaceRole',
-    index=30,
-    containing_service=None,
-    input_type=_DELETESPACEROLEREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-])
-_sym_db.RegisterServiceDescriptor(_CONTENTMANAGEMENT)
-
-DESCRIPTOR.services_by_name['ContentManagement'] = _CONTENTMANAGEMENT
-
-# @@protoc_insertion_point(module_scope)
diff --git a/perxis/contentmanagement/contentmanagment_pb2_grpc.py b/perxis/contentmanagement/contentmanagment_pb2_grpc.py
deleted file mode 100644
index 1ccb526547437143ee326b87b2ce9cdc868831d5..0000000000000000000000000000000000000000
--- a/perxis/contentmanagement/contentmanagment_pb2_grpc.py
+++ /dev/null
@@ -1,1062 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-"""Client and server classes corresponding to protobuf-defined services."""
-import grpc
-
-from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
-from perxis.contentmanagement import contentmanagment_pb2 as perxis_dot_contentmanagement_dot_contentmanagment__pb2
-
-
-class ContentManagementStub(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def __init__(self, channel):
-        """Constructor.
-
-        Args:
-            channel: A grpc.Channel.
-        """
-        self.CreateCollection = channel.unary_unary(
-                '/contentmanagement.ContentManagement/CreateCollection',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateCollectionRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateCollectionResponse.FromString,
-                )
-        self.GetCollection = channel.unary_unary(
-                '/contentmanagement.ContentManagement/GetCollection',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetCollectionRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetCollectionResponse.FromString,
-                )
-        self.ListCollections = channel.unary_unary(
-                '/contentmanagement.ContentManagement/ListCollections',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListCollectionsRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListCollectionsResponse.FromString,
-                )
-        self.UpdateCollection = channel.unary_unary(
-                '/contentmanagement.ContentManagement/UpdateCollection',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.UpdateCollectionRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.DeleteCollection = channel.unary_unary(
-                '/contentmanagement.ContentManagement/DeleteCollection',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.DeleteCollectionRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.CreateItem = channel.unary_unary(
-                '/contentmanagement.ContentManagement/CreateItem',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateItemRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateItemResponse.FromString,
-                )
-        self.GetItem = channel.unary_unary(
-                '/contentmanagement.ContentManagement/GetItem',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetItemRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetItemResponse.FromString,
-                )
-        self.UpdateItem = channel.unary_unary(
-                '/contentmanagement.ContentManagement/UpdateItem',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.UpdateItemRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.UpdateItemResponse.FromString,
-                )
-        self.DeleteItem = channel.unary_unary(
-                '/contentmanagement.ContentManagement/DeleteItem',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.DeleteItemRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.PublishItem = channel.unary_unary(
-                '/contentmanagement.ContentManagement/PublishItem',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.PublishItemRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.UnpublishItem = channel.unary_unary(
-                '/contentmanagement.ContentManagement/UnpublishItem',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.UnpublishItemRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.ArchiveItem = channel.unary_unary(
-                '/contentmanagement.ContentManagement/ArchiveItem',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ArchiveItemRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.UnarchiveItem = channel.unary_unary(
-                '/contentmanagement.ContentManagement/UnarchiveItem',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.UnarchiveItemRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.ListItemRevisions = channel.unary_unary(
-                '/contentmanagement.ContentManagement/ListItemRevisions',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListItemRevisionsRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListItemRevisionsResponse.FromString,
-                )
-        self.GetItemRevision = channel.unary_unary(
-                '/contentmanagement.ContentManagement/GetItemRevision',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetItemRevisionRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetItemRevisionResponse.FromString,
-                )
-        self.FindItems = channel.unary_unary(
-                '/contentmanagement.ContentManagement/FindItems',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.FindItemsRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.FindItemsResponse.FromString,
-                )
-        self.FindArchivedItems = channel.unary_unary(
-                '/contentmanagement.ContentManagement/FindArchivedItems',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.FindArchivedItemsRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.FindArchivedItemsResponse.FromString,
-                )
-        self.CreateLocale = channel.unary_unary(
-                '/contentmanagement.ContentManagement/CreateLocale',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateLocaleRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateLocaleResponse.FromString,
-                )
-        self.ListLocales = channel.unary_unary(
-                '/contentmanagement.ContentManagement/ListLocales',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListLocalesRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListLocalesResponse.FromString,
-                )
-        self.DeleteLocale = channel.unary_unary(
-                '/contentmanagement.ContentManagement/DeleteLocale',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.DeleteLocaleRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.CreateEnvironment = channel.unary_unary(
-                '/contentmanagement.ContentManagement/CreateEnvironment',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateEnvironmentRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateEnvironmentResponse.FromString,
-                )
-        self.GetEnvironment = channel.unary_unary(
-                '/contentmanagement.ContentManagement/GetEnvironment',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetEnvironmentRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetEnvironmentResponse.FromString,
-                )
-        self.ListEnvironments = channel.unary_unary(
-                '/contentmanagement.ContentManagement/ListEnvironments',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListEnvironmentsRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListEnvironmentsResponse.FromString,
-                )
-        self.UpdateEnvironment = channel.unary_unary(
-                '/contentmanagement.ContentManagement/UpdateEnvironment',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.UpdateEnvironmentRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.DeleteEnvironment = channel.unary_unary(
-                '/contentmanagement.ContentManagement/DeleteEnvironment',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.DeleteEnvironmentRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.SetEnvironmentAlias = channel.unary_unary(
-                '/contentmanagement.ContentManagement/SetEnvironmentAlias',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.SetEnvironmentAliasRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.RemoveEnvironmentAlias = channel.unary_unary(
-                '/contentmanagement.ContentManagement/RemoveEnvironmentAlias',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.RemoveEnvironmentAliasRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.CreateSpaceRole = channel.unary_unary(
-                '/contentmanagement.ContentManagement/CreateSpaceRole',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateSpaceRoleRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.UpdateSpaceRole = channel.unary_unary(
-                '/contentmanagement.ContentManagement/UpdateSpaceRole',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.UpdateSpaceRoleRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-        self.ListSpaceRoles = channel.unary_unary(
-                '/contentmanagement.ContentManagement/ListSpaceRoles',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListSpaceRolesRequest.SerializeToString,
-                response_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListSpaceRolesResponse.FromString,
-                )
-        self.DeleteSpaceRole = channel.unary_unary(
-                '/contentmanagement.ContentManagement/DeleteSpaceRole',
-                request_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.DeleteSpaceRoleRequest.SerializeToString,
-                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-                )
-
-
-class ContentManagementServicer(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def CreateCollection(self, request, context):
-        """Collection
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def GetCollection(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def ListCollections(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def UpdateCollection(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def DeleteCollection(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def CreateItem(self, request, context):
-        """Item
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def GetItem(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def UpdateItem(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def DeleteItem(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def PublishItem(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def UnpublishItem(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def ArchiveItem(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def UnarchiveItem(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def ListItemRevisions(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def GetItemRevision(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def FindItems(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def FindArchivedItems(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def CreateLocale(self, request, context):
-        """Locale
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def ListLocales(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def DeleteLocale(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def CreateEnvironment(self, request, context):
-        """Environment
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def GetEnvironment(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def ListEnvironments(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def UpdateEnvironment(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def DeleteEnvironment(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def SetEnvironmentAlias(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def RemoveEnvironmentAlias(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def CreateSpaceRole(self, request, context):
-        """Space Role
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def UpdateSpaceRole(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def ListSpaceRoles(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def DeleteSpaceRole(self, request, context):
-        """Missing associated documentation comment in .proto file."""
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-
-def add_ContentManagementServicer_to_server(servicer, server):
-    rpc_method_handlers = {
-            'CreateCollection': grpc.unary_unary_rpc_method_handler(
-                    servicer.CreateCollection,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateCollectionRequest.FromString,
-                    response_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateCollectionResponse.SerializeToString,
-            ),
-            'GetCollection': grpc.unary_unary_rpc_method_handler(
-                    servicer.GetCollection,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetCollectionRequest.FromString,
-                    response_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetCollectionResponse.SerializeToString,
-            ),
-            'ListCollections': grpc.unary_unary_rpc_method_handler(
-                    servicer.ListCollections,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListCollectionsRequest.FromString,
-                    response_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListCollectionsResponse.SerializeToString,
-            ),
-            'UpdateCollection': grpc.unary_unary_rpc_method_handler(
-                    servicer.UpdateCollection,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.UpdateCollectionRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'DeleteCollection': grpc.unary_unary_rpc_method_handler(
-                    servicer.DeleteCollection,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.DeleteCollectionRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'CreateItem': grpc.unary_unary_rpc_method_handler(
-                    servicer.CreateItem,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateItemRequest.FromString,
-                    response_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateItemResponse.SerializeToString,
-            ),
-            'GetItem': grpc.unary_unary_rpc_method_handler(
-                    servicer.GetItem,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetItemRequest.FromString,
-                    response_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetItemResponse.SerializeToString,
-            ),
-            'UpdateItem': grpc.unary_unary_rpc_method_handler(
-                    servicer.UpdateItem,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.UpdateItemRequest.FromString,
-                    response_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.UpdateItemResponse.SerializeToString,
-            ),
-            'DeleteItem': grpc.unary_unary_rpc_method_handler(
-                    servicer.DeleteItem,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.DeleteItemRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'PublishItem': grpc.unary_unary_rpc_method_handler(
-                    servicer.PublishItem,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.PublishItemRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'UnpublishItem': grpc.unary_unary_rpc_method_handler(
-                    servicer.UnpublishItem,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.UnpublishItemRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'ArchiveItem': grpc.unary_unary_rpc_method_handler(
-                    servicer.ArchiveItem,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ArchiveItemRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'UnarchiveItem': grpc.unary_unary_rpc_method_handler(
-                    servicer.UnarchiveItem,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.UnarchiveItemRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'ListItemRevisions': grpc.unary_unary_rpc_method_handler(
-                    servicer.ListItemRevisions,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListItemRevisionsRequest.FromString,
-                    response_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListItemRevisionsResponse.SerializeToString,
-            ),
-            'GetItemRevision': grpc.unary_unary_rpc_method_handler(
-                    servicer.GetItemRevision,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetItemRevisionRequest.FromString,
-                    response_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetItemRevisionResponse.SerializeToString,
-            ),
-            'FindItems': grpc.unary_unary_rpc_method_handler(
-                    servicer.FindItems,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.FindItemsRequest.FromString,
-                    response_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.FindItemsResponse.SerializeToString,
-            ),
-            'FindArchivedItems': grpc.unary_unary_rpc_method_handler(
-                    servicer.FindArchivedItems,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.FindArchivedItemsRequest.FromString,
-                    response_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.FindArchivedItemsResponse.SerializeToString,
-            ),
-            'CreateLocale': grpc.unary_unary_rpc_method_handler(
-                    servicer.CreateLocale,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateLocaleRequest.FromString,
-                    response_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateLocaleResponse.SerializeToString,
-            ),
-            'ListLocales': grpc.unary_unary_rpc_method_handler(
-                    servicer.ListLocales,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListLocalesRequest.FromString,
-                    response_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListLocalesResponse.SerializeToString,
-            ),
-            'DeleteLocale': grpc.unary_unary_rpc_method_handler(
-                    servicer.DeleteLocale,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.DeleteLocaleRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'CreateEnvironment': grpc.unary_unary_rpc_method_handler(
-                    servicer.CreateEnvironment,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateEnvironmentRequest.FromString,
-                    response_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateEnvironmentResponse.SerializeToString,
-            ),
-            'GetEnvironment': grpc.unary_unary_rpc_method_handler(
-                    servicer.GetEnvironment,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetEnvironmentRequest.FromString,
-                    response_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetEnvironmentResponse.SerializeToString,
-            ),
-            'ListEnvironments': grpc.unary_unary_rpc_method_handler(
-                    servicer.ListEnvironments,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListEnvironmentsRequest.FromString,
-                    response_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListEnvironmentsResponse.SerializeToString,
-            ),
-            'UpdateEnvironment': grpc.unary_unary_rpc_method_handler(
-                    servicer.UpdateEnvironment,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.UpdateEnvironmentRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'DeleteEnvironment': grpc.unary_unary_rpc_method_handler(
-                    servicer.DeleteEnvironment,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.DeleteEnvironmentRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'SetEnvironmentAlias': grpc.unary_unary_rpc_method_handler(
-                    servicer.SetEnvironmentAlias,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.SetEnvironmentAliasRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'RemoveEnvironmentAlias': grpc.unary_unary_rpc_method_handler(
-                    servicer.RemoveEnvironmentAlias,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.RemoveEnvironmentAliasRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'CreateSpaceRole': grpc.unary_unary_rpc_method_handler(
-                    servicer.CreateSpaceRole,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateSpaceRoleRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'UpdateSpaceRole': grpc.unary_unary_rpc_method_handler(
-                    servicer.UpdateSpaceRole,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.UpdateSpaceRoleRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-            'ListSpaceRoles': grpc.unary_unary_rpc_method_handler(
-                    servicer.ListSpaceRoles,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListSpaceRolesRequest.FromString,
-                    response_serializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListSpaceRolesResponse.SerializeToString,
-            ),
-            'DeleteSpaceRole': grpc.unary_unary_rpc_method_handler(
-                    servicer.DeleteSpaceRole,
-                    request_deserializer=perxis_dot_contentmanagement_dot_contentmanagment__pb2.DeleteSpaceRoleRequest.FromString,
-                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
-            ),
-    }
-    generic_handler = grpc.method_handlers_generic_handler(
-            'contentmanagement.ContentManagement', rpc_method_handlers)
-    server.add_generic_rpc_handlers((generic_handler,))
-
-
- # This class is part of an EXPERIMENTAL API.
-class ContentManagement(object):
-    """Missing associated documentation comment in .proto file."""
-
-    @staticmethod
-    def CreateCollection(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/CreateCollection',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateCollectionRequest.SerializeToString,
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateCollectionResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def GetCollection(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/GetCollection',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetCollectionRequest.SerializeToString,
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetCollectionResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def ListCollections(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/ListCollections',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListCollectionsRequest.SerializeToString,
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListCollectionsResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def UpdateCollection(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/UpdateCollection',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.UpdateCollectionRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def DeleteCollection(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/DeleteCollection',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.DeleteCollectionRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def CreateItem(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/CreateItem',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateItemRequest.SerializeToString,
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateItemResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def GetItem(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/GetItem',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetItemRequest.SerializeToString,
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetItemResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def UpdateItem(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/UpdateItem',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.UpdateItemRequest.SerializeToString,
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.UpdateItemResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def DeleteItem(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/DeleteItem',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.DeleteItemRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def PublishItem(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/PublishItem',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.PublishItemRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def UnpublishItem(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/UnpublishItem',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.UnpublishItemRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def ArchiveItem(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/ArchiveItem',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.ArchiveItemRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def UnarchiveItem(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/UnarchiveItem',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.UnarchiveItemRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def ListItemRevisions(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/ListItemRevisions',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListItemRevisionsRequest.SerializeToString,
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListItemRevisionsResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def GetItemRevision(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/GetItemRevision',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetItemRevisionRequest.SerializeToString,
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetItemRevisionResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def FindItems(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/FindItems',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.FindItemsRequest.SerializeToString,
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.FindItemsResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def FindArchivedItems(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/FindArchivedItems',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.FindArchivedItemsRequest.SerializeToString,
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.FindArchivedItemsResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def CreateLocale(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/CreateLocale',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateLocaleRequest.SerializeToString,
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateLocaleResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def ListLocales(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/ListLocales',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListLocalesRequest.SerializeToString,
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListLocalesResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def DeleteLocale(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/DeleteLocale',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.DeleteLocaleRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def CreateEnvironment(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/CreateEnvironment',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateEnvironmentRequest.SerializeToString,
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateEnvironmentResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def GetEnvironment(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/GetEnvironment',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetEnvironmentRequest.SerializeToString,
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.GetEnvironmentResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def ListEnvironments(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/ListEnvironments',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListEnvironmentsRequest.SerializeToString,
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListEnvironmentsResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def UpdateEnvironment(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/UpdateEnvironment',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.UpdateEnvironmentRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def DeleteEnvironment(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/DeleteEnvironment',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.DeleteEnvironmentRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def SetEnvironmentAlias(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/SetEnvironmentAlias',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.SetEnvironmentAliasRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def RemoveEnvironmentAlias(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/RemoveEnvironmentAlias',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.RemoveEnvironmentAliasRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def CreateSpaceRole(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/CreateSpaceRole',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.CreateSpaceRoleRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def UpdateSpaceRole(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/UpdateSpaceRole',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.UpdateSpaceRoleRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def ListSpaceRoles(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/ListSpaceRoles',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListSpaceRolesRequest.SerializeToString,
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.ListSpaceRolesResponse.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def DeleteSpaceRole(request,
-            target,
-            options=(),
-            channel_credentials=None,
-            call_credentials=None,
-            insecure=False,
-            compression=None,
-            wait_for_ready=None,
-            timeout=None,
-            metadata=None):
-        return grpc.experimental.unary_unary(request, target, '/contentmanagement.ContentManagement/DeleteSpaceRole',
-            perxis_dot_contentmanagement_dot_contentmanagment__pb2.DeleteSpaceRoleRequest.SerializeToString,
-            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
diff --git a/perxis/file/file_pb2.py b/perxis/file/file_pb2.py
index 56544bad6b1e05d4a5adf00bbc0ce5a0172963b5..3d480847139d1fb373690aeb26d0ced55a7a9c82 100644
--- a/perxis/file/file_pb2.py
+++ b/perxis/file/file_pb2.py
@@ -12,7 +12,6 @@ _sym_db = _symbol_database.Default()
 
 
 from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
-from perxis.common import common_pb2 as perxis_dot_common_dot_common__pb2
 
 
 DESCRIPTOR = _descriptor.FileDescriptor(
@@ -21,51 +20,111 @@ DESCRIPTOR = _descriptor.FileDescriptor(
   syntax='proto3',
   serialized_options=b'Z*github.com/perxteam/perxis/proto/file;file',
   create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x16perxis/file/file.proto\x12\x04\x66ile\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1aperxis/common/common.proto\"\x81\x01\n\x06Upload\x12\x1a\n\x04\x66ile\x18\x01 \x01(\x0b\x32\x0c.common.File\x12\x11\n\tupload_id\x18\x02 \x01(\t\x12\x11\n\tpart_size\x18\x03 \x01(\x05\x12\x11\n\tpart_urls\x18\x04 \x03(\t\x12\"\n\x05parts\x18\x05 \x03(\x0b\x32\x13.file.CompletedPart\"+\n\rCompletedPart\x12\x0e\n\x06number\x18\x01 \x01(\x05\x12\n\n\x02id\x18\x02 \x01(\t\"2\n\x12StartUploadRequest\x12\x1c\n\x06upload\x18\x01 \x01(\x0b\x32\x0c.file.Upload\"3\n\x13StartUploadResponse\x12\x1c\n\x06upload\x18\x01 \x01(\x0b\x32\x0c.file.Upload\"5\n\x15\x43ompleteUploadRequest\x12\x1c\n\x06upload\x18\x01 \x01(\x0b\x32\x0c.file.Upload\"6\n\x16\x43ompleteUploadResponse\x12\x1c\n\x06upload\x18\x01 \x01(\x0b\x32\x0c.file.Upload\"2\n\x12\x41\x62ortUploadRequest\x12\x1c\n\x06upload\x18\x01 \x01(\x0b\x32\x0c.file.Upload\"\x15\n\x13\x41\x62ortUploadResponse\"1\n\x11MoveUploadRequest\x12\x1c\n\x06upload\x18\x01 \x01(\x0b\x32\x0c.file.Upload\"0\n\x12MoveUploadResponse\x12\x1a\n\x04\x66ile\x18\x01 \x01(\x0b\x32\x0c.common.File\"\x1c\n\x0eGetFileRequest\x12\n\n\x02id\x18\x01 \x01(\t\"-\n\x0fGetFileResponse\x12\x1a\n\x04\x66ile\x18\x01 \x01(\x0b\x32\x0c.common.File\"/\n\x11\x44\x65leteFileRequest\x12\x1a\n\x04\x66ile\x18\x01 \x01(\x0b\x32\x0c.common.File\"\x14\n\x12\x44\x65leteFileResponse2\xa3\x03\n\x0b\x46ileService\x12\x44\n\x0bStartUpload\x12\x18.file.StartUploadRequest\x1a\x19.file.StartUploadResponse\"\x00\x12M\n\x0e\x43ompleteUpload\x12\x1b.file.CompleteUploadRequest\x1a\x1c.file.CompleteUploadResponse\"\x00\x12\x41\n\x0b\x41\x62ortUpload\x12\x18.file.AbortUploadRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x41\n\nMoveUpload\x12\x17.file.MoveUploadRequest\x1a\x18.file.MoveUploadResponse\"\x00\x12\x38\n\x07GetFile\x12\x14.file.GetFileRequest\x1a\x15.file.GetFileResponse\"\x00\x12?\n\nDeleteFile\x12\x17.file.DeleteFileRequest\x1a\x16.google.protobuf.Empty\"\x00\x42,Z*github.com/perxteam/perxis/proto/file;fileb\x06proto3'
+  serialized_pb=b'\n\x16perxis/file/file.proto\x12\x04\x66ile\x1a\x1bgoogle/protobuf/empty.proto\"N\n\x04\x46ile\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04size\x18\x03 \x01(\x05\x12\x11\n\tmime_type\x18\x04 \x01(\t\x12\x0b\n\x03url\x18\x05 \x01(\t\"\x88\x01\n\x0fMultipartUpload\x12\x18\n\x04\x66ile\x18\x01 \x01(\x0b\x32\n.file.File\x12\x11\n\tupload_id\x18\x02 \x01(\t\x12\x11\n\tpart_size\x18\x03 \x01(\x05\x12\x11\n\tpart_urls\x18\x04 \x03(\t\x12\"\n\x05parts\x18\x05 \x03(\x0b\x32\x13.file.CompletedPart\"6\n\x06Upload\x12\x18\n\x04\x66ile\x18\x01 \x01(\x0b\x32\n.file.File\x12\x12\n\nupload_url\x18\x02 \x01(\t\"+\n\rCompletedPart\x12\x0e\n\x06number\x18\x01 \x01(\x05\x12\n\n\x02id\x18\x02 \x01(\t\";\n\x12StartUploadRequest\x12%\n\x06upload\x18\x01 \x01(\x0b\x32\x15.file.MultipartUpload\"<\n\x13StartUploadResponse\x12%\n\x06upload\x18\x01 \x01(\x0b\x32\x15.file.MultipartUpload\">\n\x15\x43ompleteUploadRequest\x12%\n\x06upload\x18\x01 \x01(\x0b\x32\x15.file.MultipartUpload\"?\n\x16\x43ompleteUploadResponse\x12%\n\x06upload\x18\x01 \x01(\x0b\x32\x15.file.MultipartUpload\";\n\x12\x41\x62ortUploadRequest\x12%\n\x06upload\x18\x01 \x01(\x0b\x32\x15.file.MultipartUpload\"\x15\n\x13\x41\x62ortUploadResponse\":\n\x11MoveUploadRequest\x12%\n\x06upload\x18\x01 \x01(\x0b\x32\x15.file.MultipartUpload\".\n\x12MoveUploadResponse\x12\x18\n\x04\x66ile\x18\x01 \x01(\x0b\x32\n.file.File\")\n\rUploadRequest\x12\x18\n\x04\x66ile\x18\x01 \x01(\x0b\x32\n.file.File\".\n\x0eUploadResponse\x12\x1c\n\x06upload\x18\x01 \x01(\x0b\x32\x0c.file.Upload\"\x1c\n\x0eGetFileRequest\x12\n\n\x02id\x18\x01 \x01(\t\"+\n\x0fGetFileResponse\x12\x18\n\x04\x66ile\x18\x01 \x01(\x0b\x32\n.file.File\"-\n\x11\x44\x65leteFileRequest\x12\x18\n\x04\x66ile\x18\x01 \x01(\x0b\x32\n.file.File\"\x14\n\x12\x44\x65leteFileResponse2\xda\x03\n\x0b\x46ileService\x12\x44\n\x0bStartUpload\x12\x18.file.StartUploadRequest\x1a\x19.file.StartUploadResponse\"\x00\x12M\n\x0e\x43ompleteUpload\x12\x1b.file.CompleteUploadRequest\x1a\x1c.file.CompleteUploadResponse\"\x00\x12\x41\n\x0b\x41\x62ortUpload\x12\x18.file.AbortUploadRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x41\n\nMoveUpload\x12\x17.file.MoveUploadRequest\x1a\x18.file.MoveUploadResponse\"\x00\x12\x35\n\x06Upload\x12\x13.file.UploadRequest\x1a\x14.file.UploadResponse\"\x00\x12\x38\n\x07GetFile\x12\x14.file.GetFileRequest\x1a\x15.file.GetFileResponse\"\x00\x12?\n\nDeleteFile\x12\x17.file.DeleteFileRequest\x1a\x16.google.protobuf.Empty\"\x00\x42,Z*github.com/perxteam/perxis/proto/file;fileb\x06proto3'
   ,
-  dependencies=[google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,perxis_dot_common_dot_common__pb2.DESCRIPTOR,])
+  dependencies=[google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,])
 
 
 
 
-_UPLOAD = _descriptor.Descriptor(
-  name='Upload',
-  full_name='file.Upload',
+_FILE = _descriptor.Descriptor(
+  name='File',
+  full_name='file.File',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   create_key=_descriptor._internal_create_key,
   fields=[
     _descriptor.FieldDescriptor(
-      name='file', full_name='file.Upload.file', index=0,
+      name='id', full_name='file.File.id', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"".decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='name', full_name='file.File.name', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"".decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='size', full_name='file.File.size', index=2,
+      number=3, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='mime_type', full_name='file.File.mime_type', index=3,
+      number=4, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"".decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='url', full_name='file.File.url', index=4,
+      number=5, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"".decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=61,
+  serialized_end=139,
+)
+
+
+_MULTIPARTUPLOAD = _descriptor.Descriptor(
+  name='MultipartUpload',
+  full_name='file.MultipartUpload',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='file', full_name='file.MultipartUpload.file', index=0,
       number=1, type=11, cpp_type=10, label=1,
       has_default_value=False, default_value=None,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
     _descriptor.FieldDescriptor(
-      name='upload_id', full_name='file.Upload.upload_id', index=1,
+      name='upload_id', full_name='file.MultipartUpload.upload_id', index=1,
       number=2, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=b"".decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
     _descriptor.FieldDescriptor(
-      name='part_size', full_name='file.Upload.part_size', index=2,
+      name='part_size', full_name='file.MultipartUpload.part_size', index=2,
       number=3, type=5, cpp_type=1, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
     _descriptor.FieldDescriptor(
-      name='part_urls', full_name='file.Upload.part_urls', index=3,
+      name='part_urls', full_name='file.MultipartUpload.part_urls', index=3,
       number=4, type=9, cpp_type=9, label=3,
       has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
     _descriptor.FieldDescriptor(
-      name='parts', full_name='file.Upload.parts', index=4,
+      name='parts', full_name='file.MultipartUpload.parts', index=4,
       number=5, type=11, cpp_type=10, label=3,
       has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
@@ -83,8 +142,47 @@ _UPLOAD = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=90,
-  serialized_end=219,
+  serialized_start=142,
+  serialized_end=278,
+)
+
+
+_UPLOAD = _descriptor.Descriptor(
+  name='Upload',
+  full_name='file.Upload',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='file', full_name='file.Upload.file', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='upload_url', full_name='file.Upload.upload_url', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"".decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=280,
+  serialized_end=334,
 )
 
 
@@ -122,8 +220,8 @@ _COMPLETEDPART = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=221,
-  serialized_end=264,
+  serialized_start=336,
+  serialized_end=379,
 )
 
 
@@ -154,8 +252,8 @@ _STARTUPLOADREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=266,
-  serialized_end=316,
+  serialized_start=381,
+  serialized_end=440,
 )
 
 
@@ -186,8 +284,8 @@ _STARTUPLOADRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=318,
-  serialized_end=369,
+  serialized_start=442,
+  serialized_end=502,
 )
 
 
@@ -218,8 +316,8 @@ _COMPLETEUPLOADREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=371,
-  serialized_end=424,
+  serialized_start=504,
+  serialized_end=566,
 )
 
 
@@ -250,8 +348,8 @@ _COMPLETEUPLOADRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=426,
-  serialized_end=480,
+  serialized_start=568,
+  serialized_end=631,
 )
 
 
@@ -282,8 +380,8 @@ _ABORTUPLOADREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=482,
-  serialized_end=532,
+  serialized_start=633,
+  serialized_end=692,
 )
 
 
@@ -307,8 +405,8 @@ _ABORTUPLOADRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=534,
-  serialized_end=555,
+  serialized_start=694,
+  serialized_end=715,
 )
 
 
@@ -339,8 +437,8 @@ _MOVEUPLOADREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=557,
-  serialized_end=606,
+  serialized_start=717,
+  serialized_end=775,
 )
 
 
@@ -371,8 +469,72 @@ _MOVEUPLOADRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=608,
-  serialized_end=656,
+  serialized_start=777,
+  serialized_end=823,
+)
+
+
+_UPLOADREQUEST = _descriptor.Descriptor(
+  name='UploadRequest',
+  full_name='file.UploadRequest',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='file', full_name='file.UploadRequest.file', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=825,
+  serialized_end=866,
+)
+
+
+_UPLOADRESPONSE = _descriptor.Descriptor(
+  name='UploadResponse',
+  full_name='file.UploadResponse',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='upload', full_name='file.UploadResponse.upload', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=868,
+  serialized_end=914,
 )
 
 
@@ -403,8 +565,8 @@ _GETFILEREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=658,
-  serialized_end=686,
+  serialized_start=916,
+  serialized_end=944,
 )
 
 
@@ -435,8 +597,8 @@ _GETFILERESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=688,
-  serialized_end=733,
+  serialized_start=946,
+  serialized_end=989,
 )
 
 
@@ -467,8 +629,8 @@ _DELETEFILEREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=735,
-  serialized_end=782,
+  serialized_start=991,
+  serialized_end=1036,
 )
 
 
@@ -492,21 +654,26 @@ _DELETEFILERESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=784,
-  serialized_end=804,
+  serialized_start=1038,
+  serialized_end=1058,
 )
 
-_UPLOAD.fields_by_name['file'].message_type = perxis_dot_common_dot_common__pb2._FILE
-_UPLOAD.fields_by_name['parts'].message_type = _COMPLETEDPART
-_STARTUPLOADREQUEST.fields_by_name['upload'].message_type = _UPLOAD
-_STARTUPLOADRESPONSE.fields_by_name['upload'].message_type = _UPLOAD
-_COMPLETEUPLOADREQUEST.fields_by_name['upload'].message_type = _UPLOAD
-_COMPLETEUPLOADRESPONSE.fields_by_name['upload'].message_type = _UPLOAD
-_ABORTUPLOADREQUEST.fields_by_name['upload'].message_type = _UPLOAD
-_MOVEUPLOADREQUEST.fields_by_name['upload'].message_type = _UPLOAD
-_MOVEUPLOADRESPONSE.fields_by_name['file'].message_type = perxis_dot_common_dot_common__pb2._FILE
-_GETFILERESPONSE.fields_by_name['file'].message_type = perxis_dot_common_dot_common__pb2._FILE
-_DELETEFILEREQUEST.fields_by_name['file'].message_type = perxis_dot_common_dot_common__pb2._FILE
+_MULTIPARTUPLOAD.fields_by_name['file'].message_type = _FILE
+_MULTIPARTUPLOAD.fields_by_name['parts'].message_type = _COMPLETEDPART
+_UPLOAD.fields_by_name['file'].message_type = _FILE
+_STARTUPLOADREQUEST.fields_by_name['upload'].message_type = _MULTIPARTUPLOAD
+_STARTUPLOADRESPONSE.fields_by_name['upload'].message_type = _MULTIPARTUPLOAD
+_COMPLETEUPLOADREQUEST.fields_by_name['upload'].message_type = _MULTIPARTUPLOAD
+_COMPLETEUPLOADRESPONSE.fields_by_name['upload'].message_type = _MULTIPARTUPLOAD
+_ABORTUPLOADREQUEST.fields_by_name['upload'].message_type = _MULTIPARTUPLOAD
+_MOVEUPLOADREQUEST.fields_by_name['upload'].message_type = _MULTIPARTUPLOAD
+_MOVEUPLOADRESPONSE.fields_by_name['file'].message_type = _FILE
+_UPLOADREQUEST.fields_by_name['file'].message_type = _FILE
+_UPLOADRESPONSE.fields_by_name['upload'].message_type = _UPLOAD
+_GETFILERESPONSE.fields_by_name['file'].message_type = _FILE
+_DELETEFILEREQUEST.fields_by_name['file'].message_type = _FILE
+DESCRIPTOR.message_types_by_name['File'] = _FILE
+DESCRIPTOR.message_types_by_name['MultipartUpload'] = _MULTIPARTUPLOAD
 DESCRIPTOR.message_types_by_name['Upload'] = _UPLOAD
 DESCRIPTOR.message_types_by_name['CompletedPart'] = _COMPLETEDPART
 DESCRIPTOR.message_types_by_name['StartUploadRequest'] = _STARTUPLOADREQUEST
@@ -517,12 +684,28 @@ DESCRIPTOR.message_types_by_name['AbortUploadRequest'] = _ABORTUPLOADREQUEST
 DESCRIPTOR.message_types_by_name['AbortUploadResponse'] = _ABORTUPLOADRESPONSE
 DESCRIPTOR.message_types_by_name['MoveUploadRequest'] = _MOVEUPLOADREQUEST
 DESCRIPTOR.message_types_by_name['MoveUploadResponse'] = _MOVEUPLOADRESPONSE
+DESCRIPTOR.message_types_by_name['UploadRequest'] = _UPLOADREQUEST
+DESCRIPTOR.message_types_by_name['UploadResponse'] = _UPLOADRESPONSE
 DESCRIPTOR.message_types_by_name['GetFileRequest'] = _GETFILEREQUEST
 DESCRIPTOR.message_types_by_name['GetFileResponse'] = _GETFILERESPONSE
 DESCRIPTOR.message_types_by_name['DeleteFileRequest'] = _DELETEFILEREQUEST
 DESCRIPTOR.message_types_by_name['DeleteFileResponse'] = _DELETEFILERESPONSE
 _sym_db.RegisterFileDescriptor(DESCRIPTOR)
 
+File = _reflection.GeneratedProtocolMessageType('File', (_message.Message,), {
+  'DESCRIPTOR' : _FILE,
+  '__module__' : 'perxis.file.file_pb2'
+  # @@protoc_insertion_point(class_scope:file.File)
+  })
+_sym_db.RegisterMessage(File)
+
+MultipartUpload = _reflection.GeneratedProtocolMessageType('MultipartUpload', (_message.Message,), {
+  'DESCRIPTOR' : _MULTIPARTUPLOAD,
+  '__module__' : 'perxis.file.file_pb2'
+  # @@protoc_insertion_point(class_scope:file.MultipartUpload)
+  })
+_sym_db.RegisterMessage(MultipartUpload)
+
 Upload = _reflection.GeneratedProtocolMessageType('Upload', (_message.Message,), {
   'DESCRIPTOR' : _UPLOAD,
   '__module__' : 'perxis.file.file_pb2'
@@ -593,6 +776,20 @@ MoveUploadResponse = _reflection.GeneratedProtocolMessageType('MoveUploadRespons
   })
 _sym_db.RegisterMessage(MoveUploadResponse)
 
+UploadRequest = _reflection.GeneratedProtocolMessageType('UploadRequest', (_message.Message,), {
+  'DESCRIPTOR' : _UPLOADREQUEST,
+  '__module__' : 'perxis.file.file_pb2'
+  # @@protoc_insertion_point(class_scope:file.UploadRequest)
+  })
+_sym_db.RegisterMessage(UploadRequest)
+
+UploadResponse = _reflection.GeneratedProtocolMessageType('UploadResponse', (_message.Message,), {
+  'DESCRIPTOR' : _UPLOADRESPONSE,
+  '__module__' : 'perxis.file.file_pb2'
+  # @@protoc_insertion_point(class_scope:file.UploadResponse)
+  })
+_sym_db.RegisterMessage(UploadResponse)
+
 GetFileRequest = _reflection.GeneratedProtocolMessageType('GetFileRequest', (_message.Message,), {
   'DESCRIPTOR' : _GETFILEREQUEST,
   '__module__' : 'perxis.file.file_pb2'
@@ -631,8 +828,8 @@ _FILESERVICE = _descriptor.ServiceDescriptor(
   index=0,
   serialized_options=None,
   create_key=_descriptor._internal_create_key,
-  serialized_start=807,
-  serialized_end=1226,
+  serialized_start=1061,
+  serialized_end=1535,
   methods=[
   _descriptor.MethodDescriptor(
     name='StartUpload',
@@ -674,10 +871,20 @@ _FILESERVICE = _descriptor.ServiceDescriptor(
     serialized_options=None,
     create_key=_descriptor._internal_create_key,
   ),
+  _descriptor.MethodDescriptor(
+    name='Upload',
+    full_name='file.FileService.Upload',
+    index=4,
+    containing_service=None,
+    input_type=_UPLOADREQUEST,
+    output_type=_UPLOADRESPONSE,
+    serialized_options=None,
+    create_key=_descriptor._internal_create_key,
+  ),
   _descriptor.MethodDescriptor(
     name='GetFile',
     full_name='file.FileService.GetFile',
-    index=4,
+    index=5,
     containing_service=None,
     input_type=_GETFILEREQUEST,
     output_type=_GETFILERESPONSE,
@@ -687,7 +894,7 @@ _FILESERVICE = _descriptor.ServiceDescriptor(
   _descriptor.MethodDescriptor(
     name='DeleteFile',
     full_name='file.FileService.DeleteFile',
-    index=5,
+    index=6,
     containing_service=None,
     input_type=_DELETEFILEREQUEST,
     output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
diff --git a/perxis/file/file_pb2_grpc.py b/perxis/file/file_pb2_grpc.py
index 333d12b53f31021ae9603b4d298147dbbb097944..4798fd96d7e4125de1f8194fd6fb38eadca7492d 100644
--- a/perxis/file/file_pb2_grpc.py
+++ b/perxis/file/file_pb2_grpc.py
@@ -35,6 +35,11 @@ class FileServiceStub(object):
                 request_serializer=perxis_dot_file_dot_file__pb2.MoveUploadRequest.SerializeToString,
                 response_deserializer=perxis_dot_file_dot_file__pb2.MoveUploadResponse.FromString,
                 )
+        self.Upload = channel.unary_unary(
+                '/file.FileService/Upload',
+                request_serializer=perxis_dot_file_dot_file__pb2.UploadRequest.SerializeToString,
+                response_deserializer=perxis_dot_file_dot_file__pb2.UploadResponse.FromString,
+                )
         self.GetFile = channel.unary_unary(
                 '/file.FileService/GetFile',
                 request_serializer=perxis_dot_file_dot_file__pb2.GetFileRequest.SerializeToString,
@@ -80,6 +85,14 @@ class FileServiceServicer(object):
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
+    def Upload(self, request, context):
+        """Upload - инициация загрузки файла в хранилище. Возвращает объект, содержащий подписанный URL.
+        Завершение загрузки файла осуществляется выполнением POST-запроса
+        """
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
     def GetFile(self, request, context):
         """GetFile - получить информацию о файле (ссылку) по ID
         """
@@ -122,6 +135,11 @@ def add_FileServiceServicer_to_server(servicer, server):
                     request_deserializer=perxis_dot_file_dot_file__pb2.MoveUploadRequest.FromString,
                     response_serializer=perxis_dot_file_dot_file__pb2.MoveUploadResponse.SerializeToString,
             ),
+            'Upload': grpc.unary_unary_rpc_method_handler(
+                    servicer.Upload,
+                    request_deserializer=perxis_dot_file_dot_file__pb2.UploadRequest.FromString,
+                    response_serializer=perxis_dot_file_dot_file__pb2.UploadResponse.SerializeToString,
+            ),
             'GetFile': grpc.unary_unary_rpc_method_handler(
                     servicer.GetFile,
                     request_deserializer=perxis_dot_file_dot_file__pb2.GetFileRequest.FromString,
@@ -210,6 +228,23 @@ class FileService(object):
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
+    @staticmethod
+    def Upload(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_unary(request, target, '/file.FileService/Upload',
+            perxis_dot_file_dot_file__pb2.UploadRequest.SerializeToString,
+            perxis_dot_file_dot_file__pb2.UploadResponse.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
     @staticmethod
     def GetFile(request,
             target,
diff --git a/perxis/image/image_pb2.py b/perxis/image/image_pb2.py
new file mode 100644
index 0000000000000000000000000000000000000000..9a79e731f51464b1d170ac2e1c0f5e32cf2aef4e
--- /dev/null
+++ b/perxis/image/image_pb2.py
@@ -0,0 +1,237 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: perxis/image/image.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from perxis.file import file_pb2 as perxis_dot_file_dot_file__pb2
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='perxis/image/image.proto',
+  package='image',
+  syntax='proto3',
+  serialized_options=b'Z,github.com/perxteam/perxis/proto/image;image',
+  create_key=_descriptor._internal_create_key,
+  serialized_pb=b'\n\x18perxis/image/image.proto\x12\x05image\x1a\x16perxis/file/file.proto\"\"\n\x05Param\x12\n\n\x02op\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x03(\t\"\x80\x01\n\nGetRequest\x12\x1a\n\x06source\x18\x01 \x01(\x0b\x32\n.file.File\x12*\n\x04opts\x18\x02 \x01(\x0b\x32\x1c.image.GetRequest.GetOptions\x1a*\n\nGetOptions\x12\x1c\n\x06params\x18\x01 \x03(\x0b\x32\x0c.image.Param\")\n\x0bGetResponse\x12\x1a\n\x06result\x18\x01 \x01(\x0b\x32\n.file.File2>\n\x0cImageService\x12.\n\x03Get\x12\x11.image.GetRequest\x1a\x12.image.GetResponse\"\x00\x42.Z,github.com/perxteam/perxis/proto/image;imageb\x06proto3'
+  ,
+  dependencies=[perxis_dot_file_dot_file__pb2.DESCRIPTOR,])
+
+
+
+
+_PARAM = _descriptor.Descriptor(
+  name='Param',
+  full_name='image.Param',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='op', full_name='image.Param.op', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"".decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='value', full_name='image.Param.value', index=1,
+      number=2, type=9, cpp_type=9, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=59,
+  serialized_end=93,
+)
+
+
+_GETREQUEST_GETOPTIONS = _descriptor.Descriptor(
+  name='GetOptions',
+  full_name='image.GetRequest.GetOptions',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='params', full_name='image.GetRequest.GetOptions.params', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=182,
+  serialized_end=224,
+)
+
+_GETREQUEST = _descriptor.Descriptor(
+  name='GetRequest',
+  full_name='image.GetRequest',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='source', full_name='image.GetRequest.source', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='opts', full_name='image.GetRequest.opts', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[_GETREQUEST_GETOPTIONS, ],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=96,
+  serialized_end=224,
+)
+
+
+_GETRESPONSE = _descriptor.Descriptor(
+  name='GetResponse',
+  full_name='image.GetResponse',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='result', full_name='image.GetResponse.result', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=226,
+  serialized_end=267,
+)
+
+_GETREQUEST_GETOPTIONS.fields_by_name['params'].message_type = _PARAM
+_GETREQUEST_GETOPTIONS.containing_type = _GETREQUEST
+_GETREQUEST.fields_by_name['source'].message_type = perxis_dot_file_dot_file__pb2._FILE
+_GETREQUEST.fields_by_name['opts'].message_type = _GETREQUEST_GETOPTIONS
+_GETRESPONSE.fields_by_name['result'].message_type = perxis_dot_file_dot_file__pb2._FILE
+DESCRIPTOR.message_types_by_name['Param'] = _PARAM
+DESCRIPTOR.message_types_by_name['GetRequest'] = _GETREQUEST
+DESCRIPTOR.message_types_by_name['GetResponse'] = _GETRESPONSE
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+Param = _reflection.GeneratedProtocolMessageType('Param', (_message.Message,), {
+  'DESCRIPTOR' : _PARAM,
+  '__module__' : 'perxis.image.image_pb2'
+  # @@protoc_insertion_point(class_scope:image.Param)
+  })
+_sym_db.RegisterMessage(Param)
+
+GetRequest = _reflection.GeneratedProtocolMessageType('GetRequest', (_message.Message,), {
+
+  'GetOptions' : _reflection.GeneratedProtocolMessageType('GetOptions', (_message.Message,), {
+    'DESCRIPTOR' : _GETREQUEST_GETOPTIONS,
+    '__module__' : 'perxis.image.image_pb2'
+    # @@protoc_insertion_point(class_scope:image.GetRequest.GetOptions)
+    })
+  ,
+  'DESCRIPTOR' : _GETREQUEST,
+  '__module__' : 'perxis.image.image_pb2'
+  # @@protoc_insertion_point(class_scope:image.GetRequest)
+  })
+_sym_db.RegisterMessage(GetRequest)
+_sym_db.RegisterMessage(GetRequest.GetOptions)
+
+GetResponse = _reflection.GeneratedProtocolMessageType('GetResponse', (_message.Message,), {
+  'DESCRIPTOR' : _GETRESPONSE,
+  '__module__' : 'perxis.image.image_pb2'
+  # @@protoc_insertion_point(class_scope:image.GetResponse)
+  })
+_sym_db.RegisterMessage(GetResponse)
+
+
+DESCRIPTOR._options = None
+
+_IMAGESERVICE = _descriptor.ServiceDescriptor(
+  name='ImageService',
+  full_name='image.ImageService',
+  file=DESCRIPTOR,
+  index=0,
+  serialized_options=None,
+  create_key=_descriptor._internal_create_key,
+  serialized_start=269,
+  serialized_end=331,
+  methods=[
+  _descriptor.MethodDescriptor(
+    name='Get',
+    full_name='image.ImageService.Get',
+    index=0,
+    containing_service=None,
+    input_type=_GETREQUEST,
+    output_type=_GETRESPONSE,
+    serialized_options=None,
+    create_key=_descriptor._internal_create_key,
+  ),
+])
+_sym_db.RegisterServiceDescriptor(_IMAGESERVICE)
+
+DESCRIPTOR.services_by_name['ImageService'] = _IMAGESERVICE
+
+# @@protoc_insertion_point(module_scope)
diff --git a/perxis/image/image_pb2_grpc.py b/perxis/image/image_pb2_grpc.py
new file mode 100644
index 0000000000000000000000000000000000000000..d5a7e66725d80077cc620bbc3f810cccc0defef3
--- /dev/null
+++ b/perxis/image/image_pb2_grpc.py
@@ -0,0 +1,77 @@
+# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
+"""Client and server classes corresponding to protobuf-defined services."""
+import grpc
+
+from perxis.image import image_pb2 as perxis_dot_image_dot_image__pb2
+
+
+class ImageServiceStub(object):
+    """ImageService - сервис для обработки изображений
+    """
+
+    def __init__(self, channel):
+        """Constructor.
+
+        Args:
+            channel: A grpc.Channel.
+        """
+        self.Get = channel.unary_unary(
+                '/image.ImageService/Get',
+                request_serializer=perxis_dot_image_dot_image__pb2.GetRequest.SerializeToString,
+                response_deserializer=perxis_dot_image_dot_image__pb2.GetResponse.FromString,
+                )
+
+
+class ImageServiceServicer(object):
+    """ImageService - сервис для обработки изображений
+    """
+
+    def Get(self, request, context):
+        """Get - к файлу, идентификатор которого передан в запросе, применяются параметры.
+        Может быть передано несколько параметров, порядок учитывается при обработке
+        Допустимые операции:
+        - crop (ширина, высота)
+        - fit (ширина, высота)
+        - resize (ширина, высота)
+        - format (один из форматов [ png, jpeg, jpg, gif ]
+        Возвращает объект File с заполненным полем File.URL
+        """
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
+
+def add_ImageServiceServicer_to_server(servicer, server):
+    rpc_method_handlers = {
+            'Get': grpc.unary_unary_rpc_method_handler(
+                    servicer.Get,
+                    request_deserializer=perxis_dot_image_dot_image__pb2.GetRequest.FromString,
+                    response_serializer=perxis_dot_image_dot_image__pb2.GetResponse.SerializeToString,
+            ),
+    }
+    generic_handler = grpc.method_handlers_generic_handler(
+            'image.ImageService', rpc_method_handlers)
+    server.add_generic_rpc_handlers((generic_handler,))
+
+
+ # This class is part of an EXPERIMENTAL API.
+class ImageService(object):
+    """ImageService - сервис для обработки изображений
+    """
+
+    @staticmethod
+    def Get(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_unary(request, target, '/image.ImageService/Get',
+            perxis_dot_image_dot_image__pb2.GetRequest.SerializeToString,
+            perxis_dot_image_dot_image__pb2.GetResponse.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
diff --git a/perxis/items/items_pb2.py b/perxis/items/items_pb2.py
index a44076d460c677cfd7096dd2eb40ccfaf58535bb..0b51318112a146db8c5b640e3a7409c9d7166d61 100644
--- a/perxis/items/items_pb2.py
+++ b/perxis/items/items_pb2.py
@@ -23,7 +23,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
   syntax='proto3',
   serialized_options=b'Z,github.com/perxteam/perxis/proto/items;items',
   create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x18perxis/items/items.proto\x12\rcontent.items\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1aperxis/common/common.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/protobuf/struct.proto\"\'\n\x05\x45rror\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\r\n\x05\x66ield\x18\x02 \x01(\t\"3\n\x0b\x44\x65\x63odeError\x12$\n\x06\x65rrors\x18\x02 \x03(\x0b\x32\x14.content.items.Error\"7\n\x0fValidationError\x12$\n\x06\x65rrors\x18\x02 \x03(\x0b\x32\x14.content.items.Error\"9\n\x11ModificationError\x12$\n\x06\x65rrors\x18\x02 \x03(\x0b\x32\x14.content.items.Error\"\xb1\x04\n\x04Item\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08space_id\x18\x02 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x03 \x01(\t\x12\x15\n\rcollection_id\x18\x04 \x01(\t\x12(\n\x05state\x18\x05 \x01(\x0e\x32\x19.content.items.Item.State\x12.\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\ncreated_by\x18\x07 \x01(\t\x12%\n\x04\x64\x61ta\x18\x08 \x01(\x0b\x32\x17.google.protobuf.Struct\x12;\n\x0ctranslations\x18\t \x03(\x0b\x32%.content.items.Item.TranslationsEntry\x12\x13\n\x0brevision_id\x18\n \x01(\t\x12\x30\n\x0cpublished_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x0cpublished_by\x18\x0c \x01(\t\x12/\n\x0b\x61rchived_at\x18\r \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x0b\x61rchived_by\x18\x0e \x01(\t\x1aL\n\x11TranslationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct:\x02\x38\x01\"!\n\x05State\x12\t\n\x05\x44RAFT\x10\x00\x12\r\n\tPUBLISHED\x10\x01\"2\n\x06\x46ilter\x12\n\n\x02id\x18\x01 \x03(\t\x12\x1c\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\x0e.common.Filter\"2\n\rCreateRequest\x12!\n\x04item\x18\x01 \x01(\x0b\x32\x13.content.items.Item\"6\n\x0e\x43reateResponse\x12$\n\x07\x63reated\x18\x01 \x01(\x0b\x32\x13.content.items.Item\"V\n\nGetRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12\x0f\n\x07item_id\x18\x04 \x01(\t\"0\n\x0bGetResponse\x12!\n\x04item\x18\x01 \x01(\x0b\x32\x13.content.items.Item\"\x93\x01\n\x0b\x46indRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12%\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x15.content.items.Filter\x12$\n\x07options\x18\x05 \x01(\x0b\x32\x13.common.FindOptions\"A\n\x0c\x46indResponse\x12\"\n\x05items\x18\x01 \x03(\x0b\x32\x13.content.items.Item\x12\r\n\x05total\x18\x02 \x01(\x05\"2\n\rUpdateRequest\x12!\n\x04item\x18\x01 \x01(\x0b\x32\x13.content.items.Item\"Y\n\rDeleteRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12\x0f\n\x07item_id\x18\x04 \x01(\t\"3\n\x0ePublishRequest\x12!\n\x04item\x18\x01 \x01(\x0b\x32\x13.content.items.Item\"\\\n\x10UnpublishRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12\x0f\n\x07item_id\x18\x04 \x01(\t\"r\n\x13GetPublishedRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12\x11\n\tlocale_id\x18\x04 \x01(\t\x12\x0f\n\x07item_id\x18\x05 \x01(\t\"9\n\x14GetPublishedResponse\x12!\n\x04item\x18\x01 \x01(\x0b\x32\x13.content.items.Item\"\xaf\x01\n\x14\x46indPublishedRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12\x11\n\tlocale_id\x18\x04 \x01(\t\x12%\n\x06\x66ilter\x18\x05 \x01(\x0b\x32\x15.content.items.Filter\x12$\n\x07options\x18\x06 \x01(\x0b\x32\x13.common.FindOptions\"J\n\x15\x46indPublishedResponse\x12\"\n\x05items\x18\x01 \x03(\x0b\x32\x13.content.items.Item\x12\r\n\x05total\x18\x02 \x01(\x05\"s\n\x12GetRevisionRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12\x0f\n\x07item_id\x18\x04 \x01(\t\x12\x13\n\x0brevision_id\x18\x05 \x01(\t\"8\n\x13GetRevisionResponse\x12!\n\x04item\x18\x01 \x01(\x0b\x32\x13.content.items.Item\"`\n\x14ListRevisionsRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12\x0f\n\x07item_id\x18\x04 \x01(\t\";\n\x15ListRevisionsResponse\x12\"\n\x05items\x18\x01 \x03(\x0b\x32\x13.content.items.Item\"3\n\x0e\x41rchiveRequest\x12!\n\x04item\x18\x01 \x01(\x0b\x32\x13.content.items.Item\"\\\n\x10UnarchiveRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12\x0f\n\x07item_id\x18\x04 \x01(\t\"\x9b\x01\n\x13\x46indArchivedRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12%\n\x06\x66ilter\x18\x05 \x01(\x0b\x32\x15.content.items.Filter\x12$\n\x07options\x18\x06 \x01(\x0b\x32\x13.common.FindOptions\"I\n\x14\x46indArchivedResponse\x12\"\n\x05items\x18\x01 \x03(\x0b\x32\x13.content.items.Item\x12\r\n\x05total\x18\x02 \x01(\x05\x32\xb9\x08\n\x05Items\x12G\n\x06\x43reate\x12\x1c.content.items.CreateRequest\x1a\x1d.content.items.CreateResponse\"\x00\x12>\n\x03Get\x12\x19.content.items.GetRequest\x1a\x1a.content.items.GetResponse\"\x00\x12\x41\n\x04\x46ind\x12\x1a.content.items.FindRequest\x1a\x1b.content.items.FindResponse\"\x00\x12@\n\x06Update\x12\x1c.content.items.UpdateRequest\x1a\x16.google.protobuf.Empty\"\x00\x12@\n\x06\x44\x65lete\x12\x1c.content.items.DeleteRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\x07Publish\x12\x1d.content.items.PublishRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x46\n\tUnpublish\x12\x1f.content.items.UnpublishRequest\x1a\x16.google.protobuf.Empty\"\x00\x12Y\n\x0cGetPublished\x12\".content.items.GetPublishedRequest\x1a#.content.items.GetPublishedResponse\"\x00\x12\\\n\rFindPublished\x12#.content.items.FindPublishedRequest\x1a$.content.items.FindPublishedResponse\"\x00\x12V\n\x0bGetRevision\x12!.content.items.GetRevisionRequest\x1a\".content.items.GetRevisionResponse\"\x00\x12\\\n\rListRevisions\x12#.content.items.ListRevisionsRequest\x1a$.content.items.ListRevisionsResponse\"\x00\x12\x42\n\x07\x41rchive\x12\x1d.content.items.ArchiveRequest\x1a\x16.google.protobuf.Empty\"\x00\x12Y\n\x0c\x46indArchived\x12\".content.items.FindArchivedRequest\x1a#.content.items.FindArchivedResponse\"\x00\x12\x46\n\tUnarchive\x12\x1f.content.items.UnarchiveRequest\x1a\x16.google.protobuf.Empty\"\x00\x42.Z,github.com/perxteam/perxis/proto/items;itemsb\x06proto3'
+  serialized_pb=b'\n\x18perxis/items/items.proto\x12\rcontent.items\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1aperxis/common/common.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/protobuf/struct.proto\"\'\n\x05\x45rror\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\r\n\x05\x66ield\x18\x02 \x01(\t\"3\n\x0b\x44\x65\x63odeError\x12$\n\x06\x65rrors\x18\x02 \x03(\x0b\x32\x14.content.items.Error\"7\n\x0fValidationError\x12$\n\x06\x65rrors\x18\x02 \x03(\x0b\x32\x14.content.items.Error\"9\n\x11ModificationError\x12$\n\x06\x65rrors\x18\x02 \x03(\x0b\x32\x14.content.items.Error\"\xcc\x04\n\x04Item\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08space_id\x18\x02 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x03 \x01(\t\x12\x15\n\rcollection_id\x18\x04 \x01(\t\x12(\n\x05state\x18\x05 \x01(\x0e\x32\x19.content.items.Item.State\x12.\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\ncreated_by\x18\x07 \x01(\t\x12%\n\x04\x64\x61ta\x18\x08 \x01(\x0b\x32\x17.google.protobuf.Struct\x12;\n\x0ctranslations\x18\t \x03(\x0b\x32%.content.items.Item.TranslationsEntry\x12\x13\n\x0brevision_id\x18\n \x01(\t\x12\x30\n\x0cpublished_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x0cpublished_by\x18\x0c \x01(\t\x12/\n\x0b\x61rchived_at\x18\r \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x0b\x61rchived_by\x18\x0e \x01(\t\x1aL\n\x11TranslationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct:\x02\x38\x01\"<\n\x05State\x12\t\n\x05\x44RAFT\x10\x00\x12\r\n\tPUBLISHED\x10\x01\x12\x0b\n\x07\x43HANGED\x10\x02\x12\x0c\n\x08\x41RCHIVED\x10\x03\"2\n\x06\x46ilter\x12\n\n\x02id\x18\x01 \x03(\t\x12\x1c\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\x0e.common.Filter\"2\n\rCreateRequest\x12!\n\x04item\x18\x01 \x01(\x0b\x32\x13.content.items.Item\"6\n\x0e\x43reateResponse\x12$\n\x07\x63reated\x18\x01 \x01(\x0b\x32\x13.content.items.Item\"V\n\nGetRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12\x0f\n\x07item_id\x18\x04 \x01(\t\"0\n\x0bGetResponse\x12!\n\x04item\x18\x01 \x01(\x0b\x32\x13.content.items.Item\"\x93\x01\n\x0b\x46indRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12%\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x15.content.items.Filter\x12$\n\x07options\x18\x05 \x01(\x0b\x32\x13.common.FindOptions\"A\n\x0c\x46indResponse\x12\"\n\x05items\x18\x01 \x03(\x0b\x32\x13.content.items.Item\x12\r\n\x05total\x18\x02 \x01(\x05\"2\n\rUpdateRequest\x12!\n\x04item\x18\x01 \x01(\x0b\x32\x13.content.items.Item\"Y\n\rDeleteRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12\x0f\n\x07item_id\x18\x04 \x01(\t\"3\n\x0ePublishRequest\x12!\n\x04item\x18\x01 \x01(\x0b\x32\x13.content.items.Item\"\\\n\x10UnpublishRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12\x0f\n\x07item_id\x18\x04 \x01(\t\"r\n\x13GetPublishedRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12\x11\n\tlocale_id\x18\x04 \x01(\t\x12\x0f\n\x07item_id\x18\x05 \x01(\t\"9\n\x14GetPublishedResponse\x12!\n\x04item\x18\x01 \x01(\x0b\x32\x13.content.items.Item\"\xaf\x01\n\x14\x46indPublishedRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12\x11\n\tlocale_id\x18\x04 \x01(\t\x12%\n\x06\x66ilter\x18\x05 \x01(\x0b\x32\x15.content.items.Filter\x12$\n\x07options\x18\x06 \x01(\x0b\x32\x13.common.FindOptions\"J\n\x15\x46indPublishedResponse\x12\"\n\x05items\x18\x01 \x03(\x0b\x32\x13.content.items.Item\x12\r\n\x05total\x18\x02 \x01(\x05\"s\n\x12GetRevisionRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12\x0f\n\x07item_id\x18\x04 \x01(\t\x12\x13\n\x0brevision_id\x18\x05 \x01(\t\"8\n\x13GetRevisionResponse\x12!\n\x04item\x18\x01 \x01(\x0b\x32\x13.content.items.Item\"`\n\x14ListRevisionsRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12\x0f\n\x07item_id\x18\x04 \x01(\t\";\n\x15ListRevisionsResponse\x12\"\n\x05items\x18\x01 \x03(\x0b\x32\x13.content.items.Item\"3\n\x0e\x41rchiveRequest\x12!\n\x04item\x18\x01 \x01(\x0b\x32\x13.content.items.Item\"\\\n\x10UnarchiveRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12\x0f\n\x07item_id\x18\x04 \x01(\t\"\x9b\x01\n\x13\x46indArchivedRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0e\n\x06\x65nv_id\x18\x02 \x01(\t\x12\x15\n\rcollection_id\x18\x03 \x01(\t\x12%\n\x06\x66ilter\x18\x05 \x01(\x0b\x32\x15.content.items.Filter\x12$\n\x07options\x18\x06 \x01(\x0b\x32\x13.common.FindOptions\"I\n\x14\x46indArchivedResponse\x12\"\n\x05items\x18\x01 \x03(\x0b\x32\x13.content.items.Item\x12\r\n\x05total\x18\x02 \x01(\x05\x32\xb9\x08\n\x05Items\x12G\n\x06\x43reate\x12\x1c.content.items.CreateRequest\x1a\x1d.content.items.CreateResponse\"\x00\x12>\n\x03Get\x12\x19.content.items.GetRequest\x1a\x1a.content.items.GetResponse\"\x00\x12\x41\n\x04\x46ind\x12\x1a.content.items.FindRequest\x1a\x1b.content.items.FindResponse\"\x00\x12@\n\x06Update\x12\x1c.content.items.UpdateRequest\x1a\x16.google.protobuf.Empty\"\x00\x12@\n\x06\x44\x65lete\x12\x1c.content.items.DeleteRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\x07Publish\x12\x1d.content.items.PublishRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x46\n\tUnpublish\x12\x1f.content.items.UnpublishRequest\x1a\x16.google.protobuf.Empty\"\x00\x12Y\n\x0cGetPublished\x12\".content.items.GetPublishedRequest\x1a#.content.items.GetPublishedResponse\"\x00\x12\\\n\rFindPublished\x12#.content.items.FindPublishedRequest\x1a$.content.items.FindPublishedResponse\"\x00\x12V\n\x0bGetRevision\x12!.content.items.GetRevisionRequest\x1a\".content.items.GetRevisionResponse\"\x00\x12\\\n\rListRevisions\x12#.content.items.ListRevisionsRequest\x1a$.content.items.ListRevisionsResponse\"\x00\x12\x42\n\x07\x41rchive\x12\x1d.content.items.ArchiveRequest\x1a\x16.google.protobuf.Empty\"\x00\x12Y\n\x0c\x46indArchived\x12\".content.items.FindArchivedRequest\x1a#.content.items.FindArchivedResponse\"\x00\x12\x46\n\tUnarchive\x12\x1f.content.items.UnarchiveRequest\x1a\x16.google.protobuf.Empty\"\x00\x42.Z,github.com/perxteam/perxis/proto/items;itemsb\x06proto3'
   ,
   dependencies=[google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,perxis_dot_common_dot_common__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,google_dot_protobuf_dot_struct__pb2.DESCRIPTOR,])
 
@@ -46,11 +46,21 @@ _ITEM_STATE = _descriptor.EnumDescriptor(
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='CHANGED', index=2, number=2,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='ARCHIVED', index=3, number=3,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
   ],
   containing_type=None,
   serialized_options=None,
   serialized_start=902,
-  serialized_end=935,
+  serialized_end=962,
 )
 _sym_db.RegisterEnumDescriptor(_ITEM_STATE)
 
@@ -348,7 +358,7 @@ _ITEM = _descriptor.Descriptor(
   oneofs=[
   ],
   serialized_start=374,
-  serialized_end=935,
+  serialized_end=962,
 )
 
 
@@ -386,8 +396,8 @@ _FILTER = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=937,
-  serialized_end=987,
+  serialized_start=964,
+  serialized_end=1014,
 )
 
 
@@ -418,8 +428,8 @@ _CREATEREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=989,
-  serialized_end=1039,
+  serialized_start=1016,
+  serialized_end=1066,
 )
 
 
@@ -450,8 +460,8 @@ _CREATERESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1041,
-  serialized_end=1095,
+  serialized_start=1068,
+  serialized_end=1122,
 )
 
 
@@ -503,8 +513,8 @@ _GETREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1097,
-  serialized_end=1183,
+  serialized_start=1124,
+  serialized_end=1210,
 )
 
 
@@ -535,8 +545,8 @@ _GETRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1185,
-  serialized_end=1233,
+  serialized_start=1212,
+  serialized_end=1260,
 )
 
 
@@ -595,8 +605,8 @@ _FINDREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1236,
-  serialized_end=1383,
+  serialized_start=1263,
+  serialized_end=1410,
 )
 
 
@@ -634,8 +644,8 @@ _FINDRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1385,
-  serialized_end=1450,
+  serialized_start=1412,
+  serialized_end=1477,
 )
 
 
@@ -666,8 +676,8 @@ _UPDATEREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1452,
-  serialized_end=1502,
+  serialized_start=1479,
+  serialized_end=1529,
 )
 
 
@@ -719,8 +729,8 @@ _DELETEREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1504,
-  serialized_end=1593,
+  serialized_start=1531,
+  serialized_end=1620,
 )
 
 
@@ -751,8 +761,8 @@ _PUBLISHREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1595,
-  serialized_end=1646,
+  serialized_start=1622,
+  serialized_end=1673,
 )
 
 
@@ -804,8 +814,8 @@ _UNPUBLISHREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1648,
-  serialized_end=1740,
+  serialized_start=1675,
+  serialized_end=1767,
 )
 
 
@@ -864,8 +874,8 @@ _GETPUBLISHEDREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1742,
-  serialized_end=1856,
+  serialized_start=1769,
+  serialized_end=1883,
 )
 
 
@@ -896,8 +906,8 @@ _GETPUBLISHEDRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1858,
-  serialized_end=1915,
+  serialized_start=1885,
+  serialized_end=1942,
 )
 
 
@@ -963,8 +973,8 @@ _FINDPUBLISHEDREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1918,
-  serialized_end=2093,
+  serialized_start=1945,
+  serialized_end=2120,
 )
 
 
@@ -1002,8 +1012,8 @@ _FINDPUBLISHEDRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2095,
-  serialized_end=2169,
+  serialized_start=2122,
+  serialized_end=2196,
 )
 
 
@@ -1062,8 +1072,8 @@ _GETREVISIONREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2171,
-  serialized_end=2286,
+  serialized_start=2198,
+  serialized_end=2313,
 )
 
 
@@ -1094,8 +1104,8 @@ _GETREVISIONRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2288,
-  serialized_end=2344,
+  serialized_start=2315,
+  serialized_end=2371,
 )
 
 
@@ -1147,8 +1157,8 @@ _LISTREVISIONSREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2346,
-  serialized_end=2442,
+  serialized_start=2373,
+  serialized_end=2469,
 )
 
 
@@ -1179,8 +1189,8 @@ _LISTREVISIONSRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2444,
-  serialized_end=2503,
+  serialized_start=2471,
+  serialized_end=2530,
 )
 
 
@@ -1211,8 +1221,8 @@ _ARCHIVEREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2505,
-  serialized_end=2556,
+  serialized_start=2532,
+  serialized_end=2583,
 )
 
 
@@ -1264,8 +1274,8 @@ _UNARCHIVEREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2558,
-  serialized_end=2650,
+  serialized_start=2585,
+  serialized_end=2677,
 )
 
 
@@ -1324,8 +1334,8 @@ _FINDARCHIVEDREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2653,
-  serialized_end=2808,
+  serialized_start=2680,
+  serialized_end=2835,
 )
 
 
@@ -1363,8 +1373,8 @@ _FINDARCHIVEDRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2810,
-  serialized_end=2883,
+  serialized_start=2837,
+  serialized_end=2910,
 )
 
 _DECODEERROR.fields_by_name['errors'].message_type = _ERROR
@@ -1643,8 +1653,8 @@ _ITEMS = _descriptor.ServiceDescriptor(
   index=0,
   serialized_options=None,
   create_key=_descriptor._internal_create_key,
-  serialized_start=2886,
-  serialized_end=3967,
+  serialized_start=2913,
+  serialized_end=3994,
   methods=[
   _descriptor.MethodDescriptor(
     name='Create',
diff --git a/perxis/roles/roles_pb2.py b/perxis/roles/roles_pb2.py
index 4b931c2ffc81adeee9899225f6a38e5ccf0f90d3..011d293a02647687f7706ae72211822306e32bee 100644
--- a/perxis/roles/roles_pb2.py
+++ b/perxis/roles/roles_pb2.py
@@ -21,7 +21,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
   syntax='proto3',
   serialized_options=b'Z,github.com/perxteam/perxis/proto/roles;roles',
   create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x18perxis/roles/roles.proto\x12\rcontent.roles\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1aperxis/common/common.proto\"d\n\x04Role\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08space_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x1b\n\x05rules\x18\x05 \x03(\x0b\x32\x0c.common.Rule\"2\n\rCreateRequest\x12!\n\x04role\x18\x01 \x01(\x0b\x32\x13.content.roles.Role\"6\n\x0e\x43reateResponse\x12$\n\x07\x63reated\x18\x01 \x01(\x0b\x32\x13.content.roles.Role\"/\n\nGetRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0f\n\x07role_id\x18\x02 \x01(\t\"0\n\x0bGetResponse\x12!\n\x04role\x18\x01 \x01(\x0b\x32\x13.content.roles.Role\"2\n\rUpdateRequest\x12!\n\x04role\x18\x01 \x01(\x0b\x32\x13.content.roles.Role\"\x1f\n\x0bListRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\"2\n\x0cListResponse\x12\"\n\x05roles\x18\x01 \x03(\x0b\x32\x13.content.roles.Role\"2\n\rDeleteRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0f\n\x07role_id\x18\x02 \x01(\t2\xd7\x02\n\x05Roles\x12G\n\x06\x43reate\x12\x1c.content.roles.CreateRequest\x1a\x1d.content.roles.CreateResponse\"\x00\x12>\n\x03Get\x12\x19.content.roles.GetRequest\x1a\x1a.content.roles.GetResponse\"\x00\x12@\n\x06Update\x12\x1c.content.roles.UpdateRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x41\n\x04List\x12\x1a.content.roles.ListRequest\x1a\x1b.content.roles.ListResponse\"\x00\x12@\n\x06\x44\x65lete\x12\x1c.content.roles.DeleteRequest\x1a\x16.google.protobuf.Empty\"\x00\x42.Z,github.com/perxteam/perxis/proto/roles;rolesb\x06proto3'
+  serialized_pb=b'\n\x18perxis/roles/roles.proto\x12\rcontent.roles\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1aperxis/common/common.proto\"V\n\x04Role\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08space_id\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x1b\n\x05rules\x18\x04 \x03(\x0b\x32\x0c.common.Rule\"2\n\rCreateRequest\x12!\n\x04role\x18\x01 \x01(\x0b\x32\x13.content.roles.Role\"6\n\x0e\x43reateResponse\x12$\n\x07\x63reated\x18\x01 \x01(\x0b\x32\x13.content.roles.Role\"/\n\nGetRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0f\n\x07role_id\x18\x02 \x01(\t\"0\n\x0bGetResponse\x12!\n\x04role\x18\x01 \x01(\x0b\x32\x13.content.roles.Role\"2\n\rUpdateRequest\x12!\n\x04role\x18\x01 \x01(\x0b\x32\x13.content.roles.Role\"\x1f\n\x0bListRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\"2\n\x0cListResponse\x12\"\n\x05roles\x18\x01 \x03(\x0b\x32\x13.content.roles.Role\"2\n\rDeleteRequest\x12\x10\n\x08space_id\x18\x01 \x01(\t\x12\x0f\n\x07role_id\x18\x02 \x01(\t2\xd7\x02\n\x05Roles\x12G\n\x06\x43reate\x12\x1c.content.roles.CreateRequest\x1a\x1d.content.roles.CreateResponse\"\x00\x12>\n\x03Get\x12\x19.content.roles.GetRequest\x1a\x1a.content.roles.GetResponse\"\x00\x12@\n\x06Update\x12\x1c.content.roles.UpdateRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x41\n\x04List\x12\x1a.content.roles.ListRequest\x1a\x1b.content.roles.ListResponse\"\x00\x12@\n\x06\x44\x65lete\x12\x1c.content.roles.DeleteRequest\x1a\x16.google.protobuf.Empty\"\x00\x42.Z,github.com/perxteam/perxis/proto/roles;rolesb\x06proto3'
   ,
   dependencies=[google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,perxis_dot_common_dot_common__pb2.DESCRIPTOR,])
 
@@ -51,22 +51,15 @@ _ROLE = _descriptor.Descriptor(
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
     _descriptor.FieldDescriptor(
-      name='name', full_name='content.roles.Role.name', index=2,
+      name='description', full_name='content.roles.Role.description', index=2,
       number=3, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=b"".decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
     _descriptor.FieldDescriptor(
-      name='description', full_name='content.roles.Role.description', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='rules', full_name='content.roles.Role.rules', index=4,
-      number=5, type=11, cpp_type=10, label=3,
+      name='rules', full_name='content.roles.Role.rules', index=3,
+      number=4, type=11, cpp_type=10, label=3,
       has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
@@ -84,7 +77,7 @@ _ROLE = _descriptor.Descriptor(
   oneofs=[
   ],
   serialized_start=100,
-  serialized_end=200,
+  serialized_end=186,
 )
 
 
@@ -115,8 +108,8 @@ _CREATEREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=202,
-  serialized_end=252,
+  serialized_start=188,
+  serialized_end=238,
 )
 
 
@@ -147,8 +140,8 @@ _CREATERESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=254,
-  serialized_end=308,
+  serialized_start=240,
+  serialized_end=294,
 )
 
 
@@ -186,8 +179,8 @@ _GETREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=310,
-  serialized_end=357,
+  serialized_start=296,
+  serialized_end=343,
 )
 
 
@@ -218,8 +211,8 @@ _GETRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=359,
-  serialized_end=407,
+  serialized_start=345,
+  serialized_end=393,
 )
 
 
@@ -250,8 +243,8 @@ _UPDATEREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=409,
-  serialized_end=459,
+  serialized_start=395,
+  serialized_end=445,
 )
 
 
@@ -282,8 +275,8 @@ _LISTREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=461,
-  serialized_end=492,
+  serialized_start=447,
+  serialized_end=478,
 )
 
 
@@ -314,8 +307,8 @@ _LISTRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=494,
-  serialized_end=544,
+  serialized_start=480,
+  serialized_end=530,
 )
 
 
@@ -353,8 +346,8 @@ _DELETEREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=546,
-  serialized_end=596,
+  serialized_start=532,
+  serialized_end=582,
 )
 
 _ROLE.fields_by_name['rules'].message_type = perxis_dot_common_dot_common__pb2._RULE
@@ -447,8 +440,8 @@ _ROLES = _descriptor.ServiceDescriptor(
   index=0,
   serialized_options=None,
   create_key=_descriptor._internal_create_key,
-  serialized_start=599,
-  serialized_end=942,
+  serialized_start=585,
+  serialized_end=928,
   methods=[
   _descriptor.MethodDescriptor(
     name='Create',
diff --git a/proto/perxis/accountmanagement/accountmanagement.proto b/proto/perxis/accountmanagement/accountmanagement.proto
deleted file mode 100644
index 2b8557d91a3ce33c68ca96d414e02d6b5cfee10f..0000000000000000000000000000000000000000
--- a/proto/perxis/accountmanagement/accountmanagement.proto
+++ /dev/null
@@ -1,414 +0,0 @@
-syntax = "proto3";
-
-import "google/protobuf/timestamp.proto";
-import "google/protobuf/empty.proto";
-import "google/protobuf/wrappers.proto";
-import "perxis/common/common.proto";
-
-option go_package = "github.com/perxteam/perxis/proto/accountmanagement;accountmanagement";
-
-package accountmanagement;
-
-// Запросы и ответы
-
-message CreateOrganizationRequest {
-  string name = 2;
-  string description = 3;
-  string logo_uri = 4;
-}
-
-message CreateOrganizationResponse {
-  common.Organization organization = 1;
-}
-
-message UpdateOrganizationRequest {
-  string organization_id = 1;
-  string name = 2;
-  string description = 3;
-  string logo_uri = 4;
-}
-
-message UpdateOrganizationResponse {
-  common.Organization organization = 1;
-}
-
-message DeleteOrganizationRequest {
-  string organization_id = 1;
-}
-
-message DeleteOrganizationResponse {}
-
-message FindOrganizationsRequest {
-  int32 page_num = 1;
-  int32 page_size = 2;
-  repeated string ids = 3;
-  repeated string names = 4;
-}
-
-message FindOrganizationsResponse {
-  repeated common.Organization organizations = 1;
-  int32 total = 2;
-}
-
-message UpdateOrganizationMembershipRequest {
-  string user_id = 1;
-  string organization_id = 2;
-  common.Role role = 3;
-}
-
-message DeleteOrganizationMembershipRequest {
-  string user_id = 1;
-  string organization_id = 2;
-}
-
-message FindOrganizationMembershipsRequest {
-  repeated string organization_ids = 1; // Id организации для поиска членства
-  repeated string user_ids = 2; // Id пользователей для поиска
-  repeated common.Role roles = 3; // Роль для поиска (если не указана, любая)
-  int32 page_num = 9;
-  int32 page_size = 10;
-}
-
-message FindOrganizationMembershipsResponse {
-  repeated common.OrganizationMembership memberships = 1;
-  int32 total = 2;
-}
-
-// Spaces
-
-message CreateSpaceRequest {
-  string name = 1;
-  string description = 2;
-  string organization_id = 3;
-}
-
-message CreateSpaceResponse {
-  common.Space space = 1;
-}
-
-message GetSpaceRequest {
-  string space_id = 1;
-}
-
-message GetSpaceResponse {
-  common.Space space = 1;
-}
-
-message ListOrganizationSpacesRequest {
-  string organization_id = 1;
-}
-
-message ListOrganizationSpacesResponse {
-  repeated common.Space spaces = 1;
-}
-
-message UpdateSpaceRequest {
-  string space_id = 1;
-  string name = 2;
-  string description = 3;
-  string api_url = 4;
-}
-
-message UpdateSpaceResponse {
-  common.Space space = 1;
-}
-
-message DeleteSpaceRequest {
-  string space_id = 1;
-}
-
-message DeleteSpaceResponse {}
-
-
-message CreateSpaceInvitationRequest {
-  string space_id = 1;
-  string space_role = 2;
-  string email = 3;
-}
-
-message CreateSpaceInvitationResponse {
-  common.SpaceInvitation invitation = 1;
-}
-
-message GetSpaceInvitationRequest {
-  string invitation_id = 1;
-}
-
-message GetSpaceInvitationResponse {
-  common.SpaceInvitation invitation = 1;
-}
-
-message UpdateSpaceInvitationRequest {
-  string invitation_id = 1;
-  google.protobuf.BoolValue sent = 2; // Флаг отправки приглашения
-  google.protobuf.BoolValue pending = 3; // Флаг принятия приглашения
-  google.protobuf.Timestamp sent_at = 4; // Время отправки приглашения
-  google.protobuf.Timestamp valid_until = 5; // Время до которого приглашение действует
-}
-
-message UpdateSpaceInvitationResponse {}
-
-message AcceptSpaceInvitationRequest {
-  string invitation_id = 1;
-}
-
-message AcceptSpaceInvitationResponse {}
-
-message FindSpaceInvitationsRequest {
-  repeated string invitation_ids = 1;
-  repeated string organization_ids = 2;
-  repeated string space_ids = 3;
-  repeated string emails = 4;
-  repeated string space_roles = 5;
-  google.protobuf.BoolValue sent = 6;
-  google.protobuf.BoolValue pending = 7;
-  int32 page_num = 9;
-  int32 page_size = 10;
-}
-
-message FindSpaceInvitationsResponse {
-  repeated common.SpaceInvitation invitations = 1;
-  int32 total = 2;
-}
-
-message DeleteSpaceInvitationRequest {
-  string invitation_id = 1;
-}
-
-message DeleteSpaceInvitationResponse {}
-
-message SetSpaceMembershipRequest {
-  string space_id = 1;
-  string user_id = 2;
-  string space_role = 3; // Роль пользователя для пространства. Сами роли обслуживаются Content Service
-}
-
-message SetSpaceMembershipResponse {}
-
-message DeleteSpaceMembershipRequest {
-  string space_id = 1;
-  string user_id = 2;
-}
-
-message DeleteSpaceMembershipResponse {}
-
-message FindSpaceMembershipsRequest {
-  repeated string organization_ids = 1; // Фильтрация по организации
-  repeated string space_ids = 2; // Фильтрация по пространству
-  repeated string user_ids = 3; // Фильтрация по пользователю
-  repeated string space_roles = 4; // Фильтрация по роли пользователя в пространстве
-  int32 page_num = 9;
-  int32 page_size = 10;
-
-}
-
-message FindSpaceMembershipsResponse {
-  message SpaceMembership {
-    string organization_id = 1;
-    string space_id = 2;
-    string user_id = 3;
-    string space_role = 4;
-  }
-  repeated SpaceMembership memberships = 1;
-  int32 total = 2;
-}
-
-
-// Пользователи
-
-message CreateUserRequest {
-  string name = 2; // Уникальное имя (идентификатор JWT)
-  string display_name = 3; // Имя пользователя для отображения
-  repeated string identities = 4;
-  string email = 5; // Email, указывается пользователем
-  bool email_verified = 6; // Флаг что email проверен
-  string avatar_uri = 7; // URI изображения пользователя
-  bool system = 10; // Системный пользователь (может получать доступ к расширенному API)
-}
-
-message CreateUserResponse {
-  common.User user = 1;
-}
-
-message GetCurrentUserRequest {}
-
-
-message GetCurrentUserResponse {
-  common.User user = 1;
-}
-
-message UpdateCurrentUserRequest {
-  string name = 2; // Уникальное имя
-  string display_name = 3; // Имя пользователя для отображения
-  string email = 4; // Email, указывается пользователем
-  string avatar_uri = 6; // URI изображения пользователя
-}
-
-message UpdateCurrentUserResponse {
-  common.User user = 1;
-}
-
-message GetUserRequest {
-  string user_id = 1;
-}
-
-message GetUserResponse {
-  common.User user = 1;
-}
-
-message FindUsersRequest {
-  repeated string ids = 1; // Уникальный идентификатор
-  repeated string identities = 2; // Authorization subjects (JWT sub claims)
-  repeated string names = 3; // Уникальное имя (идентификатор JWT)
-  repeated string display_names = 4; // Имя пользователя для отображения
-  repeated string emails = 5; // Email, указывается пользователем
-  google.protobuf.BoolValue email_verified = 6; // Флаг что email проверен
-  repeated string avatar_uri = 9; // URI изображения пользователя
-  google.protobuf.BoolValue system = 10; // Системный пользователь (может получать доступ к расширенному API)
-  int32 page_num = 11;
-  int32 page_size = 12;
-
-}
-
-message FindUsersResponse {
-  repeated common.User users = 1;
-  int32 total = 2;
-}
-
-message UpdateUserRequest {
-  string user_id = 1; // Уникальный идентификатор, присваивается системой
-  common.User update = 2; // Содержит только поля необходимые для обновления
-}
-
-message UpdateUserResponse{
-  common.User user = 1; // Результат обновления пользователя
-}
-
-message DeleteUserRequest {
-  string user_id = 1;
-}
-
-message DeleteUserResponse {}
-
-service AccountManagement  {
-  // Пользователи
-
-  // Создать пользователя
-  // System API: только системный пользователь может использовать
-  rpc CreateUser(CreateUserRequest) returns(CreateUserResponse) {}
-
-  // Получить текущего пользователя
-  rpc GetUser(GetUserRequest) returns(GetUserResponse) {}
-
-  // Получить список пользователей
-  rpc FindUsers(FindUsersRequest) returns(FindUsersResponse) {}
-
-  // Обновить текущего пользователя
-  // System API: только системный пользователь может использовать
-  rpc UpdateUser(UpdateUserRequest) returns(UpdateUserResponse) {}
-
-  // Удалить пользователя
-  rpc DeleteUser(DeleteUserRequest) returns(google.protobuf.Empty) {}
-
-  // Получить текущего пользователя
-  rpc GetCurrentUser(google.protobuf.Empty) returns(GetCurrentUserResponse) {}
-
-  // Обновить или зарегистрировать текущего пользователя
-  rpc UpdateCurrentUser(UpdateCurrentUserRequest) returns(UpdateCurrentUserResponse) {}
-
-  //
-  // Organizations (Организации)
-  //
-
-  // Создает организацию
-  rpc CreateOrganization(CreateOrganizationRequest) returns(CreateOrganizationResponse) {}
-
-  // Удалить организацию
-  rpc DeleteOrganization(DeleteOrganizationRequest) returns(google.protobuf.Empty) {}
-
-  // Поиск организаций
-  //
-  rpc FindOrganizations(FindOrganizationsRequest) returns(FindOrganizationsResponse) {}
-
-  // Обновление организации
-  //
-  rpc UpdateOrganization(UpdateOrganizationRequest) returns(UpdateOrganizationResponse) {}
-
-  //
-  // Memberships (Членство в организации)
-  //
-
-  // Обновить членство пользователя в организации
-  rpc UpdateOrganizationMembership(UpdateOrganizationMembershipRequest) returns(google.protobuf.Empty) {}
-
-  // Удалить пользователя из организации
-  rpc DeleteOrganizationMembership(DeleteOrganizationMembershipRequest) returns(google.protobuf.Empty) {}
-
-  // Получить членство пользователей в организации или команде
-  // Использование параметров
-  // - Для поиска членов организации: organization_id
-  // - Для поиска организаций где пользователь является членом: user_id
-  // - Для поиска организаций владельцем которых является пользователь: user_id, Role = OWNER
-  // - Для поиска организаций которыми пользователь может управлять: user_id, Role = [OWNER, ADMIN]
-  rpc FindOrganizationMemberships(FindOrganizationMembershipsRequest) returns(FindOrganizationMembershipsResponse) {}
-
-  //
-  // Spaces (Пространства)
-  //
-
-  // Создает пространство в организации или пользователе
-  rpc CreateSpace(CreateSpaceRequest) returns(CreateSpaceResponse) {}
-
-  // Получить информацию о пространстве
-  rpc GetSpace(GetSpaceRequest) returns(GetSpaceResponse) {}
-
-  // Получить список пространств в организации доступных
-  rpc ListOrganizationSpaces(ListOrganizationSpacesRequest) returns(ListOrganizationSpacesResponse) {}
-
-  // Обновить информацию о пространстве
-  rpc UpdateSpace(UpdateSpaceRequest) returns(UpdateSpaceResponse) {}
-
-  // Удалить пространство
-  rpc DeleteSpace(DeleteSpaceRequest) returns(google.protobuf.Empty) {}
-
-  //
-  // Членство в Spaces
-  //
-
-  // Создать приглашение для пользователя в space
-  rpc CreateSpaceInvitation(CreateSpaceInvitationRequest) returns(CreateSpaceInvitationResponse) {}
-
-  // Получить данные о приглашении
-  rpc GetSpaceInvitation(GetSpaceInvitationRequest) returns(GetSpaceInvitationResponse) {}
-
-  // Обновить данные о приглашении
-  rpc UpdateSpaceInvitation(UpdateSpaceInvitationRequest) returns(google.protobuf.Empty) {}
-
-  // Принять приглашение
-  rpc AcceptSpaceInvitation(AcceptSpaceInvitationRequest) returns(google.protobuf.Empty) {}
-
-  // Получить список приглашений для пространства
-  rpc FindSpaceInvitations(FindSpaceInvitationsRequest) returns(FindSpaceInvitationsResponse) {}
-
-  // Удалить приглашение
-  rpc DeleteSpaceInvitation(DeleteSpaceInvitationRequest) returns(google.protobuf.Empty) {}
-
-  // Обновляет участие пользователя в пространстве
-  rpc SetSpaceMembership(SetSpaceMembershipRequest) returns(google.protobuf.Empty) {}
-
-  // Удаляет участия пользователя в пространстве
-  rpc DeleteSpaceMembership(DeleteSpaceMembershipRequest) returns(google.protobuf.Empty) {}
-
-  // Поиск членства пользователей в пространствах
-  // Доступы:
-  // - System - может получать что хочет
-  // - Owner, Admin - может запрашивать что хочет в своих организациях (даже если сам не является членом пространства)
-  // - стальные - может запрашивать что хочет в пространствах в которых является членом (не только свои но и других пользователей в пространстве)
-  // Использование параметров
-  // - Для поиска членств для всех пространств организации: organization_id
-  // - Для поиска членов пространства: space_id
-  // - Для поиска пространств, где пользователь является членом: user_id
-  // - Для поиска пространств, где пользователю соответствует данная роль - user_id, space_role
-  // Сортировка по умолчанию по "organization_id", "space_id", "user_id"
-  rpc FindSpaceMemberships(FindSpaceMembershipsRequest) returns(FindSpaceMembershipsResponse) {}
-}
diff --git a/proto/perxis/common/common.proto b/proto/perxis/common/common.proto
index 181c57b343a42bcbc5fece655a7979eb76506be9..0744d5892b1a53600e7256c082ef72fbe77a4233 100644
--- a/proto/perxis/common/common.proto
+++ b/proto/perxis/common/common.proto
@@ -4,158 +4,44 @@ option go_package = "github.com/perxteam/perxis/proto/common;common";
 
 package common;
 
-import "google/protobuf/timestamp.proto";
 import "google/protobuf/struct.proto";
-import "google/protobuf/wrappers.proto";
-
-// Пользователь
-message User {
-  string id = 1; // Уникальный идентификатор, присваивается системой
-  string name = 2; // Уникальное имя, login
-  repeated string identities = 3; // Authorization subjects (JWT sub claims)
-  string display_name = 4; // Имя пользователя для отображения
-  string email = 5; // Email, указывается пользователем
-  bool email_verified = 6; // Флаг что email проверен
-  string avatar_uri = 7; // URI изображения пользователя
-  google.protobuf.BoolValue system = 10; // Системный пользователь (может получать доступ к расширенному API)
-}
-
-// Организация
-message Organization {
-  string id = 1; // Идентификатор организации
-  string name = 2; // Имя организации
-  string description = 3; // Описание организации
-  string logo_uri = 5; // URI изображения логотипа
-}
-
-// Роль пользователя в организации
-enum Role {
-  NOT_MEMBER = 0; // Не является членом команды - значение по умолчанию
-  MEMBER = 1; // Входит в организацию и команды, может получать доступ к Space в соответствии с политикой доступа
-  OWNER = 2; // admin + может приглашать пользователей на роль owner
-  ADMIN = 3; // Входит в организацию, видит все Space, может задавать политики доступа, может приглашать пользователей на роли member, admin
-}
-
-message OrganizationMembership {
-  string id = 1;
-  string organization_id = 2;
-  string user_id = 3;
-  Role role = 4;
-}
-
-// Приглашение пользователя для членства в пространстве.
-// Для принятия приглашения пользователь должен быть авторизован.
-message SpaceInvitation {
-  string id = 1; // Идентификатор приглашения
-  string email = 2; // Почтовый адрес пользователя
-  string organization_id = 3; // Идентификатор организации которой принадлежит пространство
-  string space_id = 4; // Идентификатор пространства в которую приглашается пользователь
-  string created_by = 5; // Идентификатор пользователя отправивший приглашение
-  string space_role = 6; // Роль для пользователя в пространстве
-  bool sent = 7; // Флаг отправки приглашения
-  bool pending = 8; // Флаг принятия приглашения
-  google.protobuf.Timestamp created_at = 9; // Время создания приглашения
-  google.protobuf.Timestamp sent_at = 10; // Время отправки приглашения
-  google.protobuf.Timestamp valid_until = 11; // Время до которого приглашение действует
-}
-
-
-// Space
-message Space {
-  string id = 1;
-  string organization_id = 2;
-  string name = 3;
-  string description = 4;
-  string host = 5;
-  string api_url = 6;
-}
-
-// Collection
-message Collection  {
-  string id = 1;
-  string space_id = 2;
-  string environment_id = 3;
-  string name = 4;
-  string schema = 5;
-  google.protobuf.BoolValue single = 6;
-  google.protobuf.BoolValue hidden = 7;
-  google.protobuf.BoolValue system = 8;
-}
 
-// Item
-message Item {
-  string id = 1;
-  string space_id = 2;
-  string environment_id = 3;
-  string collection_id = 4;
-  string status = 5;
-  google.protobuf.Timestamp created_at = 6;
-  string created_by = 7;
-  google.protobuf.Struct data = 8;
-  map<string, google.protobuf.Struct> translations = 9;
-  string revision_id = 10;
-  google.protobuf.Timestamp published_at = 11;
-  string published_by = 12;
-  google.protobuf.Timestamp archived_at = 13;
-  string archived_by = 14;
-}
-
-message FindItemsOptions {
-  string space_id = 1;
-  string environment_id = 2;
-  string collection_id = 3;
-  repeated Filter filters = 4;
-  int32 page_num = 8;
-  int32 page_size = 9;
-  repeated string sort = 10;
-}
-
-// Environment
-message Environment {
-  string id = 1;
-  string space_id = 2;
-  string description = 3;
-  enum State {
-    UNKNOWN = 0;
-    PENDING = 1;
-    READY = 2;
-    FAILED = 3;
+message Error {
+  message BadRequest {
+    message FieldViolation {
+      string field = 1;
+      string description = 2;
+    }
+    repeated FieldViolation errors = 1;
   }
-  State state = 4;
-  repeated string aliases = 5;
-}
 
-// Locale
-message Locale {
-  string id = 1;
-  string name = 2;
-  string space_id = 3;
-}
+  message Help {
+    message Link {
+      string description =1;
+      string url = 2;
+    }
+    repeated Link links = 1;
+  }
 
-message SpaceRole {
-  string id = 1;
-  string name = 2;
-  string space_id = 3;
-  string description = 5;
-  repeated ContentRule content_rules = 6;
-}
+  message DebugInfo {
+    repeated string stack_trace = 1;
+    string detail = 2;
+  }
 
-message ContentRule {
-  string id = 1;
-  string collection_id = 2;
-  ItemAccess create = 5;
-  ItemAccess read = 6;
-  ItemAccess update = 7;
-  ItemAccess delete = 8;
-  repeated string fields_read_blacklist = 10;
-  repeated string fields_write_blacklist = 11;
-}
+  message LocalizedMessage {
+    string locale = 1;
+    string message = 2;
+  }
 
-enum ItemAccess {
-  NONE = 0;
-//  ANY = 1;
-//  MINE = 2;
-//  ROLE = 3;
+  uint64 error_code = 1; // Код ошибки
+  string error_id = 2; // ID конкретного инцидента, ID уникальна для каждого случая.
+  string reason = 3; // ???
+  string domain = 4; // Сервис,Пакет к которому относится ошибка
+  map<string,string> metadata = 9; // Мета-информация
+  BadRequest bad_request = 10; // Ошибка запроса
+  DebugInfo debug_info = 11; // Отладочная информация
+  Help help = 100; // Пользовательская информации и инструкции
+  repeated LocalizedMessage localized_messages = 200; // Перевод сообщения об ошибке
 }
 
 message Filter {
@@ -164,14 +50,6 @@ message Filter {
   google.protobuf.Value value = 3;
 }
 
-message File {
-  string id = 1;        // Уникальный идентификатор файла в хранилище
-  string name = 2;      // Имя файла
-  int32 size = 3;       // Размер файла
-  string mime_type = 4; // Mime-type файла
-  string url = 5;       // Адрес для загрузки файла
-}
-
 message FindOptions {
   repeated string sort = 1;
   int32 page_num = 2;
@@ -197,8 +75,9 @@ message Rule {
   string collection_id = 1;
   repeated Action actions = 2;
   Access access = 3;
-  repeated string fields = 6;
-  bool fields_allowed = 7;
+  repeated string hidden_fields = 5;
+  repeated string readonly_fields = 6;
+  repeated string writeonly_fields = 7;
 }
 
 message Collaborator {
diff --git a/proto/perxis/contentcontrol/contentcontrol.proto b/proto/perxis/contentcontrol/contentcontrol.proto
deleted file mode 100644
index a5f24a8160775f0cad8a04d784ac93ccdf9547eb..0000000000000000000000000000000000000000
--- a/proto/perxis/contentcontrol/contentcontrol.proto
+++ /dev/null
@@ -1,59 +0,0 @@
-syntax = "proto3";
-
-option go_package = "github.com/perxteam/perxis/proto/contentcontrol;contentcontrol";
-
-package contentcontrol;
-
-import "google/protobuf/empty.proto";
-import "perxis/common/common.proto";
-
-message Host{
-  string name = 1;
-}
-
-message ListSpacesOptions{
-  string host = 1;
-}
-
-message CreateSpaceRequest{
-  common.Space space = 1;
-}
-message CreateSpaceResponse{
-  common.Space space = 1;
-}
-
-message DeleteSpaceRequest{
-  string id = 1;
-}
-
-message GetSpaceRequest{
-  string id = 1;
-}
-message GetSpaceResponse{
-  common.Space space = 1;
-}
-
-message ListSpacesResponse{
-  repeated common.Space spaces = 1;
-}
-
-message ListSpacesRequest{
-    ListSpacesOptions opts = 1;
-}
-
-message CanCreateSpaceRequest{
-  common.Space space = 1;
-}
-
-message CanCreateSpaceResponse{
-  Host host = 1;
-}
-
-service ContentControl {
-  // Space
-  rpc CanCreateSpace(CanCreateSpaceRequest) returns(CanCreateSpaceResponse) {}
-  rpc CreateSpace(CreateSpaceRequest) returns(CreateSpaceResponse) {}
-  rpc DeleteSpace(DeleteSpaceRequest) returns(google.protobuf.Empty) {}
-  rpc GetSpace(GetSpaceRequest) returns(GetSpaceResponse) {}
-  rpc ListSpaces(ListSpacesRequest) returns(ListSpacesResponse) {}
-}
diff --git a/proto/perxis/contentdelivery/contentdelivery.proto b/proto/perxis/contentdelivery/contentdelivery.proto
deleted file mode 100644
index 4f3822cd63aa1c9c5ddfb6d26102047a6b2e7994..0000000000000000000000000000000000000000
--- a/proto/perxis/contentdelivery/contentdelivery.proto
+++ /dev/null
@@ -1,88 +0,0 @@
-syntax = "proto3";
-
-import "perxis/common/common.proto";
-
-option go_package = "github.com/perxteam/perxis/proto/contentdelivery;contentdelivery";
-
-package contentdelivery;
-
-message GetSpaceRequest{
-  string id = 1;
-}
-
-message GetSpaceResponse{
-  common.Space space = 1;
-}
-
-message ListLocalesRequest{
-  string space_id = 1;
-}
-message ListLocalesResponse{
-  repeated common.Locale locales = 1;
-}
-
-message GetEnvironmentRequest{
-  string id = 1;
-  string space_id = 2;
-}
-
-message GetEnvironmentResponse{
-  common.Environment environment = 1;
-}
-
-message GetCollectionRequest {
-  string id = 1;
-  string environment_id = 2;
-  string space_id = 3;
-}
-
-message GetCollectionResponse {
-  common.Collection collection = 1;
-}
-
-message ListCollectionsRequest {
-  string environment_id = 1;
-  string space_id = 2;
-}
-
-message ListCollectionsResponse {
-  repeated common.Collection collections = 1;
-}
-
-message GetItemRequest {
-  string id = 1;
-  string collection_id = 2;
-  string environment_id = 3;
-  string space_id = 4;
-  string locale = 5;
-}
-
-message GetItemResponse {
-  common.Item item = 1;
-}
-
-message FindItemsRequest {
-  string space_id = 1;
-  string environment_id = 2;
-  string collection_id = 3;
-  repeated common.Filter data = 4;
-  string locale = 5;
-  int32 page_num = 8;
-  int32 page_size = 9;
-  repeated string sort = 10;
-}
-message FindItemsResponse{
-  repeated common.Item items = 1;
-  int32 total =2;
-}
-
-service ContentDelivery {
-  rpc GetSpace(GetSpaceRequest) returns(GetSpaceResponse) {}
-  rpc ListLocales(ListLocalesRequest) returns(ListLocalesResponse) {}
-  rpc GetEnvironment(GetEnvironmentRequest) returns(GetEnvironmentResponse) {}
-  rpc GetCollection(GetCollectionRequest) returns(GetCollectionResponse) {}
-  rpc ListCollections(ListCollectionsRequest) returns(ListCollectionsResponse) {}
-  rpc GetItem(GetItemRequest) returns(GetItemResponse) {}
-  rpc FindItems(FindItemsRequest) returns(FindItemsResponse) {}
-}
-
diff --git a/proto/perxis/contentmanagement/contentmanagment.proto b/proto/perxis/contentmanagement/contentmanagment.proto
deleted file mode 100644
index 7b4641392a1ec99ce7597f7484c9b7ebf3e50ab9..0000000000000000000000000000000000000000
--- a/proto/perxis/contentmanagement/contentmanagment.proto
+++ /dev/null
@@ -1,323 +0,0 @@
-syntax = "proto3";
-
-import "google/protobuf/empty.proto";
-import "perxis/common/common.proto";
-
-option go_package = "github.com/perxteam/perxis/proto/contentmanagement;contentmanagement";
-
-package contentmanagement;
-
-// Запросы и ответы
-
-// Collection
-message CreateCollectionRequest {
-  common.Collection collection = 1;
-}
-message CreateCollectionResponse {
-  common.Collection collection = 1;
-}
-
-message GetCollectionRequest {
-  string id = 1;
-  string environment_id = 2;
-  string space_id = 3;
-}
-message GetCollectionResponse {
-  common.Collection collection = 1;
-}
-
-message ListCollectionsRequest {
-  string environment_id = 1;
-  string space_id = 2;
-}
-message ListCollectionsResponse {
-  repeated common.Collection collections = 1;
-}
-
-message UpdateCollectionRequest {
-  string id = 1;
-  string environment_id = 2;
-  string space_id = 3;
-  common.Collection collection = 4;
-}
-message UpdateCollectionResponse {}
-
-message DeleteCollectionRequest {
-  string id = 1;
-  string environment_id = 2;
-  string space_id = 3;
-}
-message DeleteCollectionResponse {}
-
-// Item
-message CreateItemRequest {
-  common.Item item = 1;
-}
-message CreateItemResponse {
-  common.Item item = 1;
-}
-
-message GetItemRequest {
-  string id = 1;
-  string environment_id = 2;
-  string space_id = 3;
-  string collection_id = 4;
-}
-message GetItemResponse {
-  common.Item item = 1;
-}
-
-message UpdateItemRequest {
-  string environment_id = 1;
-  string space_id = 2;
-  string collection_id = 3;
-  common.Item item = 4;
-}
-message UpdateItemResponse {
-  common.Item item = 1;
-}
-
-message DeleteItemRequest {
-  string id = 1;
-  string environment_id = 2;
-  string space_id = 3;
-  string collection_id = 4;
-}
-message DeleteItemResponse {}
-
-message PublishItemRequest {
-  string id = 1;
-  string environment_id = 2;
-  string space_id = 3;
-  string collection_id = 4;
-}
-message PublishItemResponse {}
-
-message UnpublishItemRequest {
-  string id = 1;
-  string environment_id = 2;
-  string space_id = 3;
-  string collection_id = 4;
-}
-message UnpublishItemResponse {}
-
-message ArchiveItemRequest {
-  string id = 1;
-  string environment_id = 2;
-  string space_id = 3;
-  string collection_id = 4;
-}
-message ArchiveItemResponse {}
-
-message UnarchiveItemRequest {
-  string id = 1;
-  string environment_id = 2;
-  string space_id = 3;
-  string collection_id = 4;
-}
-message UnarchiveItemResponse {}
-
-message ListItemRevisionsRequest {
-  string id = 1;
-  string environment_id = 2;
-  string space_id = 3;
-  string collection_id = 4;
-}
-message ListItemRevisionsResponse {
-  repeated common.Item items = 1;
-}
-
-message GetItemRevisionRequest {
-  string id = 1;
-  string environment_id = 2;
-  string space_id = 3;
-  string collection_id = 4;
-  string revision_id = 5;
-}
-message GetItemRevisionResponse {
-  common.Item item = 1;
-}
-
-message FindItemsRequest {
-  string space_id = 1;
-  string environment_id = 2;
-  string collection_id = 3;
-  repeated common.Filter data = 4;
-  int32 page_num = 8;
-  int32 page_size = 9;
-  repeated string sort = 10;
-}
-message FindItemsResponse{
-  repeated common.Item items = 1;
-  int32 total = 2;
-}
-
-message FindArchivedItemsRequest {
-  string space_id = 1;
-  string environment_id = 2;
-  string collection_id = 3;
-  repeated common.Filter data = 4;
-  int32 page_num = 8;
-  int32 page_size = 9;
-  repeated string sort = 10;
-}
-message FindArchivedItemsResponse{
-  repeated common.Item items = 1;
-  int32 total = 2;
-}
-
-// Space
-message ContentCreateSpaceRequest{
-  common.Space space = 1;
-}
-message ContentCreateSpaceResponse{
-  common.Space space = 1;
-}
-
-message ContentDeleteSpaceRequest{
-  string id = 1;
-}
-
-message ContentGetSpaceRequest{
-  string id = 1;
-}
-message ContentGetSpaceResponse{
-  common.Space space = 1;
-}
-
-message ListSpacesRequest{}
-message ListSpacesResponse{
-  repeated common.Space spaces = 1;
-}
-
-// Locale
-message CreateLocaleRequest{
-  common.Locale locale = 1;
-}
-message CreateLocaleResponse{
-  common.Locale locale = 1;
-}
-
-message ListLocalesRequest{
-  string space_id = 1;
-}
-message ListLocalesResponse{
-  repeated common.Locale locales = 1;
-}
-
-message DeleteLocaleRequest{
-  string id = 1;
-  string space_id = 2;
-}
-message DeleteLocaleResponse{}
-
-// Environment
-message CreateEnvironmentRequest{
-  string base_environment_id = 1;
-  common.Environment environment = 2;
-}
-message CreateEnvironmentResponse{
-  common.Environment environment = 1;
-}
-
-message GetEnvironmentRequest{
-  string id = 1;
-  string space_id = 2;
-}
-message GetEnvironmentResponse{
-  common.Environment environment = 1;
-}
-
-message ListEnvironmentsRequest{
-  string space_id = 1;
-}
-message ListEnvironmentsResponse{
-  repeated common.Environment environments = 1;
-}
-
-message UpdateEnvironmentRequest{
-  string id = 1;
-  string space_id = 2;
-  common.Environment environment = 3;
-}
-message UpdateEnvironmentResponse{}
-
-message DeleteEnvironmentRequest{
-  string id = 1;
-  string space_id = 2;
-}
-message DeleteEnvironmentResponse{}
-
-message SetEnvironmentAliasRequest{
-  string id = 1;
-  string space_id = 2;
-  string alias = 3;
-}
-message SetEnvironmentAliasResponse{}
-
-message RemoveEnvironmentAliasRequest{
-  string id = 1;
-  string space_id = 2;
-  string alias = 3;
-}
-message RemoveEnvironmentAliasResponse{}
-
-// Locale
-message CreateSpaceRoleRequest{
-  common.SpaceRole space_role = 1;
-}
-
-message UpdateSpaceRoleRequest{
-  common.SpaceRole space_role = 1;
-}
-
-message ListSpaceRolesRequest{
-  string space_id = 1;
-}
-message ListSpaceRolesResponse{
-  repeated common.SpaceRole space_roles = 1;
-}
-
-message DeleteSpaceRoleRequest{
-  string id = 1;
-  string space_id = 2;
-}
-
-service ContentManagement {
-  // Collection
-  rpc CreateCollection(CreateCollectionRequest) returns(CreateCollectionResponse) {}
-  rpc GetCollection(GetCollectionRequest) returns(GetCollectionResponse) {}
-  rpc ListCollections(ListCollectionsRequest) returns(ListCollectionsResponse) {}
-  rpc UpdateCollection(UpdateCollectionRequest) returns(google.protobuf.Empty) {}
-  rpc DeleteCollection(DeleteCollectionRequest) returns(google.protobuf.Empty) {}
-  // Item
-  rpc CreateItem(CreateItemRequest) returns(CreateItemResponse) {}
-  rpc GetItem(GetItemRequest) returns(GetItemResponse) {}
-  rpc UpdateItem(UpdateItemRequest) returns(UpdateItemResponse) {}
-  rpc DeleteItem(DeleteItemRequest) returns(google.protobuf.Empty) {}
-  rpc PublishItem(PublishItemRequest) returns(google.protobuf.Empty) {}
-  rpc UnpublishItem(UnpublishItemRequest) returns(google.protobuf.Empty) {}
-  rpc ArchiveItem(ArchiveItemRequest) returns(google.protobuf.Empty) {}
-  rpc UnarchiveItem(UnarchiveItemRequest) returns(google.protobuf.Empty) {}
-  rpc ListItemRevisions(ListItemRevisionsRequest) returns(ListItemRevisionsResponse) {}
-  rpc GetItemRevision(GetItemRevisionRequest) returns(GetItemRevisionResponse) {}
-  rpc FindItems(FindItemsRequest) returns(FindItemsResponse) {}
-  rpc FindArchivedItems(FindArchivedItemsRequest) returns(FindArchivedItemsResponse) {}
-  // Locale
-  rpc CreateLocale(CreateLocaleRequest) returns(CreateLocaleResponse) {}
-  rpc ListLocales(ListLocalesRequest) returns(ListLocalesResponse) {}
-  rpc DeleteLocale(DeleteLocaleRequest) returns(google.protobuf.Empty) {}
-  // Environment
-  rpc CreateEnvironment(CreateEnvironmentRequest) returns(CreateEnvironmentResponse) {}
-  rpc GetEnvironment(GetEnvironmentRequest) returns(GetEnvironmentResponse) {}
-  rpc ListEnvironments(ListEnvironmentsRequest) returns(ListEnvironmentsResponse) {}
-  rpc UpdateEnvironment(UpdateEnvironmentRequest) returns(google.protobuf.Empty) {}
-  rpc DeleteEnvironment(DeleteEnvironmentRequest) returns(google.protobuf.Empty) {}
-  rpc SetEnvironmentAlias(SetEnvironmentAliasRequest) returns(google.protobuf.Empty) {}
-  rpc RemoveEnvironmentAlias(RemoveEnvironmentAliasRequest) returns(google.protobuf.Empty) {}
-  // Space Role
-  rpc CreateSpaceRole(CreateSpaceRoleRequest) returns(google.protobuf.Empty) {}
-  rpc UpdateSpaceRole(UpdateSpaceRoleRequest) returns(google.protobuf.Empty) {}
-  rpc ListSpaceRoles(ListSpaceRolesRequest) returns(ListSpaceRolesResponse) {}
-  rpc DeleteSpaceRole(DeleteSpaceRoleRequest) returns(google.protobuf.Empty) {}
-}
diff --git a/proto/perxis/file/file.proto b/proto/perxis/file/file.proto
index 6df938f1e4b609c8bba56778f792bfed3ed787fe..98efa87abbbce362cc39ac9f4a9346036e34bba2 100644
--- a/proto/perxis/file/file.proto
+++ b/proto/perxis/file/file.proto
@@ -1,21 +1,34 @@
 syntax = "proto3";
 
 import "google/protobuf/empty.proto";
-import "perxis/common/common.proto";
 
 option go_package = "github.com/perxteam/perxis/proto/file;file";
 
 package file;
 
 // Сущности
-message Upload {
-  common.File file = 1;
+
+message File {
+  string id = 1;        // Уникальный идентификатор файла в хранилище
+  string name = 2;      // Имя файла
+  int32 size = 3;       // Размер файла
+  string mime_type = 4; // Mime-type файла
+  string url = 5;       // Адрес для загрузки файла
+}
+
+message MultipartUpload {
+  File file = 1;
   string upload_id = 2;           // Идентификатор загрузки хранилища
   int32 part_size = 3;           // Размер блока для загрузки
   repeated string part_urls = 4; // Адреса для загрузки пол
   repeated CompletedPart parts = 5;  // Идентификаторы загруженных блоков (S3 ETAGs)
 }
 
+message Upload {
+  File file = 1;
+  string upload_url = 2;   // URL для загрузки файлов
+}
+
 message CompletedPart {
   int32 number = 1;
   string id = 2;
@@ -24,40 +37,47 @@ message CompletedPart {
 // Запросы и ответы
 
 message StartUploadRequest {
-  Upload upload = 1;
+  MultipartUpload upload = 1;
 }
 message StartUploadResponse {
-  Upload upload = 1;
+  MultipartUpload upload = 1;
 }
 
 message CompleteUploadRequest {
-  Upload upload = 1;
+  MultipartUpload upload = 1;
 }
 message CompleteUploadResponse {
-  Upload upload = 1;
+  MultipartUpload upload = 1;
 }
 
 message AbortUploadRequest {
-  Upload upload = 1;
+  MultipartUpload upload = 1;
 }
 message AbortUploadResponse {}
 
 message MoveUploadRequest {
-  Upload upload = 1;
+  MultipartUpload upload = 1;
 }
 message MoveUploadResponse {
-  common.File file = 1;
+  File file = 1;
+}
+
+message UploadRequest {
+  File file = 1;
+}
+message UploadResponse {
+  Upload upload = 1;
 }
 
 message GetFileRequest {
   string id = 1;
 }
 message GetFileResponse {
-  common.File file = 1;
+  File file = 1;
 }
 
 message DeleteFileRequest {
-  common.File file = 1;
+  File file = 1;
 }
 message DeleteFileResponse {}
 
@@ -76,6 +96,10 @@ service FileService {
   // После перемещение загрузки хранилище выдает новый идентификатор постоянного файла
   rpc MoveUpload(MoveUploadRequest) returns(MoveUploadResponse) {}
 
+  // Upload - инициация загрузки файла в хранилище. Возвращает объект, содержащий подписанный URL.
+  // Завершение загрузки файла осуществляется выполнением POST-запроса
+  rpc Upload(UploadRequest) returns(UploadResponse) {}
+
   // GetFile - получить информацию о файле (ссылку) по ID
   rpc GetFile(GetFileRequest) returns(GetFileResponse) {}
 
diff --git a/proto/perxis/image/image.proto b/proto/perxis/image/image.proto
new file mode 100644
index 0000000000000000000000000000000000000000..13d22d6ed9306c4123befbf1fe76742f951999fb
--- /dev/null
+++ b/proto/perxis/image/image.proto
@@ -0,0 +1,40 @@
+syntax = "proto3";
+
+import "perxis/file/file.proto";
+
+option go_package = "github.com/perxteam/perxis/proto/image;image";
+
+package image;
+
+message Param {
+  string op = 1;
+  repeated string value = 2;
+}
+
+message GetRequest {
+
+  message GetOptions {
+    repeated Param params = 1;
+  }
+
+  file.File source = 1;
+  GetOptions opts = 2;
+}
+
+message GetResponse {
+  file.File result = 1;
+}
+
+// ImageService - сервис для обработки изображений
+service ImageService {
+
+  // Get - к файлу, идентификатор которого передан в запросе, применяются параметры.
+  // Может быть передано несколько параметров, порядок учитывается при обработке
+  // Допустимые операции:
+  //  - crop (ширина, высота)
+  //  - fit (ширина, высота)
+  //  - resize (ширина, высота)
+  //  - format (один из форматов [ png, jpeg, jpg, gif ]
+  // Возвращает объект File с заполненным полем File.URL
+  rpc Get(GetRequest) returns(GetResponse) {}
+}
diff --git a/proto/perxis/items/items.proto b/proto/perxis/items/items.proto
index c62174125702e8b344169a3faae4c07f1fce8523..88f188c7c7e65f853a9fd070dd1e0866f6915e09 100644
--- a/proto/perxis/items/items.proto
+++ b/proto/perxis/items/items.proto
@@ -31,6 +31,8 @@ message Item {
   enum State {
     DRAFT = 0;
     PUBLISHED = 1;
+    CHANGED = 2;
+    ARCHIVED = 3;
   }
   string id = 1;
   string space_id = 2;
diff --git a/proto/perxis/roles/roles.proto b/proto/perxis/roles/roles.proto
index 7993c6749a53c340f1f7322399dbfd9f1ea6a790..28c454761c8cd8077396cecc063dda75a70bfcee 100644
--- a/proto/perxis/roles/roles.proto
+++ b/proto/perxis/roles/roles.proto
@@ -10,9 +10,8 @@ package content.roles;
 message Role {
   string id = 1;
   string space_id = 2;
-  string name = 3;
-  string description = 4;
-  repeated common.Rule rules = 5;
+  string description = 3;
+  repeated common.Rule rules = 4;
 }
 
 message CreateRequest {
diff --git a/requirements.txt b/requirements.txt
index 79380a6b5da062d0d8b3a5dddba7a3bb3cf2611c..3d4f799ef8bcb08f9dacbaa159009e6213cd2fc0 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,7 +1,7 @@
 certifi==2020.12.5
 chardet==4.0.0
 grpcio==1.38.0
-idna==3.1
+idna==2.10
 oauthlib==3.1.0
 protobuf==3.17.1
 PyJWT==2.1.0
diff --git a/setup.py b/setup.py
index c54a748a41905522cb580ad5c56d2fd31c6690ad..ce43ac9e63a7d2e99a2d2e4619e95377528bb1dd 100644
--- a/setup.py
+++ b/setup.py
@@ -14,7 +14,7 @@ def load_requirements():
 
 setup(
     name='perxis',
-    version='0.0.2',
+    version='0.0.3',
     description='Perxis python client',
     long_description=long_description,
     long_description_content_type='text/markdown',