diff --git a/clients/clients/clients.d.ts b/clients/clients/clients.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5739d81f8fe50953e71e0dd32a1423f72a9ddbf0
--- /dev/null
+++ b/clients/clients/clients.d.ts
@@ -0,0 +1,282 @@
+import { Empty } from "../google/protobuf/empty";
+import * as _m0 from "protobufjs/minimal";
+export interface Client {
+    /** Внутренний идентификатор клиента внутри системы */
+    id: string;
+    /** Идентификатор пространства */
+    spaceId: string;
+    /** Имя приложения (обязательное поле) */
+    name: string;
+    /** Описание клиента, назначение */
+    description: string;
+    /** Приложение отключено и не может авторизоваться */
+    disabled?: boolean | undefined;
+    roleId: string;
+    oauth?: Client_OAuth;
+    tls?: Client_TLS;
+    apiKey?: Client_APIKey;
+}
+export interface Client_OAuth {
+    /** Идентификатор клиента выданные IdP сервером, используется для идентификации клиента */
+    clientId: string;
+    /** Сервис который используется для авторизации клиента */
+    authId: string;
+    /** URL для получения/обновления access token клиента (опционально) */
+    tokenUrl: string;
+    /** Секретный Ключ клиента, используется для идентификации клиента (опционально) */
+    clientSecret: string;
+}
+export interface Client_APIKey {
+    key: string;
+    rotate: boolean;
+}
+export interface Client_TLS {
+    subject: string;
+}
+export interface CreateRequest {
+    client?: Client;
+}
+export interface CreateResponse {
+    created?: Client;
+}
+export interface GetRequest {
+    spaceId: string;
+    id: string;
+}
+export interface GetResponse {
+    client?: Client;
+}
+export interface GetByRequest {
+    spaceId: string;
+    oauthClientId: string;
+    tlsSubject: string;
+    apiKey: string;
+}
+export interface GetByResponse {
+    client?: Client;
+}
+export interface UpdateRequest {
+    client?: Client;
+}
+export interface ListRequest {
+    spaceId: string;
+}
+export interface ListResponse {
+    clients: Client[];
+}
+export interface DeleteRequest {
+    spaceId: string;
+    id: string;
+}
+export interface EnableRequest {
+    spaceId: string;
+    id: string;
+    enable: boolean;
+}
+export declare const Client: {
+    encode(message: Client, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Client;
+    fromPartial(object: DeepPartial<Client>): Client;
+};
+export declare const Client_OAuth: {
+    encode(message: Client_OAuth, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Client_OAuth;
+    fromPartial(object: DeepPartial<Client_OAuth>): Client_OAuth;
+};
+export declare const Client_APIKey: {
+    encode(message: Client_APIKey, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Client_APIKey;
+    fromPartial(object: DeepPartial<Client_APIKey>): Client_APIKey;
+};
+export declare const Client_TLS: {
+    encode(message: Client_TLS, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Client_TLS;
+    fromPartial(object: DeepPartial<Client_TLS>): Client_TLS;
+};
+export declare const CreateRequest: {
+    encode(message: CreateRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CreateRequest;
+    fromPartial(object: DeepPartial<CreateRequest>): CreateRequest;
+};
+export declare const CreateResponse: {
+    encode(message: CreateResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CreateResponse;
+    fromPartial(object: DeepPartial<CreateResponse>): CreateResponse;
+};
+export declare const GetRequest: {
+    encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+    fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+};
+export declare const GetResponse: {
+    encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+    fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+};
+export declare const GetByRequest: {
+    encode(message: GetByRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetByRequest;
+    fromPartial(object: DeepPartial<GetByRequest>): GetByRequest;
+};
+export declare const GetByResponse: {
+    encode(message: GetByResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetByResponse;
+    fromPartial(object: DeepPartial<GetByResponse>): GetByResponse;
+};
+export declare const UpdateRequest: {
+    encode(message: UpdateRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateRequest;
+    fromPartial(object: DeepPartial<UpdateRequest>): UpdateRequest;
+};
+export declare const ListRequest: {
+    encode(message: ListRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListRequest;
+    fromPartial(object: DeepPartial<ListRequest>): ListRequest;
+};
+export declare const ListResponse: {
+    encode(message: ListResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListResponse;
+    fromPartial(object: DeepPartial<ListResponse>): ListResponse;
+};
+export declare const DeleteRequest: {
+    encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
+    fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
+};
+export declare const EnableRequest: {
+    encode(message: EnableRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): EnableRequest;
+    fromPartial(object: DeepPartial<EnableRequest>): EnableRequest;
+};
+export declare type ClientsDefinition = typeof ClientsDefinition;
+export declare const ClientsDefinition: {
+    readonly name: "Clients";
+    readonly fullName: "content.clients.Clients";
+    readonly methods: {
+        /** Create - создает клиента (приложение) для работы с API */
+        readonly create: {
+            readonly name: "Create";
+            readonly requestType: {
+                encode(message: CreateRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CreateRequest;
+                fromPartial(object: DeepPartial<CreateRequest>): CreateRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: CreateResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CreateResponse;
+                fromPartial(object: DeepPartial<CreateResponse>): CreateResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** Get - возвращает клиента по id */
+        readonly get: {
+            readonly name: "Get";
+            readonly requestType: {
+                encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+                fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+                fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** GetByClientID - возвращает клиента по clientId системы авторизации */
+        readonly getBy: {
+            readonly name: "GetBy";
+            readonly requestType: {
+                encode(message: GetByRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetByRequest;
+                fromPartial(object: DeepPartial<GetByRequest>): GetByRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetByResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetByResponse;
+                fromPartial(object: DeepPartial<GetByResponse>): GetByResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** Update - обновляет параметры клиента */
+        readonly update: {
+            readonly name: "Update";
+            readonly requestType: {
+                encode(message: UpdateRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): UpdateRequest;
+                fromPartial(object: DeepPartial<UpdateRequest>): UpdateRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** List - возвращает список клиентов созданных в пространстве */
+        readonly list: {
+            readonly name: "List";
+            readonly requestType: {
+                encode(message: ListRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListRequest;
+                fromPartial(object: DeepPartial<ListRequest>): ListRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: ListResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListResponse;
+                fromPartial(object: DeepPartial<ListResponse>): ListResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** Delete - удаляет указанного клиента из пространстве */
+        readonly delete: {
+            readonly name: "Delete";
+            readonly requestType: {
+                encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
+                fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** Enable - активирует/деактивирует клиента. Клиент не сможет обращаться к API платформы */
+        readonly enable: {
+            readonly name: "Enable";
+            readonly requestType: {
+                encode(message: EnableRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): EnableRequest;
+                fromPartial(object: DeepPartial<EnableRequest>): EnableRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+    };
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=clients.d.ts.map
\ No newline at end of file
diff --git a/clients/clients/clients.d.ts.map b/clients/clients/clients.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..141b46024fa3d604bbb18d345af1f849600e1199
--- /dev/null
+++ b/clients/clients/clients.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["clients.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/clients/clients.js b/clients/clients/clients.js
new file mode 100644
index 0000000000000000000000000000000000000000..079a55b8918b21f908a7830a78dd37f40769b724
--- /dev/null
+++ b/clients/clients/clients.js
@@ -0,0 +1,771 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ClientsDefinition = exports.EnableRequest = exports.DeleteRequest = exports.ListResponse = exports.ListRequest = exports.UpdateRequest = exports.GetByResponse = exports.GetByRequest = exports.GetResponse = exports.GetRequest = exports.CreateResponse = exports.CreateRequest = exports.Client_TLS = exports.Client_APIKey = exports.Client_OAuth = exports.Client = void 0;
+/* eslint-disable */
+const empty_1 = require("../google/protobuf/empty");
+const _m0 = __importStar(require("protobufjs/minimal"));
+function createBaseClient() {
+    return {
+        id: "",
+        spaceId: "",
+        name: "",
+        description: "",
+        disabled: undefined,
+        roleId: "",
+        oauth: undefined,
+        tls: undefined,
+        apiKey: undefined,
+    };
+}
+exports.Client = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.id !== "") {
+            writer.uint32(10).string(message.id);
+        }
+        if (message.spaceId !== "") {
+            writer.uint32(18).string(message.spaceId);
+        }
+        if (message.name !== "") {
+            writer.uint32(26).string(message.name);
+        }
+        if (message.description !== "") {
+            writer.uint32(50).string(message.description);
+        }
+        if (message.disabled !== undefined) {
+            writer.uint32(56).bool(message.disabled);
+        }
+        if (message.roleId !== "") {
+            writer.uint32(66).string(message.roleId);
+        }
+        if (message.oauth !== undefined) {
+            exports.Client_OAuth.encode(message.oauth, writer.uint32(82).fork()).ldelim();
+        }
+        if (message.tls !== undefined) {
+            exports.Client_TLS.encode(message.tls, writer.uint32(90).fork()).ldelim();
+        }
+        if (message.apiKey !== undefined) {
+            exports.Client_APIKey.encode(message.apiKey, writer.uint32(98).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseClient();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.id = reader.string();
+                    break;
+                case 2:
+                    message.spaceId = reader.string();
+                    break;
+                case 3:
+                    message.name = reader.string();
+                    break;
+                case 6:
+                    message.description = reader.string();
+                    break;
+                case 7:
+                    message.disabled = reader.bool();
+                    break;
+                case 8:
+                    message.roleId = reader.string();
+                    break;
+                case 10:
+                    message.oauth = exports.Client_OAuth.decode(reader, reader.uint32());
+                    break;
+                case 11:
+                    message.tls = exports.Client_TLS.decode(reader, reader.uint32());
+                    break;
+                case 12:
+                    message.apiKey = exports.Client_APIKey.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e, _f;
+        const message = createBaseClient();
+        message.id = (_a = object.id) !== null && _a !== void 0 ? _a : "";
+        message.spaceId = (_b = object.spaceId) !== null && _b !== void 0 ? _b : "";
+        message.name = (_c = object.name) !== null && _c !== void 0 ? _c : "";
+        message.description = (_d = object.description) !== null && _d !== void 0 ? _d : "";
+        message.disabled = (_e = object.disabled) !== null && _e !== void 0 ? _e : undefined;
+        message.roleId = (_f = object.roleId) !== null && _f !== void 0 ? _f : "";
+        message.oauth =
+            object.oauth !== undefined && object.oauth !== null
+                ? exports.Client_OAuth.fromPartial(object.oauth)
+                : undefined;
+        message.tls =
+            object.tls !== undefined && object.tls !== null
+                ? exports.Client_TLS.fromPartial(object.tls)
+                : undefined;
+        message.apiKey =
+            object.apiKey !== undefined && object.apiKey !== null
+                ? exports.Client_APIKey.fromPartial(object.apiKey)
+                : undefined;
+        return message;
+    },
+};
+function createBaseClient_OAuth() {
+    return { clientId: "", authId: "", tokenUrl: "", clientSecret: "" };
+}
+exports.Client_OAuth = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.clientId !== "") {
+            writer.uint32(34).string(message.clientId);
+        }
+        if (message.authId !== "") {
+            writer.uint32(42).string(message.authId);
+        }
+        if (message.tokenUrl !== "") {
+            writer.uint32(82).string(message.tokenUrl);
+        }
+        if (message.clientSecret !== "") {
+            writer.uint32(90).string(message.clientSecret);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseClient_OAuth();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 4:
+                    message.clientId = reader.string();
+                    break;
+                case 5:
+                    message.authId = reader.string();
+                    break;
+                case 10:
+                    message.tokenUrl = reader.string();
+                    break;
+                case 11:
+                    message.clientSecret = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d;
+        const message = createBaseClient_OAuth();
+        message.clientId = (_a = object.clientId) !== null && _a !== void 0 ? _a : "";
+        message.authId = (_b = object.authId) !== null && _b !== void 0 ? _b : "";
+        message.tokenUrl = (_c = object.tokenUrl) !== null && _c !== void 0 ? _c : "";
+        message.clientSecret = (_d = object.clientSecret) !== null && _d !== void 0 ? _d : "";
+        return message;
+    },
+};
+function createBaseClient_APIKey() {
+    return { key: "", rotate: false };
+}
+exports.Client_APIKey = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.key !== "") {
+            writer.uint32(10).string(message.key);
+        }
+        if (message.rotate === true) {
+            writer.uint32(16).bool(message.rotate);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseClient_APIKey();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.key = reader.string();
+                    break;
+                case 2:
+                    message.rotate = reader.bool();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseClient_APIKey();
+        message.key = (_a = object.key) !== null && _a !== void 0 ? _a : "";
+        message.rotate = (_b = object.rotate) !== null && _b !== void 0 ? _b : false;
+        return message;
+    },
+};
+function createBaseClient_TLS() {
+    return { subject: "" };
+}
+exports.Client_TLS = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.subject !== "") {
+            writer.uint32(10).string(message.subject);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseClient_TLS();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.subject = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseClient_TLS();
+        message.subject = (_a = object.subject) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseCreateRequest() {
+    return { client: undefined };
+}
+exports.CreateRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.client !== undefined) {
+            exports.Client.encode(message.client, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCreateRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.client = exports.Client.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCreateRequest();
+        message.client =
+            object.client !== undefined && object.client !== null
+                ? exports.Client.fromPartial(object.client)
+                : undefined;
+        return message;
+    },
+};
+function createBaseCreateResponse() {
+    return { created: undefined };
+}
+exports.CreateResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.created !== undefined) {
+            exports.Client.encode(message.created, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCreateResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.created = exports.Client.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCreateResponse();
+        message.created =
+            object.created !== undefined && object.created !== null
+                ? exports.Client.fromPartial(object.created)
+                : undefined;
+        return message;
+    },
+};
+function createBaseGetRequest() {
+    return { spaceId: "", id: "" };
+}
+exports.GetRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.id !== "") {
+            writer.uint32(18).string(message.id);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.id = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseGetRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.id = (_b = object.id) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseGetResponse() {
+    return { client: undefined };
+}
+exports.GetResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.client !== undefined) {
+            exports.Client.encode(message.client, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.client = exports.Client.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseGetResponse();
+        message.client =
+            object.client !== undefined && object.client !== null
+                ? exports.Client.fromPartial(object.client)
+                : undefined;
+        return message;
+    },
+};
+function createBaseGetByRequest() {
+    return { spaceId: "", oauthClientId: "", tlsSubject: "", apiKey: "" };
+}
+exports.GetByRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.oauthClientId !== "") {
+            writer.uint32(18).string(message.oauthClientId);
+        }
+        if (message.tlsSubject !== "") {
+            writer.uint32(26).string(message.tlsSubject);
+        }
+        if (message.apiKey !== "") {
+            writer.uint32(34).string(message.apiKey);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetByRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.oauthClientId = reader.string();
+                    break;
+                case 3:
+                    message.tlsSubject = reader.string();
+                    break;
+                case 4:
+                    message.apiKey = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d;
+        const message = createBaseGetByRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.oauthClientId = (_b = object.oauthClientId) !== null && _b !== void 0 ? _b : "";
+        message.tlsSubject = (_c = object.tlsSubject) !== null && _c !== void 0 ? _c : "";
+        message.apiKey = (_d = object.apiKey) !== null && _d !== void 0 ? _d : "";
+        return message;
+    },
+};
+function createBaseGetByResponse() {
+    return { client: undefined };
+}
+exports.GetByResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.client !== undefined) {
+            exports.Client.encode(message.client, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetByResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.client = exports.Client.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseGetByResponse();
+        message.client =
+            object.client !== undefined && object.client !== null
+                ? exports.Client.fromPartial(object.client)
+                : undefined;
+        return message;
+    },
+};
+function createBaseUpdateRequest() {
+    return { client: undefined };
+}
+exports.UpdateRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.client !== undefined) {
+            exports.Client.encode(message.client, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUpdateRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.client = exports.Client.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseUpdateRequest();
+        message.client =
+            object.client !== undefined && object.client !== null
+                ? exports.Client.fromPartial(object.client)
+                : undefined;
+        return message;
+    },
+};
+function createBaseListRequest() {
+    return { spaceId: "" };
+}
+exports.ListRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseListResponse() {
+    return { clients: [] };
+}
+exports.ListResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.clients) {
+            exports.Client.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.clients.push(exports.Client.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListResponse();
+        message.clients = ((_a = object.clients) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Client.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseDeleteRequest() {
+    return { spaceId: "", id: "" };
+}
+exports.DeleteRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.id !== "") {
+            writer.uint32(18).string(message.id);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseDeleteRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.id = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseDeleteRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.id = (_b = object.id) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseEnableRequest() {
+    return { spaceId: "", id: "", enable: false };
+}
+exports.EnableRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.id !== "") {
+            writer.uint32(18).string(message.id);
+        }
+        if (message.enable === true) {
+            writer.uint32(24).bool(message.enable);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseEnableRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.id = reader.string();
+                    break;
+                case 3:
+                    message.enable = reader.bool();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseEnableRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.id = (_b = object.id) !== null && _b !== void 0 ? _b : "";
+        message.enable = (_c = object.enable) !== null && _c !== void 0 ? _c : false;
+        return message;
+    },
+};
+exports.ClientsDefinition = {
+    name: "Clients",
+    fullName: "content.clients.Clients",
+    methods: {
+        /** Create - создает клиента (приложение) для работы с API */
+        create: {
+            name: "Create",
+            requestType: exports.CreateRequest,
+            requestStream: false,
+            responseType: exports.CreateResponse,
+            responseStream: false,
+            options: {},
+        },
+        /** Get - возвращает клиента по id */
+        get: {
+            name: "Get",
+            requestType: exports.GetRequest,
+            requestStream: false,
+            responseType: exports.GetResponse,
+            responseStream: false,
+            options: {},
+        },
+        /** GetByClientID - возвращает клиента по clientId системы авторизации */
+        getBy: {
+            name: "GetBy",
+            requestType: exports.GetByRequest,
+            requestStream: false,
+            responseType: exports.GetByResponse,
+            responseStream: false,
+            options: {},
+        },
+        /** Update - обновляет параметры клиента */
+        update: {
+            name: "Update",
+            requestType: exports.UpdateRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        /** List - возвращает список клиентов созданных в пространстве */
+        list: {
+            name: "List",
+            requestType: exports.ListRequest,
+            requestStream: false,
+            responseType: exports.ListResponse,
+            responseStream: false,
+            options: {},
+        },
+        /** Delete - удаляет указанного клиента из пространстве */
+        delete: {
+            name: "Delete",
+            requestType: exports.DeleteRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        /** Enable - активирует/деактивирует клиента. Клиент не сможет обращаться к API платформы */
+        enable: {
+            name: "Enable",
+            requestType: exports.EnableRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+    },
+};
+//# sourceMappingURL=clients.js.map
\ No newline at end of file
diff --git a/clients/clients/clients.js.map b/clients/clients/clients.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..c2a6c33a7d66d00994dbf188847584e9bd956ff4
--- /dev/null
+++ b/clients/clients/clients.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"clients.js","sourceRoot":"","sources":["clients.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/collaborators/collaborators.d.ts b/clients/collaborators/collaborators.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..de00cf83a175de1594992a0e0129041539a4196b
--- /dev/null
+++ b/clients/collaborators/collaborators.d.ts
@@ -0,0 +1,164 @@
+import { Collaborator } from "../common/common";
+import { Empty } from "../google/protobuf/empty";
+import * as _m0 from "protobufjs/minimal";
+export interface SetRequest {
+    spaceId: string;
+    subject: string;
+    role: string;
+}
+export interface GetRequest {
+    spaceId: string;
+    subject: string;
+}
+export interface GetResponse {
+    role: string;
+}
+export interface RemoveRequest {
+    spaceId: string;
+    subject: string;
+}
+export interface ListCollaboratorsRequest {
+    spaceId: string;
+}
+export interface ListCollaboratorsResponse {
+    collaborators: Collaborator[];
+}
+export interface ListSpacesRequest {
+    subject: string;
+}
+export interface ListSpacesResponse {
+    spaces: Collaborator[];
+}
+export declare const SetRequest: {
+    encode(message: SetRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): SetRequest;
+    fromPartial(object: DeepPartial<SetRequest>): SetRequest;
+};
+export declare const GetRequest: {
+    encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+    fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+};
+export declare const GetResponse: {
+    encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+    fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+};
+export declare const RemoveRequest: {
+    encode(message: RemoveRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): RemoveRequest;
+    fromPartial(object: DeepPartial<RemoveRequest>): RemoveRequest;
+};
+export declare const ListCollaboratorsRequest: {
+    encode(message: ListCollaboratorsRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListCollaboratorsRequest;
+    fromPartial(object: DeepPartial<ListCollaboratorsRequest>): ListCollaboratorsRequest;
+};
+export declare const ListCollaboratorsResponse: {
+    encode(message: ListCollaboratorsResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListCollaboratorsResponse;
+    fromPartial(object: DeepPartial<ListCollaboratorsResponse>): ListCollaboratorsResponse;
+};
+export declare const ListSpacesRequest: {
+    encode(message: ListSpacesRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListSpacesRequest;
+    fromPartial(object: DeepPartial<ListSpacesRequest>): ListSpacesRequest;
+};
+export declare const ListSpacesResponse: {
+    encode(message: ListSpacesResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListSpacesResponse;
+    fromPartial(object: DeepPartial<ListSpacesResponse>): ListSpacesResponse;
+};
+export declare type CollaboratorsDefinition = typeof CollaboratorsDefinition;
+export declare const CollaboratorsDefinition: {
+    readonly name: "Collaborators";
+    readonly fullName: "content.collaborators.Collaborators";
+    readonly methods: {
+        readonly set: {
+            readonly name: "Set";
+            readonly requestType: {
+                encode(message: SetRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): SetRequest;
+                fromPartial(object: DeepPartial<SetRequest>): SetRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly get: {
+            readonly name: "Get";
+            readonly requestType: {
+                encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+                fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+                fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly remove: {
+            readonly name: "Remove";
+            readonly requestType: {
+                encode(message: RemoveRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): RemoveRequest;
+                fromPartial(object: DeepPartial<RemoveRequest>): RemoveRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly listCollaborators: {
+            readonly name: "ListCollaborators";
+            readonly requestType: {
+                encode(message: ListCollaboratorsRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListCollaboratorsRequest;
+                fromPartial(object: DeepPartial<ListCollaboratorsRequest>): ListCollaboratorsRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: ListCollaboratorsResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListCollaboratorsResponse;
+                fromPartial(object: DeepPartial<ListCollaboratorsResponse>): ListCollaboratorsResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly listSpaces: {
+            readonly name: "ListSpaces";
+            readonly requestType: {
+                encode(message: ListSpacesRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListSpacesRequest;
+                fromPartial(object: DeepPartial<ListSpacesRequest>): ListSpacesRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: ListSpacesResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListSpacesResponse;
+                fromPartial(object: DeepPartial<ListSpacesResponse>): ListSpacesResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+    };
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=collaborators.d.ts.map
\ No newline at end of file
diff --git a/clients/collaborators/collaborators.d.ts.map b/clients/collaborators/collaborators.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..ef6122e1cfc1731d1f02d559b41d9720a8ba1b6a
--- /dev/null
+++ b/clients/collaborators/collaborators.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"collaborators.d.ts","sourceRoot":"","sources":["collaborators.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/collaborators/collaborators.js b/clients/collaborators/collaborators.js
new file mode 100644
index 0000000000000000000000000000000000000000..24d2917c4507d81bda37baf4b9235e78419b49cb
--- /dev/null
+++ b/clients/collaborators/collaborators.js
@@ -0,0 +1,379 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.CollaboratorsDefinition = exports.ListSpacesResponse = exports.ListSpacesRequest = exports.ListCollaboratorsResponse = exports.ListCollaboratorsRequest = exports.RemoveRequest = exports.GetResponse = exports.GetRequest = exports.SetRequest = void 0;
+/* eslint-disable */
+const common_1 = require("../common/common");
+const empty_1 = require("../google/protobuf/empty");
+const _m0 = __importStar(require("protobufjs/minimal"));
+function createBaseSetRequest() {
+    return { spaceId: "", subject: "", role: "" };
+}
+exports.SetRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.subject !== "") {
+            writer.uint32(18).string(message.subject);
+        }
+        if (message.role !== "") {
+            writer.uint32(26).string(message.role);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseSetRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.subject = reader.string();
+                    break;
+                case 3:
+                    message.role = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseSetRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.subject = (_b = object.subject) !== null && _b !== void 0 ? _b : "";
+        message.role = (_c = object.role) !== null && _c !== void 0 ? _c : "";
+        return message;
+    },
+};
+function createBaseGetRequest() {
+    return { spaceId: "", subject: "" };
+}
+exports.GetRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.subject !== "") {
+            writer.uint32(18).string(message.subject);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.subject = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseGetRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.subject = (_b = object.subject) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseGetResponse() {
+    return { role: "" };
+}
+exports.GetResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.role !== "") {
+            writer.uint32(26).string(message.role);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 3:
+                    message.role = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseGetResponse();
+        message.role = (_a = object.role) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseRemoveRequest() {
+    return { spaceId: "", subject: "" };
+}
+exports.RemoveRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.subject !== "") {
+            writer.uint32(18).string(message.subject);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseRemoveRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.subject = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseRemoveRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.subject = (_b = object.subject) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseListCollaboratorsRequest() {
+    return { spaceId: "" };
+}
+exports.ListCollaboratorsRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListCollaboratorsRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListCollaboratorsRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseListCollaboratorsResponse() {
+    return { collaborators: [] };
+}
+exports.ListCollaboratorsResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.collaborators) {
+            common_1.Collaborator.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListCollaboratorsResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.collaborators.push(common_1.Collaborator.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListCollaboratorsResponse();
+        message.collaborators =
+            ((_a = object.collaborators) === null || _a === void 0 ? void 0 : _a.map((e) => common_1.Collaborator.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseListSpacesRequest() {
+    return { subject: "" };
+}
+exports.ListSpacesRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.subject !== "") {
+            writer.uint32(10).string(message.subject);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListSpacesRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.subject = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListSpacesRequest();
+        message.subject = (_a = object.subject) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseListSpacesResponse() {
+    return { spaces: [] };
+}
+exports.ListSpacesResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.spaces) {
+            common_1.Collaborator.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListSpacesResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaces.push(common_1.Collaborator.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListSpacesResponse();
+        message.spaces =
+            ((_a = object.spaces) === null || _a === void 0 ? void 0 : _a.map((e) => common_1.Collaborator.fromPartial(e))) || [];
+        return message;
+    },
+};
+exports.CollaboratorsDefinition = {
+    name: "Collaborators",
+    fullName: "content.collaborators.Collaborators",
+    methods: {
+        set: {
+            name: "Set",
+            requestType: exports.SetRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        get: {
+            name: "Get",
+            requestType: exports.GetRequest,
+            requestStream: false,
+            responseType: exports.GetResponse,
+            responseStream: false,
+            options: {},
+        },
+        remove: {
+            name: "Remove",
+            requestType: exports.RemoveRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        listCollaborators: {
+            name: "ListCollaborators",
+            requestType: exports.ListCollaboratorsRequest,
+            requestStream: false,
+            responseType: exports.ListCollaboratorsResponse,
+            responseStream: false,
+            options: {},
+        },
+        listSpaces: {
+            name: "ListSpaces",
+            requestType: exports.ListSpacesRequest,
+            requestStream: false,
+            responseType: exports.ListSpacesResponse,
+            responseStream: false,
+            options: {},
+        },
+    },
+};
+//# sourceMappingURL=collaborators.js.map
\ No newline at end of file
diff --git a/clients/collaborators/collaborators.js.map b/clients/collaborators/collaborators.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..c83806a754978a2dd2b06e91072ba0df8ff45c6f
--- /dev/null
+++ b/clients/collaborators/collaborators.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"collaborators.js","sourceRoot":"","sources":["collaborators.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/collections/collections.d.ts b/clients/collections/collections.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..7677198ff9dce58ab21b3cf7ca491fd931e5b00c
--- /dev/null
+++ b/clients/collections/collections.d.ts
@@ -0,0 +1,281 @@
+import { Timestamp } from "../google/protobuf/timestamp";
+import { Action } from "../common/common";
+import { Empty } from "../google/protobuf/empty";
+import * as _m0 from "protobufjs/minimal";
+export interface Access {
+    actions: Action[];
+    hiddenFields: string[];
+    readonlyFields: string[];
+    writeonlyFields: string[];
+}
+export interface Collection {
+    id: string;
+    spaceId: string;
+    envId: string;
+    name: string;
+    single?: boolean | undefined;
+    system?: boolean | undefined;
+    noData?: boolean | undefined;
+    schema: string;
+    /** string feature = 8; */
+    hidden: boolean;
+    view?: Collection_View;
+    stateInfo?: Collection_StateInfo;
+    access?: Access;
+}
+export declare enum Collection_State {
+    /** NEW - коллекция создана, еще не обработана */
+    NEW = 0,
+    /** PREPARING - производится подготовка коллекции (создание индексов, копирование данных) */
+    PREPARING = 1,
+    /** READY - коллекция готова к работе */
+    READY = 2,
+    /** ERROR - при обработке коллекции произошла ошибка */
+    ERROR = 3,
+    /** CHANGED - в коллекцию внесены изменения, но  еще не были применены. Коллекция должна после перейти в состояние Preparing */
+    CHANGED = 4,
+    UNRECOGNIZED = -1
+}
+export interface Collection_View {
+    spaceId: string;
+    envId: string;
+    collectionId: string;
+    filter: string;
+}
+export interface Collection_StateInfo {
+    state: Collection_State;
+    info: string;
+    startedAt?: Timestamp;
+}
+export interface CreateRequest {
+    collection?: Collection;
+}
+export interface CreateResponse {
+    created?: Collection;
+}
+export interface GetOptions {
+    disableSchemaIncludes: boolean;
+}
+export interface GetRequest {
+    spaceId: string;
+    envId: string;
+    collectionId: string;
+    options?: GetOptions;
+}
+export interface GetResponse {
+    collection?: Collection;
+}
+export interface ListRequest {
+    spaceId: string;
+    envId: string;
+    filter?: ListRequest_Filter;
+}
+export interface ListRequest_Filter {
+    excludeSystem: boolean;
+    /** bool exclude_no_data = 2; */
+    includeNoData: boolean;
+    includeHidden: boolean;
+    name: string[];
+    id: string[];
+}
+export interface ListResponse {
+    collections: Collection[];
+}
+export interface UpdateRequest {
+    collection?: Collection;
+}
+export interface SetSchemaRequest {
+    spaceId: string;
+    envId: string;
+    collectionId: string;
+    schema: string;
+}
+export interface DeleteRequest {
+    spaceId: string;
+    envId: string;
+    collectionId: string;
+}
+export declare const Access: {
+    encode(message: Access, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Access;
+    fromPartial(object: DeepPartial<Access>): Access;
+};
+export declare const Collection: {
+    encode(message: Collection, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Collection;
+    fromPartial(object: DeepPartial<Collection>): Collection;
+};
+export declare const Collection_View: {
+    encode(message: Collection_View, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Collection_View;
+    fromPartial(object: DeepPartial<Collection_View>): Collection_View;
+};
+export declare const Collection_StateInfo: {
+    encode(message: Collection_StateInfo, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Collection_StateInfo;
+    fromPartial(object: DeepPartial<Collection_StateInfo>): Collection_StateInfo;
+};
+export declare const CreateRequest: {
+    encode(message: CreateRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CreateRequest;
+    fromPartial(object: DeepPartial<CreateRequest>): CreateRequest;
+};
+export declare const CreateResponse: {
+    encode(message: CreateResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CreateResponse;
+    fromPartial(object: DeepPartial<CreateResponse>): CreateResponse;
+};
+export declare const GetOptions: {
+    encode(message: GetOptions, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetOptions;
+    fromPartial(object: DeepPartial<GetOptions>): GetOptions;
+};
+export declare const GetRequest: {
+    encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+    fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+};
+export declare const GetResponse: {
+    encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+    fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+};
+export declare const ListRequest: {
+    encode(message: ListRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListRequest;
+    fromPartial(object: DeepPartial<ListRequest>): ListRequest;
+};
+export declare const ListRequest_Filter: {
+    encode(message: ListRequest_Filter, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListRequest_Filter;
+    fromPartial(object: DeepPartial<ListRequest_Filter>): ListRequest_Filter;
+};
+export declare const ListResponse: {
+    encode(message: ListResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListResponse;
+    fromPartial(object: DeepPartial<ListResponse>): ListResponse;
+};
+export declare const UpdateRequest: {
+    encode(message: UpdateRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateRequest;
+    fromPartial(object: DeepPartial<UpdateRequest>): UpdateRequest;
+};
+export declare const SetSchemaRequest: {
+    encode(message: SetSchemaRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): SetSchemaRequest;
+    fromPartial(object: DeepPartial<SetSchemaRequest>): SetSchemaRequest;
+};
+export declare const DeleteRequest: {
+    encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
+    fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
+};
+export declare type CollectionsDefinition = typeof CollectionsDefinition;
+export declare const CollectionsDefinition: {
+    readonly name: "Collections";
+    readonly fullName: "content.collections.Collections";
+    readonly methods: {
+        readonly create: {
+            readonly name: "Create";
+            readonly requestType: {
+                encode(message: CreateRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CreateRequest;
+                fromPartial(object: DeepPartial<CreateRequest>): CreateRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: CreateResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CreateResponse;
+                fromPartial(object: DeepPartial<CreateResponse>): CreateResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly get: {
+            readonly name: "Get";
+            readonly requestType: {
+                encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+                fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+                fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly list: {
+            readonly name: "List";
+            readonly requestType: {
+                encode(message: ListRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListRequest;
+                fromPartial(object: DeepPartial<ListRequest>): ListRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: ListResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListResponse;
+                fromPartial(object: DeepPartial<ListResponse>): ListResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly update: {
+            readonly name: "Update";
+            readonly requestType: {
+                encode(message: UpdateRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): UpdateRequest;
+                fromPartial(object: DeepPartial<UpdateRequest>): UpdateRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly setSchema: {
+            readonly name: "SetSchema";
+            readonly requestType: {
+                encode(message: SetSchemaRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): SetSchemaRequest;
+                fromPartial(object: DeepPartial<SetSchemaRequest>): SetSchemaRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly delete: {
+            readonly name: "Delete";
+            readonly requestType: {
+                encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
+                fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+    };
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=collections.d.ts.map
\ No newline at end of file
diff --git a/clients/collections/collections.d.ts.map b/clients/collections/collections.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..f4d2c32d58a8e3a085304fff0bd79877b1edc15a
--- /dev/null
+++ b/clients/collections/collections.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["collections.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/collections/collections.js b/clients/collections/collections.js
new file mode 100644
index 0000000000000000000000000000000000000000..e918bb18980a125d8e8d922121c1e79be42a74c8
--- /dev/null
+++ b/clients/collections/collections.js
@@ -0,0 +1,901 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.CollectionsDefinition = exports.DeleteRequest = exports.SetSchemaRequest = exports.UpdateRequest = exports.ListResponse = exports.ListRequest_Filter = exports.ListRequest = exports.GetResponse = exports.GetRequest = exports.GetOptions = exports.CreateResponse = exports.CreateRequest = exports.Collection_StateInfo = exports.Collection_View = exports.Collection = exports.Access = exports.Collection_State = void 0;
+/* eslint-disable */
+const timestamp_1 = require("../google/protobuf/timestamp");
+const empty_1 = require("../google/protobuf/empty");
+const _m0 = __importStar(require("protobufjs/minimal"));
+var Collection_State;
+(function (Collection_State) {
+    /** NEW - коллекция создана, еще не обработана */
+    Collection_State[Collection_State["NEW"] = 0] = "NEW";
+    /** PREPARING - производится подготовка коллекции (создание индексов, копирование данных) */
+    Collection_State[Collection_State["PREPARING"] = 1] = "PREPARING";
+    /** READY - коллекция готова к работе */
+    Collection_State[Collection_State["READY"] = 2] = "READY";
+    /** ERROR - при обработке коллекции произошла ошибка */
+    Collection_State[Collection_State["ERROR"] = 3] = "ERROR";
+    /** CHANGED - в коллекцию внесены изменения, но  еще не были применены. Коллекция должна после перейти в состояние Preparing */
+    Collection_State[Collection_State["CHANGED"] = 4] = "CHANGED";
+    Collection_State[Collection_State["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
+})(Collection_State = exports.Collection_State || (exports.Collection_State = {}));
+function createBaseAccess() {
+    return {
+        actions: [],
+        hiddenFields: [],
+        readonlyFields: [],
+        writeonlyFields: [],
+    };
+}
+exports.Access = {
+    encode(message, writer = _m0.Writer.create()) {
+        writer.uint32(10).fork();
+        for (const v of message.actions) {
+            writer.int32(v);
+        }
+        writer.ldelim();
+        for (const v of message.hiddenFields) {
+            writer.uint32(42).string(v);
+        }
+        for (const v of message.readonlyFields) {
+            writer.uint32(50).string(v);
+        }
+        for (const v of message.writeonlyFields) {
+            writer.uint32(58).string(v);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseAccess();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    if ((tag & 7) === 2) {
+                        const end2 = reader.uint32() + reader.pos;
+                        while (reader.pos < end2) {
+                            message.actions.push(reader.int32());
+                        }
+                    }
+                    else {
+                        message.actions.push(reader.int32());
+                    }
+                    break;
+                case 5:
+                    message.hiddenFields.push(reader.string());
+                    break;
+                case 6:
+                    message.readonlyFields.push(reader.string());
+                    break;
+                case 7:
+                    message.writeonlyFields.push(reader.string());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d;
+        const message = createBaseAccess();
+        message.actions = ((_a = object.actions) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];
+        message.hiddenFields = ((_b = object.hiddenFields) === null || _b === void 0 ? void 0 : _b.map((e) => e)) || [];
+        message.readonlyFields = ((_c = object.readonlyFields) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];
+        message.writeonlyFields = ((_d = object.writeonlyFields) === null || _d === void 0 ? void 0 : _d.map((e) => e)) || [];
+        return message;
+    },
+};
+function createBaseCollection() {
+    return {
+        id: "",
+        spaceId: "",
+        envId: "",
+        name: "",
+        single: undefined,
+        system: undefined,
+        noData: undefined,
+        schema: "",
+        hidden: false,
+        view: undefined,
+        stateInfo: undefined,
+        access: undefined,
+    };
+}
+exports.Collection = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.id !== "") {
+            writer.uint32(10).string(message.id);
+        }
+        if (message.spaceId !== "") {
+            writer.uint32(18).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(26).string(message.envId);
+        }
+        if (message.name !== "") {
+            writer.uint32(34).string(message.name);
+        }
+        if (message.single !== undefined) {
+            writer.uint32(40).bool(message.single);
+        }
+        if (message.system !== undefined) {
+            writer.uint32(48).bool(message.system);
+        }
+        if (message.noData !== undefined) {
+            writer.uint32(96).bool(message.noData);
+        }
+        if (message.schema !== "") {
+            writer.uint32(58).string(message.schema);
+        }
+        if (message.hidden === true) {
+            writer.uint32(104).bool(message.hidden);
+        }
+        if (message.view !== undefined) {
+            exports.Collection_View.encode(message.view, writer.uint32(74).fork()).ldelim();
+        }
+        if (message.stateInfo !== undefined) {
+            exports.Collection_StateInfo.encode(message.stateInfo, writer.uint32(82).fork()).ldelim();
+        }
+        if (message.access !== undefined) {
+            exports.Access.encode(message.access, writer.uint32(162).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCollection();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.id = reader.string();
+                    break;
+                case 2:
+                    message.spaceId = reader.string();
+                    break;
+                case 3:
+                    message.envId = reader.string();
+                    break;
+                case 4:
+                    message.name = reader.string();
+                    break;
+                case 5:
+                    message.single = reader.bool();
+                    break;
+                case 6:
+                    message.system = reader.bool();
+                    break;
+                case 12:
+                    message.noData = reader.bool();
+                    break;
+                case 7:
+                    message.schema = reader.string();
+                    break;
+                case 13:
+                    message.hidden = reader.bool();
+                    break;
+                case 9:
+                    message.view = exports.Collection_View.decode(reader, reader.uint32());
+                    break;
+                case 10:
+                    message.stateInfo = exports.Collection_StateInfo.decode(reader, reader.uint32());
+                    break;
+                case 20:
+                    message.access = exports.Access.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e, _f, _g, _h, _j;
+        const message = createBaseCollection();
+        message.id = (_a = object.id) !== null && _a !== void 0 ? _a : "";
+        message.spaceId = (_b = object.spaceId) !== null && _b !== void 0 ? _b : "";
+        message.envId = (_c = object.envId) !== null && _c !== void 0 ? _c : "";
+        message.name = (_d = object.name) !== null && _d !== void 0 ? _d : "";
+        message.single = (_e = object.single) !== null && _e !== void 0 ? _e : undefined;
+        message.system = (_f = object.system) !== null && _f !== void 0 ? _f : undefined;
+        message.noData = (_g = object.noData) !== null && _g !== void 0 ? _g : undefined;
+        message.schema = (_h = object.schema) !== null && _h !== void 0 ? _h : "";
+        message.hidden = (_j = object.hidden) !== null && _j !== void 0 ? _j : false;
+        message.view =
+            object.view !== undefined && object.view !== null
+                ? exports.Collection_View.fromPartial(object.view)
+                : undefined;
+        message.stateInfo =
+            object.stateInfo !== undefined && object.stateInfo !== null
+                ? exports.Collection_StateInfo.fromPartial(object.stateInfo)
+                : undefined;
+        message.access =
+            object.access !== undefined && object.access !== null
+                ? exports.Access.fromPartial(object.access)
+                : undefined;
+        return message;
+    },
+};
+function createBaseCollection_View() {
+    return { spaceId: "", envId: "", collectionId: "", filter: "" };
+}
+exports.Collection_View = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        if (message.collectionId !== "") {
+            writer.uint32(26).string(message.collectionId);
+        }
+        if (message.filter !== "") {
+            writer.uint32(34).string(message.filter);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCollection_View();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                case 3:
+                    message.collectionId = reader.string();
+                    break;
+                case 4:
+                    message.filter = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d;
+        const message = createBaseCollection_View();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        message.collectionId = (_c = object.collectionId) !== null && _c !== void 0 ? _c : "";
+        message.filter = (_d = object.filter) !== null && _d !== void 0 ? _d : "";
+        return message;
+    },
+};
+function createBaseCollection_StateInfo() {
+    return { state: 0, info: "", startedAt: undefined };
+}
+exports.Collection_StateInfo = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.state !== 0) {
+            writer.uint32(8).int32(message.state);
+        }
+        if (message.info !== "") {
+            writer.uint32(18).string(message.info);
+        }
+        if (message.startedAt !== undefined) {
+            timestamp_1.Timestamp.encode(message.startedAt, writer.uint32(26).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCollection_StateInfo();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.state = reader.int32();
+                    break;
+                case 2:
+                    message.info = reader.string();
+                    break;
+                case 3:
+                    message.startedAt = timestamp_1.Timestamp.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseCollection_StateInfo();
+        message.state = (_a = object.state) !== null && _a !== void 0 ? _a : 0;
+        message.info = (_b = object.info) !== null && _b !== void 0 ? _b : "";
+        message.startedAt =
+            object.startedAt !== undefined && object.startedAt !== null
+                ? timestamp_1.Timestamp.fromPartial(object.startedAt)
+                : undefined;
+        return message;
+    },
+};
+function createBaseCreateRequest() {
+    return { collection: undefined };
+}
+exports.CreateRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.collection !== undefined) {
+            exports.Collection.encode(message.collection, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCreateRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.collection = exports.Collection.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCreateRequest();
+        message.collection =
+            object.collection !== undefined && object.collection !== null
+                ? exports.Collection.fromPartial(object.collection)
+                : undefined;
+        return message;
+    },
+};
+function createBaseCreateResponse() {
+    return { created: undefined };
+}
+exports.CreateResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.created !== undefined) {
+            exports.Collection.encode(message.created, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCreateResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.created = exports.Collection.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCreateResponse();
+        message.created =
+            object.created !== undefined && object.created !== null
+                ? exports.Collection.fromPartial(object.created)
+                : undefined;
+        return message;
+    },
+};
+function createBaseGetOptions() {
+    return { disableSchemaIncludes: false };
+}
+exports.GetOptions = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.disableSchemaIncludes === true) {
+            writer.uint32(8).bool(message.disableSchemaIncludes);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetOptions();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.disableSchemaIncludes = reader.bool();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseGetOptions();
+        message.disableSchemaIncludes = (_a = object.disableSchemaIncludes) !== null && _a !== void 0 ? _a : false;
+        return message;
+    },
+};
+function createBaseGetRequest() {
+    return { spaceId: "", envId: "", collectionId: "", options: undefined };
+}
+exports.GetRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        if (message.collectionId !== "") {
+            writer.uint32(26).string(message.collectionId);
+        }
+        if (message.options !== undefined) {
+            exports.GetOptions.encode(message.options, writer.uint32(34).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                case 3:
+                    message.collectionId = reader.string();
+                    break;
+                case 4:
+                    message.options = exports.GetOptions.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseGetRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        message.collectionId = (_c = object.collectionId) !== null && _c !== void 0 ? _c : "";
+        message.options =
+            object.options !== undefined && object.options !== null
+                ? exports.GetOptions.fromPartial(object.options)
+                : undefined;
+        return message;
+    },
+};
+function createBaseGetResponse() {
+    return { collection: undefined };
+}
+exports.GetResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.collection !== undefined) {
+            exports.Collection.encode(message.collection, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.collection = exports.Collection.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseGetResponse();
+        message.collection =
+            object.collection !== undefined && object.collection !== null
+                ? exports.Collection.fromPartial(object.collection)
+                : undefined;
+        return message;
+    },
+};
+function createBaseListRequest() {
+    return { spaceId: "", envId: "", filter: undefined };
+}
+exports.ListRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        if (message.filter !== undefined) {
+            exports.ListRequest_Filter.encode(message.filter, writer.uint32(42).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                case 5:
+                    message.filter = exports.ListRequest_Filter.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseListRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        message.filter =
+            object.filter !== undefined && object.filter !== null
+                ? exports.ListRequest_Filter.fromPartial(object.filter)
+                : undefined;
+        return message;
+    },
+};
+function createBaseListRequest_Filter() {
+    return {
+        excludeSystem: false,
+        includeNoData: false,
+        includeHidden: false,
+        name: [],
+        id: [],
+    };
+}
+exports.ListRequest_Filter = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.excludeSystem === true) {
+            writer.uint32(8).bool(message.excludeSystem);
+        }
+        if (message.includeNoData === true) {
+            writer.uint32(40).bool(message.includeNoData);
+        }
+        if (message.includeHidden === true) {
+            writer.uint32(48).bool(message.includeHidden);
+        }
+        for (const v of message.name) {
+            writer.uint32(26).string(v);
+        }
+        for (const v of message.id) {
+            writer.uint32(34).string(v);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListRequest_Filter();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.excludeSystem = reader.bool();
+                    break;
+                case 5:
+                    message.includeNoData = reader.bool();
+                    break;
+                case 6:
+                    message.includeHidden = reader.bool();
+                    break;
+                case 3:
+                    message.name.push(reader.string());
+                    break;
+                case 4:
+                    message.id.push(reader.string());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e;
+        const message = createBaseListRequest_Filter();
+        message.excludeSystem = (_a = object.excludeSystem) !== null && _a !== void 0 ? _a : false;
+        message.includeNoData = (_b = object.includeNoData) !== null && _b !== void 0 ? _b : false;
+        message.includeHidden = (_c = object.includeHidden) !== null && _c !== void 0 ? _c : false;
+        message.name = ((_d = object.name) === null || _d === void 0 ? void 0 : _d.map((e) => e)) || [];
+        message.id = ((_e = object.id) === null || _e === void 0 ? void 0 : _e.map((e) => e)) || [];
+        return message;
+    },
+};
+function createBaseListResponse() {
+    return { collections: [] };
+}
+exports.ListResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.collections) {
+            exports.Collection.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.collections.push(exports.Collection.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListResponse();
+        message.collections =
+            ((_a = object.collections) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Collection.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseUpdateRequest() {
+    return { collection: undefined };
+}
+exports.UpdateRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.collection !== undefined) {
+            exports.Collection.encode(message.collection, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUpdateRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.collection = exports.Collection.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseUpdateRequest();
+        message.collection =
+            object.collection !== undefined && object.collection !== null
+                ? exports.Collection.fromPartial(object.collection)
+                : undefined;
+        return message;
+    },
+};
+function createBaseSetSchemaRequest() {
+    return { spaceId: "", envId: "", collectionId: "", schema: "" };
+}
+exports.SetSchemaRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        if (message.collectionId !== "") {
+            writer.uint32(26).string(message.collectionId);
+        }
+        if (message.schema !== "") {
+            writer.uint32(34).string(message.schema);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseSetSchemaRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                case 3:
+                    message.collectionId = reader.string();
+                    break;
+                case 4:
+                    message.schema = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d;
+        const message = createBaseSetSchemaRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        message.collectionId = (_c = object.collectionId) !== null && _c !== void 0 ? _c : "";
+        message.schema = (_d = object.schema) !== null && _d !== void 0 ? _d : "";
+        return message;
+    },
+};
+function createBaseDeleteRequest() {
+    return { spaceId: "", envId: "", collectionId: "" };
+}
+exports.DeleteRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        if (message.collectionId !== "") {
+            writer.uint32(26).string(message.collectionId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseDeleteRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                case 3:
+                    message.collectionId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseDeleteRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        message.collectionId = (_c = object.collectionId) !== null && _c !== void 0 ? _c : "";
+        return message;
+    },
+};
+exports.CollectionsDefinition = {
+    name: "Collections",
+    fullName: "content.collections.Collections",
+    methods: {
+        create: {
+            name: "Create",
+            requestType: exports.CreateRequest,
+            requestStream: false,
+            responseType: exports.CreateResponse,
+            responseStream: false,
+            options: {},
+        },
+        get: {
+            name: "Get",
+            requestType: exports.GetRequest,
+            requestStream: false,
+            responseType: exports.GetResponse,
+            responseStream: false,
+            options: {},
+        },
+        list: {
+            name: "List",
+            requestType: exports.ListRequest,
+            requestStream: false,
+            responseType: exports.ListResponse,
+            responseStream: false,
+            options: {},
+        },
+        update: {
+            name: "Update",
+            requestType: exports.UpdateRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        setSchema: {
+            name: "SetSchema",
+            requestType: exports.SetSchemaRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        delete: {
+            name: "Delete",
+            requestType: exports.DeleteRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+    },
+};
+//# sourceMappingURL=collections.js.map
\ No newline at end of file
diff --git a/clients/collections/collections.js.map b/clients/collections/collections.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..1b6600a2348c6ece03ae52824c2c3ac23b8b97b6
--- /dev/null
+++ b/clients/collections/collections.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"collections.js","sourceRoot":"","sources":["collections.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/common/common.d.ts b/clients/common/common.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..bf41902328833927e5b62f3f52e6eab1843c98e5
--- /dev/null
+++ b/clients/common/common.d.ts
@@ -0,0 +1,168 @@
+import * as _m0 from "protobufjs/minimal";
+export declare enum Access {
+    ANY = 0,
+    MINE = 1,
+    ROLE = 2,
+    UNRECOGNIZED = -1
+}
+export declare enum Action {
+    UNKNOWN = 0,
+    CREATE = 1,
+    READ = 2,
+    UPDATE = 3,
+    DELETE = 4,
+    UNRECOGNIZED = -1
+}
+export interface Error {
+    /** Код ошибки */
+    errorCode: number;
+    /** ID конкретного инцидента, ID уникальна для каждого случая. */
+    errorId: string;
+    /** ??? */
+    reason: string;
+    /** Сервис,Пакет к которому относится ошибка */
+    domain: string;
+    /** Мета-информация */
+    metadata: {
+        [key: string]: string;
+    };
+    /** Ошибка запроса */
+    badRequest?: Error_BadRequest;
+    /** Отладочная информация */
+    debugInfo?: Error_DebugInfo;
+    /** Пользовательская информации и инструкции */
+    help?: Error_Help;
+    /** Перевод сообщения об ошибке */
+    localizedMessages: Error_LocalizedMessage[];
+}
+export interface Error_BadRequest {
+    errors: Error_BadRequest_FieldViolation[];
+}
+export interface Error_BadRequest_FieldViolation {
+    field: string;
+    description: string;
+}
+export interface Error_Help {
+    links: Error_Help_Link[];
+}
+export interface Error_Help_Link {
+    description: string;
+    url: string;
+}
+export interface Error_DebugInfo {
+    stackTrace: string[];
+    detail: string;
+}
+export interface Error_LocalizedMessage {
+    locale: string;
+    message: string;
+}
+export interface Error_MetadataEntry {
+    key: string;
+    value: string;
+}
+export interface Filter {
+    op: string;
+    field: string;
+    value?: any;
+}
+export interface FindOptions {
+    sort: string[];
+    pageNum: number;
+    pageSize: number;
+    fields: string[];
+    excludeFields: boolean;
+}
+export interface Rule {
+    collectionId: string;
+    actions: Action[];
+    access: Access;
+    hiddenFields: string[];
+    readonlyFields: string[];
+    writeonlyFields: string[];
+    readFilter: string;
+    writeFilter: string;
+}
+export interface Collaborator {
+    spaceId: string;
+    subject: string;
+    role: string;
+}
+export interface Version {
+    serverVersion: string;
+    apiVersion: string;
+    buildTime: string;
+    commit: string;
+    buildNumber: number;
+}
+export declare const Error: {
+    encode(message: Error, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Error;
+    fromPartial(object: DeepPartial<Error>): Error;
+};
+export declare const Error_BadRequest: {
+    encode(message: Error_BadRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Error_BadRequest;
+    fromPartial(object: DeepPartial<Error_BadRequest>): Error_BadRequest;
+};
+export declare const Error_BadRequest_FieldViolation: {
+    encode(message: Error_BadRequest_FieldViolation, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Error_BadRequest_FieldViolation;
+    fromPartial(object: DeepPartial<Error_BadRequest_FieldViolation>): Error_BadRequest_FieldViolation;
+};
+export declare const Error_Help: {
+    encode(message: Error_Help, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Error_Help;
+    fromPartial(object: DeepPartial<Error_Help>): Error_Help;
+};
+export declare const Error_Help_Link: {
+    encode(message: Error_Help_Link, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Error_Help_Link;
+    fromPartial(object: DeepPartial<Error_Help_Link>): Error_Help_Link;
+};
+export declare const Error_DebugInfo: {
+    encode(message: Error_DebugInfo, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Error_DebugInfo;
+    fromPartial(object: DeepPartial<Error_DebugInfo>): Error_DebugInfo;
+};
+export declare const Error_LocalizedMessage: {
+    encode(message: Error_LocalizedMessage, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Error_LocalizedMessage;
+    fromPartial(object: DeepPartial<Error_LocalizedMessage>): Error_LocalizedMessage;
+};
+export declare const Error_MetadataEntry: {
+    encode(message: Error_MetadataEntry, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Error_MetadataEntry;
+    fromPartial(object: DeepPartial<Error_MetadataEntry>): Error_MetadataEntry;
+};
+export declare const Filter: {
+    encode(message: Filter, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Filter;
+    fromPartial(object: DeepPartial<Filter>): Filter;
+};
+export declare const FindOptions: {
+    encode(message: FindOptions, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): FindOptions;
+    fromPartial(object: DeepPartial<FindOptions>): FindOptions;
+};
+export declare const Rule: {
+    encode(message: Rule, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Rule;
+    fromPartial(object: DeepPartial<Rule>): Rule;
+};
+export declare const Collaborator: {
+    encode(message: Collaborator, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Collaborator;
+    fromPartial(object: DeepPartial<Collaborator>): Collaborator;
+};
+export declare const Version: {
+    encode(message: Version, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Version;
+    fromPartial(object: DeepPartial<Version>): Version;
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=common.d.ts.map
\ No newline at end of file
diff --git a/clients/common/common.d.ts.map b/clients/common/common.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..8fafead7305d81f202d482668c8e5afdd3a61249
--- /dev/null
+++ b/clients/common/common.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["common.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/common/common.js b/clients/common/common.js
new file mode 100644
index 0000000000000000000000000000000000000000..2d0673628ba1d79f713bbf0c40217bf16f19e8b3
--- /dev/null
+++ b/clients/common/common.js
@@ -0,0 +1,798 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Version = exports.Collaborator = exports.Rule = exports.FindOptions = exports.Filter = exports.Error_MetadataEntry = exports.Error_LocalizedMessage = exports.Error_DebugInfo = exports.Error_Help_Link = exports.Error_Help = exports.Error_BadRequest_FieldViolation = exports.Error_BadRequest = exports.Error = exports.Action = exports.Access = void 0;
+/* eslint-disable */
+const long_1 = __importDefault(require("long"));
+const _m0 = __importStar(require("protobufjs/minimal"));
+const struct_1 = require("../google/protobuf/struct");
+var Access;
+(function (Access) {
+    Access[Access["ANY"] = 0] = "ANY";
+    Access[Access["MINE"] = 1] = "MINE";
+    Access[Access["ROLE"] = 2] = "ROLE";
+    Access[Access["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
+})(Access = exports.Access || (exports.Access = {}));
+var Action;
+(function (Action) {
+    Action[Action["UNKNOWN"] = 0] = "UNKNOWN";
+    Action[Action["CREATE"] = 1] = "CREATE";
+    Action[Action["READ"] = 2] = "READ";
+    Action[Action["UPDATE"] = 3] = "UPDATE";
+    Action[Action["DELETE"] = 4] = "DELETE";
+    Action[Action["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
+})(Action = exports.Action || (exports.Action = {}));
+function createBaseError() {
+    return {
+        errorCode: 0,
+        errorId: "",
+        reason: "",
+        domain: "",
+        metadata: {},
+        badRequest: undefined,
+        debugInfo: undefined,
+        help: undefined,
+        localizedMessages: [],
+    };
+}
+exports.Error = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.errorCode !== 0) {
+            writer.uint32(8).uint64(message.errorCode);
+        }
+        if (message.errorId !== "") {
+            writer.uint32(18).string(message.errorId);
+        }
+        if (message.reason !== "") {
+            writer.uint32(26).string(message.reason);
+        }
+        if (message.domain !== "") {
+            writer.uint32(34).string(message.domain);
+        }
+        Object.entries(message.metadata).forEach(([key, value]) => {
+            exports.Error_MetadataEntry.encode({ key: key, value }, writer.uint32(74).fork()).ldelim();
+        });
+        if (message.badRequest !== undefined) {
+            exports.Error_BadRequest.encode(message.badRequest, writer.uint32(82).fork()).ldelim();
+        }
+        if (message.debugInfo !== undefined) {
+            exports.Error_DebugInfo.encode(message.debugInfo, writer.uint32(90).fork()).ldelim();
+        }
+        if (message.help !== undefined) {
+            exports.Error_Help.encode(message.help, writer.uint32(802).fork()).ldelim();
+        }
+        for (const v of message.localizedMessages) {
+            exports.Error_LocalizedMessage.encode(v, writer.uint32(1602).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseError();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.errorCode = longToNumber(reader.uint64());
+                    break;
+                case 2:
+                    message.errorId = reader.string();
+                    break;
+                case 3:
+                    message.reason = reader.string();
+                    break;
+                case 4:
+                    message.domain = reader.string();
+                    break;
+                case 9:
+                    const entry9 = exports.Error_MetadataEntry.decode(reader, reader.uint32());
+                    if (entry9.value !== undefined) {
+                        message.metadata[entry9.key] = entry9.value;
+                    }
+                    break;
+                case 10:
+                    message.badRequest = exports.Error_BadRequest.decode(reader, reader.uint32());
+                    break;
+                case 11:
+                    message.debugInfo = exports.Error_DebugInfo.decode(reader, reader.uint32());
+                    break;
+                case 100:
+                    message.help = exports.Error_Help.decode(reader, reader.uint32());
+                    break;
+                case 200:
+                    message.localizedMessages.push(exports.Error_LocalizedMessage.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e, _f;
+        const message = createBaseError();
+        message.errorCode = (_a = object.errorCode) !== null && _a !== void 0 ? _a : 0;
+        message.errorId = (_b = object.errorId) !== null && _b !== void 0 ? _b : "";
+        message.reason = (_c = object.reason) !== null && _c !== void 0 ? _c : "";
+        message.domain = (_d = object.domain) !== null && _d !== void 0 ? _d : "";
+        message.metadata = Object.entries((_e = object.metadata) !== null && _e !== void 0 ? _e : {}).reduce((acc, [key, value]) => {
+            if (value !== undefined) {
+                acc[key] = String(value);
+            }
+            return acc;
+        }, {});
+        message.badRequest =
+            object.badRequest !== undefined && object.badRequest !== null
+                ? exports.Error_BadRequest.fromPartial(object.badRequest)
+                : undefined;
+        message.debugInfo =
+            object.debugInfo !== undefined && object.debugInfo !== null
+                ? exports.Error_DebugInfo.fromPartial(object.debugInfo)
+                : undefined;
+        message.help =
+            object.help !== undefined && object.help !== null
+                ? exports.Error_Help.fromPartial(object.help)
+                : undefined;
+        message.localizedMessages =
+            ((_f = object.localizedMessages) === null || _f === void 0 ? void 0 : _f.map((e) => exports.Error_LocalizedMessage.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseError_BadRequest() {
+    return { errors: [] };
+}
+exports.Error_BadRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.errors) {
+            exports.Error_BadRequest_FieldViolation.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseError_BadRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.errors.push(exports.Error_BadRequest_FieldViolation.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseError_BadRequest();
+        message.errors =
+            ((_a = object.errors) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Error_BadRequest_FieldViolation.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseError_BadRequest_FieldViolation() {
+    return { field: "", description: "" };
+}
+exports.Error_BadRequest_FieldViolation = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.field !== "") {
+            writer.uint32(10).string(message.field);
+        }
+        if (message.description !== "") {
+            writer.uint32(18).string(message.description);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseError_BadRequest_FieldViolation();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.field = reader.string();
+                    break;
+                case 2:
+                    message.description = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseError_BadRequest_FieldViolation();
+        message.field = (_a = object.field) !== null && _a !== void 0 ? _a : "";
+        message.description = (_b = object.description) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseError_Help() {
+    return { links: [] };
+}
+exports.Error_Help = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.links) {
+            exports.Error_Help_Link.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseError_Help();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.links.push(exports.Error_Help_Link.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseError_Help();
+        message.links =
+            ((_a = object.links) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Error_Help_Link.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseError_Help_Link() {
+    return { description: "", url: "" };
+}
+exports.Error_Help_Link = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.description !== "") {
+            writer.uint32(10).string(message.description);
+        }
+        if (message.url !== "") {
+            writer.uint32(18).string(message.url);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseError_Help_Link();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.description = reader.string();
+                    break;
+                case 2:
+                    message.url = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseError_Help_Link();
+        message.description = (_a = object.description) !== null && _a !== void 0 ? _a : "";
+        message.url = (_b = object.url) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseError_DebugInfo() {
+    return { stackTrace: [], detail: "" };
+}
+exports.Error_DebugInfo = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.stackTrace) {
+            writer.uint32(10).string(v);
+        }
+        if (message.detail !== "") {
+            writer.uint32(18).string(message.detail);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseError_DebugInfo();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.stackTrace.push(reader.string());
+                    break;
+                case 2:
+                    message.detail = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseError_DebugInfo();
+        message.stackTrace = ((_a = object.stackTrace) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];
+        message.detail = (_b = object.detail) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseError_LocalizedMessage() {
+    return { locale: "", message: "" };
+}
+exports.Error_LocalizedMessage = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.locale !== "") {
+            writer.uint32(10).string(message.locale);
+        }
+        if (message.message !== "") {
+            writer.uint32(18).string(message.message);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseError_LocalizedMessage();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.locale = reader.string();
+                    break;
+                case 2:
+                    message.message = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseError_LocalizedMessage();
+        message.locale = (_a = object.locale) !== null && _a !== void 0 ? _a : "";
+        message.message = (_b = object.message) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseError_MetadataEntry() {
+    return { key: "", value: "" };
+}
+exports.Error_MetadataEntry = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.key !== "") {
+            writer.uint32(10).string(message.key);
+        }
+        if (message.value !== "") {
+            writer.uint32(18).string(message.value);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseError_MetadataEntry();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.key = reader.string();
+                    break;
+                case 2:
+                    message.value = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseError_MetadataEntry();
+        message.key = (_a = object.key) !== null && _a !== void 0 ? _a : "";
+        message.value = (_b = object.value) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseFilter() {
+    return { op: "", field: "", value: undefined };
+}
+exports.Filter = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.op !== "") {
+            writer.uint32(10).string(message.op);
+        }
+        if (message.field !== "") {
+            writer.uint32(18).string(message.field);
+        }
+        if (message.value !== undefined) {
+            struct_1.Value.encode(struct_1.Value.wrap(message.value), writer.uint32(26).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFilter();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.op = reader.string();
+                    break;
+                case 2:
+                    message.field = reader.string();
+                    break;
+                case 3:
+                    message.value = struct_1.Value.unwrap(struct_1.Value.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseFilter();
+        message.op = (_a = object.op) !== null && _a !== void 0 ? _a : "";
+        message.field = (_b = object.field) !== null && _b !== void 0 ? _b : "";
+        message.value = (_c = object.value) !== null && _c !== void 0 ? _c : undefined;
+        return message;
+    },
+};
+function createBaseFindOptions() {
+    return {
+        sort: [],
+        pageNum: 0,
+        pageSize: 0,
+        fields: [],
+        excludeFields: false,
+    };
+}
+exports.FindOptions = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.sort) {
+            writer.uint32(10).string(v);
+        }
+        if (message.pageNum !== 0) {
+            writer.uint32(16).int32(message.pageNum);
+        }
+        if (message.pageSize !== 0) {
+            writer.uint32(24).int32(message.pageSize);
+        }
+        for (const v of message.fields) {
+            writer.uint32(34).string(v);
+        }
+        if (message.excludeFields === true) {
+            writer.uint32(40).bool(message.excludeFields);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFindOptions();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.sort.push(reader.string());
+                    break;
+                case 2:
+                    message.pageNum = reader.int32();
+                    break;
+                case 3:
+                    message.pageSize = reader.int32();
+                    break;
+                case 4:
+                    message.fields.push(reader.string());
+                    break;
+                case 5:
+                    message.excludeFields = reader.bool();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e;
+        const message = createBaseFindOptions();
+        message.sort = ((_a = object.sort) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];
+        message.pageNum = (_b = object.pageNum) !== null && _b !== void 0 ? _b : 0;
+        message.pageSize = (_c = object.pageSize) !== null && _c !== void 0 ? _c : 0;
+        message.fields = ((_d = object.fields) === null || _d === void 0 ? void 0 : _d.map((e) => e)) || [];
+        message.excludeFields = (_e = object.excludeFields) !== null && _e !== void 0 ? _e : false;
+        return message;
+    },
+};
+function createBaseRule() {
+    return {
+        collectionId: "",
+        actions: [],
+        access: 0,
+        hiddenFields: [],
+        readonlyFields: [],
+        writeonlyFields: [],
+        readFilter: "",
+        writeFilter: "",
+    };
+}
+exports.Rule = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.collectionId !== "") {
+            writer.uint32(10).string(message.collectionId);
+        }
+        writer.uint32(18).fork();
+        for (const v of message.actions) {
+            writer.int32(v);
+        }
+        writer.ldelim();
+        if (message.access !== 0) {
+            writer.uint32(24).int32(message.access);
+        }
+        for (const v of message.hiddenFields) {
+            writer.uint32(42).string(v);
+        }
+        for (const v of message.readonlyFields) {
+            writer.uint32(50).string(v);
+        }
+        for (const v of message.writeonlyFields) {
+            writer.uint32(58).string(v);
+        }
+        if (message.readFilter !== "") {
+            writer.uint32(66).string(message.readFilter);
+        }
+        if (message.writeFilter !== "") {
+            writer.uint32(74).string(message.writeFilter);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseRule();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.collectionId = reader.string();
+                    break;
+                case 2:
+                    if ((tag & 7) === 2) {
+                        const end2 = reader.uint32() + reader.pos;
+                        while (reader.pos < end2) {
+                            message.actions.push(reader.int32());
+                        }
+                    }
+                    else {
+                        message.actions.push(reader.int32());
+                    }
+                    break;
+                case 3:
+                    message.access = reader.int32();
+                    break;
+                case 5:
+                    message.hiddenFields.push(reader.string());
+                    break;
+                case 6:
+                    message.readonlyFields.push(reader.string());
+                    break;
+                case 7:
+                    message.writeonlyFields.push(reader.string());
+                    break;
+                case 8:
+                    message.readFilter = reader.string();
+                    break;
+                case 9:
+                    message.writeFilter = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e, _f, _g, _h;
+        const message = createBaseRule();
+        message.collectionId = (_a = object.collectionId) !== null && _a !== void 0 ? _a : "";
+        message.actions = ((_b = object.actions) === null || _b === void 0 ? void 0 : _b.map((e) => e)) || [];
+        message.access = (_c = object.access) !== null && _c !== void 0 ? _c : 0;
+        message.hiddenFields = ((_d = object.hiddenFields) === null || _d === void 0 ? void 0 : _d.map((e) => e)) || [];
+        message.readonlyFields = ((_e = object.readonlyFields) === null || _e === void 0 ? void 0 : _e.map((e) => e)) || [];
+        message.writeonlyFields = ((_f = object.writeonlyFields) === null || _f === void 0 ? void 0 : _f.map((e) => e)) || [];
+        message.readFilter = (_g = object.readFilter) !== null && _g !== void 0 ? _g : "";
+        message.writeFilter = (_h = object.writeFilter) !== null && _h !== void 0 ? _h : "";
+        return message;
+    },
+};
+function createBaseCollaborator() {
+    return { spaceId: "", subject: "", role: "" };
+}
+exports.Collaborator = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.subject !== "") {
+            writer.uint32(18).string(message.subject);
+        }
+        if (message.role !== "") {
+            writer.uint32(26).string(message.role);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCollaborator();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.subject = reader.string();
+                    break;
+                case 3:
+                    message.role = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseCollaborator();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.subject = (_b = object.subject) !== null && _b !== void 0 ? _b : "";
+        message.role = (_c = object.role) !== null && _c !== void 0 ? _c : "";
+        return message;
+    },
+};
+function createBaseVersion() {
+    return {
+        serverVersion: "",
+        apiVersion: "",
+        buildTime: "",
+        commit: "",
+        buildNumber: 0,
+    };
+}
+exports.Version = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.serverVersion !== "") {
+            writer.uint32(10).string(message.serverVersion);
+        }
+        if (message.apiVersion !== "") {
+            writer.uint32(18).string(message.apiVersion);
+        }
+        if (message.buildTime !== "") {
+            writer.uint32(26).string(message.buildTime);
+        }
+        if (message.commit !== "") {
+            writer.uint32(34).string(message.commit);
+        }
+        if (message.buildNumber !== 0) {
+            writer.uint32(40).int32(message.buildNumber);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseVersion();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.serverVersion = reader.string();
+                    break;
+                case 2:
+                    message.apiVersion = reader.string();
+                    break;
+                case 3:
+                    message.buildTime = reader.string();
+                    break;
+                case 4:
+                    message.commit = reader.string();
+                    break;
+                case 5:
+                    message.buildNumber = reader.int32();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e;
+        const message = createBaseVersion();
+        message.serverVersion = (_a = object.serverVersion) !== null && _a !== void 0 ? _a : "";
+        message.apiVersion = (_b = object.apiVersion) !== null && _b !== void 0 ? _b : "";
+        message.buildTime = (_c = object.buildTime) !== null && _c !== void 0 ? _c : "";
+        message.commit = (_d = object.commit) !== null && _d !== void 0 ? _d : "";
+        message.buildNumber = (_e = object.buildNumber) !== null && _e !== void 0 ? _e : 0;
+        return message;
+    },
+};
+var globalThis = (() => {
+    if (typeof globalThis !== "undefined")
+        return globalThis;
+    if (typeof self !== "undefined")
+        return self;
+    if (typeof window !== "undefined")
+        return window;
+    if (typeof global !== "undefined")
+        return global;
+    throw "Unable to locate global object";
+})();
+function longToNumber(long) {
+    if (long.gt(Number.MAX_SAFE_INTEGER)) {
+        throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
+    }
+    return long.toNumber();
+}
+if (_m0.util.Long !== long_1.default) {
+    _m0.util.Long = long_1.default;
+    _m0.configure();
+}
+//# sourceMappingURL=common.js.map
\ No newline at end of file
diff --git a/clients/common/common.js.map b/clients/common/common.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..287509e62dbae2d9895f2332f4ebc34d27084677
--- /dev/null
+++ b/clients/common/common.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"common.js","sourceRoot":"","sources":["common.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oBAAoB;AACpB,gDAAwB;AACxB,wDAA0C;AAC1C,sDAAkD;AAElD,IAAY,MAKX;AALD,WAAY,MAAM;IAChB,iCAAO,CAAA;IACP,mCAAQ,CAAA;IACR,mCAAQ,CAAA;IACR,oDAAiB,CAAA;AACnB,CAAC,EALW,MAAM,GAAN,cAAM,KAAN,cAAM,QAKjB;AAED,IAAY,MAOX;AAPD,WAAY,MAAM;IAChB,yCAAW,CAAA;IACX,uCAAU,CAAA;IACV,mCAAQ,CAAA;IACR,uCAAU,CAAA;IACV,uCAAU,CAAA;IACV,oDAAiB,CAAA;AACnB,CAAC,EAPW,MAAM,GAAN,cAAM,KAAN,cAAM,QAOjB;AA+FD,SAAS,eAAe;IACtB,OAAO;QACL,SAAS,EAAE,CAAC;QACZ,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,SAAS;QACpB,IAAI,EAAE,SAAS;QACf,iBAAiB,EAAE,EAAE;KACtB,CAAC;AACJ,CAAC;AAEY,QAAA,KAAK,GAAG;IACnB,MAAM,CAAC,OAAc,EAAE,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAC7D,IAAI,OAAO,CAAC,SAAS,KAAK,CAAC,EAAE;YAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC5C;QACD,IAAI,OAAO,CAAC,OAAO,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC3C;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE;YACzB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC1C;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE;YACzB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC1C;QACD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACxD,2BAAmB,CAAC,MAAM,CACxB,EAAE,GAAG,EAAE,GAAU,EAAE,KAAK,EAAE,EAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CACzB,CAAC,MAAM,EAAE,CAAC;QACb,CAAC,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE;YACpC,wBAAgB,CAAC,MAAM,CACrB,OAAO,CAAC,UAAU,EAClB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CACzB,CAAC,MAAM,EAAE,CAAC;SACZ;QACD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE;YACnC,uBAAe,CAAC,MAAM,CACpB,OAAO,CAAC,SAAS,EACjB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CACzB,CAAC,MAAM,EAAE,CAAC;SACZ;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;YAC9B,kBAAU,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SACrE;QACD,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,iBAAiB,EAAE;YACzC,8BAAsB,CAAC,MAAM,CAAC,CAAE,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SACxE;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,EAAU,CAAC,CAAC;oBAC1D,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACjC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACjC,MAAM;gBACR,KAAK,CAAC;oBACJ,MAAM,MAAM,GAAG,2BAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBACnE,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;wBAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;qBAC7C;oBACD,MAAM;gBACR,KAAK,EAAE;oBACL,OAAO,CAAC,UAAU,GAAG,wBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBACtE,MAAM;gBACR,KAAK,EAAE;oBACL,OAAO,CAAC,SAAS,GAAG,uBAAe,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBACpE,MAAM;gBACR,KAAK,GAAG;oBACN,OAAO,CAAC,IAAI,GAAG,kBAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC1D,MAAM;gBACR,KAAK,GAAG;oBACN,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAC5B,8BAAsB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CACvD,CAAC;oBACF,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAA0B;;QACpC,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;QAClC,OAAO,CAAC,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,CAAC,CAAC;QAC1C,OAAO,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC;QACvC,OAAO,CAAC,MAAM,GAAG,MAAA,MAAM,CAAC,MAAM,mCAAI,EAAE,CAAC;QACrC,OAAO,CAAC,MAAM,GAAG,MAAA,MAAM,CAAC,MAAM,mCAAI,EAAE,CAAC;QACrC,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,MAAA,MAAM,CAAC,QAAQ,mCAAI,EAAE,CAAC,CAAC,MAAM,CAE5D,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACvB,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;aAC1B;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,OAAO,CAAC,UAAU;YAChB,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI;gBAC3D,CAAC,CAAC,wBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC;gBACjD,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,CAAC,SAAS;YACf,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI;gBACzD,CAAC,CAAC,uBAAe,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC/C,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,CAAC,IAAI;YACV,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI;gBAC/C,CAAC,CAAC,kBAAU,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;gBACrC,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,CAAC,iBAAiB;YACvB,CAAA,MAAA,MAAM,CAAC,iBAAiB,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAClC,8BAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,CACtC,KAAI,EAAE,CAAC;QACV,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,0BAA0B;IACjC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACxB,CAAC;AAEY,QAAA,gBAAgB,GAAG;IAC9B,MAAM,CACJ,OAAyB,EACzB,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE;YAC9B,uCAA+B,CAAC,MAAM,CACpC,CAAE,EACF,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CACzB,CAAC,MAAM,EAAE,CAAC;SACZ;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,0BAA0B,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB,uCAA+B,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAChE,CAAC;oBACF,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAAqC;;QAC/C,MAAM,OAAO,GAAG,0BAA0B,EAAE,CAAC;QAC7C,OAAO,CAAC,MAAM;YACZ,CAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACvB,uCAA+B,CAAC,WAAW,CAAC,CAAC,CAAC,CAC/C,KAAI,EAAE,CAAC;QACV,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,yCAAyC;IAChD,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;AACxC,CAAC;AAEY,QAAA,+BAA+B,GAAG;IAC7C,MAAM,CACJ,OAAwC,EACxC,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,KAAK,KAAK,EAAE,EAAE;YACxB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACzC;QACD,IAAI,OAAO,CAAC,WAAW,KAAK,EAAE,EAAE;YAC9B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SAC/C;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CACJ,KAA8B,EAC9B,MAAe;QAEf,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,yCAAyC,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAChC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACtC,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CACT,MAAoD;;QAEpD,MAAM,OAAO,GAAG,yCAAyC,EAAE,CAAC;QAC5D,OAAO,CAAC,KAAK,GAAG,MAAA,MAAM,CAAC,KAAK,mCAAI,EAAE,CAAC;QACnC,OAAO,CAAC,WAAW,GAAG,MAAA,MAAM,CAAC,WAAW,mCAAI,EAAE,CAAC;QAC/C,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,oBAAoB;IAC3B,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACvB,CAAC;AAEY,QAAA,UAAU,GAAG;IACxB,MAAM,CACJ,OAAmB,EACnB,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE;YAC7B,uBAAe,CAAC,MAAM,CAAC,CAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAC/D;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAe,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBACpE,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAA+B;;QACzC,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK;YACX,CAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAI,EAAE,CAAC;QACjE,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,yBAAyB;IAChC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AACtC,CAAC;AAEY,QAAA,eAAe,GAAG;IAC7B,MAAM,CACJ,OAAwB,EACxB,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,WAAW,KAAK,EAAE,EAAE;YAC9B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SAC/C;QACD,IAAI,OAAO,CAAC,GAAG,KAAK,EAAE,EAAE;YACtB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SACvC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,yBAAyB,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACtC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAC9B,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAAoC;;QAC9C,MAAM,OAAO,GAAG,yBAAyB,EAAE,CAAC;QAC5C,OAAO,CAAC,WAAW,GAAG,MAAA,MAAM,CAAC,WAAW,mCAAI,EAAE,CAAC;QAC/C,OAAO,CAAC,GAAG,GAAG,MAAA,MAAM,CAAC,GAAG,mCAAI,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,yBAAyB;IAChC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACxC,CAAC;AAEY,QAAA,eAAe,GAAG;IAC7B,MAAM,CACJ,OAAwB,EACxB,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE;YAClC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAE,CAAC,CAAC;SAC9B;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE;YACzB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC1C;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,yBAAyB,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBACzC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACjC,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAAoC;;QAC9C,MAAM,OAAO,GAAG,yBAAyB,EAAE,CAAC;QAC5C,OAAO,CAAC,UAAU,GAAG,CAAA,MAAA,MAAM,CAAC,UAAU,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAI,EAAE,CAAC;QAC5D,OAAO,CAAC,MAAM,GAAG,MAAA,MAAM,CAAC,MAAM,mCAAI,EAAE,CAAC;QACrC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,gCAAgC;IACvC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACrC,CAAC;AAEY,QAAA,sBAAsB,GAAG;IACpC,MAAM,CACJ,OAA+B,EAC/B,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE;YACzB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC1C;QACD,IAAI,OAAO,CAAC,OAAO,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC3C;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CACJ,KAA8B,EAC9B,MAAe;QAEf,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,gCAAgC,EAAE,CAAC;QACnD,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACjC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClC,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CACT,MAA2C;;QAE3C,MAAM,OAAO,GAAG,gCAAgC,EAAE,CAAC;QACnD,OAAO,CAAC,MAAM,GAAG,MAAA,MAAM,CAAC,MAAM,mCAAI,EAAE,CAAC;QACrC,OAAO,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC;QACvC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,6BAA6B;IACpC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAChC,CAAC;AAEY,QAAA,mBAAmB,GAAG;IACjC,MAAM,CACJ,OAA4B,EAC5B,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,GAAG,KAAK,EAAE,EAAE;YACtB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SACvC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,EAAE,EAAE;YACxB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACzC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,6BAA6B,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAC9B,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAChC,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAAwC;;QAClD,MAAM,OAAO,GAAG,6BAA6B,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,GAAG,MAAA,MAAM,CAAC,GAAG,mCAAI,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,GAAG,MAAA,MAAM,CAAC,KAAK,mCAAI,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,gBAAgB;IACvB,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACjD,CAAC;AAEY,QAAA,MAAM,GAAG;IACpB,MAAM,CACJ,OAAe,EACf,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE;YACrB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SACtC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,EAAE,EAAE;YACxB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACzC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;YAC/B,cAAK,CAAC,MAAM,CACV,cAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EACzB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CACzB,CAAC,MAAM,EAAE,CAAC;SACZ;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAC7B,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAChC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,KAAK,GAAG,cAAK,CAAC,MAAM,CAAC,cAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBACpE,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAA2B;;QACrC,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACnC,OAAO,CAAC,EAAE,GAAG,MAAA,MAAM,CAAC,EAAE,mCAAI,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,GAAG,MAAA,MAAM,CAAC,KAAK,mCAAI,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,GAAG,MAAA,MAAM,CAAC,KAAK,mCAAI,SAAS,CAAC;QAC1C,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,qBAAqB;IAC5B,OAAO;QACL,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,EAAE;QACV,aAAa,EAAE,KAAK;KACrB,CAAC;AACJ,CAAC;AAEY,QAAA,WAAW,GAAG;IACzB,MAAM,CACJ,OAAoB,EACpB,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE;YAC5B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAE,CAAC,CAAC;SAC9B;QACD,IAAI,OAAO,CAAC,OAAO,KAAK,CAAC,EAAE;YACzB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC1C;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAC3C;QACD,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE;YAC9B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAE,CAAC,CAAC;SAC9B;QACD,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI,EAAE;YAClC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SAC/C;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBACnC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;oBAClC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBACrC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;oBACtC,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAAgC;;QAC1C,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;QACxC,OAAO,CAAC,IAAI,GAAG,CAAA,MAAA,MAAM,CAAC,IAAI,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAI,EAAE,CAAC;QAChD,OAAO,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,CAAC,CAAC;QACtC,OAAO,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,CAAC,CAAC;QACxC,OAAO,CAAC,MAAM,GAAG,CAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAI,EAAE,CAAC;QACpD,OAAO,CAAC,aAAa,GAAG,MAAA,MAAM,CAAC,aAAa,mCAAI,KAAK,CAAC;QACtD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,cAAc;IACrB,OAAO;QACL,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,CAAC;QACT,YAAY,EAAE,EAAE;QAChB,cAAc,EAAE,EAAE;QAClB,eAAe,EAAE,EAAE;QACnB,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,EAAE;KAChB,CAAC;AACJ,CAAC;AAEY,QAAA,IAAI,GAAG;IAClB,MAAM,CAAC,OAAa,EAAE,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAC5D,IAAI,OAAO,CAAC,YAAY,KAAK,EAAE,EAAE;YAC/B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;SAChD;QACD,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE;YAC/B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACjB;QACD,MAAM,CAAC,MAAM,EAAE,CAAC;QAChB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SACzC;QACD,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,YAAY,EAAE;YACpC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAE,CAAC,CAAC;SAC9B;QACD,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,cAAc,EAAE;YACtC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAE,CAAC,CAAC;SAC9B;QACD,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,eAAe,EAAE;YACvC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAE,CAAC,CAAC;SAC9B;QACD,IAAI,OAAO,CAAC,UAAU,KAAK,EAAE,EAAE;YAC7B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SAC9C;QACD,IAAI,OAAO,CAAC,WAAW,KAAK,EAAE,EAAE;YAC9B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SAC/C;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACvC,MAAM;gBACR,KAAK,CAAC;oBACJ,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;wBACnB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC;wBAC1C,OAAO,MAAM,CAAC,GAAG,GAAG,IAAI,EAAE;4BACxB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAS,CAAC,CAAC;yBAC7C;qBACF;yBAAM;wBACL,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAS,CAAC,CAAC;qBAC7C;oBACD,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,EAAS,CAAC;oBACvC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC3C,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC7C,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC9C,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACrC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACtC,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAAyB;;QACnC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;QACjC,OAAO,CAAC,YAAY,GAAG,MAAA,MAAM,CAAC,YAAY,mCAAI,EAAE,CAAC;QACjD,OAAO,CAAC,OAAO,GAAG,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAI,EAAE,CAAC;QACtD,OAAO,CAAC,MAAM,GAAG,MAAA,MAAM,CAAC,MAAM,mCAAI,CAAC,CAAC;QACpC,OAAO,CAAC,YAAY,GAAG,CAAA,MAAA,MAAM,CAAC,YAAY,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAI,EAAE,CAAC;QAChE,OAAO,CAAC,cAAc,GAAG,CAAA,MAAA,MAAM,CAAC,cAAc,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAI,EAAE,CAAC;QACpE,OAAO,CAAC,eAAe,GAAG,CAAA,MAAA,MAAM,CAAC,eAAe,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAI,EAAE,CAAC;QACtE,OAAO,CAAC,UAAU,GAAG,MAAA,MAAM,CAAC,UAAU,mCAAI,EAAE,CAAC;QAC7C,OAAO,CAAC,WAAW,GAAG,MAAA,MAAM,CAAC,WAAW,mCAAI,EAAE,CAAC;QAC/C,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,sBAAsB;IAC7B,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AAChD,CAAC;AAEY,QAAA,YAAY,GAAG;IAC1B,MAAM,CACJ,OAAqB,EACrB,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,OAAO,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC3C;QACD,IAAI,OAAO,CAAC,OAAO,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC3C;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,EAAE,EAAE;YACvB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACxC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;QACzC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAC/B,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAAiC;;QAC3C,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;QACzC,OAAO,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC;QACvC,OAAO,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC;QACvC,OAAO,CAAC,IAAI,GAAG,MAAA,MAAM,CAAC,IAAI,mCAAI,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,iBAAiB;IACxB,OAAO;QACL,aAAa,EAAE,EAAE;QACjB,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,EAAE;QACb,MAAM,EAAE,EAAE;QACV,WAAW,EAAE,CAAC;KACf,CAAC;AACJ,CAAC;AAEY,QAAA,OAAO,GAAG;IACrB,MAAM,CACJ,OAAgB,EAChB,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,aAAa,KAAK,EAAE,EAAE;YAChC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SACjD;QACD,IAAI,OAAO,CAAC,UAAU,KAAK,EAAE,EAAE;YAC7B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SAC9C;QACD,IAAI,OAAO,CAAC,SAAS,KAAK,EAAE,EAAE;YAC5B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC7C;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE;YACzB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC1C;QACD,IAAI,OAAO,CAAC,WAAW,KAAK,CAAC,EAAE;YAC7B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SAC9C;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;QACpC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACxC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACrC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACpC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACjC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;oBACrC,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAA4B;;QACtC,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;QACpC,OAAO,CAAC,aAAa,GAAG,MAAA,MAAM,CAAC,aAAa,mCAAI,EAAE,CAAC;QACnD,OAAO,CAAC,UAAU,GAAG,MAAA,MAAM,CAAC,UAAU,mCAAI,EAAE,CAAC;QAC7C,OAAO,CAAC,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,EAAE,CAAC;QAC3C,OAAO,CAAC,MAAM,GAAG,MAAA,MAAM,CAAC,MAAM,mCAAI,EAAE,CAAC;QACrC,OAAO,CAAC,WAAW,GAAG,MAAA,MAAM,CAAC,WAAW,mCAAI,CAAC,CAAC;QAC9C,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAKF,IAAI,UAAU,GAAQ,CAAC,GAAG,EAAE;IAC1B,IAAI,OAAO,UAAU,KAAK,WAAW;QAAE,OAAO,UAAU,CAAC;IACzD,IAAI,OAAO,IAAI,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,MAAM,CAAC;IACjD,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,MAAM,CAAC;IACjD,MAAM,gCAAgC,CAAC;AACzC,CAAC,CAAC,EAAE,CAAC;AAqBL,SAAS,YAAY,CAAC,IAAU;IAC9B,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;QACpC,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;KAC5E;IACD,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;AACzB,CAAC;AAED,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,cAAI,EAAE;IAC1B,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,cAAW,CAAC;IAC5B,GAAG,CAAC,SAAS,EAAE,CAAC;CACjB"}
\ No newline at end of file
diff --git a/clients/delivery/delivery.d.ts b/clients/delivery/delivery.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a5fedd27855e847145c0bca76b7c739c4e748404
--- /dev/null
+++ b/clients/delivery/delivery.d.ts
@@ -0,0 +1,255 @@
+import { Environment } from "../environments/environments";
+import { Collection } from "../collections/collections";
+import { GetPublishedOptions, Item, Filter, FindPublishedOptions } from "../items/items";
+import { Locale } from "../locales/locales";
+import * as _m0 from "protobufjs/minimal";
+export interface ListLocalesRequest {
+    spaceId: string;
+}
+export interface ListLocalesResponse {
+    locales: Locale[];
+}
+export interface GetEnvironmentRequest {
+    spaceId: string;
+    envId: string;
+}
+export interface GetEnvironmentResponse {
+    env?: Environment;
+}
+export interface ListEnvironmentsRequest {
+    spaceId: string;
+}
+export interface ListEnvironmentsResponse {
+    envs: Environment[];
+}
+export interface GetCollectionRequest {
+    spaceId: string;
+    envId: string;
+    collectionId: string;
+}
+export interface GetCollectionResponse {
+    collection?: Collection;
+}
+export interface ListCollectionsRequest {
+    spaceId: string;
+    envId: string;
+}
+export interface ListCollectionsResponse {
+    collections: Collection[];
+}
+export interface GetItemRequest {
+    spaceId: string;
+    envId: string;
+    collectionId: string;
+    itemId: string;
+    options?: GetPublishedOptions;
+}
+export interface GetItemResponse {
+    item?: Item;
+}
+export interface FindItemsRequest {
+    spaceId: string;
+    envId: string;
+    collectionId: string;
+    filter?: Filter;
+    options?: FindPublishedOptions;
+}
+export interface FindItemsResponse {
+    items: Item[];
+    total: number;
+}
+export declare const ListLocalesRequest: {
+    encode(message: ListLocalesRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListLocalesRequest;
+    fromPartial(object: DeepPartial<ListLocalesRequest>): ListLocalesRequest;
+};
+export declare const ListLocalesResponse: {
+    encode(message: ListLocalesResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListLocalesResponse;
+    fromPartial(object: DeepPartial<ListLocalesResponse>): ListLocalesResponse;
+};
+export declare const GetEnvironmentRequest: {
+    encode(message: GetEnvironmentRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetEnvironmentRequest;
+    fromPartial(object: DeepPartial<GetEnvironmentRequest>): GetEnvironmentRequest;
+};
+export declare const GetEnvironmentResponse: {
+    encode(message: GetEnvironmentResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetEnvironmentResponse;
+    fromPartial(object: DeepPartial<GetEnvironmentResponse>): GetEnvironmentResponse;
+};
+export declare const ListEnvironmentsRequest: {
+    encode(message: ListEnvironmentsRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListEnvironmentsRequest;
+    fromPartial(object: DeepPartial<ListEnvironmentsRequest>): ListEnvironmentsRequest;
+};
+export declare const ListEnvironmentsResponse: {
+    encode(message: ListEnvironmentsResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListEnvironmentsResponse;
+    fromPartial(object: DeepPartial<ListEnvironmentsResponse>): ListEnvironmentsResponse;
+};
+export declare const GetCollectionRequest: {
+    encode(message: GetCollectionRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetCollectionRequest;
+    fromPartial(object: DeepPartial<GetCollectionRequest>): GetCollectionRequest;
+};
+export declare const GetCollectionResponse: {
+    encode(message: GetCollectionResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetCollectionResponse;
+    fromPartial(object: DeepPartial<GetCollectionResponse>): GetCollectionResponse;
+};
+export declare const ListCollectionsRequest: {
+    encode(message: ListCollectionsRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListCollectionsRequest;
+    fromPartial(object: DeepPartial<ListCollectionsRequest>): ListCollectionsRequest;
+};
+export declare const ListCollectionsResponse: {
+    encode(message: ListCollectionsResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListCollectionsResponse;
+    fromPartial(object: DeepPartial<ListCollectionsResponse>): ListCollectionsResponse;
+};
+export declare const GetItemRequest: {
+    encode(message: GetItemRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetItemRequest;
+    fromPartial(object: DeepPartial<GetItemRequest>): GetItemRequest;
+};
+export declare const GetItemResponse: {
+    encode(message: GetItemResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetItemResponse;
+    fromPartial(object: DeepPartial<GetItemResponse>): GetItemResponse;
+};
+export declare const FindItemsRequest: {
+    encode(message: FindItemsRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): FindItemsRequest;
+    fromPartial(object: DeepPartial<FindItemsRequest>): FindItemsRequest;
+};
+export declare const FindItemsResponse: {
+    encode(message: FindItemsResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): FindItemsResponse;
+    fromPartial(object: DeepPartial<FindItemsResponse>): FindItemsResponse;
+};
+export declare type DeliveryDefinition = typeof DeliveryDefinition;
+export declare const DeliveryDefinition: {
+    readonly name: "Delivery";
+    readonly fullName: "delivery.Delivery";
+    readonly methods: {
+        readonly listLocales: {
+            readonly name: "ListLocales";
+            readonly requestType: {
+                encode(message: ListLocalesRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListLocalesRequest;
+                fromPartial(object: DeepPartial<ListLocalesRequest>): ListLocalesRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: ListLocalesResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListLocalesResponse;
+                fromPartial(object: DeepPartial<ListLocalesResponse>): ListLocalesResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly getEnvironment: {
+            readonly name: "GetEnvironment";
+            readonly requestType: {
+                encode(message: GetEnvironmentRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetEnvironmentRequest;
+                fromPartial(object: DeepPartial<GetEnvironmentRequest>): GetEnvironmentRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetEnvironmentResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetEnvironmentResponse;
+                fromPartial(object: DeepPartial<GetEnvironmentResponse>): GetEnvironmentResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly listEnvironments: {
+            readonly name: "ListEnvironments";
+            readonly requestType: {
+                encode(message: ListEnvironmentsRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListEnvironmentsRequest;
+                fromPartial(object: DeepPartial<ListEnvironmentsRequest>): ListEnvironmentsRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: ListEnvironmentsResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListEnvironmentsResponse;
+                fromPartial(object: DeepPartial<ListEnvironmentsResponse>): ListEnvironmentsResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly getCollection: {
+            readonly name: "GetCollection";
+            readonly requestType: {
+                encode(message: GetCollectionRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetCollectionRequest;
+                fromPartial(object: DeepPartial<GetCollectionRequest>): GetCollectionRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetCollectionResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetCollectionResponse;
+                fromPartial(object: DeepPartial<GetCollectionResponse>): GetCollectionResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly listCollections: {
+            readonly name: "ListCollections";
+            readonly requestType: {
+                encode(message: ListCollectionsRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListCollectionsRequest;
+                fromPartial(object: DeepPartial<ListCollectionsRequest>): ListCollectionsRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: ListCollectionsResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListCollectionsResponse;
+                fromPartial(object: DeepPartial<ListCollectionsResponse>): ListCollectionsResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly getItem: {
+            readonly name: "GetItem";
+            readonly requestType: {
+                encode(message: GetItemRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetItemRequest;
+                fromPartial(object: DeepPartial<GetItemRequest>): GetItemRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetItemResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetItemResponse;
+                fromPartial(object: DeepPartial<GetItemResponse>): GetItemResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly findItems: {
+            readonly name: "FindItems";
+            readonly requestType: {
+                encode(message: FindItemsRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): FindItemsRequest;
+                fromPartial(object: DeepPartial<FindItemsRequest>): FindItemsRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: FindItemsResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): FindItemsResponse;
+                fromPartial(object: DeepPartial<FindItemsResponse>): FindItemsResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+    };
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=delivery.d.ts.map
\ No newline at end of file
diff --git a/clients/delivery/delivery.d.ts.map b/clients/delivery/delivery.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..728cae13ea94f7c9d2204c98f34b989d7093aa93
--- /dev/null
+++ b/clients/delivery/delivery.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["delivery.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/delivery/delivery.js b/clients/delivery/delivery.js
new file mode 100644
index 0000000000000000000000000000000000000000..4bdaea23eea04a1a83d2ea9e1a7caf33e90999c2
--- /dev/null
+++ b/clients/delivery/delivery.js
@@ -0,0 +1,690 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.DeliveryDefinition = exports.FindItemsResponse = exports.FindItemsRequest = exports.GetItemResponse = exports.GetItemRequest = exports.ListCollectionsResponse = exports.ListCollectionsRequest = exports.GetCollectionResponse = exports.GetCollectionRequest = exports.ListEnvironmentsResponse = exports.ListEnvironmentsRequest = exports.GetEnvironmentResponse = exports.GetEnvironmentRequest = exports.ListLocalesResponse = exports.ListLocalesRequest = void 0;
+/* eslint-disable */
+const environments_1 = require("../environments/environments");
+const collections_1 = require("../collections/collections");
+const items_1 = require("../items/items");
+const locales_1 = require("../locales/locales");
+const _m0 = __importStar(require("protobufjs/minimal"));
+function createBaseListLocalesRequest() {
+    return { spaceId: "" };
+}
+exports.ListLocalesRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListLocalesRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListLocalesRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseListLocalesResponse() {
+    return { locales: [] };
+}
+exports.ListLocalesResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.locales) {
+            locales_1.Locale.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListLocalesResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.locales.push(locales_1.Locale.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListLocalesResponse();
+        message.locales = ((_a = object.locales) === null || _a === void 0 ? void 0 : _a.map((e) => locales_1.Locale.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseGetEnvironmentRequest() {
+    return { spaceId: "", envId: "" };
+}
+exports.GetEnvironmentRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetEnvironmentRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseGetEnvironmentRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseGetEnvironmentResponse() {
+    return { env: undefined };
+}
+exports.GetEnvironmentResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.env !== undefined) {
+            environments_1.Environment.encode(message.env, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetEnvironmentResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.env = environments_1.Environment.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseGetEnvironmentResponse();
+        message.env =
+            object.env !== undefined && object.env !== null
+                ? environments_1.Environment.fromPartial(object.env)
+                : undefined;
+        return message;
+    },
+};
+function createBaseListEnvironmentsRequest() {
+    return { spaceId: "" };
+}
+exports.ListEnvironmentsRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListEnvironmentsRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListEnvironmentsRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseListEnvironmentsResponse() {
+    return { envs: [] };
+}
+exports.ListEnvironmentsResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.envs) {
+            environments_1.Environment.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListEnvironmentsResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.envs.push(environments_1.Environment.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListEnvironmentsResponse();
+        message.envs = ((_a = object.envs) === null || _a === void 0 ? void 0 : _a.map((e) => environments_1.Environment.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseGetCollectionRequest() {
+    return { spaceId: "", envId: "", collectionId: "" };
+}
+exports.GetCollectionRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        if (message.collectionId !== "") {
+            writer.uint32(26).string(message.collectionId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetCollectionRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                case 3:
+                    message.collectionId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseGetCollectionRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        message.collectionId = (_c = object.collectionId) !== null && _c !== void 0 ? _c : "";
+        return message;
+    },
+};
+function createBaseGetCollectionResponse() {
+    return { collection: undefined };
+}
+exports.GetCollectionResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.collection !== undefined) {
+            collections_1.Collection.encode(message.collection, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetCollectionResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.collection = collections_1.Collection.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseGetCollectionResponse();
+        message.collection =
+            object.collection !== undefined && object.collection !== null
+                ? collections_1.Collection.fromPartial(object.collection)
+                : undefined;
+        return message;
+    },
+};
+function createBaseListCollectionsRequest() {
+    return { spaceId: "", envId: "" };
+}
+exports.ListCollectionsRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListCollectionsRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseListCollectionsRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseListCollectionsResponse() {
+    return { collections: [] };
+}
+exports.ListCollectionsResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.collections) {
+            collections_1.Collection.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListCollectionsResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.collections.push(collections_1.Collection.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListCollectionsResponse();
+        message.collections =
+            ((_a = object.collections) === null || _a === void 0 ? void 0 : _a.map((e) => collections_1.Collection.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseGetItemRequest() {
+    return {
+        spaceId: "",
+        envId: "",
+        collectionId: "",
+        itemId: "",
+        options: undefined,
+    };
+}
+exports.GetItemRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        if (message.collectionId !== "") {
+            writer.uint32(26).string(message.collectionId);
+        }
+        if (message.itemId !== "") {
+            writer.uint32(42).string(message.itemId);
+        }
+        if (message.options !== undefined) {
+            items_1.GetPublishedOptions.encode(message.options, writer.uint32(50).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetItemRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                case 3:
+                    message.collectionId = reader.string();
+                    break;
+                case 5:
+                    message.itemId = reader.string();
+                    break;
+                case 6:
+                    message.options = items_1.GetPublishedOptions.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d;
+        const message = createBaseGetItemRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        message.collectionId = (_c = object.collectionId) !== null && _c !== void 0 ? _c : "";
+        message.itemId = (_d = object.itemId) !== null && _d !== void 0 ? _d : "";
+        message.options =
+            object.options !== undefined && object.options !== null
+                ? items_1.GetPublishedOptions.fromPartial(object.options)
+                : undefined;
+        return message;
+    },
+};
+function createBaseGetItemResponse() {
+    return { item: undefined };
+}
+exports.GetItemResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.item !== undefined) {
+            items_1.Item.encode(message.item, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetItemResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.item = items_1.Item.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseGetItemResponse();
+        message.item =
+            object.item !== undefined && object.item !== null
+                ? items_1.Item.fromPartial(object.item)
+                : undefined;
+        return message;
+    },
+};
+function createBaseFindItemsRequest() {
+    return {
+        spaceId: "",
+        envId: "",
+        collectionId: "",
+        filter: undefined,
+        options: undefined,
+    };
+}
+exports.FindItemsRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        if (message.collectionId !== "") {
+            writer.uint32(26).string(message.collectionId);
+        }
+        if (message.filter !== undefined) {
+            items_1.Filter.encode(message.filter, writer.uint32(42).fork()).ldelim();
+        }
+        if (message.options !== undefined) {
+            items_1.FindPublishedOptions.encode(message.options, writer.uint32(50).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFindItemsRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                case 3:
+                    message.collectionId = reader.string();
+                    break;
+                case 5:
+                    message.filter = items_1.Filter.decode(reader, reader.uint32());
+                    break;
+                case 6:
+                    message.options = items_1.FindPublishedOptions.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseFindItemsRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        message.collectionId = (_c = object.collectionId) !== null && _c !== void 0 ? _c : "";
+        message.filter =
+            object.filter !== undefined && object.filter !== null
+                ? items_1.Filter.fromPartial(object.filter)
+                : undefined;
+        message.options =
+            object.options !== undefined && object.options !== null
+                ? items_1.FindPublishedOptions.fromPartial(object.options)
+                : undefined;
+        return message;
+    },
+};
+function createBaseFindItemsResponse() {
+    return { items: [], total: 0 };
+}
+exports.FindItemsResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.items) {
+            items_1.Item.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        if (message.total !== 0) {
+            writer.uint32(16).int32(message.total);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFindItemsResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.items.push(items_1.Item.decode(reader, reader.uint32()));
+                    break;
+                case 2:
+                    message.total = reader.int32();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseFindItemsResponse();
+        message.items = ((_a = object.items) === null || _a === void 0 ? void 0 : _a.map((e) => items_1.Item.fromPartial(e))) || [];
+        message.total = (_b = object.total) !== null && _b !== void 0 ? _b : 0;
+        return message;
+    },
+};
+exports.DeliveryDefinition = {
+    name: "Delivery",
+    fullName: "delivery.Delivery",
+    methods: {
+        listLocales: {
+            name: "ListLocales",
+            requestType: exports.ListLocalesRequest,
+            requestStream: false,
+            responseType: exports.ListLocalesResponse,
+            responseStream: false,
+            options: {},
+        },
+        getEnvironment: {
+            name: "GetEnvironment",
+            requestType: exports.GetEnvironmentRequest,
+            requestStream: false,
+            responseType: exports.GetEnvironmentResponse,
+            responseStream: false,
+            options: {},
+        },
+        listEnvironments: {
+            name: "ListEnvironments",
+            requestType: exports.ListEnvironmentsRequest,
+            requestStream: false,
+            responseType: exports.ListEnvironmentsResponse,
+            responseStream: false,
+            options: {},
+        },
+        getCollection: {
+            name: "GetCollection",
+            requestType: exports.GetCollectionRequest,
+            requestStream: false,
+            responseType: exports.GetCollectionResponse,
+            responseStream: false,
+            options: {},
+        },
+        listCollections: {
+            name: "ListCollections",
+            requestType: exports.ListCollectionsRequest,
+            requestStream: false,
+            responseType: exports.ListCollectionsResponse,
+            responseStream: false,
+            options: {},
+        },
+        getItem: {
+            name: "GetItem",
+            requestType: exports.GetItemRequest,
+            requestStream: false,
+            responseType: exports.GetItemResponse,
+            responseStream: false,
+            options: {},
+        },
+        findItems: {
+            name: "FindItems",
+            requestType: exports.FindItemsRequest,
+            requestStream: false,
+            responseType: exports.FindItemsResponse,
+            responseStream: false,
+            options: {},
+        },
+    },
+};
+//# sourceMappingURL=delivery.js.map
\ No newline at end of file
diff --git a/clients/delivery/delivery.js.map b/clients/delivery/delivery.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..f6305fd1eb93dcb469810bea810eaa0250dd74a3
--- /dev/null
+++ b/clients/delivery/delivery.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"delivery.js","sourceRoot":"","sources":["delivery.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oBAAoB;AACpB,+DAA2D;AAC3D,4DAAwD;AACxD,0CAKwB;AACxB,gDAA4C;AAC5C,wDAA0C;AAuE1C,SAAS,4BAA4B;IACnC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACzB,CAAC;AAEY,QAAA,kBAAkB,GAAG;IAChC,MAAM,CACJ,OAA2B,EAC3B,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,OAAO,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC3C;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,4BAA4B,EAAE,CAAC;QAC/C,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClC,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAAuC;;QACjD,MAAM,OAAO,GAAG,4BAA4B,EAAE,CAAC;QAC/C,OAAO,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC;QACvC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,6BAA6B;IACpC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACzB,CAAC;AAEY,QAAA,mBAAmB,GAAG;IACjC,MAAM,CACJ,OAA4B,EAC5B,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE;YAC/B,gBAAM,CAAC,MAAM,CAAC,CAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SACtD;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,6BAA6B,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBAC7D,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAAwC;;QAClD,MAAM,OAAO,GAAG,6BAA6B,EAAE,CAAC;QAChD,OAAO,CAAC,OAAO,GAAG,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAI,EAAE,CAAC;QAC1E,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,+BAA+B;IACtC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACpC,CAAC;AAEY,QAAA,qBAAqB,GAAG;IACnC,MAAM,CACJ,OAA8B,EAC9B,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,OAAO,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC3C;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,EAAE,EAAE;YACxB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACzC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CACJ,KAA8B,EAC9B,MAAe;QAEf,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,+BAA+B,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAChC,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CACT,MAA0C;;QAE1C,MAAM,OAAO,GAAG,+BAA+B,EAAE,CAAC;QAClD,OAAO,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,GAAG,MAAA,MAAM,CAAC,KAAK,mCAAI,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,gCAAgC;IACvC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;AAC5B,CAAC;AAEY,QAAA,sBAAsB,GAAG;IACpC,MAAM,CACJ,OAA+B,EAC/B,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE;YAC7B,0BAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SACpE;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CACJ,KAA8B,EAC9B,MAAe;QAEf,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,gCAAgC,EAAE,CAAC;QACnD,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,GAAG,GAAG,0BAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC1D,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CACT,MAA2C;QAE3C,MAAM,OAAO,GAAG,gCAAgC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG;YACT,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI;gBAC7C,CAAC,CAAC,0BAAW,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;gBACrC,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,iCAAiC;IACxC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACzB,CAAC;AAEY,QAAA,uBAAuB,GAAG;IACrC,MAAM,CACJ,OAAgC,EAChC,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,OAAO,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC3C;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CACJ,KAA8B,EAC9B,MAAe;QAEf,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,iCAAiC,EAAE,CAAC;QACpD,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClC,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CACT,MAA4C;;QAE5C,MAAM,OAAO,GAAG,iCAAiC,EAAE,CAAC;QACpD,OAAO,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC;QACvC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,kCAAkC;IACzC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACtB,CAAC;AAEY,QAAA,wBAAwB,GAAG;IACtC,MAAM,CACJ,OAAiC,EACjC,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE;YAC5B,0BAAW,CAAC,MAAM,CAAC,CAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAC3D;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CACJ,KAA8B,EAC9B,MAAe;QAEf,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,kCAAkC,EAAE,CAAC;QACrD,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,0BAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBAC/D,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CACT,MAA6C;;QAE7C,MAAM,OAAO,GAAG,kCAAkC,EAAE,CAAC;QACrD,OAAO,CAAC,IAAI,GAAG,CAAA,MAAA,MAAM,CAAC,IAAI,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,0BAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAI,EAAE,CAAC;QACzE,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,8BAA8B;IACrC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;AACtD,CAAC;AAEY,QAAA,oBAAoB,GAAG;IAClC,MAAM,CACJ,OAA6B,EAC7B,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,OAAO,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC3C;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,EAAE,EAAE;YACxB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACzC;QACD,IAAI,OAAO,CAAC,YAAY,KAAK,EAAE,EAAE;YAC/B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;SAChD;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CACJ,KAA8B,EAC9B,MAAe;QAEf,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,8BAA8B,EAAE,CAAC;QACjD,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAChC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACvC,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAAyC;;QACnD,MAAM,OAAO,GAAG,8BAA8B,EAAE,CAAC;QACjD,OAAO,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,GAAG,MAAA,MAAM,CAAC,KAAK,mCAAI,EAAE,CAAC;QACnC,OAAO,CAAC,YAAY,GAAG,MAAA,MAAM,CAAC,YAAY,mCAAI,EAAE,CAAC;QACjD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,+BAA+B;IACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AACnC,CAAC;AAEY,QAAA,qBAAqB,GAAG;IACnC,MAAM,CACJ,OAA8B,EAC9B,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE;YACpC,wBAAU,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAC1E;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CACJ,KAA8B,EAC9B,MAAe;QAEf,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,+BAA+B,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,UAAU,GAAG,wBAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBAChE,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CACT,MAA0C;QAE1C,MAAM,OAAO,GAAG,+BAA+B,EAAE,CAAC;QAClD,OAAO,CAAC,UAAU;YAChB,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI;gBAC3D,CAAC,CAAC,wBAAU,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC3C,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,gCAAgC;IACvC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACpC,CAAC;AAEY,QAAA,sBAAsB,GAAG;IACpC,MAAM,CACJ,OAA+B,EAC/B,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,OAAO,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC3C;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,EAAE,EAAE;YACxB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACzC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CACJ,KAA8B,EAC9B,MAAe;QAEf,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,gCAAgC,EAAE,CAAC;QACnD,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAChC,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CACT,MAA2C;;QAE3C,MAAM,OAAO,GAAG,gCAAgC,EAAE,CAAC;QACnD,OAAO,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,GAAG,MAAA,MAAM,CAAC,KAAK,mCAAI,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,iCAAiC;IACxC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;AAC7B,CAAC;AAEY,QAAA,uBAAuB,GAAG;IACrC,MAAM,CACJ,OAAgC,EAChC,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE;YACnC,wBAAU,CAAC,MAAM,CAAC,CAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAC1D;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CACJ,KAA8B,EAC9B,MAAe;QAEf,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,iCAAiC,EAAE,CAAC;QACpD,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,wBAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBACrE,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CACT,MAA4C;;QAE5C,MAAM,OAAO,GAAG,iCAAiC,EAAE,CAAC;QACpD,OAAO,CAAC,WAAW;YACjB,CAAA,MAAA,MAAM,CAAC,WAAW,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,wBAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAI,EAAE,CAAC;QAClE,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,wBAAwB;IAC/B,OAAO;QACL,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE;QACT,YAAY,EAAE,EAAE;QAChB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,SAAS;KACnB,CAAC;AACJ,CAAC;AAEY,QAAA,cAAc,GAAG;IAC5B,MAAM,CACJ,OAAuB,EACvB,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,OAAO,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC3C;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,EAAE,EAAE;YACxB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACzC;QACD,IAAI,OAAO,CAAC,YAAY,KAAK,EAAE,EAAE;YAC/B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;SAChD;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE;YACzB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC1C;QACD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE;YACjC,2BAAmB,CAAC,MAAM,CACxB,OAAO,CAAC,OAAO,EACf,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CACzB,CAAC,MAAM,EAAE,CAAC;SACZ;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,wBAAwB,EAAE,CAAC;QAC3C,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAChC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACvC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACjC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,GAAG,2BAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBACtE,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAAmC;;QAC7C,MAAM,OAAO,GAAG,wBAAwB,EAAE,CAAC;QAC3C,OAAO,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,GAAG,MAAA,MAAM,CAAC,KAAK,mCAAI,EAAE,CAAC;QACnC,OAAO,CAAC,YAAY,GAAG,MAAA,MAAM,CAAC,YAAY,mCAAI,EAAE,CAAC;QACjD,OAAO,CAAC,MAAM,GAAG,MAAA,MAAM,CAAC,MAAM,mCAAI,EAAE,CAAC;QACrC,OAAO,CAAC,OAAO;YACb,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI;gBACrD,CAAC,CAAC,2BAAmB,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;gBACjD,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,yBAAyB;IAChC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC7B,CAAC;AAEY,QAAA,eAAe,GAAG;IAC7B,MAAM,CACJ,OAAwB,EACxB,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;YAC9B,YAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAC9D;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,yBAAyB,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,IAAI,GAAG,YAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBACpD,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAAoC;QAC9C,MAAM,OAAO,GAAG,yBAAyB,EAAE,CAAC;QAC5C,OAAO,CAAC,IAAI;YACV,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI;gBAC/C,CAAC,CAAC,YAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC/B,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,0BAA0B;IACjC,OAAO;QACL,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE;QACT,YAAY,EAAE,EAAE;QAChB,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,SAAS;KACnB,CAAC;AACJ,CAAC;AAEY,QAAA,gBAAgB,GAAG;IAC9B,MAAM,CACJ,OAAyB,EACzB,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,OAAO,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC3C;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,EAAE,EAAE;YACxB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACzC;QACD,IAAI,OAAO,CAAC,YAAY,KAAK,EAAE,EAAE;YAC/B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;SAChD;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE;YAChC,cAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAClE;QACD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE;YACjC,4BAAoB,CAAC,MAAM,CACzB,OAAO,CAAC,OAAO,EACf,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CACzB,CAAC,MAAM,EAAE,CAAC;SACZ;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,0BAA0B,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAChC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACvC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,MAAM,GAAG,cAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBACxD,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,GAAG,4BAAoB,CAAC,MAAM,CAC3C,MAAM,EACN,MAAM,CAAC,MAAM,EAAE,CAChB,CAAC;oBACF,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAAqC;;QAC/C,MAAM,OAAO,GAAG,0BAA0B,EAAE,CAAC;QAC7C,OAAO,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,GAAG,MAAA,MAAM,CAAC,KAAK,mCAAI,EAAE,CAAC;QACnC,OAAO,CAAC,YAAY,GAAG,MAAA,MAAM,CAAC,YAAY,mCAAI,EAAE,CAAC;QACjD,OAAO,CAAC,MAAM;YACZ,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI;gBACnD,CAAC,CAAC,cAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;gBACnC,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,CAAC,OAAO;YACb,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI;gBACrD,CAAC,CAAC,4BAAoB,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;gBAClD,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,2BAA2B;IAClC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACjC,CAAC;AAEY,QAAA,iBAAiB,GAAG;IAC/B,MAAM,CACJ,OAA0B,EAC1B,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE;YAC7B,YAAI,CAAC,MAAM,CAAC,CAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SACpD;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC,EAAE;YACvB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACxC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,2BAA2B,EAAE,CAAC;QAC9C,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,YAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBACzD,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC/B,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAAsC;;QAChD,MAAM,OAAO,GAAG,2BAA2B,EAAE,CAAC;QAC9C,OAAO,CAAC,KAAK,GAAG,CAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAI,EAAE,CAAC;QACpE,OAAO,CAAC,KAAK,GAAG,MAAA,MAAM,CAAC,KAAK,mCAAI,CAAC,CAAC;QAClC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAGW,QAAA,kBAAkB,GAAG;IAChC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,mBAAmB;IAC7B,OAAO,EAAE;QACP,WAAW,EAAE;YACX,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,0BAAkB;YAC/B,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,2BAAmB;YACjC,cAAc,EAAE,KAAK;YACrB,OAAO,EAAE,EAAE;SACZ;QACD,cAAc,EAAE;YACd,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,6BAAqB;YAClC,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,8BAAsB;YACpC,cAAc,EAAE,KAAK;YACrB,OAAO,EAAE,EAAE;SACZ;QACD,gBAAgB,EAAE;YAChB,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,+BAAuB;YACpC,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,gCAAwB;YACtC,cAAc,EAAE,KAAK;YACrB,OAAO,EAAE,EAAE;SACZ;QACD,aAAa,EAAE;YACb,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,4BAAoB;YACjC,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,6BAAqB;YACnC,cAAc,EAAE,KAAK;YACrB,OAAO,EAAE,EAAE;SACZ;QACD,eAAe,EAAE;YACf,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,8BAAsB;YACnC,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,+BAAuB;YACrC,cAAc,EAAE,KAAK;YACrB,OAAO,EAAE,EAAE;SACZ;QACD,OAAO,EAAE;YACP,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,sBAAc;YAC3B,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,uBAAe;YAC7B,cAAc,EAAE,KAAK;YACrB,OAAO,EAAE,EAAE;SACZ;QACD,SAAS,EAAE;YACT,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,wBAAgB;YAC7B,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,yBAAiB;YAC/B,cAAc,EAAE,KAAK;YACrB,OAAO,EAAE,EAAE;SACZ;KACF;CACO,CAAC"}
\ No newline at end of file
diff --git a/clients/environments/environments.d.ts b/clients/environments/environments.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..24a0be78906aa2a7cf96a5c337501e6240739d3c
--- /dev/null
+++ b/clients/environments/environments.d.ts
@@ -0,0 +1,244 @@
+import { Empty } from "../google/protobuf/empty";
+import * as _m0 from "protobufjs/minimal";
+export interface Environment {
+    id: string;
+    spaceId: string;
+    description: string;
+    state: Environment_State;
+    stateInfo: string;
+    aliases: string[];
+    config?: Config;
+}
+export declare enum Environment_State {
+    UNKNOWN = 0,
+    NEW = 1,
+    PREPARING = 2,
+    READY = 3,
+    ERROR = 4,
+    UNRECOGNIZED = -1
+}
+export interface Config {
+    sourceId: string;
+    features: string[];
+}
+export interface CreateRequest {
+    env?: Environment;
+}
+export interface CreateResponse {
+    created?: Environment;
+}
+export interface ListRequest {
+    spaceId: string;
+}
+export interface ListResponse {
+    envs: Environment[];
+}
+export interface GetRequest {
+    spaceId: string;
+    envId: string;
+}
+export interface GetResponse {
+    env?: Environment;
+}
+export interface UpdateRequest {
+    env?: Environment;
+}
+export interface SetAliasRequest {
+    spaceId: string;
+    envId: string;
+    alias: string;
+}
+export interface RemoveAliasRequest {
+    spaceId: string;
+    envId: string;
+    alias: string;
+}
+export interface DeleteRequest {
+    spaceId: string;
+    envId: string;
+}
+export declare const Environment: {
+    encode(message: Environment, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Environment;
+    fromPartial(object: DeepPartial<Environment>): Environment;
+};
+export declare const Config: {
+    encode(message: Config, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Config;
+    fromPartial(object: DeepPartial<Config>): Config;
+};
+export declare const CreateRequest: {
+    encode(message: CreateRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CreateRequest;
+    fromPartial(object: DeepPartial<CreateRequest>): CreateRequest;
+};
+export declare const CreateResponse: {
+    encode(message: CreateResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CreateResponse;
+    fromPartial(object: DeepPartial<CreateResponse>): CreateResponse;
+};
+export declare const ListRequest: {
+    encode(message: ListRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListRequest;
+    fromPartial(object: DeepPartial<ListRequest>): ListRequest;
+};
+export declare const ListResponse: {
+    encode(message: ListResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListResponse;
+    fromPartial(object: DeepPartial<ListResponse>): ListResponse;
+};
+export declare const GetRequest: {
+    encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+    fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+};
+export declare const GetResponse: {
+    encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+    fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+};
+export declare const UpdateRequest: {
+    encode(message: UpdateRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateRequest;
+    fromPartial(object: DeepPartial<UpdateRequest>): UpdateRequest;
+};
+export declare const SetAliasRequest: {
+    encode(message: SetAliasRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): SetAliasRequest;
+    fromPartial(object: DeepPartial<SetAliasRequest>): SetAliasRequest;
+};
+export declare const RemoveAliasRequest: {
+    encode(message: RemoveAliasRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): RemoveAliasRequest;
+    fromPartial(object: DeepPartial<RemoveAliasRequest>): RemoveAliasRequest;
+};
+export declare const DeleteRequest: {
+    encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
+    fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
+};
+export declare type EnvironmentsDefinition = typeof EnvironmentsDefinition;
+export declare const EnvironmentsDefinition: {
+    readonly name: "Environments";
+    readonly fullName: "content.environments.Environments";
+    readonly methods: {
+        readonly create: {
+            readonly name: "Create";
+            readonly requestType: {
+                encode(message: CreateRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CreateRequest;
+                fromPartial(object: DeepPartial<CreateRequest>): CreateRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: CreateResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CreateResponse;
+                fromPartial(object: DeepPartial<CreateResponse>): CreateResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly get: {
+            readonly name: "Get";
+            readonly requestType: {
+                encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+                fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+                fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly list: {
+            readonly name: "List";
+            readonly requestType: {
+                encode(message: ListRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListRequest;
+                fromPartial(object: DeepPartial<ListRequest>): ListRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: ListResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListResponse;
+                fromPartial(object: DeepPartial<ListResponse>): ListResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly update: {
+            readonly name: "Update";
+            readonly requestType: {
+                encode(message: UpdateRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): UpdateRequest;
+                fromPartial(object: DeepPartial<UpdateRequest>): UpdateRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly setAlias: {
+            readonly name: "SetAlias";
+            readonly requestType: {
+                encode(message: SetAliasRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): SetAliasRequest;
+                fromPartial(object: DeepPartial<SetAliasRequest>): SetAliasRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly removeAlias: {
+            readonly name: "RemoveAlias";
+            readonly requestType: {
+                encode(message: RemoveAliasRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): RemoveAliasRequest;
+                fromPartial(object: DeepPartial<RemoveAliasRequest>): RemoveAliasRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly delete: {
+            readonly name: "Delete";
+            readonly requestType: {
+                encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
+                fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+    };
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=environments.d.ts.map
\ No newline at end of file
diff --git a/clients/environments/environments.d.ts.map b/clients/environments/environments.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..9552573e143e4218158fb3cc133eaca5bdc9aa59
--- /dev/null
+++ b/clients/environments/environments.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["environments.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/environments/environments.js b/clients/environments/environments.js
new file mode 100644
index 0000000000000000000000000000000000000000..dd37d07e85e8ede7e6af622d9a3954273b77278d
--- /dev/null
+++ b/clients/environments/environments.js
@@ -0,0 +1,619 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.EnvironmentsDefinition = exports.DeleteRequest = exports.RemoveAliasRequest = exports.SetAliasRequest = exports.UpdateRequest = exports.GetResponse = exports.GetRequest = exports.ListResponse = exports.ListRequest = exports.CreateResponse = exports.CreateRequest = exports.Config = exports.Environment = exports.Environment_State = void 0;
+/* eslint-disable */
+const empty_1 = require("../google/protobuf/empty");
+const _m0 = __importStar(require("protobufjs/minimal"));
+var Environment_State;
+(function (Environment_State) {
+    Environment_State[Environment_State["UNKNOWN"] = 0] = "UNKNOWN";
+    Environment_State[Environment_State["NEW"] = 1] = "NEW";
+    Environment_State[Environment_State["PREPARING"] = 2] = "PREPARING";
+    Environment_State[Environment_State["READY"] = 3] = "READY";
+    Environment_State[Environment_State["ERROR"] = 4] = "ERROR";
+    Environment_State[Environment_State["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
+})(Environment_State = exports.Environment_State || (exports.Environment_State = {}));
+function createBaseEnvironment() {
+    return {
+        id: "",
+        spaceId: "",
+        description: "",
+        state: 0,
+        stateInfo: "",
+        aliases: [],
+        config: undefined,
+    };
+}
+exports.Environment = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.id !== "") {
+            writer.uint32(10).string(message.id);
+        }
+        if (message.spaceId !== "") {
+            writer.uint32(18).string(message.spaceId);
+        }
+        if (message.description !== "") {
+            writer.uint32(26).string(message.description);
+        }
+        if (message.state !== 0) {
+            writer.uint32(32).int32(message.state);
+        }
+        if (message.stateInfo !== "") {
+            writer.uint32(42).string(message.stateInfo);
+        }
+        for (const v of message.aliases) {
+            writer.uint32(50).string(v);
+        }
+        if (message.config !== undefined) {
+            exports.Config.encode(message.config, writer.uint32(82).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseEnvironment();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.id = reader.string();
+                    break;
+                case 2:
+                    message.spaceId = reader.string();
+                    break;
+                case 3:
+                    message.description = reader.string();
+                    break;
+                case 4:
+                    message.state = reader.int32();
+                    break;
+                case 5:
+                    message.stateInfo = reader.string();
+                    break;
+                case 6:
+                    message.aliases.push(reader.string());
+                    break;
+                case 10:
+                    message.config = exports.Config.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e, _f;
+        const message = createBaseEnvironment();
+        message.id = (_a = object.id) !== null && _a !== void 0 ? _a : "";
+        message.spaceId = (_b = object.spaceId) !== null && _b !== void 0 ? _b : "";
+        message.description = (_c = object.description) !== null && _c !== void 0 ? _c : "";
+        message.state = (_d = object.state) !== null && _d !== void 0 ? _d : 0;
+        message.stateInfo = (_e = object.stateInfo) !== null && _e !== void 0 ? _e : "";
+        message.aliases = ((_f = object.aliases) === null || _f === void 0 ? void 0 : _f.map((e) => e)) || [];
+        message.config =
+            object.config !== undefined && object.config !== null
+                ? exports.Config.fromPartial(object.config)
+                : undefined;
+        return message;
+    },
+};
+function createBaseConfig() {
+    return { sourceId: "", features: [] };
+}
+exports.Config = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.sourceId !== "") {
+            writer.uint32(10).string(message.sourceId);
+        }
+        for (const v of message.features) {
+            writer.uint32(18).string(v);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseConfig();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.sourceId = reader.string();
+                    break;
+                case 2:
+                    message.features.push(reader.string());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseConfig();
+        message.sourceId = (_a = object.sourceId) !== null && _a !== void 0 ? _a : "";
+        message.features = ((_b = object.features) === null || _b === void 0 ? void 0 : _b.map((e) => e)) || [];
+        return message;
+    },
+};
+function createBaseCreateRequest() {
+    return { env: undefined };
+}
+exports.CreateRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.env !== undefined) {
+            exports.Environment.encode(message.env, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCreateRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.env = exports.Environment.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCreateRequest();
+        message.env =
+            object.env !== undefined && object.env !== null
+                ? exports.Environment.fromPartial(object.env)
+                : undefined;
+        return message;
+    },
+};
+function createBaseCreateResponse() {
+    return { created: undefined };
+}
+exports.CreateResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.created !== undefined) {
+            exports.Environment.encode(message.created, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCreateResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.created = exports.Environment.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCreateResponse();
+        message.created =
+            object.created !== undefined && object.created !== null
+                ? exports.Environment.fromPartial(object.created)
+                : undefined;
+        return message;
+    },
+};
+function createBaseListRequest() {
+    return { spaceId: "" };
+}
+exports.ListRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseListResponse() {
+    return { envs: [] };
+}
+exports.ListResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.envs) {
+            exports.Environment.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.envs.push(exports.Environment.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListResponse();
+        message.envs = ((_a = object.envs) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Environment.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseGetRequest() {
+    return { spaceId: "", envId: "" };
+}
+exports.GetRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseGetRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseGetResponse() {
+    return { env: undefined };
+}
+exports.GetResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.env !== undefined) {
+            exports.Environment.encode(message.env, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.env = exports.Environment.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseGetResponse();
+        message.env =
+            object.env !== undefined && object.env !== null
+                ? exports.Environment.fromPartial(object.env)
+                : undefined;
+        return message;
+    },
+};
+function createBaseUpdateRequest() {
+    return { env: undefined };
+}
+exports.UpdateRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.env !== undefined) {
+            exports.Environment.encode(message.env, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUpdateRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.env = exports.Environment.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseUpdateRequest();
+        message.env =
+            object.env !== undefined && object.env !== null
+                ? exports.Environment.fromPartial(object.env)
+                : undefined;
+        return message;
+    },
+};
+function createBaseSetAliasRequest() {
+    return { spaceId: "", envId: "", alias: "" };
+}
+exports.SetAliasRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        if (message.alias !== "") {
+            writer.uint32(26).string(message.alias);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseSetAliasRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                case 3:
+                    message.alias = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseSetAliasRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        message.alias = (_c = object.alias) !== null && _c !== void 0 ? _c : "";
+        return message;
+    },
+};
+function createBaseRemoveAliasRequest() {
+    return { spaceId: "", envId: "", alias: "" };
+}
+exports.RemoveAliasRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        if (message.alias !== "") {
+            writer.uint32(26).string(message.alias);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseRemoveAliasRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                case 3:
+                    message.alias = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseRemoveAliasRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        message.alias = (_c = object.alias) !== null && _c !== void 0 ? _c : "";
+        return message;
+    },
+};
+function createBaseDeleteRequest() {
+    return { spaceId: "", envId: "" };
+}
+exports.DeleteRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseDeleteRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseDeleteRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+exports.EnvironmentsDefinition = {
+    name: "Environments",
+    fullName: "content.environments.Environments",
+    methods: {
+        create: {
+            name: "Create",
+            requestType: exports.CreateRequest,
+            requestStream: false,
+            responseType: exports.CreateResponse,
+            responseStream: false,
+            options: {},
+        },
+        get: {
+            name: "Get",
+            requestType: exports.GetRequest,
+            requestStream: false,
+            responseType: exports.GetResponse,
+            responseStream: false,
+            options: {},
+        },
+        list: {
+            name: "List",
+            requestType: exports.ListRequest,
+            requestStream: false,
+            responseType: exports.ListResponse,
+            responseStream: false,
+            options: {},
+        },
+        update: {
+            name: "Update",
+            requestType: exports.UpdateRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        setAlias: {
+            name: "SetAlias",
+            requestType: exports.SetAliasRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        removeAlias: {
+            name: "RemoveAlias",
+            requestType: exports.RemoveAliasRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        delete: {
+            name: "Delete",
+            requestType: exports.DeleteRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+    },
+};
+//# sourceMappingURL=environments.js.map
\ No newline at end of file
diff --git a/clients/environments/environments.js.map b/clients/environments/environments.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..0c4d29b7b41ee65b8ace63474dab3c53b7a72c26
--- /dev/null
+++ b/clients/environments/environments.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"environments.js","sourceRoot":"","sources":["environments.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/extensions/extension.d.ts b/clients/extensions/extension.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..059f73ceb4ab3c45aa26a46a565df976e080b770
--- /dev/null
+++ b/clients/extensions/extension.d.ts
@@ -0,0 +1,436 @@
+import { Reference } from "../references/references";
+import * as _m0 from "protobufjs/minimal";
+/**
+ * # Расширения (Extensions)
+ *
+ * Расширения представляют собой отдельные сервисы предоставляющие дополнительные возможности для пользователей. Сервис
+ * может предоставлять несколько расширений одновременно.
+ *
+ * Для координации взаимодействия используется сервис менеджер расширений (Extension Manager). Для предоставления своих функций в систему сервис должен
+ * зарегистрироваться на контроллере.
+ */
+export interface InstallRequest {
+    /** Список расширений для установки */
+    extensions: string[];
+    /** Пространство для установки расширений */
+    spaceId: string;
+    /** Идентификатор окружения для установки (по умолчанию master) */
+    envId: string;
+    /** Игнорировать и автоматически исправлять ошибки установки */
+    force: boolean;
+}
+export interface ExtensionRequestResult {
+    /** Состояние расширение */
+    state: ExtensionRequestResult_State;
+    /** Имя расширения */
+    extension: string;
+    /** Сообщение */
+    msg: string;
+    /** Ошибка (state == ERROR) */
+    error: string;
+    /** Доступно обновление */
+    updateAvailable: boolean;
+}
+export declare enum ExtensionRequestResult_State {
+    /** OK - Запрос завершен */
+    OK = 0,
+    /** ERROR - Возникла ошибка */
+    ERROR = 1,
+    /** PENDING - Запрос ожидает выполнения */
+    PENDING = 2,
+    /** IN_PROGRESS - Запрос выполняется */
+    IN_PROGRESS = 3,
+    UNRECOGNIZED = -1
+}
+export interface InstallResponse {
+    /** Список состояний расширений после установки */
+    results: ExtensionRequestResult[];
+}
+export interface UninstallRequest {
+    /** Список расширений для удаления */
+    extensions: string[];
+    /** Пространство для удаления расширений */
+    spaceId: string;
+    /** Идентификатор окружения для установки (по умолчанию master) */
+    envId: string;
+    /** Удалить все коллекции и данные */
+    remove: boolean;
+    /** Удалять расширения вне зависимости от возможных ошибок, без учета зависимостей */
+    force: boolean;
+}
+export interface UninstallResponse {
+    /** Список состояний расширений после удаления */
+    results: ExtensionRequestResult[];
+}
+export interface UpdateRequest {
+    /** Список расширений для удаления */
+    extensions: string[];
+    /** Пространство для удаления расширений */
+    spaceId: string;
+    /** Идентификатор окружения для установки (по умолчанию master) */
+    envId: string;
+    /** Выполнять обновление и автоматически исправлять ошибки */
+    force: boolean;
+}
+export interface UpdateResponse {
+    /** Список состояний расширений после удаления */
+    results: ExtensionRequestResult[];
+}
+export interface CheckRequest {
+    /** Список расширений для удаления */
+    extensions: string[];
+    /** Пространство для удаления расширений */
+    spaceId: string;
+    /** Идентификатор окружения для установки (по умолчанию master) */
+    envId: string;
+}
+export interface CheckResponse {
+    /** Список состояний расширений */
+    results: ExtensionRequestResult[];
+}
+/** ActionRequest - запрос на выполнение действия к расширению (или менеджеру расширений) */
+export interface ActionRequest {
+    extension: string;
+    action: string;
+    spaceId: string;
+    envId: string;
+    collectionId: string;
+    itemId: string;
+    itemIds: string[];
+    /**
+     * Поля к которым применимо действие. В случае если действие выполняется из списка записей, содержит перечень
+     * полей которые пользователь выбрал для отображения в интерфейсе.
+     */
+    fields: string[];
+    metadata: {
+        [key: string]: string;
+    };
+    /** Ссылки на записи используемые для выполнения действия (назначение ссылок зависит от действия и расширения) */
+    refs: Reference[];
+    /**
+     * Ссылка на документ с параметрами выполнения Action.
+     * Чтобы при выполнении действия открывалась форма параметров, необходимо указать `Action.params_collection`
+     */
+    params?: Reference;
+}
+export interface ActionRequest_MetadataEntry {
+    key: string;
+    value: string;
+}
+export interface ActionResponse {
+    /** Состояние расширение */
+    state: ActionResponse_State;
+    /** Сообщение о выполнении действия */
+    msg: string;
+    /** Сообщение в случае ошибки */
+    error: string;
+    /** Следующие возможные действия. Интерфейс отображает как варианты дальнейших действий пользователя */
+    next: Action[];
+    /** Метаданные запроса */
+    metadata: {
+        [key: string]: string;
+    };
+    /** Ссылки на записи (назначение ссылок зависит от действия и расширения) */
+    refs: Reference[];
+}
+export declare enum ActionResponse_State {
+    /** DONE - Запрос завершен */
+    DONE = 0,
+    /** ERROR - Возникла ошибка */
+    ERROR = 1,
+    /** PENDING - Запрос ожидает выполнения */
+    PENDING = 2,
+    /** IN_PROGRESS - Запрос выполняется */
+    IN_PROGRESS = 3,
+    UNRECOGNIZED = -1
+}
+export interface ActionResponse_MetadataEntry {
+    key: string;
+    value: string;
+}
+/**
+ * Action описывает как коллекцию в системе с предуставновленными действиями, так и возможные дальнейшие действия после
+ * получения ответа  (см. `ActionResponse.next`)
+ *
+ * Если поле `request` присутствует, но не все требуемые поля заполнены, то значения для них берутся из текущих значений.
+ *
+ * Коллекция: space_actions (Пространство/Действия)
+ * Действия сохраненные в коллекции не содержат поля `request`. Значение заполняется текущими значениями.
+ *
+ * Пользовательские действия добавляются при установке расширений или при
+ * настройке в системную коллекции `Пространство/Действия` (system_actions). Расширения самостоятельно контролирует создание необходимых
+ * им действий в коллекции.
+ *
+ * Интерфейс загружает пользовательские действия и отображает их в интерфейсе соответствующим образом.
+ */
+export interface Action {
+    /** Расширение */
+    extension: string;
+    /** Идентификатор действия */
+    action: string;
+    /** Название действия для отображения в интерфейсе (пункт меню, кнопка). */
+    name: string;
+    /** Описание действия для отображения в интерфейсе */
+    description: string;
+    /** Название иконки для отображения действия в интерфейсе */
+    icon: string;
+    /** Изображение для отображения в действия в интерфейсе */
+    image?: Reference;
+    /** Группы отображения действия в интерфейсе */
+    groups: string[];
+    /** Указывает на что направлено действие */
+    kind: Action_Kind;
+    /** Классы данных к которым применимо действие (название коллекций или специальных групп в рамках которых данное действие применимо) */
+    classes: string[];
+    /**
+     * Для `CREATE` действуют следующие правила:
+     * - Для создание записей в коллекции применимы действия которые содержат в classes название коллекции
+     * - Для создания записей в виджетах которые допускают создание записей (Block/BlockList) применимы действия которые содержат:
+     *   - в classes хотя бы одно значение из classes виджета
+     *   - если у виджета не указан classes, тогда названия коллекций которые могут быть использованы для создания элементов в поле (allowed_collections)
+     */
+    refs: Reference[];
+    /**
+     * Коллекция для сохранения параметрами действия. Если параметр указан, то при выполнении действия будет открываться
+     * форма создания записи в указанной коллекции
+     */
+    paramsCollection: string;
+    /** Параметры запроса (используется в случае `ActionResponse.next`) */
+    request?: ActionRequest;
+    /** Флаг указывающий что действие переносить пользователя в другую часть интерфейса, а не отправляет запрос на сервер */
+    navigationAction: boolean;
+    /**
+     * navigation_route - Строка шаблон для перехода в интерфейсе
+     * При указании полного адреса (http(s)://xyz), URL открывается в новом окне браузера
+     * Относительный адрес в пользовательском интерфейсе переносит пользователя в соответствующий раздел без перезагрузки приложения
+     *
+     * Переменные `:var` заменяются на текуще значение в пользовательском интерфейсе (Пример: `/spaces/:spaceId/envs/:envId/cols/:colId`)
+     * Перечень переменных для подстановки:
+     * - :spaceId
+     * - :envId
+     * - :colId
+     * - :itemId
+     */
+    navigationRoute: string;
+}
+/**
+ * Kind описывает c какой сущность системы связано действие и что требуется передать в качестве параметров
+ * Интерфейс загружает пользовательские действия и отображает их в интерфейсе в зависимости от ActionType.
+ */
+export declare enum Action_Kind {
+    /** DEFAULT - Действие не отображается в интерфейсе и могут используется для выполнения дополнительных запросов (см. `ActionResponse.next`) или напрямую из сторонних приложений. */
+    DEFAULT = 0,
+    /** SPACE - Действие связано с пространством (требуется передача space_id). Отображается в меню "Действия". */
+    SPACE = 1,
+    /** ENVIRONMENT - Действие связано с окружением (требуется передача space_id, env_id). Отображается в меню "Действия". */
+    ENVIRONMENT = 2,
+    /** COLLECTION - Действие связано с коллекцией (требуется передача space_id, env_id, collection_id). Отображается на экране списка записей. */
+    COLLECTION = 3,
+    /** ITEM - Действие связано с записью (требуется передача space_id, env_id, collection_id, item_id). Отображается на экране редактирования записи. */
+    ITEM = 4,
+    /** ITEMS - Действие связано с несколькими записями (требуется передача space_id, env_id, collection_id, item_ids). Отображается на экране списка записей. */
+    ITEMS = 5,
+    /** REVISION - Действие связано с ревизией записи (требуется передача space_id, env_id, collection_id, item_id, rev_id). На данный момент не используется. */
+    REVISION = 6,
+    /** CREATE - Действие создание записи (требуется передача space_id, env_id, collection_id). */
+    CREATE = 7,
+    UNRECOGNIZED = -1
+}
+export declare const InstallRequest: {
+    encode(message: InstallRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): InstallRequest;
+    fromPartial(object: DeepPartial<InstallRequest>): InstallRequest;
+};
+export declare const ExtensionRequestResult: {
+    encode(message: ExtensionRequestResult, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ExtensionRequestResult;
+    fromPartial(object: DeepPartial<ExtensionRequestResult>): ExtensionRequestResult;
+};
+export declare const InstallResponse: {
+    encode(message: InstallResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): InstallResponse;
+    fromPartial(object: DeepPartial<InstallResponse>): InstallResponse;
+};
+export declare const UninstallRequest: {
+    encode(message: UninstallRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UninstallRequest;
+    fromPartial(object: DeepPartial<UninstallRequest>): UninstallRequest;
+};
+export declare const UninstallResponse: {
+    encode(message: UninstallResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UninstallResponse;
+    fromPartial(object: DeepPartial<UninstallResponse>): UninstallResponse;
+};
+export declare const UpdateRequest: {
+    encode(message: UpdateRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateRequest;
+    fromPartial(object: DeepPartial<UpdateRequest>): UpdateRequest;
+};
+export declare const UpdateResponse: {
+    encode(message: UpdateResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateResponse;
+    fromPartial(object: DeepPartial<UpdateResponse>): UpdateResponse;
+};
+export declare const CheckRequest: {
+    encode(message: CheckRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CheckRequest;
+    fromPartial(object: DeepPartial<CheckRequest>): CheckRequest;
+};
+export declare const CheckResponse: {
+    encode(message: CheckResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CheckResponse;
+    fromPartial(object: DeepPartial<CheckResponse>): CheckResponse;
+};
+export declare const ActionRequest: {
+    encode(message: ActionRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ActionRequest;
+    fromPartial(object: DeepPartial<ActionRequest>): ActionRequest;
+};
+export declare const ActionRequest_MetadataEntry: {
+    encode(message: ActionRequest_MetadataEntry, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ActionRequest_MetadataEntry;
+    fromPartial(object: DeepPartial<ActionRequest_MetadataEntry>): ActionRequest_MetadataEntry;
+};
+export declare const ActionResponse: {
+    encode(message: ActionResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ActionResponse;
+    fromPartial(object: DeepPartial<ActionResponse>): ActionResponse;
+};
+export declare const ActionResponse_MetadataEntry: {
+    encode(message: ActionResponse_MetadataEntry, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ActionResponse_MetadataEntry;
+    fromPartial(object: DeepPartial<ActionResponse_MetadataEntry>): ActionResponse_MetadataEntry;
+};
+export declare const Action: {
+    encode(message: Action, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Action;
+    fromPartial(object: DeepPartial<Action>): Action;
+};
+/** Extension - API расширения */
+export declare type ExtensionDefinition = typeof ExtensionDefinition;
+export declare const ExtensionDefinition: {
+    readonly name: "Extension";
+    readonly fullName: "extensions.Extension";
+    readonly methods: {
+        /**
+         * Для установки расширения выполняется запрос к сервису с указанием расширений которые должны быть установлены. Если
+         * расширение уже установлено процесс возвращает ошибку.
+         */
+        readonly install: {
+            readonly name: "Install";
+            readonly requestType: {
+                encode(message: InstallRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): InstallRequest;
+                fromPartial(object: DeepPartial<InstallRequest>): InstallRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: InstallResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): InstallResponse;
+                fromPartial(object: DeepPartial<InstallResponse>): InstallResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /**
+         * Можно запросить проверку статуса установки для расширения. При этом расширение проверяет наличие необходимых данных в
+         * пространстве или наличие новой версии расширения и сообщает об этом. Никаких действий с данными пространства не
+         * производится.
+         */
+        readonly check: {
+            readonly name: "Check";
+            readonly requestType: {
+                encode(message: CheckRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CheckRequest;
+                fromPartial(object: DeepPartial<CheckRequest>): CheckRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: CheckResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CheckResponse;
+                fromPartial(object: DeepPartial<CheckResponse>): CheckResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /**
+         * Сервис выполняет необходимые действия с данными и миграции для соответствия нужной версии расширения.
+         * Если расширение не установлено процесс обновления возвращает ошибку.
+         */
+        readonly update: {
+            readonly name: "Update";
+            readonly requestType: {
+                encode(message: UpdateRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): UpdateRequest;
+                fromPartial(object: DeepPartial<UpdateRequest>): UpdateRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: UpdateResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): UpdateResponse;
+                fromPartial(object: DeepPartial<UpdateResponse>): UpdateResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** Удаление расширения из пространства. */
+        readonly uninstall: {
+            readonly name: "Uninstall";
+            readonly requestType: {
+                encode(message: UninstallRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): UninstallRequest;
+                fromPartial(object: DeepPartial<UninstallRequest>): UninstallRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: UninstallResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): UninstallResponse;
+                fromPartial(object: DeepPartial<UninstallResponse>): UninstallResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /**
+         * Пользовательские Действия (Actions)
+         *
+         * Пользовательские действия позволяют расширить функционал пользовательского интерфейса путем
+         * добавления в интерфейс элементов взаимодействуя с которыми пользователь может вызывать реакцию на
+         * сервере или переход в интерфейсе.
+         *
+         * Пользовательские действия добавляются при установке расширений в системную коллекции `System/Actions`.
+         * Коллекция создается автоматически менеджером расширений. При установке так же отображается меню `Действия`
+         * доступное для всех пользователей.
+         *
+         * Примеры пользовательских действий:
+         * - "Собрать сайт" - добавляется Perxis.Web для сборки сайта, доступна пользователю через меню,
+         *   параметры space_id, env_id. При вызове выполняется запрос на сервер ProcessAction.
+         * - "Посмотреть задачи" - добавляется Tasks для перехода на коллекцию задач. Отображается в меню,
+         *   параметры space_id, env_id.
+         *
+         * Приложения так же могут использовать действия для вызова обработки в других приложениях при
+         * необходимости.
+         */
+        readonly action: {
+            readonly name: "Action";
+            readonly requestType: {
+                encode(message: ActionRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ActionRequest;
+                fromPartial(object: DeepPartial<ActionRequest>): ActionRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: ActionResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ActionResponse;
+                fromPartial(object: DeepPartial<ActionResponse>): ActionResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+    };
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=extension.d.ts.map
\ No newline at end of file
diff --git a/clients/extensions/extension.d.ts.map b/clients/extensions/extension.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..d512cf3787eaf7db22722119918b5b8004a35eb1
--- /dev/null
+++ b/clients/extensions/extension.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["extension.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/extensions/extension.js b/clients/extensions/extension.js
new file mode 100644
index 0000000000000000000000000000000000000000..5de40b54fd44fed52fdbed90dcf0fe3c8978ec82
--- /dev/null
+++ b/clients/extensions/extension.js
@@ -0,0 +1,1024 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ExtensionDefinition = exports.Action = exports.ActionResponse_MetadataEntry = exports.ActionResponse = exports.ActionRequest_MetadataEntry = exports.ActionRequest = exports.CheckResponse = exports.CheckRequest = exports.UpdateResponse = exports.UpdateRequest = exports.UninstallResponse = exports.UninstallRequest = exports.InstallResponse = exports.ExtensionRequestResult = exports.InstallRequest = exports.Action_Kind = exports.ActionResponse_State = exports.ExtensionRequestResult_State = void 0;
+/* eslint-disable */
+const references_1 = require("../references/references");
+const _m0 = __importStar(require("protobufjs/minimal"));
+var ExtensionRequestResult_State;
+(function (ExtensionRequestResult_State) {
+    /** OK - Запрос завершен */
+    ExtensionRequestResult_State[ExtensionRequestResult_State["OK"] = 0] = "OK";
+    /** ERROR - Возникла ошибка */
+    ExtensionRequestResult_State[ExtensionRequestResult_State["ERROR"] = 1] = "ERROR";
+    /** PENDING - Запрос ожидает выполнения */
+    ExtensionRequestResult_State[ExtensionRequestResult_State["PENDING"] = 2] = "PENDING";
+    /** IN_PROGRESS - Запрос выполняется */
+    ExtensionRequestResult_State[ExtensionRequestResult_State["IN_PROGRESS"] = 3] = "IN_PROGRESS";
+    ExtensionRequestResult_State[ExtensionRequestResult_State["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
+})(ExtensionRequestResult_State = exports.ExtensionRequestResult_State || (exports.ExtensionRequestResult_State = {}));
+var ActionResponse_State;
+(function (ActionResponse_State) {
+    /** DONE - Запрос завершен */
+    ActionResponse_State[ActionResponse_State["DONE"] = 0] = "DONE";
+    /** ERROR - Возникла ошибка */
+    ActionResponse_State[ActionResponse_State["ERROR"] = 1] = "ERROR";
+    /** PENDING - Запрос ожидает выполнения */
+    ActionResponse_State[ActionResponse_State["PENDING"] = 2] = "PENDING";
+    /** IN_PROGRESS - Запрос выполняется */
+    ActionResponse_State[ActionResponse_State["IN_PROGRESS"] = 3] = "IN_PROGRESS";
+    ActionResponse_State[ActionResponse_State["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
+})(ActionResponse_State = exports.ActionResponse_State || (exports.ActionResponse_State = {}));
+/**
+ * Kind описывает c какой сущность системы связано действие и что требуется передать в качестве параметров
+ * Интерфейс загружает пользовательские действия и отображает их в интерфейсе в зависимости от ActionType.
+ */
+var Action_Kind;
+(function (Action_Kind) {
+    /** DEFAULT - Действие не отображается в интерфейсе и могут используется для выполнения дополнительных запросов (см. `ActionResponse.next`) или напрямую из сторонних приложений. */
+    Action_Kind[Action_Kind["DEFAULT"] = 0] = "DEFAULT";
+    /** SPACE - Действие связано с пространством (требуется передача space_id). Отображается в меню "Действия". */
+    Action_Kind[Action_Kind["SPACE"] = 1] = "SPACE";
+    /** ENVIRONMENT - Действие связано с окружением (требуется передача space_id, env_id). Отображается в меню "Действия". */
+    Action_Kind[Action_Kind["ENVIRONMENT"] = 2] = "ENVIRONMENT";
+    /** COLLECTION - Действие связано с коллекцией (требуется передача space_id, env_id, collection_id). Отображается на экране списка записей. */
+    Action_Kind[Action_Kind["COLLECTION"] = 3] = "COLLECTION";
+    /** ITEM - Действие связано с записью (требуется передача space_id, env_id, collection_id, item_id). Отображается на экране редактирования записи. */
+    Action_Kind[Action_Kind["ITEM"] = 4] = "ITEM";
+    /** ITEMS - Действие связано с несколькими записями (требуется передача space_id, env_id, collection_id, item_ids). Отображается на экране списка записей. */
+    Action_Kind[Action_Kind["ITEMS"] = 5] = "ITEMS";
+    /** REVISION - Действие связано с ревизией записи (требуется передача space_id, env_id, collection_id, item_id, rev_id). На данный момент не используется. */
+    Action_Kind[Action_Kind["REVISION"] = 6] = "REVISION";
+    /** CREATE - Действие создание записи (требуется передача space_id, env_id, collection_id). */
+    Action_Kind[Action_Kind["CREATE"] = 7] = "CREATE";
+    Action_Kind[Action_Kind["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
+})(Action_Kind = exports.Action_Kind || (exports.Action_Kind = {}));
+function createBaseInstallRequest() {
+    return { extensions: [], spaceId: "", envId: "", force: false };
+}
+exports.InstallRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.extensions) {
+            writer.uint32(80002).string(v);
+        }
+        if (message.spaceId !== "") {
+            writer.uint32(80082).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(80162).string(message.envId);
+        }
+        if (message.force === true) {
+            writer.uint32(80800).bool(message.force);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseInstallRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 10000:
+                    message.extensions.push(reader.string());
+                    break;
+                case 10010:
+                    message.spaceId = reader.string();
+                    break;
+                case 10020:
+                    message.envId = reader.string();
+                    break;
+                case 10100:
+                    message.force = reader.bool();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d;
+        const message = createBaseInstallRequest();
+        message.extensions = ((_a = object.extensions) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];
+        message.spaceId = (_b = object.spaceId) !== null && _b !== void 0 ? _b : "";
+        message.envId = (_c = object.envId) !== null && _c !== void 0 ? _c : "";
+        message.force = (_d = object.force) !== null && _d !== void 0 ? _d : false;
+        return message;
+    },
+};
+function createBaseExtensionRequestResult() {
+    return {
+        state: 0,
+        extension: "",
+        msg: "",
+        error: "",
+        updateAvailable: false,
+    };
+}
+exports.ExtensionRequestResult = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.state !== 0) {
+            writer.uint32(80000).int32(message.state);
+        }
+        if (message.extension !== "") {
+            writer.uint32(80802).string(message.extension);
+        }
+        if (message.msg !== "") {
+            writer.uint32(81602).string(message.msg);
+        }
+        if (message.error !== "") {
+            writer.uint32(82402).string(message.error);
+        }
+        if (message.updateAvailable === true) {
+            writer.uint32(83200).bool(message.updateAvailable);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseExtensionRequestResult();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 10000:
+                    message.state = reader.int32();
+                    break;
+                case 10100:
+                    message.extension = reader.string();
+                    break;
+                case 10200:
+                    message.msg = reader.string();
+                    break;
+                case 10300:
+                    message.error = reader.string();
+                    break;
+                case 10400:
+                    message.updateAvailable = reader.bool();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e;
+        const message = createBaseExtensionRequestResult();
+        message.state = (_a = object.state) !== null && _a !== void 0 ? _a : 0;
+        message.extension = (_b = object.extension) !== null && _b !== void 0 ? _b : "";
+        message.msg = (_c = object.msg) !== null && _c !== void 0 ? _c : "";
+        message.error = (_d = object.error) !== null && _d !== void 0 ? _d : "";
+        message.updateAvailable = (_e = object.updateAvailable) !== null && _e !== void 0 ? _e : false;
+        return message;
+    },
+};
+function createBaseInstallResponse() {
+    return { results: [] };
+}
+exports.InstallResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.results) {
+            exports.ExtensionRequestResult.encode(v, writer.uint32(80002).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseInstallResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 10000:
+                    message.results.push(exports.ExtensionRequestResult.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseInstallResponse();
+        message.results =
+            ((_a = object.results) === null || _a === void 0 ? void 0 : _a.map((e) => exports.ExtensionRequestResult.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseUninstallRequest() {
+    return {
+        extensions: [],
+        spaceId: "",
+        envId: "",
+        remove: false,
+        force: false,
+    };
+}
+exports.UninstallRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.extensions) {
+            writer.uint32(80002).string(v);
+        }
+        if (message.spaceId !== "") {
+            writer.uint32(80082).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(80162).string(message.envId);
+        }
+        if (message.remove === true) {
+            writer.uint32(80800).bool(message.remove);
+        }
+        if (message.force === true) {
+            writer.uint32(81600).bool(message.force);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUninstallRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 10000:
+                    message.extensions.push(reader.string());
+                    break;
+                case 10010:
+                    message.spaceId = reader.string();
+                    break;
+                case 10020:
+                    message.envId = reader.string();
+                    break;
+                case 10100:
+                    message.remove = reader.bool();
+                    break;
+                case 10200:
+                    message.force = reader.bool();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e;
+        const message = createBaseUninstallRequest();
+        message.extensions = ((_a = object.extensions) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];
+        message.spaceId = (_b = object.spaceId) !== null && _b !== void 0 ? _b : "";
+        message.envId = (_c = object.envId) !== null && _c !== void 0 ? _c : "";
+        message.remove = (_d = object.remove) !== null && _d !== void 0 ? _d : false;
+        message.force = (_e = object.force) !== null && _e !== void 0 ? _e : false;
+        return message;
+    },
+};
+function createBaseUninstallResponse() {
+    return { results: [] };
+}
+exports.UninstallResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.results) {
+            exports.ExtensionRequestResult.encode(v, writer.uint32(80002).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUninstallResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 10000:
+                    message.results.push(exports.ExtensionRequestResult.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseUninstallResponse();
+        message.results =
+            ((_a = object.results) === null || _a === void 0 ? void 0 : _a.map((e) => exports.ExtensionRequestResult.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseUpdateRequest() {
+    return { extensions: [], spaceId: "", envId: "", force: false };
+}
+exports.UpdateRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.extensions) {
+            writer.uint32(80002).string(v);
+        }
+        if (message.spaceId !== "") {
+            writer.uint32(80082).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(80162).string(message.envId);
+        }
+        if (message.force === true) {
+            writer.uint32(80800).bool(message.force);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUpdateRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 10000:
+                    message.extensions.push(reader.string());
+                    break;
+                case 10010:
+                    message.spaceId = reader.string();
+                    break;
+                case 10020:
+                    message.envId = reader.string();
+                    break;
+                case 10100:
+                    message.force = reader.bool();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d;
+        const message = createBaseUpdateRequest();
+        message.extensions = ((_a = object.extensions) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];
+        message.spaceId = (_b = object.spaceId) !== null && _b !== void 0 ? _b : "";
+        message.envId = (_c = object.envId) !== null && _c !== void 0 ? _c : "";
+        message.force = (_d = object.force) !== null && _d !== void 0 ? _d : false;
+        return message;
+    },
+};
+function createBaseUpdateResponse() {
+    return { results: [] };
+}
+exports.UpdateResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.results) {
+            exports.ExtensionRequestResult.encode(v, writer.uint32(80002).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUpdateResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 10000:
+                    message.results.push(exports.ExtensionRequestResult.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseUpdateResponse();
+        message.results =
+            ((_a = object.results) === null || _a === void 0 ? void 0 : _a.map((e) => exports.ExtensionRequestResult.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseCheckRequest() {
+    return { extensions: [], spaceId: "", envId: "" };
+}
+exports.CheckRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.extensions) {
+            writer.uint32(80002).string(v);
+        }
+        if (message.spaceId !== "") {
+            writer.uint32(80082).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(80162).string(message.envId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCheckRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 10000:
+                    message.extensions.push(reader.string());
+                    break;
+                case 10010:
+                    message.spaceId = reader.string();
+                    break;
+                case 10020:
+                    message.envId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseCheckRequest();
+        message.extensions = ((_a = object.extensions) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];
+        message.spaceId = (_b = object.spaceId) !== null && _b !== void 0 ? _b : "";
+        message.envId = (_c = object.envId) !== null && _c !== void 0 ? _c : "";
+        return message;
+    },
+};
+function createBaseCheckResponse() {
+    return { results: [] };
+}
+exports.CheckResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.results) {
+            exports.ExtensionRequestResult.encode(v, writer.uint32(80002).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCheckResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 10000:
+                    message.results.push(exports.ExtensionRequestResult.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseCheckResponse();
+        message.results =
+            ((_a = object.results) === null || _a === void 0 ? void 0 : _a.map((e) => exports.ExtensionRequestResult.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseActionRequest() {
+    return {
+        extension: "",
+        action: "",
+        spaceId: "",
+        envId: "",
+        collectionId: "",
+        itemId: "",
+        itemIds: [],
+        fields: [],
+        metadata: {},
+        refs: [],
+        params: undefined,
+    };
+}
+exports.ActionRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.extension !== "") {
+            writer.uint32(8002).string(message.extension);
+        }
+        if (message.action !== "") {
+            writer.uint32(80802).string(message.action);
+        }
+        if (message.spaceId !== "") {
+            writer.uint32(84002).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(84082).string(message.envId);
+        }
+        if (message.collectionId !== "") {
+            writer.uint32(84162).string(message.collectionId);
+        }
+        if (message.itemId !== "") {
+            writer.uint32(84242).string(message.itemId);
+        }
+        for (const v of message.itemIds) {
+            writer.uint32(84322).string(v);
+        }
+        for (const v of message.fields) {
+            writer.uint32(84402).string(v);
+        }
+        Object.entries(message.metadata).forEach(([key, value]) => {
+            exports.ActionRequest_MetadataEntry.encode({ key: key, value }, writer.uint32(88002).fork()).ldelim();
+        });
+        for (const v of message.refs) {
+            references_1.Reference.encode(v, writer.uint32(88082).fork()).ldelim();
+        }
+        if (message.params !== undefined) {
+            references_1.Reference.encode(message.params, writer.uint32(88162).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseActionRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1000:
+                    message.extension = reader.string();
+                    break;
+                case 10100:
+                    message.action = reader.string();
+                    break;
+                case 10500:
+                    message.spaceId = reader.string();
+                    break;
+                case 10510:
+                    message.envId = reader.string();
+                    break;
+                case 10520:
+                    message.collectionId = reader.string();
+                    break;
+                case 10530:
+                    message.itemId = reader.string();
+                    break;
+                case 10540:
+                    message.itemIds.push(reader.string());
+                    break;
+                case 10550:
+                    message.fields.push(reader.string());
+                    break;
+                case 11000:
+                    const entry11000 = exports.ActionRequest_MetadataEntry.decode(reader, reader.uint32());
+                    if (entry11000.value !== undefined) {
+                        message.metadata[entry11000.key] = entry11000.value;
+                    }
+                    break;
+                case 11010:
+                    message.refs.push(references_1.Reference.decode(reader, reader.uint32()));
+                    break;
+                case 11020:
+                    message.params = references_1.Reference.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
+        const message = createBaseActionRequest();
+        message.extension = (_a = object.extension) !== null && _a !== void 0 ? _a : "";
+        message.action = (_b = object.action) !== null && _b !== void 0 ? _b : "";
+        message.spaceId = (_c = object.spaceId) !== null && _c !== void 0 ? _c : "";
+        message.envId = (_d = object.envId) !== null && _d !== void 0 ? _d : "";
+        message.collectionId = (_e = object.collectionId) !== null && _e !== void 0 ? _e : "";
+        message.itemId = (_f = object.itemId) !== null && _f !== void 0 ? _f : "";
+        message.itemIds = ((_g = object.itemIds) === null || _g === void 0 ? void 0 : _g.map((e) => e)) || [];
+        message.fields = ((_h = object.fields) === null || _h === void 0 ? void 0 : _h.map((e) => e)) || [];
+        message.metadata = Object.entries((_j = object.metadata) !== null && _j !== void 0 ? _j : {}).reduce((acc, [key, value]) => {
+            if (value !== undefined) {
+                acc[key] = String(value);
+            }
+            return acc;
+        }, {});
+        message.refs = ((_k = object.refs) === null || _k === void 0 ? void 0 : _k.map((e) => references_1.Reference.fromPartial(e))) || [];
+        message.params =
+            object.params !== undefined && object.params !== null
+                ? references_1.Reference.fromPartial(object.params)
+                : undefined;
+        return message;
+    },
+};
+function createBaseActionRequest_MetadataEntry() {
+    return { key: "", value: "" };
+}
+exports.ActionRequest_MetadataEntry = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.key !== "") {
+            writer.uint32(10).string(message.key);
+        }
+        if (message.value !== "") {
+            writer.uint32(18).string(message.value);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseActionRequest_MetadataEntry();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.key = reader.string();
+                    break;
+                case 2:
+                    message.value = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseActionRequest_MetadataEntry();
+        message.key = (_a = object.key) !== null && _a !== void 0 ? _a : "";
+        message.value = (_b = object.value) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseActionResponse() {
+    return { state: 0, msg: "", error: "", next: [], metadata: {}, refs: [] };
+}
+exports.ActionResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.state !== 0) {
+            writer.uint32(80000).int32(message.state);
+        }
+        if (message.msg !== "") {
+            writer.uint32(80802).string(message.msg);
+        }
+        if (message.error !== "") {
+            writer.uint32(81602).string(message.error);
+        }
+        for (const v of message.next) {
+            exports.Action.encode(v, writer.uint32(82402).fork()).ldelim();
+        }
+        Object.entries(message.metadata).forEach(([key, value]) => {
+            exports.ActionResponse_MetadataEntry.encode({ key: key, value }, writer.uint32(83202).fork()).ldelim();
+        });
+        for (const v of message.refs) {
+            references_1.Reference.encode(v, writer.uint32(82562).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseActionResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 10000:
+                    message.state = reader.int32();
+                    break;
+                case 10100:
+                    message.msg = reader.string();
+                    break;
+                case 10200:
+                    message.error = reader.string();
+                    break;
+                case 10300:
+                    message.next.push(exports.Action.decode(reader, reader.uint32()));
+                    break;
+                case 10400:
+                    const entry10400 = exports.ActionResponse_MetadataEntry.decode(reader, reader.uint32());
+                    if (entry10400.value !== undefined) {
+                        message.metadata[entry10400.key] = entry10400.value;
+                    }
+                    break;
+                case 10320:
+                    message.refs.push(references_1.Reference.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e, _f;
+        const message = createBaseActionResponse();
+        message.state = (_a = object.state) !== null && _a !== void 0 ? _a : 0;
+        message.msg = (_b = object.msg) !== null && _b !== void 0 ? _b : "";
+        message.error = (_c = object.error) !== null && _c !== void 0 ? _c : "";
+        message.next = ((_d = object.next) === null || _d === void 0 ? void 0 : _d.map((e) => exports.Action.fromPartial(e))) || [];
+        message.metadata = Object.entries((_e = object.metadata) !== null && _e !== void 0 ? _e : {}).reduce((acc, [key, value]) => {
+            if (value !== undefined) {
+                acc[key] = String(value);
+            }
+            return acc;
+        }, {});
+        message.refs = ((_f = object.refs) === null || _f === void 0 ? void 0 : _f.map((e) => references_1.Reference.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseActionResponse_MetadataEntry() {
+    return { key: "", value: "" };
+}
+exports.ActionResponse_MetadataEntry = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.key !== "") {
+            writer.uint32(10).string(message.key);
+        }
+        if (message.value !== "") {
+            writer.uint32(18).string(message.value);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseActionResponse_MetadataEntry();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.key = reader.string();
+                    break;
+                case 2:
+                    message.value = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseActionResponse_MetadataEntry();
+        message.key = (_a = object.key) !== null && _a !== void 0 ? _a : "";
+        message.value = (_b = object.value) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseAction() {
+    return {
+        extension: "",
+        action: "",
+        name: "",
+        description: "",
+        icon: "",
+        image: undefined,
+        groups: [],
+        kind: 0,
+        classes: [],
+        refs: [],
+        paramsCollection: "",
+        request: undefined,
+        navigationAction: false,
+        navigationRoute: "",
+    };
+}
+exports.Action = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.extension !== "") {
+            writer.uint32(80002).string(message.extension);
+        }
+        if (message.action !== "") {
+            writer.uint32(80802).string(message.action);
+        }
+        if (message.name !== "") {
+            writer.uint32(81602).string(message.name);
+        }
+        if (message.description !== "") {
+            writer.uint32(81682).string(message.description);
+        }
+        if (message.icon !== "") {
+            writer.uint32(81762).string(message.icon);
+        }
+        if (message.image !== undefined) {
+            references_1.Reference.encode(message.image, writer.uint32(81842).fork()).ldelim();
+        }
+        for (const v of message.groups) {
+            writer.uint32(81922).string(v);
+        }
+        if (message.kind !== 0) {
+            writer.uint32(82400).int32(message.kind);
+        }
+        for (const v of message.classes) {
+            writer.uint32(82482).string(v);
+        }
+        for (const v of message.refs) {
+            references_1.Reference.encode(v, writer.uint32(82562).fork()).ldelim();
+        }
+        if (message.paramsCollection !== "") {
+            writer.uint32(82642).string(message.paramsCollection);
+        }
+        if (message.request !== undefined) {
+            exports.ActionRequest.encode(message.request, writer.uint32(83202).fork()).ldelim();
+        }
+        if (message.navigationAction === true) {
+            writer.uint32(84000).bool(message.navigationAction);
+        }
+        if (message.navigationRoute !== "") {
+            writer.uint32(84082).string(message.navigationRoute);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseAction();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 10000:
+                    message.extension = reader.string();
+                    break;
+                case 10100:
+                    message.action = reader.string();
+                    break;
+                case 10200:
+                    message.name = reader.string();
+                    break;
+                case 10210:
+                    message.description = reader.string();
+                    break;
+                case 10220:
+                    message.icon = reader.string();
+                    break;
+                case 10230:
+                    message.image = references_1.Reference.decode(reader, reader.uint32());
+                    break;
+                case 10240:
+                    message.groups.push(reader.string());
+                    break;
+                case 10300:
+                    message.kind = reader.int32();
+                    break;
+                case 10310:
+                    message.classes.push(reader.string());
+                    break;
+                case 10320:
+                    message.refs.push(references_1.Reference.decode(reader, reader.uint32()));
+                    break;
+                case 10330:
+                    message.paramsCollection = reader.string();
+                    break;
+                case 10400:
+                    message.request = exports.ActionRequest.decode(reader, reader.uint32());
+                    break;
+                case 10500:
+                    message.navigationAction = reader.bool();
+                    break;
+                case 10510:
+                    message.navigationRoute = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
+        const message = createBaseAction();
+        message.extension = (_a = object.extension) !== null && _a !== void 0 ? _a : "";
+        message.action = (_b = object.action) !== null && _b !== void 0 ? _b : "";
+        message.name = (_c = object.name) !== null && _c !== void 0 ? _c : "";
+        message.description = (_d = object.description) !== null && _d !== void 0 ? _d : "";
+        message.icon = (_e = object.icon) !== null && _e !== void 0 ? _e : "";
+        message.image =
+            object.image !== undefined && object.image !== null
+                ? references_1.Reference.fromPartial(object.image)
+                : undefined;
+        message.groups = ((_f = object.groups) === null || _f === void 0 ? void 0 : _f.map((e) => e)) || [];
+        message.kind = (_g = object.kind) !== null && _g !== void 0 ? _g : 0;
+        message.classes = ((_h = object.classes) === null || _h === void 0 ? void 0 : _h.map((e) => e)) || [];
+        message.refs = ((_j = object.refs) === null || _j === void 0 ? void 0 : _j.map((e) => references_1.Reference.fromPartial(e))) || [];
+        message.paramsCollection = (_k = object.paramsCollection) !== null && _k !== void 0 ? _k : "";
+        message.request =
+            object.request !== undefined && object.request !== null
+                ? exports.ActionRequest.fromPartial(object.request)
+                : undefined;
+        message.navigationAction = (_l = object.navigationAction) !== null && _l !== void 0 ? _l : false;
+        message.navigationRoute = (_m = object.navigationRoute) !== null && _m !== void 0 ? _m : "";
+        return message;
+    },
+};
+exports.ExtensionDefinition = {
+    name: "Extension",
+    fullName: "extensions.Extension",
+    methods: {
+        /**
+         * Для установки расширения выполняется запрос к сервису с указанием расширений которые должны быть установлены. Если
+         * расширение уже установлено процесс возвращает ошибку.
+         */
+        install: {
+            name: "Install",
+            requestType: exports.InstallRequest,
+            requestStream: false,
+            responseType: exports.InstallResponse,
+            responseStream: false,
+            options: {},
+        },
+        /**
+         * Можно запросить проверку статуса установки для расширения. При этом расширение проверяет наличие необходимых данных в
+         * пространстве или наличие новой версии расширения и сообщает об этом. Никаких действий с данными пространства не
+         * производится.
+         */
+        check: {
+            name: "Check",
+            requestType: exports.CheckRequest,
+            requestStream: false,
+            responseType: exports.CheckResponse,
+            responseStream: false,
+            options: {},
+        },
+        /**
+         * Сервис выполняет необходимые действия с данными и миграции для соответствия нужной версии расширения.
+         * Если расширение не установлено процесс обновления возвращает ошибку.
+         */
+        update: {
+            name: "Update",
+            requestType: exports.UpdateRequest,
+            requestStream: false,
+            responseType: exports.UpdateResponse,
+            responseStream: false,
+            options: {},
+        },
+        /** Удаление расширения из пространства. */
+        uninstall: {
+            name: "Uninstall",
+            requestType: exports.UninstallRequest,
+            requestStream: false,
+            responseType: exports.UninstallResponse,
+            responseStream: false,
+            options: {},
+        },
+        /**
+         * Пользовательские Действия (Actions)
+         *
+         * Пользовательские действия позволяют расширить функционал пользовательского интерфейса путем
+         * добавления в интерфейс элементов взаимодействуя с которыми пользователь может вызывать реакцию на
+         * сервере или переход в интерфейсе.
+         *
+         * Пользовательские действия добавляются при установке расширений в системную коллекции `System/Actions`.
+         * Коллекция создается автоматически менеджером расширений. При установке так же отображается меню `Действия`
+         * доступное для всех пользователей.
+         *
+         * Примеры пользовательских действий:
+         * - "Собрать сайт" - добавляется Perxis.Web для сборки сайта, доступна пользователю через меню,
+         *   параметры space_id, env_id. При вызове выполняется запрос на сервер ProcessAction.
+         * - "Посмотреть задачи" - добавляется Tasks для перехода на коллекцию задач. Отображается в меню,
+         *   параметры space_id, env_id.
+         *
+         * Приложения так же могут использовать действия для вызова обработки в других приложениях при
+         * необходимости.
+         */
+        action: {
+            name: "Action",
+            requestType: exports.ActionRequest,
+            requestStream: false,
+            responseType: exports.ActionResponse,
+            responseStream: false,
+            options: {},
+        },
+    },
+};
+//# sourceMappingURL=extension.js.map
\ No newline at end of file
diff --git a/clients/extensions/extension.js.map b/clients/extensions/extension.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..152ee74d377b77a719656723ca5c7b262340ab70
--- /dev/null
+++ b/clients/extensions/extension.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"extension.js","sourceRoot":"","sources":["extension.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/extensions/manager.d.ts b/clients/extensions/manager.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b5f5f2273dc1723347dd8bb42b09750663ae162b
--- /dev/null
+++ b/clients/extensions/manager.d.ts
@@ -0,0 +1,216 @@
+import * as _m0 from "protobufjs/minimal";
+/**
+ * # Менеджер расширений
+ *
+ * Реализует функционал по координации расширений в системе и служит единой точкой доступа для работы с расширениями:
+ * - Регистрирует все расширения в едином реестре
+ * - Предоставляет доступ к реестру расширений на получение доступных расширений в системе
+ * - Контролирует процесс установки расширения, устанавливает все необходимые зависимости в правильном порядке
+ * - Контролирует создание системной коллекции `system_extensions` (System/Extensions) и создание/удалений в ней установленных расширений
+ * - Контролирует создание системной коллекции `system_actions` (System/Actions). Выполняет удаление всех действий связанных
+ * с расширением при его удалении.
+ * - Выполняет переадресацию запросов на действия для расширений
+ *
+ * Менеджер расширений для контроля установленных расширений использует системные коллекции. При обращении к сервису контента
+ * используются системный уровень прав для создания необходимых коллекций и получения данных:
+ * 1. `system_extensions` (System Extensions) - доступна только системным пользователям
+ * 2. `system_actions` (System Actions) - по умолчанию доступна только системным пользователям, настройки доступа на чтение
+ * выдаются пользователям вручную. В зависимости от пользователя в интерфейсе отображаются те или иные доступные действия.
+ *
+ * Проверка наличия коллекций и создание в случае их отсутствия выполняется в момент установки расширений. После установки
+ * расширения в коллекцию `system_extensions` добавляется запись об установленном расширении. Действия добавляются в
+ * коллекцию `system_actions` расширениями по собственному усмотрению при установке.
+ *
+ * Для обращения к расширениям используются права текущего пользователя запрашивающего операцию. Если пользователь не
+ * обладает необходимыми правами для выполнения действия то операция вернет ошибку.
+ */
+/** ServiceDescription описание сервиса */
+export interface ExtensionDescriptor {
+    /** Имя расширения */
+    extension: string;
+    /** Название расширения */
+    title: string;
+    /** Описание расширения */
+    description: string;
+    /** Версия расширения */
+    version: string;
+    /** Описание версии */
+    versionDescription: string;
+    /** Зависимости от других расширений */
+    deps: string[];
+    /** Адрес для внутри сети, коммуникация между сервисами */
+    url: string;
+    /** Метаданные сервиса, смотрите документацию по сервису */
+    metadata: {
+        [key: string]: string;
+    };
+}
+export interface ExtensionDescriptor_MetadataEntry {
+    key: string;
+    value: string;
+}
+export interface RegisterExtensionsRequest {
+    extensions: ExtensionDescriptor[];
+}
+export interface RegisterExtensionsResponse {
+}
+export interface UnregisterExtensionsRequest {
+    extensions: ExtensionDescriptor[];
+}
+export interface UnregisterExtensionsResponse {
+}
+export interface ListExtensionsFilter {
+    /** Список имен сервисов для получения результатов. Список может содержать регулярные выражения. */
+    extension: string[];
+}
+export interface ListExtensionsRequest {
+    filter?: ListExtensionsFilter;
+}
+export interface ListExtensionsResponse {
+    extensions: ExtensionDescriptor[];
+}
+export interface SpaceExtensions {
+    extension: string;
+    title: string;
+    version: string;
+    deps: string[];
+    state: SpaceExtensions_State;
+    /** Сообщение к ошибке */
+    statusError: string;
+    /** Сообщение к статусу */
+    statusMsg: string;
+}
+export declare enum SpaceExtensions_State {
+    PENDING = 0,
+    INSTALLED = 1,
+    IN_PROGRESS = 2,
+    FAIL = 3,
+    UNRECOGNIZED = -1
+}
+export declare const ExtensionDescriptor: {
+    encode(message: ExtensionDescriptor, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ExtensionDescriptor;
+    fromPartial(object: DeepPartial<ExtensionDescriptor>): ExtensionDescriptor;
+};
+export declare const ExtensionDescriptor_MetadataEntry: {
+    encode(message: ExtensionDescriptor_MetadataEntry, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ExtensionDescriptor_MetadataEntry;
+    fromPartial(object: DeepPartial<ExtensionDescriptor_MetadataEntry>): ExtensionDescriptor_MetadataEntry;
+};
+export declare const RegisterExtensionsRequest: {
+    encode(message: RegisterExtensionsRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): RegisterExtensionsRequest;
+    fromPartial(object: DeepPartial<RegisterExtensionsRequest>): RegisterExtensionsRequest;
+};
+export declare const RegisterExtensionsResponse: {
+    encode(_: RegisterExtensionsResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): RegisterExtensionsResponse;
+    fromPartial(_: DeepPartial<RegisterExtensionsResponse>): RegisterExtensionsResponse;
+};
+export declare const UnregisterExtensionsRequest: {
+    encode(message: UnregisterExtensionsRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UnregisterExtensionsRequest;
+    fromPartial(object: DeepPartial<UnregisterExtensionsRequest>): UnregisterExtensionsRequest;
+};
+export declare const UnregisterExtensionsResponse: {
+    encode(_: UnregisterExtensionsResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UnregisterExtensionsResponse;
+    fromPartial(_: DeepPartial<UnregisterExtensionsResponse>): UnregisterExtensionsResponse;
+};
+export declare const ListExtensionsFilter: {
+    encode(message: ListExtensionsFilter, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListExtensionsFilter;
+    fromPartial(object: DeepPartial<ListExtensionsFilter>): ListExtensionsFilter;
+};
+export declare const ListExtensionsRequest: {
+    encode(message: ListExtensionsRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListExtensionsRequest;
+    fromPartial(object: DeepPartial<ListExtensionsRequest>): ListExtensionsRequest;
+};
+export declare const ListExtensionsResponse: {
+    encode(message: ListExtensionsResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListExtensionsResponse;
+    fromPartial(object: DeepPartial<ListExtensionsResponse>): ListExtensionsResponse;
+};
+export declare const SpaceExtensions: {
+    encode(message: SpaceExtensions, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): SpaceExtensions;
+    fromPartial(object: DeepPartial<SpaceExtensions>): SpaceExtensions;
+};
+/** ExtensionManager - менеджер расширений. Должен реализовывать так же сервис Extension */
+export declare type ExtensionManagerDefinition = typeof ExtensionManagerDefinition;
+export declare const ExtensionManagerDefinition: {
+    readonly name: "ExtensionManager";
+    readonly fullName: "extensions.ExtensionManager";
+    readonly methods: {
+        /**
+         * ##  Регистрация расширений
+         *
+         * Регистрация\Дерегистрация происходить через сервис менеджера расширений (Extension Manager). В процессе регистрации сервис сообщает
+         * о поддерживаемых сервисом действиях (Actions) и версии сервиса и зависимостях:
+         * 1. Действия (Actions) - перечень действия которые обрабатываются сервисом. Включает в себя как системные действия,
+         * так и пользовательские, которые могут быть использованы в интерфейсе;
+         * 2. Имя сервиса/расширения - название сервиса внутри системы;
+         * 3. Версия сервиса - сервис сообщает текущую версию сервиса. Контроллер сообщает пользователю о возможности обновления
+         * расширения при смене версии;
+         * 4. Описание версии - содержит информацию об изменениях в последних версиях расширения;
+         * 5. Зависимости - перечень расширений которые необходимы сервису для функционирования. При установке сервиса
+         * все расширения от которых он зависит, будут так же установлены.
+         */
+        readonly registerExtensions: {
+            readonly name: "RegisterExtensions";
+            readonly requestType: {
+                encode(message: RegisterExtensionsRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): RegisterExtensionsRequest;
+                fromPartial(object: DeepPartial<RegisterExtensionsRequest>): RegisterExtensionsRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: RegisterExtensionsResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): RegisterExtensionsResponse;
+                fromPartial(_: DeepPartial<RegisterExtensionsResponse>): RegisterExtensionsResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly unregisterExtensions: {
+            readonly name: "UnregisterExtensions";
+            readonly requestType: {
+                encode(message: UnregisterExtensionsRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): UnregisterExtensionsRequest;
+                fromPartial(object: DeepPartial<UnregisterExtensionsRequest>): UnregisterExtensionsRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: UnregisterExtensionsResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): UnregisterExtensionsResponse;
+                fromPartial(_: DeepPartial<UnregisterExtensionsResponse>): UnregisterExtensionsResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** Получить список зарегистрированных сервисов */
+        readonly listExtensions: {
+            readonly name: "ListExtensions";
+            readonly requestType: {
+                encode(message: ListExtensionsRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListExtensionsRequest;
+                fromPartial(object: DeepPartial<ListExtensionsRequest>): ListExtensionsRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: ListExtensionsResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListExtensionsResponse;
+                fromPartial(object: DeepPartial<ListExtensionsResponse>): ListExtensionsResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+    };
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=manager.d.ts.map
\ No newline at end of file
diff --git a/clients/extensions/manager.d.ts.map b/clients/extensions/manager.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..4f281411c1fc2bc63858cfa7a25d4315503be192
--- /dev/null
+++ b/clients/extensions/manager.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,0CAA0C;AAC1C,MAAM,WAAW,mBAAmB;IAClC,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC;IACZ,2DAA2D;IAC3D,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACrC;AAED,MAAM,WAAW,iCAAiC;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,mBAAmB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,0BAA0B;CAAG;AAE9C,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,mBAAmB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,4BAA4B;CAAG;AAEhD,MAAM,WAAW,oBAAoB;IACnC,mGAAmG;IACnG,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,mBAAmB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,qBAAqB,CAAC;IAC7B,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,oBAAY,qBAAqB;IAC/B,OAAO,IAAI;IACX,SAAS,IAAI;IACb,WAAW,IAAI;IACf,IAAI,IAAI;IACR,YAAY,KAAK;CAClB;AAeD,eAAO,MAAM,mBAAmB;oBAEnB,mBAAmB,WACpB,IAAI,MAAM,GACjB,IAAI,MAAM;kBA+BC,IAAI,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,mBAAmB;wBA6CxD,YAAY,mBAAmB,CAAC,GAAG,mBAAmB;CAmB3E,CAAC;AAMF,eAAO,MAAM,iCAAiC;oBAEjC,iCAAiC,WAClC,IAAI,MAAM,GACjB,IAAI,MAAM;kBAWJ,IAAI,MAAM,GAAG,UAAU,WACrB,MAAM,GACd,iCAAiC;wBAsB1B,YAAY,iCAAiC,CAAC,GACrD,iCAAiC;CAMrC,CAAC;AAMF,eAAO,MAAM,yBAAyB;oBAEzB,yBAAyB,WAC1B,IAAI,MAAM,GACjB,IAAI,MAAM;kBAQJ,IAAI,MAAM,GAAG,UAAU,WACrB,MAAM,GACd,yBAAyB;wBAqBlB,YAAY,yBAAyB,CAAC,GAC7C,yBAAyB;CAM7B,CAAC;AAMF,eAAO,MAAM,0BAA0B;cAEhC,0BAA0B,WACrB,IAAI,MAAM,GACjB,IAAI,MAAM;kBAKJ,IAAI,MAAM,GAAG,UAAU,WACrB,MAAM,GACd,0BAA0B;mBAgBxB,YAAY,0BAA0B,CAAC,GACzC,0BAA0B;CAI9B,CAAC;AAMF,eAAO,MAAM,2BAA2B;oBAE3B,2BAA2B,WAC5B,IAAI,MAAM,GACjB,IAAI,MAAM;kBAQJ,IAAI,MAAM,GAAG,UAAU,WACrB,MAAM,GACd,2BAA2B;wBAqBpB,YAAY,2BAA2B,CAAC,GAC/C,2BAA2B;CAM/B,CAAC;AAMF,eAAO,MAAM,4BAA4B;cAElC,4BAA4B,WACvB,IAAI,MAAM,GACjB,IAAI,MAAM;kBAKJ,IAAI,MAAM,GAAG,UAAU,WACrB,MAAM,GACd,4BAA4B;mBAgB1B,YAAY,4BAA4B,CAAC,GAC3C,4BAA4B;CAIhC,CAAC;AAMF,eAAO,MAAM,oBAAoB;oBAEpB,oBAAoB,WACrB,IAAI,MAAM,GACjB,IAAI,MAAM;kBAQJ,IAAI,MAAM,GAAG,UAAU,WACrB,MAAM,GACd,oBAAoB;wBAkBH,YAAY,oBAAoB,CAAC,GAAG,oBAAoB;CAK7E,CAAC;AAMF,eAAO,MAAM,qBAAqB;oBAErB,qBAAqB,WACtB,IAAI,MAAM,GACjB,IAAI,MAAM;kBAWJ,IAAI,MAAM,GAAG,UAAU,WACrB,MAAM,GACd,qBAAqB;wBAmBd,YAAY,qBAAqB,CAAC,GACzC,qBAAqB;CAQzB,CAAC;AAMF,eAAO,MAAM,sBAAsB;oBAEtB,sBAAsB,WACvB,IAAI,MAAM,GACjB,IAAI,MAAM;kBAQJ,IAAI,MAAM,GAAG,UAAU,WACrB,MAAM,GACd,sBAAsB;wBAqBf,YAAY,sBAAsB,CAAC,GAC1C,sBAAsB;CAM1B,CAAC;AAcF,eAAO,MAAM,eAAe;oBAEf,eAAe,WAChB,IAAI,MAAM,GACjB,IAAI,MAAM;kBAyBC,IAAI,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,eAAe;wBAoCpD,YAAY,eAAe,CAAC,GAAG,eAAe;CAWnE,CAAC;AAEF,2FAA2F;AAC3F,oBAAY,0BAA0B,GAAG,OAAO,0BAA0B,CAAC;AAC3E,eAAO,MAAM,0BAA0B;;;;QAInC;;;;;;;;;;;;;WAaG;;;;gCAjaM,yBAAyB,WAC1B,IAAI,MAAM,GACjB,IAAI,MAAM;8BAQJ,IAAI,MAAM,GAAG,UAAU,WACrB,MAAM,GACd,yBAAyB;oCAqBlB,YAAY,yBAAyB,CAAC,GAC7C,yBAAyB;;;;0BAcvB,0BAA0B,WACrB,IAAI,MAAM,GACjB,IAAI,MAAM;8BAKJ,IAAI,MAAM,GAAG,UAAU,WACrB,MAAM,GACd,0BAA0B;+BAgBxB,YAAY,0BAA0B,CAAC,GACzC,0BAA0B;;;;;;;;gCAYlB,2BAA2B,WAC5B,IAAI,MAAM,GACjB,IAAI,MAAM;8BAQJ,IAAI,MAAM,GAAG,UAAU,WACrB,MAAM,GACd,2BAA2B;oCAqBpB,YAAY,2BAA2B,CAAC,GAC/C,2BAA2B;;;;0BAczB,4BAA4B,WACvB,IAAI,MAAM,GACjB,IAAI,MAAM;8BAKJ,IAAI,MAAM,GAAG,UAAU,WACrB,MAAM,GACd,4BAA4B;+BAgB1B,YAAY,4BAA4B,CAAC,GAC3C,4BAA4B;;;;;QAkR7B,kDAAkD;;;;gCA3NzC,qBAAqB,WACtB,IAAI,MAAM,GACjB,IAAI,MAAM;8BAWJ,IAAI,MAAM,GAAG,UAAU,WACrB,MAAM,GACd,qBAAqB;oCAmBd,YAAY,qBAAqB,CAAC,GACzC,qBAAqB;;;;gCAgBb,sBAAsB,WACvB,IAAI,MAAM,GACjB,IAAI,MAAM;8BAQJ,IAAI,MAAM,GAAG,UAAU,WACrB,MAAM,GACd,sBAAsB;oCAqBf,YAAY,sBAAsB,CAAC,GAC1C,sBAAsB;;;;;;CAgJjB,CAAC;AAEX,aAAK,OAAO,GACR,IAAI,GACJ,QAAQ,GACR,UAAU,GACV,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,CAAC;AAEd,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,GACnC,CAAC,GACD,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACxB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAChC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAC7B,CAAC,SAAS,EAAE,GACZ;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACtC,OAAO,CAAC,CAAC,CAAC,CAAC"}
\ No newline at end of file
diff --git a/clients/extensions/manager.js b/clients/extensions/manager.js
new file mode 100644
index 0000000000000000000000000000000000000000..50634331bae3f6d246856c8acce55572e4365cdd
--- /dev/null
+++ b/clients/extensions/manager.js
@@ -0,0 +1,534 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ExtensionManagerDefinition = exports.SpaceExtensions = exports.ListExtensionsResponse = exports.ListExtensionsRequest = exports.ListExtensionsFilter = exports.UnregisterExtensionsResponse = exports.UnregisterExtensionsRequest = exports.RegisterExtensionsResponse = exports.RegisterExtensionsRequest = exports.ExtensionDescriptor_MetadataEntry = exports.ExtensionDescriptor = exports.SpaceExtensions_State = void 0;
+/* eslint-disable */
+const _m0 = __importStar(require("protobufjs/minimal"));
+var SpaceExtensions_State;
+(function (SpaceExtensions_State) {
+    SpaceExtensions_State[SpaceExtensions_State["PENDING"] = 0] = "PENDING";
+    SpaceExtensions_State[SpaceExtensions_State["INSTALLED"] = 1] = "INSTALLED";
+    SpaceExtensions_State[SpaceExtensions_State["IN_PROGRESS"] = 2] = "IN_PROGRESS";
+    SpaceExtensions_State[SpaceExtensions_State["FAIL"] = 3] = "FAIL";
+    SpaceExtensions_State[SpaceExtensions_State["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
+})(SpaceExtensions_State = exports.SpaceExtensions_State || (exports.SpaceExtensions_State = {}));
+function createBaseExtensionDescriptor() {
+    return {
+        extension: "",
+        title: "",
+        description: "",
+        version: "",
+        versionDescription: "",
+        deps: [],
+        url: "",
+        metadata: {},
+    };
+}
+exports.ExtensionDescriptor = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.extension !== "") {
+            writer.uint32(80002).string(message.extension);
+        }
+        if (message.title !== "") {
+            writer.uint32(80082).string(message.title);
+        }
+        if (message.description !== "") {
+            writer.uint32(80162).string(message.description);
+        }
+        if (message.version !== "") {
+            writer.uint32(80802).string(message.version);
+        }
+        if (message.versionDescription !== "") {
+            writer.uint32(80882).string(message.versionDescription);
+        }
+        for (const v of message.deps) {
+            writer.uint32(81602).string(v);
+        }
+        if (message.url !== "") {
+            writer.uint32(42).string(message.url);
+        }
+        Object.entries(message.metadata).forEach(([key, value]) => {
+            exports.ExtensionDescriptor_MetadataEntry.encode({ key: key, value }, writer.uint32(50).fork()).ldelim();
+        });
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseExtensionDescriptor();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 10000:
+                    message.extension = reader.string();
+                    break;
+                case 10010:
+                    message.title = reader.string();
+                    break;
+                case 10020:
+                    message.description = reader.string();
+                    break;
+                case 10100:
+                    message.version = reader.string();
+                    break;
+                case 10110:
+                    message.versionDescription = reader.string();
+                    break;
+                case 10200:
+                    message.deps.push(reader.string());
+                    break;
+                case 5:
+                    message.url = reader.string();
+                    break;
+                case 6:
+                    const entry6 = exports.ExtensionDescriptor_MetadataEntry.decode(reader, reader.uint32());
+                    if (entry6.value !== undefined) {
+                        message.metadata[entry6.key] = entry6.value;
+                    }
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e, _f, _g, _h;
+        const message = createBaseExtensionDescriptor();
+        message.extension = (_a = object.extension) !== null && _a !== void 0 ? _a : "";
+        message.title = (_b = object.title) !== null && _b !== void 0 ? _b : "";
+        message.description = (_c = object.description) !== null && _c !== void 0 ? _c : "";
+        message.version = (_d = object.version) !== null && _d !== void 0 ? _d : "";
+        message.versionDescription = (_e = object.versionDescription) !== null && _e !== void 0 ? _e : "";
+        message.deps = ((_f = object.deps) === null || _f === void 0 ? void 0 : _f.map((e) => e)) || [];
+        message.url = (_g = object.url) !== null && _g !== void 0 ? _g : "";
+        message.metadata = Object.entries((_h = object.metadata) !== null && _h !== void 0 ? _h : {}).reduce((acc, [key, value]) => {
+            if (value !== undefined) {
+                acc[key] = String(value);
+            }
+            return acc;
+        }, {});
+        return message;
+    },
+};
+function createBaseExtensionDescriptor_MetadataEntry() {
+    return { key: "", value: "" };
+}
+exports.ExtensionDescriptor_MetadataEntry = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.key !== "") {
+            writer.uint32(10).string(message.key);
+        }
+        if (message.value !== "") {
+            writer.uint32(18).string(message.value);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseExtensionDescriptor_MetadataEntry();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.key = reader.string();
+                    break;
+                case 2:
+                    message.value = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseExtensionDescriptor_MetadataEntry();
+        message.key = (_a = object.key) !== null && _a !== void 0 ? _a : "";
+        message.value = (_b = object.value) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseRegisterExtensionsRequest() {
+    return { extensions: [] };
+}
+exports.RegisterExtensionsRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.extensions) {
+            exports.ExtensionDescriptor.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseRegisterExtensionsRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.extensions.push(exports.ExtensionDescriptor.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseRegisterExtensionsRequest();
+        message.extensions =
+            ((_a = object.extensions) === null || _a === void 0 ? void 0 : _a.map((e) => exports.ExtensionDescriptor.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseRegisterExtensionsResponse() {
+    return {};
+}
+exports.RegisterExtensionsResponse = {
+    encode(_, writer = _m0.Writer.create()) {
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseRegisterExtensionsResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(_) {
+        const message = createBaseRegisterExtensionsResponse();
+        return message;
+    },
+};
+function createBaseUnregisterExtensionsRequest() {
+    return { extensions: [] };
+}
+exports.UnregisterExtensionsRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.extensions) {
+            exports.ExtensionDescriptor.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUnregisterExtensionsRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.extensions.push(exports.ExtensionDescriptor.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseUnregisterExtensionsRequest();
+        message.extensions =
+            ((_a = object.extensions) === null || _a === void 0 ? void 0 : _a.map((e) => exports.ExtensionDescriptor.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseUnregisterExtensionsResponse() {
+    return {};
+}
+exports.UnregisterExtensionsResponse = {
+    encode(_, writer = _m0.Writer.create()) {
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUnregisterExtensionsResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(_) {
+        const message = createBaseUnregisterExtensionsResponse();
+        return message;
+    },
+};
+function createBaseListExtensionsFilter() {
+    return { extension: [] };
+}
+exports.ListExtensionsFilter = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.extension) {
+            writer.uint32(10).string(v);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListExtensionsFilter();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.extension.push(reader.string());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListExtensionsFilter();
+        message.extension = ((_a = object.extension) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];
+        return message;
+    },
+};
+function createBaseListExtensionsRequest() {
+    return { filter: undefined };
+}
+exports.ListExtensionsRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.filter !== undefined) {
+            exports.ListExtensionsFilter.encode(message.filter, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListExtensionsRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.filter = exports.ListExtensionsFilter.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseListExtensionsRequest();
+        message.filter =
+            object.filter !== undefined && object.filter !== null
+                ? exports.ListExtensionsFilter.fromPartial(object.filter)
+                : undefined;
+        return message;
+    },
+};
+function createBaseListExtensionsResponse() {
+    return { extensions: [] };
+}
+exports.ListExtensionsResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.extensions) {
+            exports.ExtensionDescriptor.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListExtensionsResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.extensions.push(exports.ExtensionDescriptor.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListExtensionsResponse();
+        message.extensions =
+            ((_a = object.extensions) === null || _a === void 0 ? void 0 : _a.map((e) => exports.ExtensionDescriptor.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseSpaceExtensions() {
+    return {
+        extension: "",
+        title: "",
+        version: "",
+        deps: [],
+        state: 0,
+        statusError: "",
+        statusMsg: "",
+    };
+}
+exports.SpaceExtensions = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.extension !== "") {
+            writer.uint32(80002).string(message.extension);
+        }
+        if (message.title !== "") {
+            writer.uint32(80082).string(message.title);
+        }
+        if (message.version !== "") {
+            writer.uint32(80802).string(message.version);
+        }
+        for (const v of message.deps) {
+            writer.uint32(81602).string(v);
+        }
+        if (message.state !== 0) {
+            writer.uint32(82400).int32(message.state);
+        }
+        if (message.statusError !== "") {
+            writer.uint32(83202).string(message.statusError);
+        }
+        if (message.statusMsg !== "") {
+            writer.uint32(84002).string(message.statusMsg);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseSpaceExtensions();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 10000:
+                    message.extension = reader.string();
+                    break;
+                case 10010:
+                    message.title = reader.string();
+                    break;
+                case 10100:
+                    message.version = reader.string();
+                    break;
+                case 10200:
+                    message.deps.push(reader.string());
+                    break;
+                case 10300:
+                    message.state = reader.int32();
+                    break;
+                case 10400:
+                    message.statusError = reader.string();
+                    break;
+                case 10500:
+                    message.statusMsg = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e, _f, _g;
+        const message = createBaseSpaceExtensions();
+        message.extension = (_a = object.extension) !== null && _a !== void 0 ? _a : "";
+        message.title = (_b = object.title) !== null && _b !== void 0 ? _b : "";
+        message.version = (_c = object.version) !== null && _c !== void 0 ? _c : "";
+        message.deps = ((_d = object.deps) === null || _d === void 0 ? void 0 : _d.map((e) => e)) || [];
+        message.state = (_e = object.state) !== null && _e !== void 0 ? _e : 0;
+        message.statusError = (_f = object.statusError) !== null && _f !== void 0 ? _f : "";
+        message.statusMsg = (_g = object.statusMsg) !== null && _g !== void 0 ? _g : "";
+        return message;
+    },
+};
+exports.ExtensionManagerDefinition = {
+    name: "ExtensionManager",
+    fullName: "extensions.ExtensionManager",
+    methods: {
+        /**
+         * ##  Регистрация расширений
+         *
+         * Регистрация\Дерегистрация происходить через сервис менеджера расширений (Extension Manager). В процессе регистрации сервис сообщает
+         * о поддерживаемых сервисом действиях (Actions) и версии сервиса и зависимостях:
+         * 1. Действия (Actions) - перечень действия которые обрабатываются сервисом. Включает в себя как системные действия,
+         * так и пользовательские, которые могут быть использованы в интерфейсе;
+         * 2. Имя сервиса/расширения - название сервиса внутри системы;
+         * 3. Версия сервиса - сервис сообщает текущую версию сервиса. Контроллер сообщает пользователю о возможности обновления
+         * расширения при смене версии;
+         * 4. Описание версии - содержит информацию об изменениях в последних версиях расширения;
+         * 5. Зависимости - перечень расширений которые необходимы сервису для функционирования. При установке сервиса
+         * все расширения от которых он зависит, будут так же установлены.
+         */
+        registerExtensions: {
+            name: "RegisterExtensions",
+            requestType: exports.RegisterExtensionsRequest,
+            requestStream: false,
+            responseType: exports.RegisterExtensionsResponse,
+            responseStream: false,
+            options: {},
+        },
+        unregisterExtensions: {
+            name: "UnregisterExtensions",
+            requestType: exports.UnregisterExtensionsRequest,
+            requestStream: false,
+            responseType: exports.UnregisterExtensionsResponse,
+            responseStream: false,
+            options: {},
+        },
+        /** Получить список зарегистрированных сервисов */
+        listExtensions: {
+            name: "ListExtensions",
+            requestType: exports.ListExtensionsRequest,
+            requestStream: false,
+            responseType: exports.ListExtensionsResponse,
+            responseStream: false,
+            options: {},
+        },
+    },
+};
+//# sourceMappingURL=manager.js.map
\ No newline at end of file
diff --git a/clients/extensions/manager.js.map b/clients/extensions/manager.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..f0f0d372a0cb1969304ebad4c12e7f0fde195a6f
--- /dev/null
+++ b/clients/extensions/manager.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"manager.js","sourceRoot":"","sources":["manager.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/files/files.d.ts b/clients/files/files.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..62eb381ebec8224cb951f54d6b2222a955a78829
--- /dev/null
+++ b/clients/files/files.d.ts
@@ -0,0 +1,319 @@
+import { Empty } from "../google/protobuf/empty";
+import * as _m0 from "protobufjs/minimal";
+export interface File {
+    /** Уникальный идентификатор файла в хранилище */
+    id: string;
+    /** Имя файла */
+    name: string;
+    /** Размер файла */
+    size: number;
+    /** Mime-type файла */
+    mimeType: string;
+    /** Адрес для загрузки файла */
+    url: string;
+}
+export interface MultipartUpload {
+    file?: File;
+    /** Идентификатор загрузки хранилища */
+    uploadId: string;
+    /** Размер блока для загрузки */
+    partSize: number;
+    /** Адреса для загрузки пол */
+    partUrls: string[];
+    /** Идентификаторы загруженных блоков (S3 ETAGs) */
+    parts: CompletedPart[];
+}
+export interface Upload {
+    file?: File;
+    /** URL для загрузки файлов */
+    uploadUrl: string;
+}
+export interface CompletedPart {
+    number: number;
+    id: string;
+}
+export interface StartUploadRequest {
+    upload?: MultipartUpload;
+}
+export interface StartUploadResponse {
+    upload?: MultipartUpload;
+}
+export interface CompleteUploadRequest {
+    upload?: MultipartUpload;
+}
+export interface CompleteUploadResponse {
+    upload?: MultipartUpload;
+}
+export interface AbortUploadRequest {
+    upload?: MultipartUpload;
+}
+export interface AbortUploadResponse {
+}
+export interface MoveUploadRequest {
+    upload?: MultipartUpload;
+}
+export interface MoveUploadResponse {
+    file?: File;
+}
+export interface UploadRequest {
+    file?: File;
+}
+export interface UploadResponse {
+    upload?: Upload;
+}
+export interface GetFileRequest {
+    id: string;
+}
+export interface GetFileResponse {
+    file?: File;
+}
+export interface DeleteFileRequest {
+    file?: File;
+}
+export interface DeleteFileResponse {
+}
+export declare const File: {
+    encode(message: File, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): File;
+    fromPartial(object: DeepPartial<File>): File;
+};
+export declare const MultipartUpload: {
+    encode(message: MultipartUpload, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): MultipartUpload;
+    fromPartial(object: DeepPartial<MultipartUpload>): MultipartUpload;
+};
+export declare const Upload: {
+    encode(message: Upload, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Upload;
+    fromPartial(object: DeepPartial<Upload>): Upload;
+};
+export declare const CompletedPart: {
+    encode(message: CompletedPart, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CompletedPart;
+    fromPartial(object: DeepPartial<CompletedPart>): CompletedPart;
+};
+export declare const StartUploadRequest: {
+    encode(message: StartUploadRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): StartUploadRequest;
+    fromPartial(object: DeepPartial<StartUploadRequest>): StartUploadRequest;
+};
+export declare const StartUploadResponse: {
+    encode(message: StartUploadResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): StartUploadResponse;
+    fromPartial(object: DeepPartial<StartUploadResponse>): StartUploadResponse;
+};
+export declare const CompleteUploadRequest: {
+    encode(message: CompleteUploadRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CompleteUploadRequest;
+    fromPartial(object: DeepPartial<CompleteUploadRequest>): CompleteUploadRequest;
+};
+export declare const CompleteUploadResponse: {
+    encode(message: CompleteUploadResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CompleteUploadResponse;
+    fromPartial(object: DeepPartial<CompleteUploadResponse>): CompleteUploadResponse;
+};
+export declare const AbortUploadRequest: {
+    encode(message: AbortUploadRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): AbortUploadRequest;
+    fromPartial(object: DeepPartial<AbortUploadRequest>): AbortUploadRequest;
+};
+export declare const AbortUploadResponse: {
+    encode(_: AbortUploadResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): AbortUploadResponse;
+    fromPartial(_: DeepPartial<AbortUploadResponse>): AbortUploadResponse;
+};
+export declare const MoveUploadRequest: {
+    encode(message: MoveUploadRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): MoveUploadRequest;
+    fromPartial(object: DeepPartial<MoveUploadRequest>): MoveUploadRequest;
+};
+export declare const MoveUploadResponse: {
+    encode(message: MoveUploadResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): MoveUploadResponse;
+    fromPartial(object: DeepPartial<MoveUploadResponse>): MoveUploadResponse;
+};
+export declare const UploadRequest: {
+    encode(message: UploadRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UploadRequest;
+    fromPartial(object: DeepPartial<UploadRequest>): UploadRequest;
+};
+export declare const UploadResponse: {
+    encode(message: UploadResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UploadResponse;
+    fromPartial(object: DeepPartial<UploadResponse>): UploadResponse;
+};
+export declare const GetFileRequest: {
+    encode(message: GetFileRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetFileRequest;
+    fromPartial(object: DeepPartial<GetFileRequest>): GetFileRequest;
+};
+export declare const GetFileResponse: {
+    encode(message: GetFileResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetFileResponse;
+    fromPartial(object: DeepPartial<GetFileResponse>): GetFileResponse;
+};
+export declare const DeleteFileRequest: {
+    encode(message: DeleteFileRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteFileRequest;
+    fromPartial(object: DeepPartial<DeleteFileRequest>): DeleteFileRequest;
+};
+export declare const DeleteFileResponse: {
+    encode(_: DeleteFileResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteFileResponse;
+    fromPartial(_: DeepPartial<DeleteFileResponse>): DeleteFileResponse;
+};
+export declare type FilesDefinition = typeof FilesDefinition;
+export declare const FilesDefinition: {
+    readonly name: "Files";
+    readonly fullName: "files.Files";
+    readonly methods: {
+        /**
+         * StartUpload - инициирует процедуру загрузки файла в файловое хранилище.
+         * Используется клиентским приложением для начала загрузки файла
+         * Требуемые параметры: объект `MultipartUpload` с вложенным объектом `File`, в котором
+         * обязательные поля  Name и Size.
+         * Возвращает объект с заполненными полями ID, PartSize, PartURLs, MimeType, Size, UploadID.
+         */
+        readonly startUpload: {
+            readonly name: "StartUpload";
+            readonly requestType: {
+                encode(message: StartUploadRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): StartUploadRequest;
+                fromPartial(object: DeepPartial<StartUploadRequest>): StartUploadRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: StartUploadResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): StartUploadResponse;
+                fromPartial(object: DeepPartial<StartUploadResponse>): StartUploadResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /**
+         * CompleteUpload - завершает процедуру загрузку файла
+         * Предполагается, что в объекте, полученном из `StartUpload`, клиент должен заполнить поле
+         * Parts (идентификаторами загруженных блоков (S3 ETAGs)) и передать его в `CompleteUpload`
+         */
+        readonly completeUpload: {
+            readonly name: "CompleteUpload";
+            readonly requestType: {
+                encode(message: CompleteUploadRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CompleteUploadRequest;
+                fromPartial(object: DeepPartial<CompleteUploadRequest>): CompleteUploadRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: CompleteUploadResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CompleteUploadResponse;
+                fromPartial(object: DeepPartial<CompleteUploadResponse>): CompleteUploadResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** AbortUpload - прерывает процедуру загрузки файла, все загруженные части файла удаляются их хранилища */
+        readonly abortUpload: {
+            readonly name: "AbortUpload";
+            readonly requestType: {
+                encode(message: AbortUploadRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): AbortUploadRequest;
+                fromPartial(object: DeepPartial<AbortUploadRequest>): AbortUploadRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /**
+         * MoveUpload - перемещает загруженный файл из временного расположения в постоянное месторасположения.
+         * После перемещение загрузки хранилище выдает новый идентификатор постоянного файла
+         */
+        readonly moveUpload: {
+            readonly name: "MoveUpload";
+            readonly requestType: {
+                encode(message: MoveUploadRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): MoveUploadRequest;
+                fromPartial(object: DeepPartial<MoveUploadRequest>): MoveUploadRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: MoveUploadResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): MoveUploadResponse;
+                fromPartial(object: DeepPartial<MoveUploadResponse>): MoveUploadResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /**
+         * Upload - инициация загрузки файла в хранилище. Возвращает объект, содержащий подписанный URL.
+         * Завершение загрузки файла осуществляется выполнением POST-запроса
+         */
+        readonly upload: {
+            readonly name: "Upload";
+            readonly requestType: {
+                encode(message: UploadRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): UploadRequest;
+                fromPartial(object: DeepPartial<UploadRequest>): UploadRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: UploadResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): UploadResponse;
+                fromPartial(object: DeepPartial<UploadResponse>): UploadResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** GetFile - получить информацию о файле (ссылку) по ID */
+        readonly getFile: {
+            readonly name: "GetFile";
+            readonly requestType: {
+                encode(message: GetFileRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetFileRequest;
+                fromPartial(object: DeepPartial<GetFileRequest>): GetFileRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetFileResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetFileResponse;
+                fromPartial(object: DeepPartial<GetFileResponse>): GetFileResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /**
+         * DeleteFile - удаляет файл. Если происходит удаление оригинала,
+         * удаляются и все связанные структуры
+         * Возможны следующие ситуации:
+         *  - Удаление оригинального файла. Удаляется файл и все связанные с ним файлы.
+         *  - Удаление связанного файла. Для удаления конкретного файла передается 'ID', 'Type' и 'Name'
+         *  - Удаления связанных файлов конкретного типа (например, все 'thumbnails'). Передается 'ID' и 'Type'
+         */
+        readonly deleteFile: {
+            readonly name: "DeleteFile";
+            readonly requestType: {
+                encode(message: DeleteFileRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): DeleteFileRequest;
+                fromPartial(object: DeepPartial<DeleteFileRequest>): DeleteFileRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+    };
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=files.d.ts.map
\ No newline at end of file
diff --git a/clients/files/files.d.ts.map b/clients/files/files.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..a6c48d93ef102f96d726908ace796c61e4545bee
--- /dev/null
+++ b/clients/files/files.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["files.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/files/files.js b/clients/files/files.js
new file mode 100644
index 0000000000000000000000000000000000000000..739a5fe02e5c1c4c996005125a56d97f508e296f
--- /dev/null
+++ b/clients/files/files.js
@@ -0,0 +1,823 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.FilesDefinition = exports.DeleteFileResponse = exports.DeleteFileRequest = exports.GetFileResponse = exports.GetFileRequest = exports.UploadResponse = exports.UploadRequest = exports.MoveUploadResponse = exports.MoveUploadRequest = exports.AbortUploadResponse = exports.AbortUploadRequest = exports.CompleteUploadResponse = exports.CompleteUploadRequest = exports.StartUploadResponse = exports.StartUploadRequest = exports.CompletedPart = exports.Upload = exports.MultipartUpload = exports.File = void 0;
+/* eslint-disable */
+const empty_1 = require("../google/protobuf/empty");
+const _m0 = __importStar(require("protobufjs/minimal"));
+function createBaseFile() {
+    return { id: "", name: "", size: 0, mimeType: "", url: "" };
+}
+exports.File = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.id !== "") {
+            writer.uint32(10).string(message.id);
+        }
+        if (message.name !== "") {
+            writer.uint32(18).string(message.name);
+        }
+        if (message.size !== 0) {
+            writer.uint32(24).int32(message.size);
+        }
+        if (message.mimeType !== "") {
+            writer.uint32(34).string(message.mimeType);
+        }
+        if (message.url !== "") {
+            writer.uint32(42).string(message.url);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFile();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.id = reader.string();
+                    break;
+                case 2:
+                    message.name = reader.string();
+                    break;
+                case 3:
+                    message.size = reader.int32();
+                    break;
+                case 4:
+                    message.mimeType = reader.string();
+                    break;
+                case 5:
+                    message.url = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e;
+        const message = createBaseFile();
+        message.id = (_a = object.id) !== null && _a !== void 0 ? _a : "";
+        message.name = (_b = object.name) !== null && _b !== void 0 ? _b : "";
+        message.size = (_c = object.size) !== null && _c !== void 0 ? _c : 0;
+        message.mimeType = (_d = object.mimeType) !== null && _d !== void 0 ? _d : "";
+        message.url = (_e = object.url) !== null && _e !== void 0 ? _e : "";
+        return message;
+    },
+};
+function createBaseMultipartUpload() {
+    return {
+        file: undefined,
+        uploadId: "",
+        partSize: 0,
+        partUrls: [],
+        parts: [],
+    };
+}
+exports.MultipartUpload = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.file !== undefined) {
+            exports.File.encode(message.file, writer.uint32(10).fork()).ldelim();
+        }
+        if (message.uploadId !== "") {
+            writer.uint32(18).string(message.uploadId);
+        }
+        if (message.partSize !== 0) {
+            writer.uint32(24).int32(message.partSize);
+        }
+        for (const v of message.partUrls) {
+            writer.uint32(34).string(v);
+        }
+        for (const v of message.parts) {
+            exports.CompletedPart.encode(v, writer.uint32(42).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseMultipartUpload();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.file = exports.File.decode(reader, reader.uint32());
+                    break;
+                case 2:
+                    message.uploadId = reader.string();
+                    break;
+                case 3:
+                    message.partSize = reader.int32();
+                    break;
+                case 4:
+                    message.partUrls.push(reader.string());
+                    break;
+                case 5:
+                    message.parts.push(exports.CompletedPart.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d;
+        const message = createBaseMultipartUpload();
+        message.file =
+            object.file !== undefined && object.file !== null
+                ? exports.File.fromPartial(object.file)
+                : undefined;
+        message.uploadId = (_a = object.uploadId) !== null && _a !== void 0 ? _a : "";
+        message.partSize = (_b = object.partSize) !== null && _b !== void 0 ? _b : 0;
+        message.partUrls = ((_c = object.partUrls) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];
+        message.parts =
+            ((_d = object.parts) === null || _d === void 0 ? void 0 : _d.map((e) => exports.CompletedPart.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseUpload() {
+    return { file: undefined, uploadUrl: "" };
+}
+exports.Upload = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.file !== undefined) {
+            exports.File.encode(message.file, writer.uint32(10).fork()).ldelim();
+        }
+        if (message.uploadUrl !== "") {
+            writer.uint32(18).string(message.uploadUrl);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUpload();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.file = exports.File.decode(reader, reader.uint32());
+                    break;
+                case 2:
+                    message.uploadUrl = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseUpload();
+        message.file =
+            object.file !== undefined && object.file !== null
+                ? exports.File.fromPartial(object.file)
+                : undefined;
+        message.uploadUrl = (_a = object.uploadUrl) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseCompletedPart() {
+    return { number: 0, id: "" };
+}
+exports.CompletedPart = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.number !== 0) {
+            writer.uint32(8).int32(message.number);
+        }
+        if (message.id !== "") {
+            writer.uint32(18).string(message.id);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCompletedPart();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.number = reader.int32();
+                    break;
+                case 2:
+                    message.id = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseCompletedPart();
+        message.number = (_a = object.number) !== null && _a !== void 0 ? _a : 0;
+        message.id = (_b = object.id) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseStartUploadRequest() {
+    return { upload: undefined };
+}
+exports.StartUploadRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.upload !== undefined) {
+            exports.MultipartUpload.encode(message.upload, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseStartUploadRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.upload = exports.MultipartUpload.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseStartUploadRequest();
+        message.upload =
+            object.upload !== undefined && object.upload !== null
+                ? exports.MultipartUpload.fromPartial(object.upload)
+                : undefined;
+        return message;
+    },
+};
+function createBaseStartUploadResponse() {
+    return { upload: undefined };
+}
+exports.StartUploadResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.upload !== undefined) {
+            exports.MultipartUpload.encode(message.upload, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseStartUploadResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.upload = exports.MultipartUpload.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseStartUploadResponse();
+        message.upload =
+            object.upload !== undefined && object.upload !== null
+                ? exports.MultipartUpload.fromPartial(object.upload)
+                : undefined;
+        return message;
+    },
+};
+function createBaseCompleteUploadRequest() {
+    return { upload: undefined };
+}
+exports.CompleteUploadRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.upload !== undefined) {
+            exports.MultipartUpload.encode(message.upload, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCompleteUploadRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.upload = exports.MultipartUpload.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCompleteUploadRequest();
+        message.upload =
+            object.upload !== undefined && object.upload !== null
+                ? exports.MultipartUpload.fromPartial(object.upload)
+                : undefined;
+        return message;
+    },
+};
+function createBaseCompleteUploadResponse() {
+    return { upload: undefined };
+}
+exports.CompleteUploadResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.upload !== undefined) {
+            exports.MultipartUpload.encode(message.upload, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCompleteUploadResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.upload = exports.MultipartUpload.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCompleteUploadResponse();
+        message.upload =
+            object.upload !== undefined && object.upload !== null
+                ? exports.MultipartUpload.fromPartial(object.upload)
+                : undefined;
+        return message;
+    },
+};
+function createBaseAbortUploadRequest() {
+    return { upload: undefined };
+}
+exports.AbortUploadRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.upload !== undefined) {
+            exports.MultipartUpload.encode(message.upload, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseAbortUploadRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.upload = exports.MultipartUpload.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseAbortUploadRequest();
+        message.upload =
+            object.upload !== undefined && object.upload !== null
+                ? exports.MultipartUpload.fromPartial(object.upload)
+                : undefined;
+        return message;
+    },
+};
+function createBaseAbortUploadResponse() {
+    return {};
+}
+exports.AbortUploadResponse = {
+    encode(_, writer = _m0.Writer.create()) {
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseAbortUploadResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(_) {
+        const message = createBaseAbortUploadResponse();
+        return message;
+    },
+};
+function createBaseMoveUploadRequest() {
+    return { upload: undefined };
+}
+exports.MoveUploadRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.upload !== undefined) {
+            exports.MultipartUpload.encode(message.upload, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseMoveUploadRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.upload = exports.MultipartUpload.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseMoveUploadRequest();
+        message.upload =
+            object.upload !== undefined && object.upload !== null
+                ? exports.MultipartUpload.fromPartial(object.upload)
+                : undefined;
+        return message;
+    },
+};
+function createBaseMoveUploadResponse() {
+    return { file: undefined };
+}
+exports.MoveUploadResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.file !== undefined) {
+            exports.File.encode(message.file, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseMoveUploadResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.file = exports.File.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseMoveUploadResponse();
+        message.file =
+            object.file !== undefined && object.file !== null
+                ? exports.File.fromPartial(object.file)
+                : undefined;
+        return message;
+    },
+};
+function createBaseUploadRequest() {
+    return { file: undefined };
+}
+exports.UploadRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.file !== undefined) {
+            exports.File.encode(message.file, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUploadRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.file = exports.File.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseUploadRequest();
+        message.file =
+            object.file !== undefined && object.file !== null
+                ? exports.File.fromPartial(object.file)
+                : undefined;
+        return message;
+    },
+};
+function createBaseUploadResponse() {
+    return { upload: undefined };
+}
+exports.UploadResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.upload !== undefined) {
+            exports.Upload.encode(message.upload, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUploadResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.upload = exports.Upload.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseUploadResponse();
+        message.upload =
+            object.upload !== undefined && object.upload !== null
+                ? exports.Upload.fromPartial(object.upload)
+                : undefined;
+        return message;
+    },
+};
+function createBaseGetFileRequest() {
+    return { id: "" };
+}
+exports.GetFileRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.id !== "") {
+            writer.uint32(10).string(message.id);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetFileRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.id = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseGetFileRequest();
+        message.id = (_a = object.id) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseGetFileResponse() {
+    return { file: undefined };
+}
+exports.GetFileResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.file !== undefined) {
+            exports.File.encode(message.file, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetFileResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.file = exports.File.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseGetFileResponse();
+        message.file =
+            object.file !== undefined && object.file !== null
+                ? exports.File.fromPartial(object.file)
+                : undefined;
+        return message;
+    },
+};
+function createBaseDeleteFileRequest() {
+    return { file: undefined };
+}
+exports.DeleteFileRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.file !== undefined) {
+            exports.File.encode(message.file, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseDeleteFileRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.file = exports.File.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseDeleteFileRequest();
+        message.file =
+            object.file !== undefined && object.file !== null
+                ? exports.File.fromPartial(object.file)
+                : undefined;
+        return message;
+    },
+};
+function createBaseDeleteFileResponse() {
+    return {};
+}
+exports.DeleteFileResponse = {
+    encode(_, writer = _m0.Writer.create()) {
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseDeleteFileResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(_) {
+        const message = createBaseDeleteFileResponse();
+        return message;
+    },
+};
+exports.FilesDefinition = {
+    name: "Files",
+    fullName: "files.Files",
+    methods: {
+        /**
+         * StartUpload - инициирует процедуру загрузки файла в файловое хранилище.
+         * Используется клиентским приложением для начала загрузки файла
+         * Требуемые параметры: объект `MultipartUpload` с вложенным объектом `File`, в котором
+         * обязательные поля  Name и Size.
+         * Возвращает объект с заполненными полями ID, PartSize, PartURLs, MimeType, Size, UploadID.
+         */
+        startUpload: {
+            name: "StartUpload",
+            requestType: exports.StartUploadRequest,
+            requestStream: false,
+            responseType: exports.StartUploadResponse,
+            responseStream: false,
+            options: {},
+        },
+        /**
+         * CompleteUpload - завершает процедуру загрузку файла
+         * Предполагается, что в объекте, полученном из `StartUpload`, клиент должен заполнить поле
+         * Parts (идентификаторами загруженных блоков (S3 ETAGs)) и передать его в `CompleteUpload`
+         */
+        completeUpload: {
+            name: "CompleteUpload",
+            requestType: exports.CompleteUploadRequest,
+            requestStream: false,
+            responseType: exports.CompleteUploadResponse,
+            responseStream: false,
+            options: {},
+        },
+        /** AbortUpload - прерывает процедуру загрузки файла, все загруженные части файла удаляются их хранилища */
+        abortUpload: {
+            name: "AbortUpload",
+            requestType: exports.AbortUploadRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        /**
+         * MoveUpload - перемещает загруженный файл из временного расположения в постоянное месторасположения.
+         * После перемещение загрузки хранилище выдает новый идентификатор постоянного файла
+         */
+        moveUpload: {
+            name: "MoveUpload",
+            requestType: exports.MoveUploadRequest,
+            requestStream: false,
+            responseType: exports.MoveUploadResponse,
+            responseStream: false,
+            options: {},
+        },
+        /**
+         * Upload - инициация загрузки файла в хранилище. Возвращает объект, содержащий подписанный URL.
+         * Завершение загрузки файла осуществляется выполнением POST-запроса
+         */
+        upload: {
+            name: "Upload",
+            requestType: exports.UploadRequest,
+            requestStream: false,
+            responseType: exports.UploadResponse,
+            responseStream: false,
+            options: {},
+        },
+        /** GetFile - получить информацию о файле (ссылку) по ID */
+        getFile: {
+            name: "GetFile",
+            requestType: exports.GetFileRequest,
+            requestStream: false,
+            responseType: exports.GetFileResponse,
+            responseStream: false,
+            options: {},
+        },
+        /**
+         * DeleteFile - удаляет файл. Если происходит удаление оригинала,
+         * удаляются и все связанные структуры
+         * Возможны следующие ситуации:
+         *  - Удаление оригинального файла. Удаляется файл и все связанные с ним файлы.
+         *  - Удаление связанного файла. Для удаления конкретного файла передается 'ID', 'Type' и 'Name'
+         *  - Удаления связанных файлов конкретного типа (например, все 'thumbnails'). Передается 'ID' и 'Type'
+         */
+        deleteFile: {
+            name: "DeleteFile",
+            requestType: exports.DeleteFileRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+    },
+};
+//# sourceMappingURL=files.js.map
\ No newline at end of file
diff --git a/clients/files/files.js.map b/clients/files/files.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..8145dc4fca31c7c75696156ccda70f79891497be
--- /dev/null
+++ b/clients/files/files.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"files.js","sourceRoot":"","sources":["files.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/google/protobuf/any.d.ts b/clients/google/protobuf/any.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..828dcd0b8059e5287c222e4f724b2c353ba690ad
--- /dev/null
+++ b/clients/google/protobuf/any.d.ts
@@ -0,0 +1,130 @@
+import * as _m0 from "protobufjs/minimal";
+/**
+ * `Any` contains an arbitrary serialized protocol buffer message along with a
+ * URL that describes the type of the serialized message.
+ *
+ * Protobuf library provides support to pack/unpack Any values in the form
+ * of utility functions or additional generated methods of the Any type.
+ *
+ * Example 1: Pack and unpack a message in C++.
+ *
+ *     Foo foo = ...;
+ *     Any any;
+ *     any.PackFrom(foo);
+ *     ...
+ *     if (any.UnpackTo(&foo)) {
+ *       ...
+ *     }
+ *
+ * Example 2: Pack and unpack a message in Java.
+ *
+ *     Foo foo = ...;
+ *     Any any = Any.pack(foo);
+ *     ...
+ *     if (any.is(Foo.class)) {
+ *       foo = any.unpack(Foo.class);
+ *     }
+ *
+ * Example 3: Pack and unpack a message in Python.
+ *
+ *     foo = Foo(...)
+ *     any = Any()
+ *     any.Pack(foo)
+ *     ...
+ *     if any.Is(Foo.DESCRIPTOR):
+ *       any.Unpack(foo)
+ *       ...
+ *
+ * Example 4: Pack and unpack a message in Go
+ *
+ *      foo := &pb.Foo{...}
+ *      any, err := anypb.New(foo)
+ *      if err != nil {
+ *        ...
+ *      }
+ *      ...
+ *      foo := &pb.Foo{}
+ *      if err := any.UnmarshalTo(foo); err != nil {
+ *        ...
+ *      }
+ *
+ * The pack methods provided by protobuf library will by default use
+ * 'type.googleapis.com/full.type.name' as the type URL and the unpack
+ * methods only use the fully qualified type name after the last '/'
+ * in the type URL, for example "foo.bar.com/x/y.z" will yield type
+ * name "y.z".
+ *
+ *
+ * JSON
+ *
+ * The JSON representation of an `Any` value uses the regular
+ * representation of the deserialized, embedded message, with an
+ * additional field `@type` which contains the type URL. Example:
+ *
+ *     package google.profile;
+ *     message Person {
+ *       string first_name = 1;
+ *       string last_name = 2;
+ *     }
+ *
+ *     {
+ *       "@type": "type.googleapis.com/google.profile.Person",
+ *       "firstName": <string>,
+ *       "lastName": <string>
+ *     }
+ *
+ * If the embedded message type is well-known and has a custom JSON
+ * representation, that representation will be embedded adding a field
+ * `value` which holds the custom JSON in addition to the `@type`
+ * field. Example (for message [google.protobuf.Duration][]):
+ *
+ *     {
+ *       "@type": "type.googleapis.com/google.protobuf.Duration",
+ *       "value": "1.212s"
+ *     }
+ */
+export interface Any {
+    /**
+     * A URL/resource name that uniquely identifies the type of the serialized
+     * protocol buffer message. This string must contain at least
+     * one "/" character. The last segment of the URL's path must represent
+     * the fully qualified name of the type (as in
+     * `path/google.protobuf.Duration`). The name should be in a canonical form
+     * (e.g., leading "." is not accepted).
+     *
+     * In practice, teams usually precompile into the binary all types that they
+     * expect it to use in the context of Any. However, for URLs which use the
+     * scheme `http`, `https`, or no scheme, one can optionally set up a type
+     * server that maps type URLs to message definitions as follows:
+     *
+     * * If no scheme is provided, `https` is assumed.
+     * * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+     *   value in binary format, or produce an error.
+     * * Applications are allowed to cache lookup results based on the
+     *   URL, or have them precompiled into a binary to avoid any
+     *   lookup. Therefore, binary compatibility needs to be preserved
+     *   on changes to types. (Use versioned type names to manage
+     *   breaking changes.)
+     *
+     * Note: this functionality is not currently available in the official
+     * protobuf release, and it is not used for type URLs beginning with
+     * type.googleapis.com.
+     *
+     * Schemes other than `http`, `https` (or the empty scheme) might be
+     * used with implementation specific semantics.
+     */
+    typeUrl: string;
+    /** Must be a valid serialized protocol buffer of the above specified type. */
+    value: Uint8Array;
+}
+export declare const Any: {
+    encode(message: Any, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Any;
+    fromPartial(object: DeepPartial<Any>): Any;
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=any.d.ts.map
\ No newline at end of file
diff --git a/clients/google/protobuf/any.d.ts.map b/clients/google/protobuf/any.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..8f37fa824eed793e4264bbe40b89685af896d852
--- /dev/null
+++ b/clients/google/protobuf/any.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"any.d.ts","sourceRoot":"","sources":["any.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmFG;AACH,MAAM,WAAW,GAAG;IAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,KAAK,EAAE,UAAU,CAAC;CACnB;AAMD,eAAO,MAAM,GAAG;oBACE,GAAG,WAAU,IAAI,MAAM,GAAyB,IAAI,MAAM;kBAU5D,IAAI,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,GAAG;wBAqBxC,YAAY,GAAG,CAAC,GAAG,GAAG;CAM3C,CAAC;AAEF,aAAK,OAAO,GACR,IAAI,GACJ,QAAQ,GACR,UAAU,GACV,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,CAAC;AAEd,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,GACnC,CAAC,GACD,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACxB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAChC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAC7B,CAAC,SAAS,EAAE,GACZ;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACtC,OAAO,CAAC,CAAC,CAAC,CAAC"}
\ No newline at end of file
diff --git a/clients/google/protobuf/any.js b/clients/google/protobuf/any.js
new file mode 100644
index 0000000000000000000000000000000000000000..2c6edcba756801ebdace26d50342051f1e937bcc
--- /dev/null
+++ b/clients/google/protobuf/any.js
@@ -0,0 +1,70 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Any = void 0;
+/* eslint-disable */
+const _m0 = __importStar(require("protobufjs/minimal"));
+function createBaseAny() {
+    return { typeUrl: "", value: new Uint8Array() };
+}
+exports.Any = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.typeUrl !== "") {
+            writer.uint32(10).string(message.typeUrl);
+        }
+        if (message.value.length !== 0) {
+            writer.uint32(18).bytes(message.value);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseAny();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.typeUrl = reader.string();
+                    break;
+                case 2:
+                    message.value = reader.bytes();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseAny();
+        message.typeUrl = (_a = object.typeUrl) !== null && _a !== void 0 ? _a : "";
+        message.value = (_b = object.value) !== null && _b !== void 0 ? _b : new Uint8Array();
+        return message;
+    },
+};
+//# sourceMappingURL=any.js.map
\ No newline at end of file
diff --git a/clients/google/protobuf/any.js.map b/clients/google/protobuf/any.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..b2b8479093c0bb52c6a73f52b76fc635e2e05249
--- /dev/null
+++ b/clients/google/protobuf/any.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"any.js","sourceRoot":"","sources":["any.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oBAAoB;AACpB,wDAA0C;AAyH1C,SAAS,aAAa;IACpB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,UAAU,EAAE,EAAE,CAAC;AAClD,CAAC;AAEY,QAAA,GAAG,GAAG;IACjB,MAAM,CAAC,OAAY,EAAE,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAC3D,IAAI,OAAO,CAAC,OAAO,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC3C;QACD,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACxC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC/B,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAAwB;;QAClC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;QAChC,OAAO,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,GAAG,MAAA,MAAM,CAAC,KAAK,mCAAI,IAAI,UAAU,EAAE,CAAC;QACjD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC"}
\ No newline at end of file
diff --git a/clients/google/protobuf/empty.d.ts b/clients/google/protobuf/empty.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ce68f8f5bd83d21134802b221d101e93915a5bbc
--- /dev/null
+++ b/clients/google/protobuf/empty.d.ts
@@ -0,0 +1,23 @@
+import * as _m0 from "protobufjs/minimal";
+/**
+ * A generic empty message that you can re-use to avoid defining duplicated
+ * empty messages in your APIs. A typical example is to use it as the request
+ * or the response type of an API method. For instance:
+ *
+ *     service Foo {
+ *       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+ *     }
+ */
+export interface Empty {
+}
+export declare const Empty: {
+    encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Empty;
+    fromPartial(_: DeepPartial<Empty>): Empty;
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=empty.d.ts.map
\ No newline at end of file
diff --git a/clients/google/protobuf/empty.d.ts.map b/clients/google/protobuf/empty.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..5b48a6313854b06f3934a184271b93274919ca9b
--- /dev/null
+++ b/clients/google/protobuf/empty.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"empty.d.ts","sourceRoot":"","sources":["empty.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAE1C;;;;;;;;GAQG;AACH,MAAM,WAAW,KAAK;CAAG;AAMzB,eAAO,MAAM,KAAK;cACN,KAAK,WAAU,IAAI,MAAM,GAAyB,IAAI,MAAM;kBAIxD,IAAI,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,KAAK;mBAe/C,YAAY,KAAK,CAAC,GAAG,KAAK;CAI1C,CAAC;AAEF,aAAK,OAAO,GACR,IAAI,GACJ,QAAQ,GACR,UAAU,GACV,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,CAAC;AAEd,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,GACnC,CAAC,GACD,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACxB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAChC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAC7B,CAAC,SAAS,EAAE,GACZ;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACtC,OAAO,CAAC,CAAC,CAAC,CAAC"}
\ No newline at end of file
diff --git a/clients/google/protobuf/empty.js b/clients/google/protobuf/empty.js
new file mode 100644
index 0000000000000000000000000000000000000000..62ff545fd89003b9affe3017ebacfb0ac8e424f0
--- /dev/null
+++ b/clients/google/protobuf/empty.js
@@ -0,0 +1,55 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Empty = void 0;
+/* eslint-disable */
+const _m0 = __importStar(require("protobufjs/minimal"));
+function createBaseEmpty() {
+    return {};
+}
+exports.Empty = {
+    encode(_, writer = _m0.Writer.create()) {
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseEmpty();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(_) {
+        const message = createBaseEmpty();
+        return message;
+    },
+};
+//# sourceMappingURL=empty.js.map
\ No newline at end of file
diff --git a/clients/google/protobuf/empty.js.map b/clients/google/protobuf/empty.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..c84f782f92b75a62cc96b4ae6bc968cd2bed33a1
--- /dev/null
+++ b/clients/google/protobuf/empty.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"empty.js","sourceRoot":"","sources":["empty.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oBAAoB;AACpB,wDAA0C;AAa1C,SAAS,eAAe;IACtB,OAAO,EAAE,CAAC;AACZ,CAAC;AAEY,QAAA,KAAK,GAAG;IACnB,MAAM,CAAC,CAAQ,EAAE,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QACvD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,CAAqB;QAC/B,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC"}
\ No newline at end of file
diff --git a/clients/google/protobuf/struct.d.ts b/clients/google/protobuf/struct.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..da8f81d444772af0fef6cce7574ff4620bbfaf34
--- /dev/null
+++ b/clients/google/protobuf/struct.d.ts
@@ -0,0 +1,101 @@
+import * as _m0 from "protobufjs/minimal";
+/**
+ * `NullValue` is a singleton enumeration to represent the null value for the
+ * `Value` type union.
+ *
+ *  The JSON representation for `NullValue` is JSON `null`.
+ */
+export declare enum NullValue {
+    /** NULL_VALUE - Null value. */
+    NULL_VALUE = 0,
+    UNRECOGNIZED = -1
+}
+/**
+ * `Struct` represents a structured data value, consisting of fields
+ * which map to dynamically typed values. In some languages, `Struct`
+ * might be supported by a native representation. For example, in
+ * scripting languages like JS a struct is represented as an
+ * object. The details of that representation are described together
+ * with the proto support for the language.
+ *
+ * The JSON representation for `Struct` is JSON object.
+ */
+export interface Struct {
+    /** Unordered map of dynamically typed values. */
+    fields: {
+        [key: string]: any;
+    };
+}
+export interface Struct_FieldsEntry {
+    key: string;
+    value?: any;
+}
+/**
+ * `Value` represents a dynamically typed value which can be either
+ * null, a number, a string, a boolean, a recursive struct value, or a
+ * list of values. A producer of value is expected to set one of these
+ * variants. Absence of any variant indicates an error.
+ *
+ * The JSON representation for `Value` is JSON value.
+ */
+export interface Value {
+    /** Represents a null value. */
+    nullValue: NullValue | undefined;
+    /** Represents a double value. */
+    numberValue: number | undefined;
+    /** Represents a string value. */
+    stringValue: string | undefined;
+    /** Represents a boolean value. */
+    boolValue: boolean | undefined;
+    /** Represents a structured value. */
+    structValue?: {
+        [key: string]: any;
+    };
+    /** Represents a repeated `Value`. */
+    listValue?: Array<any>;
+}
+/**
+ * `ListValue` is a wrapper around a repeated field of values.
+ *
+ * The JSON representation for `ListValue` is JSON array.
+ */
+export interface ListValue {
+    /** Repeated field of dynamically typed values. */
+    values: any[];
+}
+export declare const Struct: {
+    encode(message: Struct, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Struct;
+    fromPartial(object: DeepPartial<Struct>): Struct;
+    wrap(object: {
+        [key: string]: any;
+    } | undefined): Struct;
+    unwrap(message: Struct): {
+        [key: string]: any;
+    };
+};
+export declare const Struct_FieldsEntry: {
+    encode(message: Struct_FieldsEntry, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Struct_FieldsEntry;
+    fromPartial(object: DeepPartial<Struct_FieldsEntry>): Struct_FieldsEntry;
+};
+export declare const Value: {
+    encode(message: Value, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Value;
+    fromPartial(object: DeepPartial<Value>): Value;
+    wrap(value: any): Value;
+    unwrap(message: Value): string | number | boolean | Object | null | Array<any> | undefined;
+};
+export declare const ListValue: {
+    encode(message: ListValue, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListValue;
+    fromPartial(object: DeepPartial<ListValue>): ListValue;
+    wrap(value: Array<any> | undefined): ListValue;
+    unwrap(message: ListValue): Array<any>;
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=struct.d.ts.map
\ No newline at end of file
diff --git a/clients/google/protobuf/struct.d.ts.map b/clients/google/protobuf/struct.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..d17da9908fb38852473eeb33ba1b259ae31b7c91
--- /dev/null
+++ b/clients/google/protobuf/struct.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["struct.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/google/protobuf/struct.js b/clients/google/protobuf/struct.js
new file mode 100644
index 0000000000000000000000000000000000000000..67c0f0af8dfdafa28c7f0a4a4752f30c02fad633
--- /dev/null
+++ b/clients/google/protobuf/struct.js
@@ -0,0 +1,306 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ListValue = exports.Value = exports.Struct_FieldsEntry = exports.Struct = exports.NullValue = void 0;
+/* eslint-disable */
+const _m0 = __importStar(require("protobufjs/minimal"));
+/**
+ * `NullValue` is a singleton enumeration to represent the null value for the
+ * `Value` type union.
+ *
+ *  The JSON representation for `NullValue` is JSON `null`.
+ */
+var NullValue;
+(function (NullValue) {
+    /** NULL_VALUE - Null value. */
+    NullValue[NullValue["NULL_VALUE"] = 0] = "NULL_VALUE";
+    NullValue[NullValue["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
+})(NullValue = exports.NullValue || (exports.NullValue = {}));
+function createBaseStruct() {
+    return { fields: {} };
+}
+exports.Struct = {
+    encode(message, writer = _m0.Writer.create()) {
+        Object.entries(message.fields).forEach(([key, value]) => {
+            if (value !== undefined) {
+                exports.Struct_FieldsEntry.encode({ key: key, value }, writer.uint32(10).fork()).ldelim();
+            }
+        });
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseStruct();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    const entry1 = exports.Struct_FieldsEntry.decode(reader, reader.uint32());
+                    if (entry1.value !== undefined) {
+                        message.fields[entry1.key] = entry1.value;
+                    }
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseStruct();
+        message.fields = Object.entries((_a = object.fields) !== null && _a !== void 0 ? _a : {}).reduce((acc, [key, value]) => {
+            if (value !== undefined) {
+                acc[key] = value;
+            }
+            return acc;
+        }, {});
+        return message;
+    },
+    wrap(object) {
+        const struct = createBaseStruct();
+        if (object !== undefined) {
+            Object.keys(object).forEach((key) => {
+                struct.fields[key] = object[key];
+            });
+        }
+        return struct;
+    },
+    unwrap(message) {
+        const object = {};
+        Object.keys(message.fields).forEach((key) => {
+            object[key] = message.fields[key];
+        });
+        return object;
+    },
+};
+function createBaseStruct_FieldsEntry() {
+    return { key: "", value: undefined };
+}
+exports.Struct_FieldsEntry = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.key !== "") {
+            writer.uint32(10).string(message.key);
+        }
+        if (message.value !== undefined) {
+            exports.Value.encode(exports.Value.wrap(message.value), writer.uint32(18).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseStruct_FieldsEntry();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.key = reader.string();
+                    break;
+                case 2:
+                    message.value = exports.Value.unwrap(exports.Value.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseStruct_FieldsEntry();
+        message.key = (_a = object.key) !== null && _a !== void 0 ? _a : "";
+        message.value = (_b = object.value) !== null && _b !== void 0 ? _b : undefined;
+        return message;
+    },
+};
+function createBaseValue() {
+    return {
+        nullValue: undefined,
+        numberValue: undefined,
+        stringValue: undefined,
+        boolValue: undefined,
+        structValue: undefined,
+        listValue: undefined,
+    };
+}
+exports.Value = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.nullValue !== undefined) {
+            writer.uint32(8).int32(message.nullValue);
+        }
+        if (message.numberValue !== undefined) {
+            writer.uint32(17).double(message.numberValue);
+        }
+        if (message.stringValue !== undefined) {
+            writer.uint32(26).string(message.stringValue);
+        }
+        if (message.boolValue !== undefined) {
+            writer.uint32(32).bool(message.boolValue);
+        }
+        if (message.structValue !== undefined) {
+            exports.Struct.encode(exports.Struct.wrap(message.structValue), writer.uint32(42).fork()).ldelim();
+        }
+        if (message.listValue !== undefined) {
+            exports.ListValue.encode(exports.ListValue.wrap(message.listValue), writer.uint32(50).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseValue();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.nullValue = reader.int32();
+                    break;
+                case 2:
+                    message.numberValue = reader.double();
+                    break;
+                case 3:
+                    message.stringValue = reader.string();
+                    break;
+                case 4:
+                    message.boolValue = reader.bool();
+                    break;
+                case 5:
+                    message.structValue = exports.Struct.unwrap(exports.Struct.decode(reader, reader.uint32()));
+                    break;
+                case 6:
+                    message.listValue = exports.ListValue.unwrap(exports.ListValue.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e, _f;
+        const message = createBaseValue();
+        message.nullValue = (_a = object.nullValue) !== null && _a !== void 0 ? _a : undefined;
+        message.numberValue = (_b = object.numberValue) !== null && _b !== void 0 ? _b : undefined;
+        message.stringValue = (_c = object.stringValue) !== null && _c !== void 0 ? _c : undefined;
+        message.boolValue = (_d = object.boolValue) !== null && _d !== void 0 ? _d : undefined;
+        message.structValue = (_e = object.structValue) !== null && _e !== void 0 ? _e : undefined;
+        message.listValue = (_f = object.listValue) !== null && _f !== void 0 ? _f : undefined;
+        return message;
+    },
+    wrap(value) {
+        const result = createBaseValue();
+        if (value === null) {
+            result.nullValue = NullValue.NULL_VALUE;
+        }
+        else if (typeof value === "boolean") {
+            result.boolValue = value;
+        }
+        else if (typeof value === "number") {
+            result.numberValue = value;
+        }
+        else if (typeof value === "string") {
+            result.stringValue = value;
+        }
+        else if (Array.isArray(value)) {
+            result.listValue = value;
+        }
+        else if (typeof value === "object") {
+            result.structValue = value;
+        }
+        else if (typeof value !== "undefined") {
+            throw new Error("Unsupported any value type: " + typeof value);
+        }
+        return result;
+    },
+    unwrap(message) {
+        if ((message === null || message === void 0 ? void 0 : message.stringValue) !== undefined) {
+            return message.stringValue;
+        }
+        else if ((message === null || message === void 0 ? void 0 : message.numberValue) !== undefined) {
+            return message.numberValue;
+        }
+        else if ((message === null || message === void 0 ? void 0 : message.boolValue) !== undefined) {
+            return message.boolValue;
+        }
+        else if ((message === null || message === void 0 ? void 0 : message.structValue) !== undefined) {
+            return message.structValue;
+        }
+        else if ((message === null || message === void 0 ? void 0 : message.listValue) !== undefined) {
+            return message.listValue;
+        }
+        else if ((message === null || message === void 0 ? void 0 : message.nullValue) !== undefined) {
+            return null;
+        }
+        return undefined;
+    },
+};
+function createBaseListValue() {
+    return { values: [] };
+}
+exports.ListValue = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.values) {
+            exports.Value.encode(exports.Value.wrap(v), writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListValue();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.values.push(exports.Value.unwrap(exports.Value.decode(reader, reader.uint32())));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListValue();
+        message.values = ((_a = object.values) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];
+        return message;
+    },
+    wrap(value) {
+        const result = createBaseListValue();
+        result.values = value !== null && value !== void 0 ? value : [];
+        return result;
+    },
+    unwrap(message) {
+        return message.values;
+    },
+};
+//# sourceMappingURL=struct.js.map
\ No newline at end of file
diff --git a/clients/google/protobuf/struct.js.map b/clients/google/protobuf/struct.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..67515009b919af007c804b48b92b7c1ac88fbd01
--- /dev/null
+++ b/clients/google/protobuf/struct.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"struct.js","sourceRoot":"","sources":["struct.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oBAAoB;AACpB,wDAA0C;AAE1C;;;;;GAKG;AACH,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,+BAA+B;IAC/B,qDAAc,CAAA;IACd,0DAAiB,CAAA;AACnB,CAAC,EAJW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAIpB;AAuDD,SAAS,gBAAgB;IACvB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACxB,CAAC;AAEY,QAAA,MAAM,GAAG;IACpB,MAAM,CACJ,OAAe,EACf,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACtD,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,0BAAkB,CAAC,MAAM,CACvB,EAAE,GAAG,EAAE,GAAU,EAAE,KAAK,EAAE,EAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CACzB,CAAC,MAAM,EAAE,CAAC;aACZ;QACH,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,MAAM,MAAM,GAAG,0BAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBAClE,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;wBAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;qBAC3C;oBACD,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAA2B;;QACrC,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACnC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAA,MAAM,CAAC,MAAM,mCAAI,EAAE,CAAC,CAAC,MAAM,CAExD,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACvB,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAClB;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,MAA0C;QAC7C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAClC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;SACJ;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC;AAEF,SAAS,4BAA4B;IACnC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACvC,CAAC;AAEY,QAAA,kBAAkB,GAAG;IAChC,MAAM,CACJ,OAA2B,EAC3B,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,GAAG,KAAK,EAAE,EAAE;YACtB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SACvC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;YAC/B,aAAK,CAAC,MAAM,CACV,aAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EACzB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CACzB,CAAC,MAAM,EAAE,CAAC;SACZ;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,4BAA4B,EAAE,CAAC;QAC/C,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAC9B,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,KAAK,GAAG,aAAK,CAAC,MAAM,CAAC,aAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBACpE,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAAuC;;QACjD,MAAM,OAAO,GAAG,4BAA4B,EAAE,CAAC;QAC/C,OAAO,CAAC,GAAG,GAAG,MAAA,MAAM,CAAC,GAAG,mCAAI,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,GAAG,MAAA,MAAM,CAAC,KAAK,mCAAI,SAAS,CAAC;QAC1C,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,eAAe;IACtB,OAAO;QACL,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,SAAS;QACtB,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,SAAS;KACrB,CAAC;AACJ,CAAC;AAEY,QAAA,KAAK,GAAG;IACnB,MAAM,CAAC,OAAc,EAAE,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAC7D,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE;YACnC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC3C;QACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE;YACrC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SAC/C;QACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE;YACrC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SAC/C;QACD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE;YACnC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC3C;QACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE;YACrC,cAAM,CAAC,MAAM,CACX,cAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAChC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CACzB,CAAC,MAAM,EAAE,CAAC;SACZ;QACD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE;YACnC,iBAAS,CAAC,MAAM,CACd,iBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EACjC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CACzB,CAAC,MAAM,EAAE,CAAC;SACZ;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,EAAS,CAAC;oBAC1C,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACtC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBACtC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;oBAClC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,WAAW,GAAG,cAAM,CAAC,MAAM,CACjC,cAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CACvC,CAAC;oBACF,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,SAAS,GAAG,iBAAS,CAAC,MAAM,CAClC,iBAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAC1C,CAAC;oBACF,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAA0B;;QACpC,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;QAClC,OAAO,CAAC,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,SAAS,CAAC;QAClD,OAAO,CAAC,WAAW,GAAG,MAAA,MAAM,CAAC,WAAW,mCAAI,SAAS,CAAC;QACtD,OAAO,CAAC,WAAW,GAAG,MAAA,MAAM,CAAC,WAAW,mCAAI,SAAS,CAAC;QACtD,OAAO,CAAC,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,SAAS,CAAC;QAClD,OAAO,CAAC,WAAW,GAAG,MAAA,MAAM,CAAC,WAAW,mCAAI,SAAS,CAAC;QACtD,OAAO,CAAC,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,SAAS,CAAC;QAClD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,KAAU;QACb,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QAEjC,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC;SACzC;aAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;YACrC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;SAC1B;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACpC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;SAC5B;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACpC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;SAC5B;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC/B,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;SAC1B;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACpC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;SAC5B;aAAM,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;YACvC,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,OAAO,KAAK,CAAC,CAAC;SAChE;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CACJ,OAAc;QAEd,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,MAAK,SAAS,EAAE;YACtC,OAAO,OAAO,CAAC,WAAW,CAAC;SAC5B;aAAM,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,MAAK,SAAS,EAAE;YAC7C,OAAO,OAAO,CAAC,WAAW,CAAC;SAC5B;aAAM,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,MAAK,SAAS,EAAE;YAC3C,OAAO,OAAO,CAAC,SAAS,CAAC;SAC1B;aAAM,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,MAAK,SAAS,EAAE;YAC7C,OAAO,OAAO,CAAC,WAAW,CAAC;SAC5B;aAAM,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,MAAK,SAAS,EAAE;YAC3C,OAAO,OAAO,CAAC,SAAS,CAAC;SAC1B;aAAM,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,MAAK,SAAS,EAAE;YAC3C,OAAO,IAAI,CAAC;SACb;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF,CAAC;AAEF,SAAS,mBAAmB;IAC1B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACxB,CAAC;AAEY,QAAA,SAAS,GAAG;IACvB,MAAM,CACJ,OAAkB,EAClB,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE;YAC9B,aAAK,CAAC,MAAM,CAAC,aAAK,CAAC,IAAI,CAAC,CAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SACjE;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB,aAAK,CAAC,MAAM,CAAC,aAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CACpD,CAAC;oBACF,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAA8B;;QACxC,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;QACtC,OAAO,CAAC,MAAM,GAAG,CAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAI,EAAE,CAAC;QACpD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,KAA6B;QAChC,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;QAErC,MAAM,CAAC,MAAM,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC;QAE5B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,OAAkB;QACvB,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;CACF,CAAC"}
\ No newline at end of file
diff --git a/clients/google/protobuf/timestamp.d.ts b/clients/google/protobuf/timestamp.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a54f76bbd143e8049d63e6a593a81b3abb789723
--- /dev/null
+++ b/clients/google/protobuf/timestamp.d.ts
@@ -0,0 +1,120 @@
+import * as _m0 from "protobufjs/minimal";
+/**
+ * A Timestamp represents a point in time independent of any time zone or local
+ * calendar, encoded as a count of seconds and fractions of seconds at
+ * nanosecond resolution. The count is relative to an epoch at UTC midnight on
+ * January 1, 1970, in the proleptic Gregorian calendar which extends the
+ * Gregorian calendar backwards to year one.
+ *
+ * All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
+ * second table is needed for interpretation, using a [24-hour linear
+ * smear](https://developers.google.com/time/smear).
+ *
+ * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
+ * restricting to that range, we ensure that we can convert to and from [RFC
+ * 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
+ *
+ * # Examples
+ *
+ * Example 1: Compute Timestamp from POSIX `time()`.
+ *
+ *     Timestamp timestamp;
+ *     timestamp.set_seconds(time(NULL));
+ *     timestamp.set_nanos(0);
+ *
+ * Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+ *
+ *     struct timeval tv;
+ *     gettimeofday(&tv, NULL);
+ *
+ *     Timestamp timestamp;
+ *     timestamp.set_seconds(tv.tv_sec);
+ *     timestamp.set_nanos(tv.tv_usec * 1000);
+ *
+ * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+ *
+ *     FILETIME ft;
+ *     GetSystemTimeAsFileTime(&ft);
+ *     UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+ *
+ *     // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
+ *     // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
+ *     Timestamp timestamp;
+ *     timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
+ *     timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+ *
+ * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+ *
+ *     long millis = System.currentTimeMillis();
+ *
+ *     Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
+ *         .setNanos((int) ((millis % 1000) * 1000000)).build();
+ *
+ *
+ * Example 5: Compute Timestamp from Java `Instant.now()`.
+ *
+ *     Instant now = Instant.now();
+ *
+ *     Timestamp timestamp =
+ *         Timestamp.newBuilder().setSeconds(now.getEpochSecond())
+ *             .setNanos(now.getNano()).build();
+ *
+ *
+ * Example 6: Compute Timestamp from current time in Python.
+ *
+ *     timestamp = Timestamp()
+ *     timestamp.GetCurrentTime()
+ *
+ * # JSON Mapping
+ *
+ * In JSON format, the Timestamp type is encoded as a string in the
+ * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
+ * format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
+ * where {year} is always expressed using four digits while {month}, {day},
+ * {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
+ * seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
+ * are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
+ * is required. A proto3 JSON serializer should always use UTC (as indicated by
+ * "Z") when printing the Timestamp type and a proto3 JSON parser should be
+ * able to accept both UTC and other timezones (as indicated by an offset).
+ *
+ * For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
+ * 01:30 UTC on January 15, 2017.
+ *
+ * In JavaScript, one can convert a Date object to this format using the
+ * standard
+ * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
+ * method. In Python, a standard `datetime.datetime` object can be converted
+ * to this format using
+ * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
+ * the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
+ * the Joda Time's [`ISODateTimeFormat.dateTime()`](
+ * http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
+ * ) to obtain a formatter capable of generating timestamps in this format.
+ */
+export interface Timestamp {
+    /**
+     * Represents seconds of UTC time since Unix epoch
+     * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
+     * 9999-12-31T23:59:59Z inclusive.
+     */
+    seconds: number;
+    /**
+     * Non-negative fractions of a second at nanosecond resolution. Negative
+     * second values with fractions must still have non-negative nanos values
+     * that count forward in time. Must be from 0 to 999,999,999
+     * inclusive.
+     */
+    nanos: number;
+}
+export declare const Timestamp: {
+    encode(message: Timestamp, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Timestamp;
+    fromPartial(object: DeepPartial<Timestamp>): Timestamp;
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=timestamp.d.ts.map
\ No newline at end of file
diff --git a/clients/google/protobuf/timestamp.d.ts.map b/clients/google/protobuf/timestamp.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..d3346ffbf62ed97284f1c873bc5a4fb2cfae2c68
--- /dev/null
+++ b/clients/google/protobuf/timestamp.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"timestamp.d.ts","sourceRoot":"","sources":["timestamp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4FG;AACH,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAMD,eAAO,MAAM,SAAS;oBAET,SAAS,WACV,IAAI,MAAM,GACjB,IAAI,MAAM;kBAUC,IAAI,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,SAAS;wBAqB9C,YAAY,SAAS,CAAC,GAAG,SAAS;CAMvD,CAAC;AAaF,aAAK,OAAO,GACR,IAAI,GACJ,QAAQ,GACR,UAAU,GACV,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,CAAC;AAEd,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,GACnC,CAAC,GACD,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACxB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAChC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAC7B,CAAC,SAAS,EAAE,GACZ;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACtC,OAAO,CAAC,CAAC,CAAC,CAAC"}
\ No newline at end of file
diff --git a/clients/google/protobuf/timestamp.js b/clients/google/protobuf/timestamp.js
new file mode 100644
index 0000000000000000000000000000000000000000..2c9ae627fc1d5bd3bd42cf12935bf2cc2f341c70
--- /dev/null
+++ b/clients/google/protobuf/timestamp.js
@@ -0,0 +1,95 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Timestamp = void 0;
+/* eslint-disable */
+const long_1 = __importDefault(require("long"));
+const _m0 = __importStar(require("protobufjs/minimal"));
+function createBaseTimestamp() {
+    return { seconds: 0, nanos: 0 };
+}
+exports.Timestamp = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.seconds !== 0) {
+            writer.uint32(8).int64(message.seconds);
+        }
+        if (message.nanos !== 0) {
+            writer.uint32(16).int32(message.nanos);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseTimestamp();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.seconds = longToNumber(reader.int64());
+                    break;
+                case 2:
+                    message.nanos = reader.int32();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseTimestamp();
+        message.seconds = (_a = object.seconds) !== null && _a !== void 0 ? _a : 0;
+        message.nanos = (_b = object.nanos) !== null && _b !== void 0 ? _b : 0;
+        return message;
+    },
+};
+var globalThis = (() => {
+    if (typeof globalThis !== "undefined")
+        return globalThis;
+    if (typeof self !== "undefined")
+        return self;
+    if (typeof window !== "undefined")
+        return window;
+    if (typeof global !== "undefined")
+        return global;
+    throw "Unable to locate global object";
+})();
+function longToNumber(long) {
+    if (long.gt(Number.MAX_SAFE_INTEGER)) {
+        throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
+    }
+    return long.toNumber();
+}
+if (_m0.util.Long !== long_1.default) {
+    _m0.util.Long = long_1.default;
+    _m0.configure();
+}
+//# sourceMappingURL=timestamp.js.map
\ No newline at end of file
diff --git a/clients/google/protobuf/timestamp.js.map b/clients/google/protobuf/timestamp.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..7222fe201f54b7cc3dca1d267b6c4513d992160f
--- /dev/null
+++ b/clients/google/protobuf/timestamp.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"timestamp.js","sourceRoot":"","sources":["timestamp.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oBAAoB;AACpB,gDAAwB;AACxB,wDAA0C;AA+G1C,SAAS,mBAAmB;IAC1B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAClC,CAAC;AAEY,QAAA,SAAS,GAAG;IACvB,MAAM,CACJ,OAAkB,EAClB,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,OAAO,KAAK,CAAC,EAAE;YACzB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACzC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC,EAAE;YACvB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACxC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,EAAU,CAAC,CAAC;oBACvD,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC/B,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAA8B;;QACxC,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;QACtC,OAAO,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,CAAC,CAAC;QACtC,OAAO,CAAC,KAAK,GAAG,MAAA,MAAM,CAAC,KAAK,mCAAI,CAAC,CAAC;QAClC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAKF,IAAI,UAAU,GAAQ,CAAC,GAAG,EAAE;IAC1B,IAAI,OAAO,UAAU,KAAK,WAAW;QAAE,OAAO,UAAU,CAAC;IACzD,IAAI,OAAO,IAAI,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,MAAM,CAAC;IACjD,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,MAAM,CAAC;IACjD,MAAM,gCAAgC,CAAC;AACzC,CAAC,CAAC,EAAE,CAAC;AAqBL,SAAS,YAAY,CAAC,IAAU;IAC9B,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;QACpC,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;KAC5E;IACD,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;AACzB,CAAC;AAED,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,cAAI,EAAE;IAC1B,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,cAAW,CAAC;IAC5B,GAAG,CAAC,SAAS,EAAE,CAAC;CACjB"}
\ No newline at end of file
diff --git a/clients/google/protobuf/wrappers.d.ts b/clients/google/protobuf/wrappers.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..1b63d4ce72a4dca6e3eb7d390e6902c72c04260f
--- /dev/null
+++ b/clients/google/protobuf/wrappers.d.ts
@@ -0,0 +1,133 @@
+import * as _m0 from "protobufjs/minimal";
+/**
+ * Wrapper message for `double`.
+ *
+ * The JSON representation for `DoubleValue` is JSON number.
+ */
+export interface DoubleValue {
+    /** The double value. */
+    value: number;
+}
+/**
+ * Wrapper message for `float`.
+ *
+ * The JSON representation for `FloatValue` is JSON number.
+ */
+export interface FloatValue {
+    /** The float value. */
+    value: number;
+}
+/**
+ * Wrapper message for `int64`.
+ *
+ * The JSON representation for `Int64Value` is JSON string.
+ */
+export interface Int64Value {
+    /** The int64 value. */
+    value: number;
+}
+/**
+ * Wrapper message for `uint64`.
+ *
+ * The JSON representation for `UInt64Value` is JSON string.
+ */
+export interface UInt64Value {
+    /** The uint64 value. */
+    value: number;
+}
+/**
+ * Wrapper message for `int32`.
+ *
+ * The JSON representation for `Int32Value` is JSON number.
+ */
+export interface Int32Value {
+    /** The int32 value. */
+    value: number;
+}
+/**
+ * Wrapper message for `uint32`.
+ *
+ * The JSON representation for `UInt32Value` is JSON number.
+ */
+export interface UInt32Value {
+    /** The uint32 value. */
+    value: number;
+}
+/**
+ * Wrapper message for `bool`.
+ *
+ * The JSON representation for `BoolValue` is JSON `true` and `false`.
+ */
+export interface BoolValue {
+    /** The bool value. */
+    value: boolean;
+}
+/**
+ * Wrapper message for `string`.
+ *
+ * The JSON representation for `StringValue` is JSON string.
+ */
+export interface StringValue {
+    /** The string value. */
+    value: string;
+}
+/**
+ * Wrapper message for `bytes`.
+ *
+ * The JSON representation for `BytesValue` is JSON string.
+ */
+export interface BytesValue {
+    /** The bytes value. */
+    value: Uint8Array;
+}
+export declare const DoubleValue: {
+    encode(message: DoubleValue, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): DoubleValue;
+    fromPartial(object: DeepPartial<DoubleValue>): DoubleValue;
+};
+export declare const FloatValue: {
+    encode(message: FloatValue, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): FloatValue;
+    fromPartial(object: DeepPartial<FloatValue>): FloatValue;
+};
+export declare const Int64Value: {
+    encode(message: Int64Value, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Int64Value;
+    fromPartial(object: DeepPartial<Int64Value>): Int64Value;
+};
+export declare const UInt64Value: {
+    encode(message: UInt64Value, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UInt64Value;
+    fromPartial(object: DeepPartial<UInt64Value>): UInt64Value;
+};
+export declare const Int32Value: {
+    encode(message: Int32Value, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Int32Value;
+    fromPartial(object: DeepPartial<Int32Value>): Int32Value;
+};
+export declare const UInt32Value: {
+    encode(message: UInt32Value, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UInt32Value;
+    fromPartial(object: DeepPartial<UInt32Value>): UInt32Value;
+};
+export declare const BoolValue: {
+    encode(message: BoolValue, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): BoolValue;
+    fromPartial(object: DeepPartial<BoolValue>): BoolValue;
+};
+export declare const StringValue: {
+    encode(message: StringValue, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): StringValue;
+    fromPartial(object: DeepPartial<StringValue>): StringValue;
+};
+export declare const BytesValue: {
+    encode(message: BytesValue, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): BytesValue;
+    fromPartial(object: DeepPartial<BytesValue>): BytesValue;
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=wrappers.d.ts.map
\ No newline at end of file
diff --git a/clients/google/protobuf/wrappers.d.ts.map b/clients/google/protobuf/wrappers.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..67300693f9d0d4a48581fcf761e70c94ebefa873
--- /dev/null
+++ b/clients/google/protobuf/wrappers.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"wrappers.d.ts","sourceRoot":"","sources":["wrappers.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/google/protobuf/wrappers.js b/clients/google/protobuf/wrappers.js
new file mode 100644
index 0000000000000000000000000000000000000000..9c9956fb95eaf649416f9a67d21ec1071e6c412c
--- /dev/null
+++ b/clients/google/protobuf/wrappers.js
@@ -0,0 +1,360 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.BytesValue = exports.StringValue = exports.BoolValue = exports.UInt32Value = exports.Int32Value = exports.UInt64Value = exports.Int64Value = exports.FloatValue = exports.DoubleValue = void 0;
+/* eslint-disable */
+const long_1 = __importDefault(require("long"));
+const _m0 = __importStar(require("protobufjs/minimal"));
+function createBaseDoubleValue() {
+    return { value: 0 };
+}
+exports.DoubleValue = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.value !== 0) {
+            writer.uint32(9).double(message.value);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseDoubleValue();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.value = reader.double();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseDoubleValue();
+        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : 0;
+        return message;
+    },
+};
+function createBaseFloatValue() {
+    return { value: 0 };
+}
+exports.FloatValue = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.value !== 0) {
+            writer.uint32(13).float(message.value);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFloatValue();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.value = reader.float();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseFloatValue();
+        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : 0;
+        return message;
+    },
+};
+function createBaseInt64Value() {
+    return { value: 0 };
+}
+exports.Int64Value = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.value !== 0) {
+            writer.uint32(8).int64(message.value);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseInt64Value();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.value = longToNumber(reader.int64());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseInt64Value();
+        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : 0;
+        return message;
+    },
+};
+function createBaseUInt64Value() {
+    return { value: 0 };
+}
+exports.UInt64Value = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.value !== 0) {
+            writer.uint32(8).uint64(message.value);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUInt64Value();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.value = longToNumber(reader.uint64());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseUInt64Value();
+        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : 0;
+        return message;
+    },
+};
+function createBaseInt32Value() {
+    return { value: 0 };
+}
+exports.Int32Value = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.value !== 0) {
+            writer.uint32(8).int32(message.value);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseInt32Value();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.value = reader.int32();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseInt32Value();
+        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : 0;
+        return message;
+    },
+};
+function createBaseUInt32Value() {
+    return { value: 0 };
+}
+exports.UInt32Value = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.value !== 0) {
+            writer.uint32(8).uint32(message.value);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUInt32Value();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.value = reader.uint32();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseUInt32Value();
+        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : 0;
+        return message;
+    },
+};
+function createBaseBoolValue() {
+    return { value: false };
+}
+exports.BoolValue = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.value === true) {
+            writer.uint32(8).bool(message.value);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseBoolValue();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.value = reader.bool();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseBoolValue();
+        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : false;
+        return message;
+    },
+};
+function createBaseStringValue() {
+    return { value: "" };
+}
+exports.StringValue = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.value !== "") {
+            writer.uint32(10).string(message.value);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseStringValue();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.value = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseStringValue();
+        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseBytesValue() {
+    return { value: new Uint8Array() };
+}
+exports.BytesValue = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.value.length !== 0) {
+            writer.uint32(10).bytes(message.value);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseBytesValue();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.value = reader.bytes();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseBytesValue();
+        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : new Uint8Array();
+        return message;
+    },
+};
+var globalThis = (() => {
+    if (typeof globalThis !== "undefined")
+        return globalThis;
+    if (typeof self !== "undefined")
+        return self;
+    if (typeof window !== "undefined")
+        return window;
+    if (typeof global !== "undefined")
+        return global;
+    throw "Unable to locate global object";
+})();
+function longToNumber(long) {
+    if (long.gt(Number.MAX_SAFE_INTEGER)) {
+        throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
+    }
+    return long.toNumber();
+}
+if (_m0.util.Long !== long_1.default) {
+    _m0.util.Long = long_1.default;
+    _m0.configure();
+}
+//# sourceMappingURL=wrappers.js.map
\ No newline at end of file
diff --git a/clients/google/protobuf/wrappers.js.map b/clients/google/protobuf/wrappers.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..63a9f2d9e0e63aa05cd0ce0f2aada73573157537
--- /dev/null
+++ b/clients/google/protobuf/wrappers.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"wrappers.js","sourceRoot":"","sources":["wrappers.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/images/images.d.ts b/clients/images/images.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ebb6c598a66bac54dcf021de81a31466640bc24d
--- /dev/null
+++ b/clients/images/images.d.ts
@@ -0,0 +1,76 @@
+import { File } from "../files/files";
+import * as _m0 from "protobufjs/minimal";
+export interface Param {
+    op: string;
+    value: string[];
+}
+export interface GetRequest {
+    source?: File;
+    opts?: GetRequest_GetOptions;
+}
+export interface GetRequest_GetOptions {
+    params: Param[];
+}
+export interface GetResponse {
+    result?: File;
+}
+export declare const Param: {
+    encode(message: Param, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Param;
+    fromPartial(object: DeepPartial<Param>): Param;
+};
+export declare const GetRequest: {
+    encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+    fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+};
+export declare const GetRequest_GetOptions: {
+    encode(message: GetRequest_GetOptions, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest_GetOptions;
+    fromPartial(object: DeepPartial<GetRequest_GetOptions>): GetRequest_GetOptions;
+};
+export declare const GetResponse: {
+    encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+    fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+};
+/** ImageService - сервис для обработки изображений */
+export declare type ImagesDefinition = typeof ImagesDefinition;
+export declare const ImagesDefinition: {
+    readonly name: "Images";
+    readonly fullName: "images.Images";
+    readonly methods: {
+        /**
+         * Get - к файлу, идентификатор которого передан в запросе, применяются параметры.
+         * Может быть передано несколько параметров, порядок учитывается при обработке
+         * Допустимые операции:
+         *  - crop (ширина, высота)
+         *  - fit (ширина, высота)
+         *  - resize (ширина, высота)
+         *  - format (один из форматов [ png, jpeg, jpg, gif ]
+         * Возвращает объект File с заполненным полем File.URL
+         */
+        readonly get: {
+            readonly name: "Get";
+            readonly requestType: {
+                encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+                fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+                fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+    };
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=images.d.ts.map
\ No newline at end of file
diff --git a/clients/images/images.d.ts.map b/clients/images/images.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..8c3e42833ebe8bf0f2b37504d4ea4ecc8774171e
--- /dev/null
+++ b/clients/images/images.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"images.d.ts","sourceRoot":"","sources":["images.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAE1C,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,IAAI,CAAC,EAAE,qBAAqB,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,IAAI,CAAC;CACf;AAMD,eAAO,MAAM,KAAK;oBACA,KAAK,WAAU,IAAI,MAAM,GAAyB,IAAI,MAAM;kBAU9D,IAAI,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,KAAK;wBAqB1C,YAAY,KAAK,CAAC,GAAG,KAAK;CAM/C,CAAC;AAMF,eAAO,MAAM,UAAU;oBAEV,UAAU,WACX,IAAI,MAAM,GACjB,IAAI,MAAM;kBAaC,IAAI,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,UAAU;wBAqB/C,YAAY,UAAU,CAAC,GAAG,UAAU;CAYzD,CAAC;AAMF,eAAO,MAAM,qBAAqB;oBAErB,qBAAqB,WACtB,IAAI,MAAM,GACjB,IAAI,MAAM;kBAQJ,IAAI,MAAM,GAAG,UAAU,WACrB,MAAM,GACd,qBAAqB;wBAmBd,YAAY,qBAAqB,CAAC,GACzC,qBAAqB;CAKzB,CAAC;AAMF,eAAO,MAAM,WAAW;oBAEX,WAAW,WACZ,IAAI,MAAM,GACjB,IAAI,MAAM;kBAOC,IAAI,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,WAAW;wBAkBhD,YAAY,WAAW,CAAC,GAAG,WAAW;CAQ3D,CAAC;AAEF,sDAAsD;AACtD,oBAAY,gBAAgB,GAAG,OAAO,gBAAgB,CAAC;AACvD,eAAO,MAAM,gBAAgB;;;;QAIzB;;;;;;;;;WASG;;;;gCAzJM,UAAU,WACX,IAAI,MAAM,GACjB,IAAI,MAAM;8BAaC,IAAI,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,UAAU;oCAqB/C,YAAY,UAAU,CAAC,GAAG,UAAU;;;;gCAiE7C,WAAW,WACZ,IAAI,MAAM,GACjB,IAAI,MAAM;8BAOC,IAAI,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,WAAW;oCAkBhD,YAAY,WAAW,CAAC,GAAG,WAAW;;;;;;CAmClD,CAAC;AAEX,aAAK,OAAO,GACR,IAAI,GACJ,QAAQ,GACR,UAAU,GACV,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,CAAC;AAEd,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,GACnC,CAAC,GACD,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACxB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAChC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAC7B,CAAC,SAAS,EAAE,GACZ;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACtC,OAAO,CAAC,CAAC,CAAC,CAAC"}
\ No newline at end of file
diff --git a/clients/images/images.js b/clients/images/images.js
new file mode 100644
index 0000000000000000000000000000000000000000..1ab82500b0c2fd88695b0eac11870ecc8123bf9f
--- /dev/null
+++ b/clients/images/images.js
@@ -0,0 +1,211 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ImagesDefinition = exports.GetResponse = exports.GetRequest_GetOptions = exports.GetRequest = exports.Param = void 0;
+/* eslint-disable */
+const files_1 = require("../files/files");
+const _m0 = __importStar(require("protobufjs/minimal"));
+function createBaseParam() {
+    return { op: "", value: [] };
+}
+exports.Param = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.op !== "") {
+            writer.uint32(10).string(message.op);
+        }
+        for (const v of message.value) {
+            writer.uint32(18).string(v);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseParam();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.op = reader.string();
+                    break;
+                case 2:
+                    message.value.push(reader.string());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseParam();
+        message.op = (_a = object.op) !== null && _a !== void 0 ? _a : "";
+        message.value = ((_b = object.value) === null || _b === void 0 ? void 0 : _b.map((e) => e)) || [];
+        return message;
+    },
+};
+function createBaseGetRequest() {
+    return { source: undefined, opts: undefined };
+}
+exports.GetRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.source !== undefined) {
+            files_1.File.encode(message.source, writer.uint32(10).fork()).ldelim();
+        }
+        if (message.opts !== undefined) {
+            exports.GetRequest_GetOptions.encode(message.opts, writer.uint32(18).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.source = files_1.File.decode(reader, reader.uint32());
+                    break;
+                case 2:
+                    message.opts = exports.GetRequest_GetOptions.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseGetRequest();
+        message.source =
+            object.source !== undefined && object.source !== null
+                ? files_1.File.fromPartial(object.source)
+                : undefined;
+        message.opts =
+            object.opts !== undefined && object.opts !== null
+                ? exports.GetRequest_GetOptions.fromPartial(object.opts)
+                : undefined;
+        return message;
+    },
+};
+function createBaseGetRequest_GetOptions() {
+    return { params: [] };
+}
+exports.GetRequest_GetOptions = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.params) {
+            exports.Param.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetRequest_GetOptions();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.params.push(exports.Param.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseGetRequest_GetOptions();
+        message.params = ((_a = object.params) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Param.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseGetResponse() {
+    return { result: undefined };
+}
+exports.GetResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.result !== undefined) {
+            files_1.File.encode(message.result, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.result = files_1.File.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseGetResponse();
+        message.result =
+            object.result !== undefined && object.result !== null
+                ? files_1.File.fromPartial(object.result)
+                : undefined;
+        return message;
+    },
+};
+exports.ImagesDefinition = {
+    name: "Images",
+    fullName: "images.Images",
+    methods: {
+        /**
+         * Get - к файлу, идентификатор которого передан в запросе, применяются параметры.
+         * Может быть передано несколько параметров, порядок учитывается при обработке
+         * Допустимые операции:
+         *  - crop (ширина, высота)
+         *  - fit (ширина, высота)
+         *  - resize (ширина, высота)
+         *  - format (один из форматов [ png, jpeg, jpg, gif ]
+         * Возвращает объект File с заполненным полем File.URL
+         */
+        get: {
+            name: "Get",
+            requestType: exports.GetRequest,
+            requestStream: false,
+            responseType: exports.GetResponse,
+            responseStream: false,
+            options: {},
+        },
+    },
+};
+//# sourceMappingURL=images.js.map
\ No newline at end of file
diff --git a/clients/images/images.js.map b/clients/images/images.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..ba5399df2374516ff7957cabee74fde8e1b78512
--- /dev/null
+++ b/clients/images/images.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"images.js","sourceRoot":"","sources":["images.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oBAAoB;AACpB,0CAAsC;AACtC,wDAA0C;AAoB1C,SAAS,eAAe;IACtB,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAC/B,CAAC;AAEY,QAAA,KAAK,GAAG;IACnB,MAAM,CAAC,OAAc,EAAE,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAC7D,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE;YACrB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SACtC;QACD,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE;YAC7B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAE,CAAC,CAAC;SAC9B;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAC7B,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBACpC,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAA0B;;QACpC,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;QAClC,OAAO,CAAC,EAAE,GAAG,MAAA,MAAM,CAAC,EAAE,mCAAI,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,GAAG,CAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAI,EAAE,CAAC;QAClD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,oBAAoB;IAC3B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAChD,CAAC;AAEY,QAAA,UAAU,GAAG;IACxB,MAAM,CACJ,OAAmB,EACnB,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE;YAChC,YAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAChE;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;YAC9B,6BAAqB,CAAC,MAAM,CAC1B,OAAO,CAAC,IAAI,EACZ,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CACzB,CAAC,MAAM,EAAE,CAAC;SACZ;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,MAAM,GAAG,YAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBACtD,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,IAAI,GAAG,6BAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBACrE,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAA+B;QACzC,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;QACvC,OAAO,CAAC,MAAM;YACZ,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI;gBACnD,CAAC,CAAC,YAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;gBACjC,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,CAAC,IAAI;YACV,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI;gBAC/C,CAAC,CAAC,6BAAqB,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;gBAChD,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,+BAA+B;IACtC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACxB,CAAC;AAEY,QAAA,qBAAqB,GAAG;IACnC,MAAM,CACJ,OAA8B,EAC9B,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE;YAC9B,aAAK,CAAC,MAAM,CAAC,CAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SACrD;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CACJ,KAA8B,EAC9B,MAAe;QAEf,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,+BAA+B,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,aAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBAC3D,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CACT,MAA0C;;QAE1C,MAAM,OAAO,GAAG,+BAA+B,EAAE,CAAC;QAClD,OAAO,CAAC,MAAM,GAAG,CAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAI,EAAE,CAAC;QACvE,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,SAAS,qBAAqB;IAC5B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC/B,CAAC;AAEY,QAAA,WAAW,GAAG;IACzB,MAAM,CACJ,OAAoB,EACpB,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE;YAChC,YAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAChE;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,MAAM,GAAG,YAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBACtD,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAAgC;QAC1C,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;QACxC,OAAO,CAAC,MAAM;YACZ,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI;gBACnD,CAAC,CAAC,YAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;gBACjC,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAIW,QAAA,gBAAgB,GAAG;IAC9B,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,eAAe;IACzB,OAAO,EAAE;QACP;;;;;;;;;WASG;QACH,GAAG,EAAE;YACH,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,kBAAU;YACvB,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,mBAAW;YACzB,cAAc,EAAE,KAAK;YACrB,OAAO,EAAE,EAAE;SACZ;KACF;CACO,CAAC"}
\ No newline at end of file
diff --git a/clients/invitations/invitations.d.ts b/clients/invitations/invitations.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..fcd6f28bf3dc6beb5a7ff6b66cbec6c136535958
--- /dev/null
+++ b/clients/invitations/invitations.d.ts
@@ -0,0 +1,242 @@
+import { Timestamp } from "../google/protobuf/timestamp";
+import { Empty } from "../google/protobuf/empty";
+import * as _m0 from "protobufjs/minimal";
+export interface Invitation {
+    id: string;
+    email: string;
+    orgId: string;
+    spaceId: string;
+    ownerId: string;
+    role: string;
+    createdAt?: Timestamp;
+    validUntil?: Timestamp;
+}
+export interface Filter {
+    id: string[];
+    email: string[];
+    orgId: string[];
+    spaceId: string[];
+    ownerId: string[];
+    role: string[];
+}
+export interface FindOptions {
+    sort: string[];
+    pageNum: number;
+    pageSize: number;
+}
+export interface CreateRequest {
+    invitation?: Invitation;
+}
+export interface CreateResponse {
+    invitation?: Invitation;
+}
+export interface GetRequest {
+    invitationId: string;
+}
+export interface GetResponse {
+    invitation?: Invitation;
+}
+export interface UpdateRequest {
+    invitationId: string;
+    /** Флаг отправки приглашения */
+    sent?: boolean;
+    /** Флаг принятия приглашения */
+    pending?: boolean;
+    /** Время отправки приглашения */
+    sentAt?: Timestamp;
+    /** Время до которого приглашение действует */
+    validUntil?: Timestamp;
+}
+export interface UpdateInvitationResponse {
+}
+export interface AcceptRequest {
+    invitationId: string;
+    userId: string;
+}
+export interface AcceptInvitationResponse {
+}
+export interface FindRequest {
+    filter?: Filter;
+    opts?: FindOptions;
+}
+export interface FindResponse {
+    invitations: Invitation[];
+    total: number;
+}
+export interface DeleteRequest {
+    invitationId: string;
+}
+export interface DeleteSpaceInvitationResponse {
+}
+export declare const Invitation: {
+    encode(message: Invitation, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Invitation;
+    fromPartial(object: DeepPartial<Invitation>): Invitation;
+};
+export declare const Filter: {
+    encode(message: Filter, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Filter;
+    fromPartial(object: DeepPartial<Filter>): Filter;
+};
+export declare const FindOptions: {
+    encode(message: FindOptions, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): FindOptions;
+    fromPartial(object: DeepPartial<FindOptions>): FindOptions;
+};
+export declare const CreateRequest: {
+    encode(message: CreateRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CreateRequest;
+    fromPartial(object: DeepPartial<CreateRequest>): CreateRequest;
+};
+export declare const CreateResponse: {
+    encode(message: CreateResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CreateResponse;
+    fromPartial(object: DeepPartial<CreateResponse>): CreateResponse;
+};
+export declare const GetRequest: {
+    encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+    fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+};
+export declare const GetResponse: {
+    encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+    fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+};
+export declare const UpdateRequest: {
+    encode(message: UpdateRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateRequest;
+    fromPartial(object: DeepPartial<UpdateRequest>): UpdateRequest;
+};
+export declare const UpdateInvitationResponse: {
+    encode(_: UpdateInvitationResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateInvitationResponse;
+    fromPartial(_: DeepPartial<UpdateInvitationResponse>): UpdateInvitationResponse;
+};
+export declare const AcceptRequest: {
+    encode(message: AcceptRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): AcceptRequest;
+    fromPartial(object: DeepPartial<AcceptRequest>): AcceptRequest;
+};
+export declare const AcceptInvitationResponse: {
+    encode(_: AcceptInvitationResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): AcceptInvitationResponse;
+    fromPartial(_: DeepPartial<AcceptInvitationResponse>): AcceptInvitationResponse;
+};
+export declare const FindRequest: {
+    encode(message: FindRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): FindRequest;
+    fromPartial(object: DeepPartial<FindRequest>): FindRequest;
+};
+export declare const FindResponse: {
+    encode(message: FindResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): FindResponse;
+    fromPartial(object: DeepPartial<FindResponse>): FindResponse;
+};
+export declare const DeleteRequest: {
+    encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
+    fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
+};
+export declare const DeleteSpaceInvitationResponse: {
+    encode(_: DeleteSpaceInvitationResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteSpaceInvitationResponse;
+    fromPartial(_: DeepPartial<DeleteSpaceInvitationResponse>): DeleteSpaceInvitationResponse;
+};
+export declare type InvitationsDefinition = typeof InvitationsDefinition;
+export declare const InvitationsDefinition: {
+    readonly name: "Invitations";
+    readonly fullName: "content.invitations.Invitations";
+    readonly methods: {
+        readonly create: {
+            readonly name: "Create";
+            readonly requestType: {
+                encode(message: CreateRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CreateRequest;
+                fromPartial(object: DeepPartial<CreateRequest>): CreateRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: CreateResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CreateResponse;
+                fromPartial(object: DeepPartial<CreateResponse>): CreateResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** Получить данные о приглашении */
+        readonly get: {
+            readonly name: "Get";
+            readonly requestType: {
+                encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+                fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+                fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** Принять приглашение */
+        readonly accept: {
+            readonly name: "Accept";
+            readonly requestType: {
+                encode(message: AcceptRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): AcceptRequest;
+                fromPartial(object: DeepPartial<AcceptRequest>): AcceptRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** Получить список приглашений для пространства */
+        readonly find: {
+            readonly name: "Find";
+            readonly requestType: {
+                encode(message: FindRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): FindRequest;
+                fromPartial(object: DeepPartial<FindRequest>): FindRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: FindResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): FindResponse;
+                fromPartial(object: DeepPartial<FindResponse>): FindResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** Удалить приглашение */
+        readonly delete: {
+            readonly name: "Delete";
+            readonly requestType: {
+                encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
+                fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+    };
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=invitations.d.ts.map
\ No newline at end of file
diff --git a/clients/invitations/invitations.d.ts.map b/clients/invitations/invitations.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..37bc775ff9410d41eedee6cf54d0fc3e702c64c4
--- /dev/null
+++ b/clients/invitations/invitations.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"invitations.d.ts","sourceRoot":"","sources":["invitations.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/invitations/invitations.js b/clients/invitations/invitations.js
new file mode 100644
index 0000000000000000000000000000000000000000..f3aaf33b6e22624ddb7884ff483eb65836307cc2
--- /dev/null
+++ b/clients/invitations/invitations.js
@@ -0,0 +1,779 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.InvitationsDefinition = exports.DeleteSpaceInvitationResponse = exports.DeleteRequest = exports.FindResponse = exports.FindRequest = exports.AcceptInvitationResponse = exports.AcceptRequest = exports.UpdateInvitationResponse = exports.UpdateRequest = exports.GetResponse = exports.GetRequest = exports.CreateResponse = exports.CreateRequest = exports.FindOptions = exports.Filter = exports.Invitation = void 0;
+/* eslint-disable */
+const timestamp_1 = require("../google/protobuf/timestamp");
+const long_1 = __importDefault(require("long"));
+const empty_1 = require("../google/protobuf/empty");
+const _m0 = __importStar(require("protobufjs/minimal"));
+const wrappers_1 = require("../google/protobuf/wrappers");
+function createBaseInvitation() {
+    return {
+        id: "",
+        email: "",
+        orgId: "",
+        spaceId: "",
+        ownerId: "",
+        role: "",
+        createdAt: undefined,
+        validUntil: undefined,
+    };
+}
+exports.Invitation = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.id !== "") {
+            writer.uint32(10).string(message.id);
+        }
+        if (message.email !== "") {
+            writer.uint32(18).string(message.email);
+        }
+        if (message.orgId !== "") {
+            writer.uint32(26).string(message.orgId);
+        }
+        if (message.spaceId !== "") {
+            writer.uint32(34).string(message.spaceId);
+        }
+        if (message.ownerId !== "") {
+            writer.uint32(42).string(message.ownerId);
+        }
+        if (message.role !== "") {
+            writer.uint32(50).string(message.role);
+        }
+        if (message.createdAt !== undefined) {
+            timestamp_1.Timestamp.encode(message.createdAt, writer.uint32(58).fork()).ldelim();
+        }
+        if (message.validUntil !== undefined) {
+            timestamp_1.Timestamp.encode(message.validUntil, writer.uint32(66).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseInvitation();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.id = reader.string();
+                    break;
+                case 2:
+                    message.email = reader.string();
+                    break;
+                case 3:
+                    message.orgId = reader.string();
+                    break;
+                case 4:
+                    message.spaceId = reader.string();
+                    break;
+                case 5:
+                    message.ownerId = reader.string();
+                    break;
+                case 6:
+                    message.role = reader.string();
+                    break;
+                case 7:
+                    message.createdAt = timestamp_1.Timestamp.decode(reader, reader.uint32());
+                    break;
+                case 8:
+                    message.validUntil = timestamp_1.Timestamp.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e, _f;
+        const message = createBaseInvitation();
+        message.id = (_a = object.id) !== null && _a !== void 0 ? _a : "";
+        message.email = (_b = object.email) !== null && _b !== void 0 ? _b : "";
+        message.orgId = (_c = object.orgId) !== null && _c !== void 0 ? _c : "";
+        message.spaceId = (_d = object.spaceId) !== null && _d !== void 0 ? _d : "";
+        message.ownerId = (_e = object.ownerId) !== null && _e !== void 0 ? _e : "";
+        message.role = (_f = object.role) !== null && _f !== void 0 ? _f : "";
+        message.createdAt =
+            object.createdAt !== undefined && object.createdAt !== null
+                ? timestamp_1.Timestamp.fromPartial(object.createdAt)
+                : undefined;
+        message.validUntil =
+            object.validUntil !== undefined && object.validUntil !== null
+                ? timestamp_1.Timestamp.fromPartial(object.validUntil)
+                : undefined;
+        return message;
+    },
+};
+function createBaseFilter() {
+    return { id: [], email: [], orgId: [], spaceId: [], ownerId: [], role: [] };
+}
+exports.Filter = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.id) {
+            writer.uint32(10).string(v);
+        }
+        for (const v of message.email) {
+            writer.uint32(18).string(v);
+        }
+        for (const v of message.orgId) {
+            writer.uint32(26).string(v);
+        }
+        for (const v of message.spaceId) {
+            writer.uint32(34).string(v);
+        }
+        for (const v of message.ownerId) {
+            writer.uint32(42).string(v);
+        }
+        for (const v of message.role) {
+            writer.uint32(50).string(v);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFilter();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.id.push(reader.string());
+                    break;
+                case 2:
+                    message.email.push(reader.string());
+                    break;
+                case 3:
+                    message.orgId.push(reader.string());
+                    break;
+                case 4:
+                    message.spaceId.push(reader.string());
+                    break;
+                case 5:
+                    message.ownerId.push(reader.string());
+                    break;
+                case 6:
+                    message.role.push(reader.string());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e, _f;
+        const message = createBaseFilter();
+        message.id = ((_a = object.id) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];
+        message.email = ((_b = object.email) === null || _b === void 0 ? void 0 : _b.map((e) => e)) || [];
+        message.orgId = ((_c = object.orgId) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];
+        message.spaceId = ((_d = object.spaceId) === null || _d === void 0 ? void 0 : _d.map((e) => e)) || [];
+        message.ownerId = ((_e = object.ownerId) === null || _e === void 0 ? void 0 : _e.map((e) => e)) || [];
+        message.role = ((_f = object.role) === null || _f === void 0 ? void 0 : _f.map((e) => e)) || [];
+        return message;
+    },
+};
+function createBaseFindOptions() {
+    return { sort: [], pageNum: 0, pageSize: 0 };
+}
+exports.FindOptions = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.sort) {
+            writer.uint32(10).string(v);
+        }
+        if (message.pageNum !== 0) {
+            writer.uint32(16).int32(message.pageNum);
+        }
+        if (message.pageSize !== 0) {
+            writer.uint32(24).int32(message.pageSize);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFindOptions();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.sort.push(reader.string());
+                    break;
+                case 2:
+                    message.pageNum = reader.int32();
+                    break;
+                case 3:
+                    message.pageSize = reader.int32();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseFindOptions();
+        message.sort = ((_a = object.sort) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];
+        message.pageNum = (_b = object.pageNum) !== null && _b !== void 0 ? _b : 0;
+        message.pageSize = (_c = object.pageSize) !== null && _c !== void 0 ? _c : 0;
+        return message;
+    },
+};
+function createBaseCreateRequest() {
+    return { invitation: undefined };
+}
+exports.CreateRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.invitation !== undefined) {
+            exports.Invitation.encode(message.invitation, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCreateRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.invitation = exports.Invitation.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCreateRequest();
+        message.invitation =
+            object.invitation !== undefined && object.invitation !== null
+                ? exports.Invitation.fromPartial(object.invitation)
+                : undefined;
+        return message;
+    },
+};
+function createBaseCreateResponse() {
+    return { invitation: undefined };
+}
+exports.CreateResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.invitation !== undefined) {
+            exports.Invitation.encode(message.invitation, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCreateResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.invitation = exports.Invitation.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCreateResponse();
+        message.invitation =
+            object.invitation !== undefined && object.invitation !== null
+                ? exports.Invitation.fromPartial(object.invitation)
+                : undefined;
+        return message;
+    },
+};
+function createBaseGetRequest() {
+    return { invitationId: "" };
+}
+exports.GetRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.invitationId !== "") {
+            writer.uint32(10).string(message.invitationId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.invitationId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseGetRequest();
+        message.invitationId = (_a = object.invitationId) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseGetResponse() {
+    return { invitation: undefined };
+}
+exports.GetResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.invitation !== undefined) {
+            exports.Invitation.encode(message.invitation, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.invitation = exports.Invitation.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseGetResponse();
+        message.invitation =
+            object.invitation !== undefined && object.invitation !== null
+                ? exports.Invitation.fromPartial(object.invitation)
+                : undefined;
+        return message;
+    },
+};
+function createBaseUpdateRequest() {
+    return {
+        invitationId: "",
+        sent: undefined,
+        pending: undefined,
+        sentAt: undefined,
+        validUntil: undefined,
+    };
+}
+exports.UpdateRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.invitationId !== "") {
+            writer.uint32(10).string(message.invitationId);
+        }
+        if (message.sent !== undefined) {
+            wrappers_1.BoolValue.encode({ value: message.sent }, writer.uint32(18).fork()).ldelim();
+        }
+        if (message.pending !== undefined) {
+            wrappers_1.BoolValue.encode({ value: message.pending }, writer.uint32(26).fork()).ldelim();
+        }
+        if (message.sentAt !== undefined) {
+            timestamp_1.Timestamp.encode(message.sentAt, writer.uint32(34).fork()).ldelim();
+        }
+        if (message.validUntil !== undefined) {
+            timestamp_1.Timestamp.encode(message.validUntil, writer.uint32(42).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUpdateRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.invitationId = reader.string();
+                    break;
+                case 2:
+                    message.sent = wrappers_1.BoolValue.decode(reader, reader.uint32()).value;
+                    break;
+                case 3:
+                    message.pending = wrappers_1.BoolValue.decode(reader, reader.uint32()).value;
+                    break;
+                case 4:
+                    message.sentAt = timestamp_1.Timestamp.decode(reader, reader.uint32());
+                    break;
+                case 5:
+                    message.validUntil = timestamp_1.Timestamp.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseUpdateRequest();
+        message.invitationId = (_a = object.invitationId) !== null && _a !== void 0 ? _a : "";
+        message.sent = (_b = object.sent) !== null && _b !== void 0 ? _b : undefined;
+        message.pending = (_c = object.pending) !== null && _c !== void 0 ? _c : undefined;
+        message.sentAt =
+            object.sentAt !== undefined && object.sentAt !== null
+                ? timestamp_1.Timestamp.fromPartial(object.sentAt)
+                : undefined;
+        message.validUntil =
+            object.validUntil !== undefined && object.validUntil !== null
+                ? timestamp_1.Timestamp.fromPartial(object.validUntil)
+                : undefined;
+        return message;
+    },
+};
+function createBaseUpdateInvitationResponse() {
+    return {};
+}
+exports.UpdateInvitationResponse = {
+    encode(_, writer = _m0.Writer.create()) {
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUpdateInvitationResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(_) {
+        const message = createBaseUpdateInvitationResponse();
+        return message;
+    },
+};
+function createBaseAcceptRequest() {
+    return { invitationId: "", userId: "" };
+}
+exports.AcceptRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.invitationId !== "") {
+            writer.uint32(10).string(message.invitationId);
+        }
+        if (message.userId !== "") {
+            writer.uint32(18).string(message.userId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseAcceptRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.invitationId = reader.string();
+                    break;
+                case 2:
+                    message.userId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseAcceptRequest();
+        message.invitationId = (_a = object.invitationId) !== null && _a !== void 0 ? _a : "";
+        message.userId = (_b = object.userId) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseAcceptInvitationResponse() {
+    return {};
+}
+exports.AcceptInvitationResponse = {
+    encode(_, writer = _m0.Writer.create()) {
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseAcceptInvitationResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(_) {
+        const message = createBaseAcceptInvitationResponse();
+        return message;
+    },
+};
+function createBaseFindRequest() {
+    return { filter: undefined, opts: undefined };
+}
+exports.FindRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.filter !== undefined) {
+            exports.Filter.encode(message.filter, writer.uint32(10).fork()).ldelim();
+        }
+        if (message.opts !== undefined) {
+            exports.FindOptions.encode(message.opts, writer.uint32(18).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFindRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.filter = exports.Filter.decode(reader, reader.uint32());
+                    break;
+                case 2:
+                    message.opts = exports.FindOptions.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseFindRequest();
+        message.filter =
+            object.filter !== undefined && object.filter !== null
+                ? exports.Filter.fromPartial(object.filter)
+                : undefined;
+        message.opts =
+            object.opts !== undefined && object.opts !== null
+                ? exports.FindOptions.fromPartial(object.opts)
+                : undefined;
+        return message;
+    },
+};
+function createBaseFindResponse() {
+    return { invitations: [], total: 0 };
+}
+exports.FindResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.invitations) {
+            exports.Invitation.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        if (message.total !== 0) {
+            writer.uint32(16).int64(message.total);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFindResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.invitations.push(exports.Invitation.decode(reader, reader.uint32()));
+                    break;
+                case 2:
+                    message.total = longToNumber(reader.int64());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseFindResponse();
+        message.invitations =
+            ((_a = object.invitations) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Invitation.fromPartial(e))) || [];
+        message.total = (_b = object.total) !== null && _b !== void 0 ? _b : 0;
+        return message;
+    },
+};
+function createBaseDeleteRequest() {
+    return { invitationId: "" };
+}
+exports.DeleteRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.invitationId !== "") {
+            writer.uint32(10).string(message.invitationId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseDeleteRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.invitationId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseDeleteRequest();
+        message.invitationId = (_a = object.invitationId) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseDeleteSpaceInvitationResponse() {
+    return {};
+}
+exports.DeleteSpaceInvitationResponse = {
+    encode(_, writer = _m0.Writer.create()) {
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseDeleteSpaceInvitationResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(_) {
+        const message = createBaseDeleteSpaceInvitationResponse();
+        return message;
+    },
+};
+exports.InvitationsDefinition = {
+    name: "Invitations",
+    fullName: "content.invitations.Invitations",
+    methods: {
+        create: {
+            name: "Create",
+            requestType: exports.CreateRequest,
+            requestStream: false,
+            responseType: exports.CreateResponse,
+            responseStream: false,
+            options: {},
+        },
+        /** Получить данные о приглашении */
+        get: {
+            name: "Get",
+            requestType: exports.GetRequest,
+            requestStream: false,
+            responseType: exports.GetResponse,
+            responseStream: false,
+            options: {},
+        },
+        /** Принять приглашение */
+        accept: {
+            name: "Accept",
+            requestType: exports.AcceptRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        /** Получить список приглашений для пространства */
+        find: {
+            name: "Find",
+            requestType: exports.FindRequest,
+            requestStream: false,
+            responseType: exports.FindResponse,
+            responseStream: false,
+            options: {},
+        },
+        /** Удалить приглашение */
+        delete: {
+            name: "Delete",
+            requestType: exports.DeleteRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+    },
+};
+var globalThis = (() => {
+    if (typeof globalThis !== "undefined")
+        return globalThis;
+    if (typeof self !== "undefined")
+        return self;
+    if (typeof window !== "undefined")
+        return window;
+    if (typeof global !== "undefined")
+        return global;
+    throw "Unable to locate global object";
+})();
+function longToNumber(long) {
+    if (long.gt(Number.MAX_SAFE_INTEGER)) {
+        throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
+    }
+    return long.toNumber();
+}
+if (_m0.util.Long !== long_1.default) {
+    _m0.util.Long = long_1.default;
+    _m0.configure();
+}
+//# sourceMappingURL=invitations.js.map
\ No newline at end of file
diff --git a/clients/invitations/invitations.js.map b/clients/invitations/invitations.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..0f2225ae6251167fe285ccfbdd1da871cdd2c1e9
--- /dev/null
+++ b/clients/invitations/invitations.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"invitations.js","sourceRoot":"","sources":["invitations.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/items/items.d.ts b/clients/items/items.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..25e52222a24b0364c3ea65a036518ada8f0e9aed
--- /dev/null
+++ b/clients/items/items.d.ts
@@ -0,0 +1,732 @@
+import { Timestamp } from "../google/protobuf/timestamp";
+import { FindOptions as FindOptions1, Filter as Filter2, Error_BadRequest_FieldViolation } from "../common/common";
+import { Empty } from "../google/protobuf/empty";
+import * as _m0 from "protobufjs/minimal";
+/**
+ * # Items
+ *
+ * API Сервиса работы с пользовательским записями (Items)
+ *
+ * Предоставляет доступ к записям пользовательских коллекций
+ */
+export interface Error {
+    /** Сообщение об ошибке */
+    message: string;
+    /** Поле в котором произошла ошибка */
+    field: string;
+}
+export interface DecodeError {
+    errors: Error[];
+}
+export interface ValidationError {
+    errors: Error[];
+}
+export interface ModificationError {
+    errors: Error[];
+}
+export interface Permissions {
+    edit: boolean;
+    archive: boolean;
+    publish: boolean;
+    softDelete: boolean;
+    hardDelete: boolean;
+}
+/** Пользовательская запись */
+export interface Item {
+    id: string;
+    spaceId: string;
+    envId: string;
+    collectionId: string;
+    state: Item_State;
+    /** дата создания текущей ревизии */
+    createdRevAt?: Timestamp;
+    /** id пользователя создавшего первую ревизию */
+    createdBy: string;
+    /** дата создания первой ревизии */
+    createdAt?: Timestamp;
+    /** id пользователя обновившего текущую ревизию */
+    updatedBy: string;
+    /** дата обновления текущей ревизии */
+    updatedAt?: Timestamp;
+    data?: {
+        [key: string]: any;
+    };
+    translations: {
+        [key: string]: {
+            [key: string]: any;
+        };
+    };
+    revisionId: string;
+    publishedAt?: Timestamp;
+    publishedBy: string;
+    archivedAt?: Timestamp;
+    archivedBy: string;
+    locale: string;
+    deleted: boolean;
+    hidden: boolean;
+    template: boolean;
+    permissions?: Permissions;
+}
+export declare enum Item_State {
+    DRAFT = 0,
+    PUBLISHED = 1,
+    CHANGED = 2,
+    ARCHIVED = 3,
+    UNRECOGNIZED = -1
+}
+export interface Item_TranslationsEntry {
+    key: string;
+    value?: {
+        [key: string]: any;
+    };
+}
+export interface Filter {
+    /** Список ID записей кото */
+    id: string[];
+    /** Список фильтров */
+    data: Filter2[];
+    /** Список выражений для фильтрации */
+    q: string[];
+}
+export interface CreateOptions {
+    updateAttrs: boolean;
+}
+export interface FindOptions {
+    options?: FindOptions1;
+    deleted: boolean;
+    regular: boolean;
+    hidden: boolean;
+    templates: boolean;
+}
+export interface UpdateOptions {
+    updateAttrs: boolean;
+}
+export interface GetPublishedOptions {
+    localeId: string;
+}
+export interface DeleteOptions {
+    erase: boolean;
+}
+export interface PublishOptions {
+    updateAttrs: boolean;
+}
+export interface FindPublishedOptions {
+    options?: FindOptions1;
+    localeId: string;
+    regular: boolean;
+    hidden: boolean;
+    templates: boolean;
+}
+export interface FindArchivedOptions {
+    options?: FindOptions1;
+}
+export interface ListRevisionsOptions {
+    options?: FindOptions1;
+}
+export interface CreateRequest {
+    item?: Item;
+    options?: CreateOptions;
+}
+export interface CreateResponse {
+    created?: Item;
+}
+export interface IntrospectRequest {
+    item?: Item;
+}
+export interface IntrospectResponse {
+    item?: Item;
+    schema: string;
+    validationErrors: Error_BadRequest_FieldViolation[];
+}
+export interface GetRequest {
+    spaceId: string;
+    envId: string;
+    collectionId: string;
+    itemId: string;
+}
+export interface GetResponse {
+    item?: Item;
+}
+export interface FindRequest {
+    /** ID Пространства */
+    spaceId: string;
+    /** ID окружения */
+    envId: string;
+    /** ID коллекции */
+    collectionId: string;
+    filter?: Filter;
+    /** Дополнительные параметры поиска */
+    options?: FindOptions;
+}
+export interface FindResponse {
+    items: Item[];
+    total: number;
+}
+export interface UpdateRequest {
+    item?: Item;
+    options?: UpdateOptions;
+}
+export interface DeleteRequest {
+    spaceId: string;
+    envId: string;
+    collectionId: string;
+    itemId: string;
+    options?: DeleteOptions;
+}
+export interface UndeleteRequest {
+    spaceId: string;
+    envId: string;
+    collectionId: string;
+    itemId: string;
+}
+export interface PublishRequest {
+    item?: Item;
+    options?: PublishOptions;
+}
+export interface UnpublishRequest {
+    item?: Item;
+}
+export interface GetPublishedRequest {
+    spaceId: string;
+    envId: string;
+    collectionId: string;
+    itemId: string;
+    options?: GetPublishedOptions;
+}
+export interface GetPublishedResponse {
+    item?: Item;
+}
+export interface FindPublishedRequest {
+    spaceId: string;
+    envId: string;
+    collectionId: string;
+    filter?: Filter;
+    options?: FindPublishedOptions;
+}
+export interface FindPublishedResponse {
+    items: Item[];
+    total: number;
+}
+export interface GetRevisionRequest {
+    spaceId: string;
+    envId: string;
+    collectionId: string;
+    itemId: string;
+    revisionId: string;
+}
+export interface GetRevisionResponse {
+    item?: Item;
+}
+export interface ListRevisionsRequest {
+    spaceId: string;
+    envId: string;
+    collectionId: string;
+    itemId: string;
+    options?: ListRevisionsOptions;
+}
+export interface ListRevisionsResponse {
+    items: Item[];
+}
+/** Запрос на архивирование элемента */
+export interface ArchiveRequest {
+    /** Элемент для архивации */
+    item?: Item;
+}
+export interface UnarchiveRequest {
+    item?: Item;
+}
+export interface FindArchivedRequest {
+    spaceId: string;
+    envId: string;
+    collectionId: string;
+    filter?: Filter;
+    options?: FindArchivedOptions;
+}
+export interface FindArchivedResponse {
+    items: Item[];
+    total: number;
+}
+export declare const Error: {
+    encode(message: Error, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Error;
+    fromPartial(object: DeepPartial<Error>): Error;
+};
+export declare const DecodeError: {
+    encode(message: DecodeError, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): DecodeError;
+    fromPartial(object: DeepPartial<DecodeError>): DecodeError;
+};
+export declare const ValidationError: {
+    encode(message: ValidationError, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ValidationError;
+    fromPartial(object: DeepPartial<ValidationError>): ValidationError;
+};
+export declare const ModificationError: {
+    encode(message: ModificationError, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ModificationError;
+    fromPartial(object: DeepPartial<ModificationError>): ModificationError;
+};
+export declare const Permissions: {
+    encode(message: Permissions, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Permissions;
+    fromPartial(object: DeepPartial<Permissions>): Permissions;
+};
+export declare const Item: {
+    encode(message: Item, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Item;
+    fromPartial(object: DeepPartial<Item>): Item;
+};
+export declare const Item_TranslationsEntry: {
+    encode(message: Item_TranslationsEntry, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Item_TranslationsEntry;
+    fromPartial(object: DeepPartial<Item_TranslationsEntry>): Item_TranslationsEntry;
+};
+export declare const Filter: {
+    encode(message: Filter, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Filter;
+    fromPartial(object: DeepPartial<Filter>): Filter;
+};
+export declare const CreateOptions: {
+    encode(message: CreateOptions, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CreateOptions;
+    fromPartial(object: DeepPartial<CreateOptions>): CreateOptions;
+};
+export declare const FindOptions: {
+    encode(message: FindOptions, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): FindOptions;
+    fromPartial(object: DeepPartial<FindOptions>): FindOptions;
+};
+export declare const UpdateOptions: {
+    encode(message: UpdateOptions, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateOptions;
+    fromPartial(object: DeepPartial<UpdateOptions>): UpdateOptions;
+};
+export declare const GetPublishedOptions: {
+    encode(message: GetPublishedOptions, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetPublishedOptions;
+    fromPartial(object: DeepPartial<GetPublishedOptions>): GetPublishedOptions;
+};
+export declare const DeleteOptions: {
+    encode(message: DeleteOptions, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteOptions;
+    fromPartial(object: DeepPartial<DeleteOptions>): DeleteOptions;
+};
+export declare const PublishOptions: {
+    encode(message: PublishOptions, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): PublishOptions;
+    fromPartial(object: DeepPartial<PublishOptions>): PublishOptions;
+};
+export declare const FindPublishedOptions: {
+    encode(message: FindPublishedOptions, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): FindPublishedOptions;
+    fromPartial(object: DeepPartial<FindPublishedOptions>): FindPublishedOptions;
+};
+export declare const FindArchivedOptions: {
+    encode(message: FindArchivedOptions, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): FindArchivedOptions;
+    fromPartial(object: DeepPartial<FindArchivedOptions>): FindArchivedOptions;
+};
+export declare const ListRevisionsOptions: {
+    encode(message: ListRevisionsOptions, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListRevisionsOptions;
+    fromPartial(object: DeepPartial<ListRevisionsOptions>): ListRevisionsOptions;
+};
+export declare const CreateRequest: {
+    encode(message: CreateRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CreateRequest;
+    fromPartial(object: DeepPartial<CreateRequest>): CreateRequest;
+};
+export declare const CreateResponse: {
+    encode(message: CreateResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CreateResponse;
+    fromPartial(object: DeepPartial<CreateResponse>): CreateResponse;
+};
+export declare const IntrospectRequest: {
+    encode(message: IntrospectRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): IntrospectRequest;
+    fromPartial(object: DeepPartial<IntrospectRequest>): IntrospectRequest;
+};
+export declare const IntrospectResponse: {
+    encode(message: IntrospectResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): IntrospectResponse;
+    fromPartial(object: DeepPartial<IntrospectResponse>): IntrospectResponse;
+};
+export declare const GetRequest: {
+    encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+    fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+};
+export declare const GetResponse: {
+    encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+    fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+};
+export declare const FindRequest: {
+    encode(message: FindRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): FindRequest;
+    fromPartial(object: DeepPartial<FindRequest>): FindRequest;
+};
+export declare const FindResponse: {
+    encode(message: FindResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): FindResponse;
+    fromPartial(object: DeepPartial<FindResponse>): FindResponse;
+};
+export declare const UpdateRequest: {
+    encode(message: UpdateRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateRequest;
+    fromPartial(object: DeepPartial<UpdateRequest>): UpdateRequest;
+};
+export declare const DeleteRequest: {
+    encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
+    fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
+};
+export declare const UndeleteRequest: {
+    encode(message: UndeleteRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UndeleteRequest;
+    fromPartial(object: DeepPartial<UndeleteRequest>): UndeleteRequest;
+};
+export declare const PublishRequest: {
+    encode(message: PublishRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): PublishRequest;
+    fromPartial(object: DeepPartial<PublishRequest>): PublishRequest;
+};
+export declare const UnpublishRequest: {
+    encode(message: UnpublishRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UnpublishRequest;
+    fromPartial(object: DeepPartial<UnpublishRequest>): UnpublishRequest;
+};
+export declare const GetPublishedRequest: {
+    encode(message: GetPublishedRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetPublishedRequest;
+    fromPartial(object: DeepPartial<GetPublishedRequest>): GetPublishedRequest;
+};
+export declare const GetPublishedResponse: {
+    encode(message: GetPublishedResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetPublishedResponse;
+    fromPartial(object: DeepPartial<GetPublishedResponse>): GetPublishedResponse;
+};
+export declare const FindPublishedRequest: {
+    encode(message: FindPublishedRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): FindPublishedRequest;
+    fromPartial(object: DeepPartial<FindPublishedRequest>): FindPublishedRequest;
+};
+export declare const FindPublishedResponse: {
+    encode(message: FindPublishedResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): FindPublishedResponse;
+    fromPartial(object: DeepPartial<FindPublishedResponse>): FindPublishedResponse;
+};
+export declare const GetRevisionRequest: {
+    encode(message: GetRevisionRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetRevisionRequest;
+    fromPartial(object: DeepPartial<GetRevisionRequest>): GetRevisionRequest;
+};
+export declare const GetRevisionResponse: {
+    encode(message: GetRevisionResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetRevisionResponse;
+    fromPartial(object: DeepPartial<GetRevisionResponse>): GetRevisionResponse;
+};
+export declare const ListRevisionsRequest: {
+    encode(message: ListRevisionsRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListRevisionsRequest;
+    fromPartial(object: DeepPartial<ListRevisionsRequest>): ListRevisionsRequest;
+};
+export declare const ListRevisionsResponse: {
+    encode(message: ListRevisionsResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListRevisionsResponse;
+    fromPartial(object: DeepPartial<ListRevisionsResponse>): ListRevisionsResponse;
+};
+export declare const ArchiveRequest: {
+    encode(message: ArchiveRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ArchiveRequest;
+    fromPartial(object: DeepPartial<ArchiveRequest>): ArchiveRequest;
+};
+export declare const UnarchiveRequest: {
+    encode(message: UnarchiveRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UnarchiveRequest;
+    fromPartial(object: DeepPartial<UnarchiveRequest>): UnarchiveRequest;
+};
+export declare const FindArchivedRequest: {
+    encode(message: FindArchivedRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): FindArchivedRequest;
+    fromPartial(object: DeepPartial<FindArchivedRequest>): FindArchivedRequest;
+};
+export declare const FindArchivedResponse: {
+    encode(message: FindArchivedResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): FindArchivedResponse;
+    fromPartial(object: DeepPartial<FindArchivedResponse>): FindArchivedResponse;
+};
+/** Сервис API элементов */
+export declare type ItemsDefinition = typeof ItemsDefinition;
+export declare const ItemsDefinition: {
+    readonly name: "Items";
+    readonly fullName: "content.items.Items";
+    readonly methods: {
+        /** Создать запись */
+        readonly create: {
+            readonly name: "Create";
+            readonly requestType: {
+                encode(message: CreateRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CreateRequest;
+                fromPartial(object: DeepPartial<CreateRequest>): CreateRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: CreateResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CreateResponse;
+                fromPartial(object: DeepPartial<CreateResponse>): CreateResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** Валидация данных записи */
+        readonly introspect: {
+            readonly name: "Introspect";
+            readonly requestType: {
+                encode(message: IntrospectRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): IntrospectRequest;
+                fromPartial(object: DeepPartial<IntrospectRequest>): IntrospectRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: IntrospectResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): IntrospectResponse;
+                fromPartial(object: DeepPartial<IntrospectResponse>): IntrospectResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** Получение записи по идентификатору */
+        readonly get: {
+            readonly name: "Get";
+            readonly requestType: {
+                encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+                fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+                fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** Поиск по текущим записям */
+        readonly find: {
+            readonly name: "Find";
+            readonly requestType: {
+                encode(message: FindRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): FindRequest;
+                fromPartial(object: DeepPartial<FindRequest>): FindRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: FindResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): FindResponse;
+                fromPartial(object: DeepPartial<FindResponse>): FindResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly update: {
+            readonly name: "Update";
+            readonly requestType: {
+                encode(message: UpdateRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): UpdateRequest;
+                fromPartial(object: DeepPartial<UpdateRequest>): UpdateRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly delete: {
+            readonly name: "Delete";
+            readonly requestType: {
+                encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
+                fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly undelete: {
+            readonly name: "Undelete";
+            readonly requestType: {
+                encode(message: UndeleteRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): UndeleteRequest;
+                fromPartial(object: DeepPartial<UndeleteRequest>): UndeleteRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly publish: {
+            readonly name: "Publish";
+            readonly requestType: {
+                encode(message: PublishRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): PublishRequest;
+                fromPartial(object: DeepPartial<PublishRequest>): PublishRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly unpublish: {
+            readonly name: "Unpublish";
+            readonly requestType: {
+                encode(message: UnpublishRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): UnpublishRequest;
+                fromPartial(object: DeepPartial<UnpublishRequest>): UnpublishRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly getPublished: {
+            readonly name: "GetPublished";
+            readonly requestType: {
+                encode(message: GetPublishedRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetPublishedRequest;
+                fromPartial(object: DeepPartial<GetPublishedRequest>): GetPublishedRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetPublishedResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetPublishedResponse;
+                fromPartial(object: DeepPartial<GetPublishedResponse>): GetPublishedResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly findPublished: {
+            readonly name: "FindPublished";
+            readonly requestType: {
+                encode(message: FindPublishedRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): FindPublishedRequest;
+                fromPartial(object: DeepPartial<FindPublishedRequest>): FindPublishedRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: FindPublishedResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): FindPublishedResponse;
+                fromPartial(object: DeepPartial<FindPublishedResponse>): FindPublishedResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly getRevision: {
+            readonly name: "GetRevision";
+            readonly requestType: {
+                encode(message: GetRevisionRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetRevisionRequest;
+                fromPartial(object: DeepPartial<GetRevisionRequest>): GetRevisionRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetRevisionResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetRevisionResponse;
+                fromPartial(object: DeepPartial<GetRevisionResponse>): GetRevisionResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly listRevisions: {
+            readonly name: "ListRevisions";
+            readonly requestType: {
+                encode(message: ListRevisionsRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListRevisionsRequest;
+                fromPartial(object: DeepPartial<ListRevisionsRequest>): ListRevisionsRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: ListRevisionsResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListRevisionsResponse;
+                fromPartial(object: DeepPartial<ListRevisionsResponse>): ListRevisionsResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly archive: {
+            readonly name: "Archive";
+            readonly requestType: {
+                encode(message: ArchiveRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ArchiveRequest;
+                fromPartial(object: DeepPartial<ArchiveRequest>): ArchiveRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly findArchived: {
+            readonly name: "FindArchived";
+            readonly requestType: {
+                encode(message: FindArchivedRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): FindArchivedRequest;
+                fromPartial(object: DeepPartial<FindArchivedRequest>): FindArchivedRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: FindArchivedResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): FindArchivedResponse;
+                fromPartial(object: DeepPartial<FindArchivedResponse>): FindArchivedResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly unarchive: {
+            readonly name: "Unarchive";
+            readonly requestType: {
+                encode(message: UnarchiveRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): UnarchiveRequest;
+                fromPartial(object: DeepPartial<UnarchiveRequest>): UnarchiveRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+    };
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=items.d.ts.map
\ No newline at end of file
diff --git a/clients/items/items.d.ts.map b/clients/items/items.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..1dbc79cfcfc6850f6a0752f7eb1e46f0ed31465d
--- /dev/null
+++ b/clients/items/items.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"items.d.ts","sourceRoot":"","sources":["items.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/items/items.js b/clients/items/items.js
new file mode 100644
index 0000000000000000000000000000000000000000..6292405c2f56845d3d08d84e86aa94b026f8e076
--- /dev/null
+++ b/clients/items/items.js
@@ -0,0 +1,2343 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ItemsDefinition = exports.FindArchivedResponse = exports.FindArchivedRequest = exports.UnarchiveRequest = exports.ArchiveRequest = exports.ListRevisionsResponse = exports.ListRevisionsRequest = exports.GetRevisionResponse = exports.GetRevisionRequest = exports.FindPublishedResponse = exports.FindPublishedRequest = exports.GetPublishedResponse = exports.GetPublishedRequest = exports.UnpublishRequest = exports.PublishRequest = exports.UndeleteRequest = exports.DeleteRequest = exports.UpdateRequest = exports.FindResponse = exports.FindRequest = exports.GetResponse = exports.GetRequest = exports.IntrospectResponse = exports.IntrospectRequest = exports.CreateResponse = exports.CreateRequest = exports.ListRevisionsOptions = exports.FindArchivedOptions = exports.FindPublishedOptions = exports.PublishOptions = exports.DeleteOptions = exports.GetPublishedOptions = exports.UpdateOptions = exports.FindOptions = exports.CreateOptions = exports.Filter = exports.Item_TranslationsEntry = exports.Item = exports.Permissions = exports.ModificationError = exports.ValidationError = exports.DecodeError = exports.Error = exports.Item_State = void 0;
+/* eslint-disable */
+const timestamp_1 = require("../google/protobuf/timestamp");
+const common_1 = require("../common/common");
+const empty_1 = require("../google/protobuf/empty");
+const _m0 = __importStar(require("protobufjs/minimal"));
+const struct_1 = require("../google/protobuf/struct");
+var Item_State;
+(function (Item_State) {
+    Item_State[Item_State["DRAFT"] = 0] = "DRAFT";
+    Item_State[Item_State["PUBLISHED"] = 1] = "PUBLISHED";
+    Item_State[Item_State["CHANGED"] = 2] = "CHANGED";
+    Item_State[Item_State["ARCHIVED"] = 3] = "ARCHIVED";
+    Item_State[Item_State["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
+})(Item_State = exports.Item_State || (exports.Item_State = {}));
+function createBaseError() {
+    return { message: "", field: "" };
+}
+exports.Error = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.message !== "") {
+            writer.uint32(10).string(message.message);
+        }
+        if (message.field !== "") {
+            writer.uint32(18).string(message.field);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseError();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.message = reader.string();
+                    break;
+                case 2:
+                    message.field = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseError();
+        message.message = (_a = object.message) !== null && _a !== void 0 ? _a : "";
+        message.field = (_b = object.field) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseDecodeError() {
+    return { errors: [] };
+}
+exports.DecodeError = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.errors) {
+            exports.Error.encode(v, writer.uint32(18).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseDecodeError();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 2:
+                    message.errors.push(exports.Error.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseDecodeError();
+        message.errors = ((_a = object.errors) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Error.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseValidationError() {
+    return { errors: [] };
+}
+exports.ValidationError = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.errors) {
+            exports.Error.encode(v, writer.uint32(18).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseValidationError();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 2:
+                    message.errors.push(exports.Error.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseValidationError();
+        message.errors = ((_a = object.errors) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Error.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseModificationError() {
+    return { errors: [] };
+}
+exports.ModificationError = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.errors) {
+            exports.Error.encode(v, writer.uint32(18).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseModificationError();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 2:
+                    message.errors.push(exports.Error.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseModificationError();
+        message.errors = ((_a = object.errors) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Error.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBasePermissions() {
+    return {
+        edit: false,
+        archive: false,
+        publish: false,
+        softDelete: false,
+        hardDelete: false,
+    };
+}
+exports.Permissions = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.edit === true) {
+            writer.uint32(8).bool(message.edit);
+        }
+        if (message.archive === true) {
+            writer.uint32(16).bool(message.archive);
+        }
+        if (message.publish === true) {
+            writer.uint32(24).bool(message.publish);
+        }
+        if (message.softDelete === true) {
+            writer.uint32(32).bool(message.softDelete);
+        }
+        if (message.hardDelete === true) {
+            writer.uint32(40).bool(message.hardDelete);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBasePermissions();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.edit = reader.bool();
+                    break;
+                case 2:
+                    message.archive = reader.bool();
+                    break;
+                case 3:
+                    message.publish = reader.bool();
+                    break;
+                case 4:
+                    message.softDelete = reader.bool();
+                    break;
+                case 5:
+                    message.hardDelete = reader.bool();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e;
+        const message = createBasePermissions();
+        message.edit = (_a = object.edit) !== null && _a !== void 0 ? _a : false;
+        message.archive = (_b = object.archive) !== null && _b !== void 0 ? _b : false;
+        message.publish = (_c = object.publish) !== null && _c !== void 0 ? _c : false;
+        message.softDelete = (_d = object.softDelete) !== null && _d !== void 0 ? _d : false;
+        message.hardDelete = (_e = object.hardDelete) !== null && _e !== void 0 ? _e : false;
+        return message;
+    },
+};
+function createBaseItem() {
+    return {
+        id: "",
+        spaceId: "",
+        envId: "",
+        collectionId: "",
+        state: 0,
+        createdRevAt: undefined,
+        createdBy: "",
+        createdAt: undefined,
+        updatedBy: "",
+        updatedAt: undefined,
+        data: undefined,
+        translations: {},
+        revisionId: "",
+        publishedAt: undefined,
+        publishedBy: "",
+        archivedAt: undefined,
+        archivedBy: "",
+        locale: "",
+        deleted: false,
+        hidden: false,
+        template: false,
+        permissions: undefined,
+    };
+}
+exports.Item = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.id !== "") {
+            writer.uint32(10).string(message.id);
+        }
+        if (message.spaceId !== "") {
+            writer.uint32(18).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(26).string(message.envId);
+        }
+        if (message.collectionId !== "") {
+            writer.uint32(34).string(message.collectionId);
+        }
+        if (message.state !== 0) {
+            writer.uint32(40).int32(message.state);
+        }
+        if (message.createdRevAt !== undefined) {
+            timestamp_1.Timestamp.encode(message.createdRevAt, writer.uint32(50).fork()).ldelim();
+        }
+        if (message.createdBy !== "") {
+            writer.uint32(58).string(message.createdBy);
+        }
+        if (message.createdAt !== undefined) {
+            timestamp_1.Timestamp.encode(message.createdAt, writer.uint32(66).fork()).ldelim();
+        }
+        if (message.updatedBy !== "") {
+            writer.uint32(74).string(message.updatedBy);
+        }
+        if (message.updatedAt !== undefined) {
+            timestamp_1.Timestamp.encode(message.updatedAt, writer.uint32(82).fork()).ldelim();
+        }
+        if (message.data !== undefined) {
+            struct_1.Struct.encode(struct_1.Struct.wrap(message.data), writer.uint32(90).fork()).ldelim();
+        }
+        Object.entries(message.translations).forEach(([key, value]) => {
+            if (value !== undefined) {
+                exports.Item_TranslationsEntry.encode({ key: key, value }, writer.uint32(98).fork()).ldelim();
+            }
+        });
+        if (message.revisionId !== "") {
+            writer.uint32(106).string(message.revisionId);
+        }
+        if (message.publishedAt !== undefined) {
+            timestamp_1.Timestamp.encode(message.publishedAt, writer.uint32(114).fork()).ldelim();
+        }
+        if (message.publishedBy !== "") {
+            writer.uint32(122).string(message.publishedBy);
+        }
+        if (message.archivedAt !== undefined) {
+            timestamp_1.Timestamp.encode(message.archivedAt, writer.uint32(130).fork()).ldelim();
+        }
+        if (message.archivedBy !== "") {
+            writer.uint32(138).string(message.archivedBy);
+        }
+        if (message.locale !== "") {
+            writer.uint32(146).string(message.locale);
+        }
+        if (message.deleted === true) {
+            writer.uint32(152).bool(message.deleted);
+        }
+        if (message.hidden === true) {
+            writer.uint32(160).bool(message.hidden);
+        }
+        if (message.template === true) {
+            writer.uint32(168).bool(message.template);
+        }
+        if (message.permissions !== undefined) {
+            exports.Permissions.encode(message.permissions, writer.uint32(178).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseItem();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.id = reader.string();
+                    break;
+                case 2:
+                    message.spaceId = reader.string();
+                    break;
+                case 3:
+                    message.envId = reader.string();
+                    break;
+                case 4:
+                    message.collectionId = reader.string();
+                    break;
+                case 5:
+                    message.state = reader.int32();
+                    break;
+                case 6:
+                    message.createdRevAt = timestamp_1.Timestamp.decode(reader, reader.uint32());
+                    break;
+                case 7:
+                    message.createdBy = reader.string();
+                    break;
+                case 8:
+                    message.createdAt = timestamp_1.Timestamp.decode(reader, reader.uint32());
+                    break;
+                case 9:
+                    message.updatedBy = reader.string();
+                    break;
+                case 10:
+                    message.updatedAt = timestamp_1.Timestamp.decode(reader, reader.uint32());
+                    break;
+                case 11:
+                    message.data = struct_1.Struct.unwrap(struct_1.Struct.decode(reader, reader.uint32()));
+                    break;
+                case 12:
+                    const entry12 = exports.Item_TranslationsEntry.decode(reader, reader.uint32());
+                    if (entry12.value !== undefined) {
+                        message.translations[entry12.key] = entry12.value;
+                    }
+                    break;
+                case 13:
+                    message.revisionId = reader.string();
+                    break;
+                case 14:
+                    message.publishedAt = timestamp_1.Timestamp.decode(reader, reader.uint32());
+                    break;
+                case 15:
+                    message.publishedBy = reader.string();
+                    break;
+                case 16:
+                    message.archivedAt = timestamp_1.Timestamp.decode(reader, reader.uint32());
+                    break;
+                case 17:
+                    message.archivedBy = reader.string();
+                    break;
+                case 18:
+                    message.locale = reader.string();
+                    break;
+                case 19:
+                    message.deleted = reader.bool();
+                    break;
+                case 20:
+                    message.hidden = reader.bool();
+                    break;
+                case 21:
+                    message.template = reader.bool();
+                    break;
+                case 22:
+                    message.permissions = exports.Permissions.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
+        const message = createBaseItem();
+        message.id = (_a = object.id) !== null && _a !== void 0 ? _a : "";
+        message.spaceId = (_b = object.spaceId) !== null && _b !== void 0 ? _b : "";
+        message.envId = (_c = object.envId) !== null && _c !== void 0 ? _c : "";
+        message.collectionId = (_d = object.collectionId) !== null && _d !== void 0 ? _d : "";
+        message.state = (_e = object.state) !== null && _e !== void 0 ? _e : 0;
+        message.createdRevAt =
+            object.createdRevAt !== undefined && object.createdRevAt !== null
+                ? timestamp_1.Timestamp.fromPartial(object.createdRevAt)
+                : undefined;
+        message.createdBy = (_f = object.createdBy) !== null && _f !== void 0 ? _f : "";
+        message.createdAt =
+            object.createdAt !== undefined && object.createdAt !== null
+                ? timestamp_1.Timestamp.fromPartial(object.createdAt)
+                : undefined;
+        message.updatedBy = (_g = object.updatedBy) !== null && _g !== void 0 ? _g : "";
+        message.updatedAt =
+            object.updatedAt !== undefined && object.updatedAt !== null
+                ? timestamp_1.Timestamp.fromPartial(object.updatedAt)
+                : undefined;
+        message.data = (_h = object.data) !== null && _h !== void 0 ? _h : undefined;
+        message.translations = Object.entries((_j = object.translations) !== null && _j !== void 0 ? _j : {}).reduce((acc, [key, value]) => {
+            if (value !== undefined) {
+                acc[key] = value;
+            }
+            return acc;
+        }, {});
+        message.revisionId = (_k = object.revisionId) !== null && _k !== void 0 ? _k : "";
+        message.publishedAt =
+            object.publishedAt !== undefined && object.publishedAt !== null
+                ? timestamp_1.Timestamp.fromPartial(object.publishedAt)
+                : undefined;
+        message.publishedBy = (_l = object.publishedBy) !== null && _l !== void 0 ? _l : "";
+        message.archivedAt =
+            object.archivedAt !== undefined && object.archivedAt !== null
+                ? timestamp_1.Timestamp.fromPartial(object.archivedAt)
+                : undefined;
+        message.archivedBy = (_m = object.archivedBy) !== null && _m !== void 0 ? _m : "";
+        message.locale = (_o = object.locale) !== null && _o !== void 0 ? _o : "";
+        message.deleted = (_p = object.deleted) !== null && _p !== void 0 ? _p : false;
+        message.hidden = (_q = object.hidden) !== null && _q !== void 0 ? _q : false;
+        message.template = (_r = object.template) !== null && _r !== void 0 ? _r : false;
+        message.permissions =
+            object.permissions !== undefined && object.permissions !== null
+                ? exports.Permissions.fromPartial(object.permissions)
+                : undefined;
+        return message;
+    },
+};
+function createBaseItem_TranslationsEntry() {
+    return { key: "", value: undefined };
+}
+exports.Item_TranslationsEntry = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.key !== "") {
+            writer.uint32(10).string(message.key);
+        }
+        if (message.value !== undefined) {
+            struct_1.Struct.encode(struct_1.Struct.wrap(message.value), writer.uint32(18).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseItem_TranslationsEntry();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.key = reader.string();
+                    break;
+                case 2:
+                    message.value = struct_1.Struct.unwrap(struct_1.Struct.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseItem_TranslationsEntry();
+        message.key = (_a = object.key) !== null && _a !== void 0 ? _a : "";
+        message.value = (_b = object.value) !== null && _b !== void 0 ? _b : undefined;
+        return message;
+    },
+};
+function createBaseFilter() {
+    return { id: [], data: [], q: [] };
+}
+exports.Filter = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.id) {
+            writer.uint32(10).string(v);
+        }
+        for (const v of message.data) {
+            common_1.Filter.encode(v, writer.uint32(18).fork()).ldelim();
+        }
+        for (const v of message.q) {
+            writer.uint32(26).string(v);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFilter();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.id.push(reader.string());
+                    break;
+                case 2:
+                    message.data.push(common_1.Filter.decode(reader, reader.uint32()));
+                    break;
+                case 3:
+                    message.q.push(reader.string());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseFilter();
+        message.id = ((_a = object.id) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];
+        message.data = ((_b = object.data) === null || _b === void 0 ? void 0 : _b.map((e) => common_1.Filter.fromPartial(e))) || [];
+        message.q = ((_c = object.q) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];
+        return message;
+    },
+};
+function createBaseCreateOptions() {
+    return { updateAttrs: false };
+}
+exports.CreateOptions = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.updateAttrs === true) {
+            writer.uint32(8).bool(message.updateAttrs);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCreateOptions();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.updateAttrs = reader.bool();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseCreateOptions();
+        message.updateAttrs = (_a = object.updateAttrs) !== null && _a !== void 0 ? _a : false;
+        return message;
+    },
+};
+function createBaseFindOptions() {
+    return {
+        options: undefined,
+        deleted: false,
+        regular: false,
+        hidden: false,
+        templates: false,
+    };
+}
+exports.FindOptions = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.options !== undefined) {
+            common_1.FindOptions.encode(message.options, writer.uint32(18).fork()).ldelim();
+        }
+        if (message.deleted === true) {
+            writer.uint32(24).bool(message.deleted);
+        }
+        if (message.regular === true) {
+            writer.uint32(32).bool(message.regular);
+        }
+        if (message.hidden === true) {
+            writer.uint32(40).bool(message.hidden);
+        }
+        if (message.templates === true) {
+            writer.uint32(48).bool(message.templates);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFindOptions();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 2:
+                    message.options = common_1.FindOptions.decode(reader, reader.uint32());
+                    break;
+                case 3:
+                    message.deleted = reader.bool();
+                    break;
+                case 4:
+                    message.regular = reader.bool();
+                    break;
+                case 5:
+                    message.hidden = reader.bool();
+                    break;
+                case 6:
+                    message.templates = reader.bool();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d;
+        const message = createBaseFindOptions();
+        message.options =
+            object.options !== undefined && object.options !== null
+                ? common_1.FindOptions.fromPartial(object.options)
+                : undefined;
+        message.deleted = (_a = object.deleted) !== null && _a !== void 0 ? _a : false;
+        message.regular = (_b = object.regular) !== null && _b !== void 0 ? _b : false;
+        message.hidden = (_c = object.hidden) !== null && _c !== void 0 ? _c : false;
+        message.templates = (_d = object.templates) !== null && _d !== void 0 ? _d : false;
+        return message;
+    },
+};
+function createBaseUpdateOptions() {
+    return { updateAttrs: false };
+}
+exports.UpdateOptions = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.updateAttrs === true) {
+            writer.uint32(8).bool(message.updateAttrs);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUpdateOptions();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.updateAttrs = reader.bool();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseUpdateOptions();
+        message.updateAttrs = (_a = object.updateAttrs) !== null && _a !== void 0 ? _a : false;
+        return message;
+    },
+};
+function createBaseGetPublishedOptions() {
+    return { localeId: "" };
+}
+exports.GetPublishedOptions = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.localeId !== "") {
+            writer.uint32(10).string(message.localeId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetPublishedOptions();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.localeId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseGetPublishedOptions();
+        message.localeId = (_a = object.localeId) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseDeleteOptions() {
+    return { erase: false };
+}
+exports.DeleteOptions = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.erase === true) {
+            writer.uint32(8).bool(message.erase);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseDeleteOptions();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.erase = reader.bool();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseDeleteOptions();
+        message.erase = (_a = object.erase) !== null && _a !== void 0 ? _a : false;
+        return message;
+    },
+};
+function createBasePublishOptions() {
+    return { updateAttrs: false };
+}
+exports.PublishOptions = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.updateAttrs === true) {
+            writer.uint32(8).bool(message.updateAttrs);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBasePublishOptions();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.updateAttrs = reader.bool();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBasePublishOptions();
+        message.updateAttrs = (_a = object.updateAttrs) !== null && _a !== void 0 ? _a : false;
+        return message;
+    },
+};
+function createBaseFindPublishedOptions() {
+    return {
+        options: undefined,
+        localeId: "",
+        regular: false,
+        hidden: false,
+        templates: false,
+    };
+}
+exports.FindPublishedOptions = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.options !== undefined) {
+            common_1.FindOptions.encode(message.options, writer.uint32(18).fork()).ldelim();
+        }
+        if (message.localeId !== "") {
+            writer.uint32(26).string(message.localeId);
+        }
+        if (message.regular === true) {
+            writer.uint32(32).bool(message.regular);
+        }
+        if (message.hidden === true) {
+            writer.uint32(40).bool(message.hidden);
+        }
+        if (message.templates === true) {
+            writer.uint32(48).bool(message.templates);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFindPublishedOptions();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 2:
+                    message.options = common_1.FindOptions.decode(reader, reader.uint32());
+                    break;
+                case 3:
+                    message.localeId = reader.string();
+                    break;
+                case 4:
+                    message.regular = reader.bool();
+                    break;
+                case 5:
+                    message.hidden = reader.bool();
+                    break;
+                case 6:
+                    message.templates = reader.bool();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d;
+        const message = createBaseFindPublishedOptions();
+        message.options =
+            object.options !== undefined && object.options !== null
+                ? common_1.FindOptions.fromPartial(object.options)
+                : undefined;
+        message.localeId = (_a = object.localeId) !== null && _a !== void 0 ? _a : "";
+        message.regular = (_b = object.regular) !== null && _b !== void 0 ? _b : false;
+        message.hidden = (_c = object.hidden) !== null && _c !== void 0 ? _c : false;
+        message.templates = (_d = object.templates) !== null && _d !== void 0 ? _d : false;
+        return message;
+    },
+};
+function createBaseFindArchivedOptions() {
+    return { options: undefined };
+}
+exports.FindArchivedOptions = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.options !== undefined) {
+            common_1.FindOptions.encode(message.options, writer.uint32(18).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFindArchivedOptions();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 2:
+                    message.options = common_1.FindOptions.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseFindArchivedOptions();
+        message.options =
+            object.options !== undefined && object.options !== null
+                ? common_1.FindOptions.fromPartial(object.options)
+                : undefined;
+        return message;
+    },
+};
+function createBaseListRevisionsOptions() {
+    return { options: undefined };
+}
+exports.ListRevisionsOptions = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.options !== undefined) {
+            common_1.FindOptions.encode(message.options, writer.uint32(18).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListRevisionsOptions();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 2:
+                    message.options = common_1.FindOptions.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseListRevisionsOptions();
+        message.options =
+            object.options !== undefined && object.options !== null
+                ? common_1.FindOptions.fromPartial(object.options)
+                : undefined;
+        return message;
+    },
+};
+function createBaseCreateRequest() {
+    return { item: undefined, options: undefined };
+}
+exports.CreateRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.item !== undefined) {
+            exports.Item.encode(message.item, writer.uint32(10).fork()).ldelim();
+        }
+        if (message.options !== undefined) {
+            exports.CreateOptions.encode(message.options, writer.uint32(18).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCreateRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.item = exports.Item.decode(reader, reader.uint32());
+                    break;
+                case 2:
+                    message.options = exports.CreateOptions.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCreateRequest();
+        message.item =
+            object.item !== undefined && object.item !== null
+                ? exports.Item.fromPartial(object.item)
+                : undefined;
+        message.options =
+            object.options !== undefined && object.options !== null
+                ? exports.CreateOptions.fromPartial(object.options)
+                : undefined;
+        return message;
+    },
+};
+function createBaseCreateResponse() {
+    return { created: undefined };
+}
+exports.CreateResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.created !== undefined) {
+            exports.Item.encode(message.created, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCreateResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.created = exports.Item.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCreateResponse();
+        message.created =
+            object.created !== undefined && object.created !== null
+                ? exports.Item.fromPartial(object.created)
+                : undefined;
+        return message;
+    },
+};
+function createBaseIntrospectRequest() {
+    return { item: undefined };
+}
+exports.IntrospectRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.item !== undefined) {
+            exports.Item.encode(message.item, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseIntrospectRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.item = exports.Item.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseIntrospectRequest();
+        message.item =
+            object.item !== undefined && object.item !== null
+                ? exports.Item.fromPartial(object.item)
+                : undefined;
+        return message;
+    },
+};
+function createBaseIntrospectResponse() {
+    return { item: undefined, schema: "", validationErrors: [] };
+}
+exports.IntrospectResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.item !== undefined) {
+            exports.Item.encode(message.item, writer.uint32(10).fork()).ldelim();
+        }
+        if (message.schema !== "") {
+            writer.uint32(18).string(message.schema);
+        }
+        for (const v of message.validationErrors) {
+            common_1.Error_BadRequest_FieldViolation.encode(v, writer.uint32(26).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseIntrospectResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.item = exports.Item.decode(reader, reader.uint32());
+                    break;
+                case 2:
+                    message.schema = reader.string();
+                    break;
+                case 3:
+                    message.validationErrors.push(common_1.Error_BadRequest_FieldViolation.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseIntrospectResponse();
+        message.item =
+            object.item !== undefined && object.item !== null
+                ? exports.Item.fromPartial(object.item)
+                : undefined;
+        message.schema = (_a = object.schema) !== null && _a !== void 0 ? _a : "";
+        message.validationErrors =
+            ((_b = object.validationErrors) === null || _b === void 0 ? void 0 : _b.map((e) => common_1.Error_BadRequest_FieldViolation.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseGetRequest() {
+    return { spaceId: "", envId: "", collectionId: "", itemId: "" };
+}
+exports.GetRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        if (message.collectionId !== "") {
+            writer.uint32(26).string(message.collectionId);
+        }
+        if (message.itemId !== "") {
+            writer.uint32(34).string(message.itemId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                case 3:
+                    message.collectionId = reader.string();
+                    break;
+                case 4:
+                    message.itemId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d;
+        const message = createBaseGetRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        message.collectionId = (_c = object.collectionId) !== null && _c !== void 0 ? _c : "";
+        message.itemId = (_d = object.itemId) !== null && _d !== void 0 ? _d : "";
+        return message;
+    },
+};
+function createBaseGetResponse() {
+    return { item: undefined };
+}
+exports.GetResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.item !== undefined) {
+            exports.Item.encode(message.item, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.item = exports.Item.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseGetResponse();
+        message.item =
+            object.item !== undefined && object.item !== null
+                ? exports.Item.fromPartial(object.item)
+                : undefined;
+        return message;
+    },
+};
+function createBaseFindRequest() {
+    return {
+        spaceId: "",
+        envId: "",
+        collectionId: "",
+        filter: undefined,
+        options: undefined,
+    };
+}
+exports.FindRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        if (message.collectionId !== "") {
+            writer.uint32(26).string(message.collectionId);
+        }
+        if (message.filter !== undefined) {
+            exports.Filter.encode(message.filter, writer.uint32(34).fork()).ldelim();
+        }
+        if (message.options !== undefined) {
+            exports.FindOptions.encode(message.options, writer.uint32(42).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFindRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                case 3:
+                    message.collectionId = reader.string();
+                    break;
+                case 4:
+                    message.filter = exports.Filter.decode(reader, reader.uint32());
+                    break;
+                case 5:
+                    message.options = exports.FindOptions.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseFindRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        message.collectionId = (_c = object.collectionId) !== null && _c !== void 0 ? _c : "";
+        message.filter =
+            object.filter !== undefined && object.filter !== null
+                ? exports.Filter.fromPartial(object.filter)
+                : undefined;
+        message.options =
+            object.options !== undefined && object.options !== null
+                ? exports.FindOptions.fromPartial(object.options)
+                : undefined;
+        return message;
+    },
+};
+function createBaseFindResponse() {
+    return { items: [], total: 0 };
+}
+exports.FindResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.items) {
+            exports.Item.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        if (message.total !== 0) {
+            writer.uint32(16).int32(message.total);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFindResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.items.push(exports.Item.decode(reader, reader.uint32()));
+                    break;
+                case 2:
+                    message.total = reader.int32();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseFindResponse();
+        message.items = ((_a = object.items) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Item.fromPartial(e))) || [];
+        message.total = (_b = object.total) !== null && _b !== void 0 ? _b : 0;
+        return message;
+    },
+};
+function createBaseUpdateRequest() {
+    return { item: undefined, options: undefined };
+}
+exports.UpdateRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.item !== undefined) {
+            exports.Item.encode(message.item, writer.uint32(10).fork()).ldelim();
+        }
+        if (message.options !== undefined) {
+            exports.UpdateOptions.encode(message.options, writer.uint32(18).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUpdateRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.item = exports.Item.decode(reader, reader.uint32());
+                    break;
+                case 2:
+                    message.options = exports.UpdateOptions.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseUpdateRequest();
+        message.item =
+            object.item !== undefined && object.item !== null
+                ? exports.Item.fromPartial(object.item)
+                : undefined;
+        message.options =
+            object.options !== undefined && object.options !== null
+                ? exports.UpdateOptions.fromPartial(object.options)
+                : undefined;
+        return message;
+    },
+};
+function createBaseDeleteRequest() {
+    return {
+        spaceId: "",
+        envId: "",
+        collectionId: "",
+        itemId: "",
+        options: undefined,
+    };
+}
+exports.DeleteRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        if (message.collectionId !== "") {
+            writer.uint32(26).string(message.collectionId);
+        }
+        if (message.itemId !== "") {
+            writer.uint32(34).string(message.itemId);
+        }
+        if (message.options !== undefined) {
+            exports.DeleteOptions.encode(message.options, writer.uint32(42).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseDeleteRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                case 3:
+                    message.collectionId = reader.string();
+                    break;
+                case 4:
+                    message.itemId = reader.string();
+                    break;
+                case 5:
+                    message.options = exports.DeleteOptions.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d;
+        const message = createBaseDeleteRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        message.collectionId = (_c = object.collectionId) !== null && _c !== void 0 ? _c : "";
+        message.itemId = (_d = object.itemId) !== null && _d !== void 0 ? _d : "";
+        message.options =
+            object.options !== undefined && object.options !== null
+                ? exports.DeleteOptions.fromPartial(object.options)
+                : undefined;
+        return message;
+    },
+};
+function createBaseUndeleteRequest() {
+    return { spaceId: "", envId: "", collectionId: "", itemId: "" };
+}
+exports.UndeleteRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        if (message.collectionId !== "") {
+            writer.uint32(26).string(message.collectionId);
+        }
+        if (message.itemId !== "") {
+            writer.uint32(34).string(message.itemId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUndeleteRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                case 3:
+                    message.collectionId = reader.string();
+                    break;
+                case 4:
+                    message.itemId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d;
+        const message = createBaseUndeleteRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        message.collectionId = (_c = object.collectionId) !== null && _c !== void 0 ? _c : "";
+        message.itemId = (_d = object.itemId) !== null && _d !== void 0 ? _d : "";
+        return message;
+    },
+};
+function createBasePublishRequest() {
+    return { item: undefined, options: undefined };
+}
+exports.PublishRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.item !== undefined) {
+            exports.Item.encode(message.item, writer.uint32(10).fork()).ldelim();
+        }
+        if (message.options !== undefined) {
+            exports.PublishOptions.encode(message.options, writer.uint32(18).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBasePublishRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.item = exports.Item.decode(reader, reader.uint32());
+                    break;
+                case 2:
+                    message.options = exports.PublishOptions.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBasePublishRequest();
+        message.item =
+            object.item !== undefined && object.item !== null
+                ? exports.Item.fromPartial(object.item)
+                : undefined;
+        message.options =
+            object.options !== undefined && object.options !== null
+                ? exports.PublishOptions.fromPartial(object.options)
+                : undefined;
+        return message;
+    },
+};
+function createBaseUnpublishRequest() {
+    return { item: undefined };
+}
+exports.UnpublishRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.item !== undefined) {
+            exports.Item.encode(message.item, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUnpublishRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.item = exports.Item.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseUnpublishRequest();
+        message.item =
+            object.item !== undefined && object.item !== null
+                ? exports.Item.fromPartial(object.item)
+                : undefined;
+        return message;
+    },
+};
+function createBaseGetPublishedRequest() {
+    return {
+        spaceId: "",
+        envId: "",
+        collectionId: "",
+        itemId: "",
+        options: undefined,
+    };
+}
+exports.GetPublishedRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        if (message.collectionId !== "") {
+            writer.uint32(26).string(message.collectionId);
+        }
+        if (message.itemId !== "") {
+            writer.uint32(42).string(message.itemId);
+        }
+        if (message.options !== undefined) {
+            exports.GetPublishedOptions.encode(message.options, writer.uint32(82).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetPublishedRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                case 3:
+                    message.collectionId = reader.string();
+                    break;
+                case 5:
+                    message.itemId = reader.string();
+                    break;
+                case 10:
+                    message.options = exports.GetPublishedOptions.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d;
+        const message = createBaseGetPublishedRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        message.collectionId = (_c = object.collectionId) !== null && _c !== void 0 ? _c : "";
+        message.itemId = (_d = object.itemId) !== null && _d !== void 0 ? _d : "";
+        message.options =
+            object.options !== undefined && object.options !== null
+                ? exports.GetPublishedOptions.fromPartial(object.options)
+                : undefined;
+        return message;
+    },
+};
+function createBaseGetPublishedResponse() {
+    return { item: undefined };
+}
+exports.GetPublishedResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.item !== undefined) {
+            exports.Item.encode(message.item, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetPublishedResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.item = exports.Item.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseGetPublishedResponse();
+        message.item =
+            object.item !== undefined && object.item !== null
+                ? exports.Item.fromPartial(object.item)
+                : undefined;
+        return message;
+    },
+};
+function createBaseFindPublishedRequest() {
+    return {
+        spaceId: "",
+        envId: "",
+        collectionId: "",
+        filter: undefined,
+        options: undefined,
+    };
+}
+exports.FindPublishedRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        if (message.collectionId !== "") {
+            writer.uint32(26).string(message.collectionId);
+        }
+        if (message.filter !== undefined) {
+            exports.Filter.encode(message.filter, writer.uint32(34).fork()).ldelim();
+        }
+        if (message.options !== undefined) {
+            exports.FindPublishedOptions.encode(message.options, writer.uint32(82).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFindPublishedRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                case 3:
+                    message.collectionId = reader.string();
+                    break;
+                case 4:
+                    message.filter = exports.Filter.decode(reader, reader.uint32());
+                    break;
+                case 10:
+                    message.options = exports.FindPublishedOptions.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseFindPublishedRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        message.collectionId = (_c = object.collectionId) !== null && _c !== void 0 ? _c : "";
+        message.filter =
+            object.filter !== undefined && object.filter !== null
+                ? exports.Filter.fromPartial(object.filter)
+                : undefined;
+        message.options =
+            object.options !== undefined && object.options !== null
+                ? exports.FindPublishedOptions.fromPartial(object.options)
+                : undefined;
+        return message;
+    },
+};
+function createBaseFindPublishedResponse() {
+    return { items: [], total: 0 };
+}
+exports.FindPublishedResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.items) {
+            exports.Item.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        if (message.total !== 0) {
+            writer.uint32(16).int32(message.total);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFindPublishedResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.items.push(exports.Item.decode(reader, reader.uint32()));
+                    break;
+                case 2:
+                    message.total = reader.int32();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseFindPublishedResponse();
+        message.items = ((_a = object.items) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Item.fromPartial(e))) || [];
+        message.total = (_b = object.total) !== null && _b !== void 0 ? _b : 0;
+        return message;
+    },
+};
+function createBaseGetRevisionRequest() {
+    return {
+        spaceId: "",
+        envId: "",
+        collectionId: "",
+        itemId: "",
+        revisionId: "",
+    };
+}
+exports.GetRevisionRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        if (message.collectionId !== "") {
+            writer.uint32(26).string(message.collectionId);
+        }
+        if (message.itemId !== "") {
+            writer.uint32(34).string(message.itemId);
+        }
+        if (message.revisionId !== "") {
+            writer.uint32(42).string(message.revisionId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetRevisionRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                case 3:
+                    message.collectionId = reader.string();
+                    break;
+                case 4:
+                    message.itemId = reader.string();
+                    break;
+                case 5:
+                    message.revisionId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e;
+        const message = createBaseGetRevisionRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        message.collectionId = (_c = object.collectionId) !== null && _c !== void 0 ? _c : "";
+        message.itemId = (_d = object.itemId) !== null && _d !== void 0 ? _d : "";
+        message.revisionId = (_e = object.revisionId) !== null && _e !== void 0 ? _e : "";
+        return message;
+    },
+};
+function createBaseGetRevisionResponse() {
+    return { item: undefined };
+}
+exports.GetRevisionResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.item !== undefined) {
+            exports.Item.encode(message.item, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetRevisionResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.item = exports.Item.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseGetRevisionResponse();
+        message.item =
+            object.item !== undefined && object.item !== null
+                ? exports.Item.fromPartial(object.item)
+                : undefined;
+        return message;
+    },
+};
+function createBaseListRevisionsRequest() {
+    return {
+        spaceId: "",
+        envId: "",
+        collectionId: "",
+        itemId: "",
+        options: undefined,
+    };
+}
+exports.ListRevisionsRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        if (message.collectionId !== "") {
+            writer.uint32(26).string(message.collectionId);
+        }
+        if (message.itemId !== "") {
+            writer.uint32(34).string(message.itemId);
+        }
+        if (message.options !== undefined) {
+            exports.ListRevisionsOptions.encode(message.options, writer.uint32(82).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListRevisionsRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                case 3:
+                    message.collectionId = reader.string();
+                    break;
+                case 4:
+                    message.itemId = reader.string();
+                    break;
+                case 10:
+                    message.options = exports.ListRevisionsOptions.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d;
+        const message = createBaseListRevisionsRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        message.collectionId = (_c = object.collectionId) !== null && _c !== void 0 ? _c : "";
+        message.itemId = (_d = object.itemId) !== null && _d !== void 0 ? _d : "";
+        message.options =
+            object.options !== undefined && object.options !== null
+                ? exports.ListRevisionsOptions.fromPartial(object.options)
+                : undefined;
+        return message;
+    },
+};
+function createBaseListRevisionsResponse() {
+    return { items: [] };
+}
+exports.ListRevisionsResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.items) {
+            exports.Item.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListRevisionsResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.items.push(exports.Item.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListRevisionsResponse();
+        message.items = ((_a = object.items) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Item.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseArchiveRequest() {
+    return { item: undefined };
+}
+exports.ArchiveRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.item !== undefined) {
+            exports.Item.encode(message.item, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseArchiveRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.item = exports.Item.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseArchiveRequest();
+        message.item =
+            object.item !== undefined && object.item !== null
+                ? exports.Item.fromPartial(object.item)
+                : undefined;
+        return message;
+    },
+};
+function createBaseUnarchiveRequest() {
+    return { item: undefined };
+}
+exports.UnarchiveRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.item !== undefined) {
+            exports.Item.encode(message.item, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUnarchiveRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.item = exports.Item.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseUnarchiveRequest();
+        message.item =
+            object.item !== undefined && object.item !== null
+                ? exports.Item.fromPartial(object.item)
+                : undefined;
+        return message;
+    },
+};
+function createBaseFindArchivedRequest() {
+    return {
+        spaceId: "",
+        envId: "",
+        collectionId: "",
+        filter: undefined,
+        options: undefined,
+    };
+}
+exports.FindArchivedRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        if (message.collectionId !== "") {
+            writer.uint32(26).string(message.collectionId);
+        }
+        if (message.filter !== undefined) {
+            exports.Filter.encode(message.filter, writer.uint32(34).fork()).ldelim();
+        }
+        if (message.options !== undefined) {
+            exports.FindArchivedOptions.encode(message.options, writer.uint32(50).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFindArchivedRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                case 3:
+                    message.collectionId = reader.string();
+                    break;
+                case 4:
+                    message.filter = exports.Filter.decode(reader, reader.uint32());
+                    break;
+                case 6:
+                    message.options = exports.FindArchivedOptions.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseFindArchivedRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        message.collectionId = (_c = object.collectionId) !== null && _c !== void 0 ? _c : "";
+        message.filter =
+            object.filter !== undefined && object.filter !== null
+                ? exports.Filter.fromPartial(object.filter)
+                : undefined;
+        message.options =
+            object.options !== undefined && object.options !== null
+                ? exports.FindArchivedOptions.fromPartial(object.options)
+                : undefined;
+        return message;
+    },
+};
+function createBaseFindArchivedResponse() {
+    return { items: [], total: 0 };
+}
+exports.FindArchivedResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.items) {
+            exports.Item.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        if (message.total !== 0) {
+            writer.uint32(16).int32(message.total);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFindArchivedResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.items.push(exports.Item.decode(reader, reader.uint32()));
+                    break;
+                case 2:
+                    message.total = reader.int32();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseFindArchivedResponse();
+        message.items = ((_a = object.items) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Item.fromPartial(e))) || [];
+        message.total = (_b = object.total) !== null && _b !== void 0 ? _b : 0;
+        return message;
+    },
+};
+exports.ItemsDefinition = {
+    name: "Items",
+    fullName: "content.items.Items",
+    methods: {
+        /** Создать запись */
+        create: {
+            name: "Create",
+            requestType: exports.CreateRequest,
+            requestStream: false,
+            responseType: exports.CreateResponse,
+            responseStream: false,
+            options: {},
+        },
+        /** Валидация данных записи */
+        introspect: {
+            name: "Introspect",
+            requestType: exports.IntrospectRequest,
+            requestStream: false,
+            responseType: exports.IntrospectResponse,
+            responseStream: false,
+            options: {},
+        },
+        /** Получение записи по идентификатору */
+        get: {
+            name: "Get",
+            requestType: exports.GetRequest,
+            requestStream: false,
+            responseType: exports.GetResponse,
+            responseStream: false,
+            options: {},
+        },
+        /** Поиск по текущим записям */
+        find: {
+            name: "Find",
+            requestType: exports.FindRequest,
+            requestStream: false,
+            responseType: exports.FindResponse,
+            responseStream: false,
+            options: {},
+        },
+        update: {
+            name: "Update",
+            requestType: exports.UpdateRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        delete: {
+            name: "Delete",
+            requestType: exports.DeleteRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        undelete: {
+            name: "Undelete",
+            requestType: exports.UndeleteRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        publish: {
+            name: "Publish",
+            requestType: exports.PublishRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        unpublish: {
+            name: "Unpublish",
+            requestType: exports.UnpublishRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        getPublished: {
+            name: "GetPublished",
+            requestType: exports.GetPublishedRequest,
+            requestStream: false,
+            responseType: exports.GetPublishedResponse,
+            responseStream: false,
+            options: {},
+        },
+        findPublished: {
+            name: "FindPublished",
+            requestType: exports.FindPublishedRequest,
+            requestStream: false,
+            responseType: exports.FindPublishedResponse,
+            responseStream: false,
+            options: {},
+        },
+        getRevision: {
+            name: "GetRevision",
+            requestType: exports.GetRevisionRequest,
+            requestStream: false,
+            responseType: exports.GetRevisionResponse,
+            responseStream: false,
+            options: {},
+        },
+        listRevisions: {
+            name: "ListRevisions",
+            requestType: exports.ListRevisionsRequest,
+            requestStream: false,
+            responseType: exports.ListRevisionsResponse,
+            responseStream: false,
+            options: {},
+        },
+        archive: {
+            name: "Archive",
+            requestType: exports.ArchiveRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        findArchived: {
+            name: "FindArchived",
+            requestType: exports.FindArchivedRequest,
+            requestStream: false,
+            responseType: exports.FindArchivedResponse,
+            responseStream: false,
+            options: {},
+        },
+        unarchive: {
+            name: "Unarchive",
+            requestType: exports.UnarchiveRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+    },
+};
+//# sourceMappingURL=items.js.map
\ No newline at end of file
diff --git a/clients/items/items.js.map b/clients/items/items.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..83b23b24c315dab922f878effdb9e4a8b09c1310
--- /dev/null
+++ b/clients/items/items.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"items.js","sourceRoot":"","sources":["items.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/locales/locales.d.ts b/clients/locales/locales.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..468d20dd65be12bd6bad82c4641037403a58fe3d
--- /dev/null
+++ b/clients/locales/locales.d.ts
@@ -0,0 +1,114 @@
+import { Empty } from "../google/protobuf/empty";
+import * as _m0 from "protobufjs/minimal";
+export interface Locale {
+    id: string;
+    spaceId: string;
+    name: string;
+}
+export interface CreateRequest {
+    locale?: Locale;
+}
+export interface CreateResponse {
+    locale?: Locale;
+}
+export interface ListRequest {
+    spaceId: string;
+}
+export interface ListResponse {
+    locales: Locale[];
+}
+export interface DeleteRequest {
+    spaceId: string;
+    localeId: string;
+}
+export declare const Locale: {
+    encode(message: Locale, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Locale;
+    fromPartial(object: DeepPartial<Locale>): Locale;
+};
+export declare const CreateRequest: {
+    encode(message: CreateRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CreateRequest;
+    fromPartial(object: DeepPartial<CreateRequest>): CreateRequest;
+};
+export declare const CreateResponse: {
+    encode(message: CreateResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CreateResponse;
+    fromPartial(object: DeepPartial<CreateResponse>): CreateResponse;
+};
+export declare const ListRequest: {
+    encode(message: ListRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListRequest;
+    fromPartial(object: DeepPartial<ListRequest>): ListRequest;
+};
+export declare const ListResponse: {
+    encode(message: ListResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListResponse;
+    fromPartial(object: DeepPartial<ListResponse>): ListResponse;
+};
+export declare const DeleteRequest: {
+    encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
+    fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
+};
+export declare type LocalesDefinition = typeof LocalesDefinition;
+export declare const LocalesDefinition: {
+    readonly name: "Locales";
+    readonly fullName: "content.locales.Locales";
+    readonly methods: {
+        readonly create: {
+            readonly name: "Create";
+            readonly requestType: {
+                encode(message: CreateRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CreateRequest;
+                fromPartial(object: DeepPartial<CreateRequest>): CreateRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: CreateResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CreateResponse;
+                fromPartial(object: DeepPartial<CreateResponse>): CreateResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly list: {
+            readonly name: "List";
+            readonly requestType: {
+                encode(message: ListRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListRequest;
+                fromPartial(object: DeepPartial<ListRequest>): ListRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: ListResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListResponse;
+                fromPartial(object: DeepPartial<ListResponse>): ListResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly delete: {
+            readonly name: "Delete";
+            readonly requestType: {
+                encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
+                fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+    };
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=locales.d.ts.map
\ No newline at end of file
diff --git a/clients/locales/locales.d.ts.map b/clients/locales/locales.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..b81701d8cf2b0cd02571058724959df35add5bb4
--- /dev/null
+++ b/clients/locales/locales.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["locales.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/locales/locales.js b/clients/locales/locales.js
new file mode 100644
index 0000000000000000000000000000000000000000..884060ab399d4aa32c75e6258d93bf6bd973c4a5
--- /dev/null
+++ b/clients/locales/locales.js
@@ -0,0 +1,289 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.LocalesDefinition = exports.DeleteRequest = exports.ListResponse = exports.ListRequest = exports.CreateResponse = exports.CreateRequest = exports.Locale = void 0;
+/* eslint-disable */
+const empty_1 = require("../google/protobuf/empty");
+const _m0 = __importStar(require("protobufjs/minimal"));
+function createBaseLocale() {
+    return { id: "", spaceId: "", name: "" };
+}
+exports.Locale = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.id !== "") {
+            writer.uint32(10).string(message.id);
+        }
+        if (message.spaceId !== "") {
+            writer.uint32(18).string(message.spaceId);
+        }
+        if (message.name !== "") {
+            writer.uint32(26).string(message.name);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseLocale();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.id = reader.string();
+                    break;
+                case 2:
+                    message.spaceId = reader.string();
+                    break;
+                case 3:
+                    message.name = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseLocale();
+        message.id = (_a = object.id) !== null && _a !== void 0 ? _a : "";
+        message.spaceId = (_b = object.spaceId) !== null && _b !== void 0 ? _b : "";
+        message.name = (_c = object.name) !== null && _c !== void 0 ? _c : "";
+        return message;
+    },
+};
+function createBaseCreateRequest() {
+    return { locale: undefined };
+}
+exports.CreateRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.locale !== undefined) {
+            exports.Locale.encode(message.locale, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCreateRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.locale = exports.Locale.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCreateRequest();
+        message.locale =
+            object.locale !== undefined && object.locale !== null
+                ? exports.Locale.fromPartial(object.locale)
+                : undefined;
+        return message;
+    },
+};
+function createBaseCreateResponse() {
+    return { locale: undefined };
+}
+exports.CreateResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.locale !== undefined) {
+            exports.Locale.encode(message.locale, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCreateResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.locale = exports.Locale.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCreateResponse();
+        message.locale =
+            object.locale !== undefined && object.locale !== null
+                ? exports.Locale.fromPartial(object.locale)
+                : undefined;
+        return message;
+    },
+};
+function createBaseListRequest() {
+    return { spaceId: "" };
+}
+exports.ListRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseListResponse() {
+    return { locales: [] };
+}
+exports.ListResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.locales) {
+            exports.Locale.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.locales.push(exports.Locale.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListResponse();
+        message.locales = ((_a = object.locales) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Locale.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseDeleteRequest() {
+    return { spaceId: "", localeId: "" };
+}
+exports.DeleteRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.localeId !== "") {
+            writer.uint32(18).string(message.localeId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseDeleteRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.localeId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseDeleteRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.localeId = (_b = object.localeId) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+exports.LocalesDefinition = {
+    name: "Locales",
+    fullName: "content.locales.Locales",
+    methods: {
+        create: {
+            name: "Create",
+            requestType: exports.CreateRequest,
+            requestStream: false,
+            responseType: exports.CreateResponse,
+            responseStream: false,
+            options: {},
+        },
+        list: {
+            name: "List",
+            requestType: exports.ListRequest,
+            requestStream: false,
+            responseType: exports.ListResponse,
+            responseStream: false,
+            options: {},
+        },
+        delete: {
+            name: "Delete",
+            requestType: exports.DeleteRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+    },
+};
+//# sourceMappingURL=locales.js.map
\ No newline at end of file
diff --git a/clients/locales/locales.js.map b/clients/locales/locales.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..5fc012c4f3cae43e3de285599bfe34dffd2f4564
--- /dev/null
+++ b/clients/locales/locales.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"locales.js","sourceRoot":"","sources":["locales.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/members/members.d.ts b/clients/members/members.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ee91f96aaf745e6194c54b176e1c437fb48368bc
--- /dev/null
+++ b/clients/members/members.d.ts
@@ -0,0 +1,229 @@
+import { Collaborator } from "../common/common";
+import { Empty } from "../google/protobuf/empty";
+import * as _m0 from "protobufjs/minimal";
+/** Роль пользователя в организации */
+export declare enum Role {
+    /** NOT_MEMBER - Не является членом команды - значение по умолчанию */
+    NOT_MEMBER = 0,
+    /** MEMBER - Входит в организацию и команды, может получать доступ к Space в соответствии с политикой доступа */
+    MEMBER = 1,
+    /** OWNER - admin + может приглашать пользователей на роль owner */
+    OWNER = 2,
+    /** ADMIN - Входит в организацию, видит все Space, может задавать политики доступа, может приглашать пользователей на роли member, admin */
+    ADMIN = 3,
+    UNRECOGNIZED = -1
+}
+export interface Member {
+    orgId: string;
+    userId: string;
+    role: Role;
+}
+export interface SetRequest {
+    orgId: string;
+    userId: string;
+    role: Role;
+}
+export interface GetRequest {
+    orgId: string;
+    userId: string;
+}
+export interface GetResponse {
+    role: Role;
+}
+export interface RemoveRequest {
+    orgId: string;
+    userId: string;
+}
+export interface ListMembersRequest {
+    orgId: string;
+}
+export interface ListMembersResponse {
+    members: Member[];
+}
+export interface ListOrganizationsRequest {
+    userId: string;
+}
+export interface ListOrganizationsResponse {
+    organizations: Member[];
+}
+/**
+ * Внутренний сервис (часть имплементации паттерна Observer). Используется для установки
+ * членства в организации при принятии приглашения в пространство
+ */
+export interface OnCollaboratorSetRequest {
+    collaborator?: Collaborator;
+}
+export interface OnCollaboratorSetResponse {
+    delayedTaskId: string;
+}
+export declare const Member: {
+    encode(message: Member, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Member;
+    fromPartial(object: DeepPartial<Member>): Member;
+};
+export declare const SetRequest: {
+    encode(message: SetRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): SetRequest;
+    fromPartial(object: DeepPartial<SetRequest>): SetRequest;
+};
+export declare const GetRequest: {
+    encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+    fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+};
+export declare const GetResponse: {
+    encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+    fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+};
+export declare const RemoveRequest: {
+    encode(message: RemoveRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): RemoveRequest;
+    fromPartial(object: DeepPartial<RemoveRequest>): RemoveRequest;
+};
+export declare const ListMembersRequest: {
+    encode(message: ListMembersRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListMembersRequest;
+    fromPartial(object: DeepPartial<ListMembersRequest>): ListMembersRequest;
+};
+export declare const ListMembersResponse: {
+    encode(message: ListMembersResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListMembersResponse;
+    fromPartial(object: DeepPartial<ListMembersResponse>): ListMembersResponse;
+};
+export declare const ListOrganizationsRequest: {
+    encode(message: ListOrganizationsRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListOrganizationsRequest;
+    fromPartial(object: DeepPartial<ListOrganizationsRequest>): ListOrganizationsRequest;
+};
+export declare const ListOrganizationsResponse: {
+    encode(message: ListOrganizationsResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListOrganizationsResponse;
+    fromPartial(object: DeepPartial<ListOrganizationsResponse>): ListOrganizationsResponse;
+};
+export declare const OnCollaboratorSetRequest: {
+    encode(message: OnCollaboratorSetRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): OnCollaboratorSetRequest;
+    fromPartial(object: DeepPartial<OnCollaboratorSetRequest>): OnCollaboratorSetRequest;
+};
+export declare const OnCollaboratorSetResponse: {
+    encode(message: OnCollaboratorSetResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): OnCollaboratorSetResponse;
+    fromPartial(object: DeepPartial<OnCollaboratorSetResponse>): OnCollaboratorSetResponse;
+};
+export declare type MembersDefinition = typeof MembersDefinition;
+export declare const MembersDefinition: {
+    readonly name: "Members";
+    readonly fullName: "account.members.Members";
+    readonly methods: {
+        readonly set: {
+            readonly name: "Set";
+            readonly requestType: {
+                encode(message: SetRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): SetRequest;
+                fromPartial(object: DeepPartial<SetRequest>): SetRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly get: {
+            readonly name: "Get";
+            readonly requestType: {
+                encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+                fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+                fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly remove: {
+            readonly name: "Remove";
+            readonly requestType: {
+                encode(message: RemoveRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): RemoveRequest;
+                fromPartial(object: DeepPartial<RemoveRequest>): RemoveRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly listMembers: {
+            readonly name: "ListMembers";
+            readonly requestType: {
+                encode(message: ListMembersRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListMembersRequest;
+                fromPartial(object: DeepPartial<ListMembersRequest>): ListMembersRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: ListMembersResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListMembersResponse;
+                fromPartial(object: DeepPartial<ListMembersResponse>): ListMembersResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly listOrganizations: {
+            readonly name: "ListOrganizations";
+            readonly requestType: {
+                encode(message: ListOrganizationsRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListOrganizationsRequest;
+                fromPartial(object: DeepPartial<ListOrganizationsRequest>): ListOrganizationsRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: ListOrganizationsResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListOrganizationsResponse;
+                fromPartial(object: DeepPartial<ListOrganizationsResponse>): ListOrganizationsResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+    };
+};
+export declare type ObserverDefinition = typeof ObserverDefinition;
+export declare const ObserverDefinition: {
+    readonly name: "Observer";
+    readonly fullName: "account.members.Observer";
+    readonly methods: {
+        readonly onCollaboratorSet: {
+            readonly name: "OnCollaboratorSet";
+            readonly requestType: {
+                encode(message: OnCollaboratorSetRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): OnCollaboratorSetRequest;
+                fromPartial(object: DeepPartial<OnCollaboratorSetRequest>): OnCollaboratorSetRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: OnCollaboratorSetResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): OnCollaboratorSetResponse;
+                fromPartial(object: DeepPartial<OnCollaboratorSetResponse>): OnCollaboratorSetResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+    };
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=members.d.ts.map
\ No newline at end of file
diff --git a/clients/members/members.d.ts.map b/clients/members/members.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..f23518dd5a43880ba2742437e07d99dd172800d2
--- /dev/null
+++ b/clients/members/members.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"members.d.ts","sourceRoot":"","sources":["members.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/members/members.js b/clients/members/members.js
new file mode 100644
index 0000000000000000000000000000000000000000..69dcb66aab8266e862088796ddf39378fe6d94c3
--- /dev/null
+++ b/clients/members/members.js
@@ -0,0 +1,523 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ObserverDefinition = exports.MembersDefinition = exports.OnCollaboratorSetResponse = exports.OnCollaboratorSetRequest = exports.ListOrganizationsResponse = exports.ListOrganizationsRequest = exports.ListMembersResponse = exports.ListMembersRequest = exports.RemoveRequest = exports.GetResponse = exports.GetRequest = exports.SetRequest = exports.Member = exports.Role = void 0;
+/* eslint-disable */
+const common_1 = require("../common/common");
+const empty_1 = require("../google/protobuf/empty");
+const _m0 = __importStar(require("protobufjs/minimal"));
+/** Роль пользователя в организации */
+var Role;
+(function (Role) {
+    /** NOT_MEMBER - Не является членом команды - значение по умолчанию */
+    Role[Role["NOT_MEMBER"] = 0] = "NOT_MEMBER";
+    /** MEMBER - Входит в организацию и команды, может получать доступ к Space в соответствии с политикой доступа */
+    Role[Role["MEMBER"] = 1] = "MEMBER";
+    /** OWNER - admin + может приглашать пользователей на роль owner */
+    Role[Role["OWNER"] = 2] = "OWNER";
+    /** ADMIN - Входит в организацию, видит все Space, может задавать политики доступа, может приглашать пользователей на роли member, admin */
+    Role[Role["ADMIN"] = 3] = "ADMIN";
+    Role[Role["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
+})(Role = exports.Role || (exports.Role = {}));
+function createBaseMember() {
+    return { orgId: "", userId: "", role: 0 };
+}
+exports.Member = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.orgId !== "") {
+            writer.uint32(10).string(message.orgId);
+        }
+        if (message.userId !== "") {
+            writer.uint32(18).string(message.userId);
+        }
+        if (message.role !== 0) {
+            writer.uint32(24).int32(message.role);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseMember();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.orgId = reader.string();
+                    break;
+                case 2:
+                    message.userId = reader.string();
+                    break;
+                case 3:
+                    message.role = reader.int32();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseMember();
+        message.orgId = (_a = object.orgId) !== null && _a !== void 0 ? _a : "";
+        message.userId = (_b = object.userId) !== null && _b !== void 0 ? _b : "";
+        message.role = (_c = object.role) !== null && _c !== void 0 ? _c : 0;
+        return message;
+    },
+};
+function createBaseSetRequest() {
+    return { orgId: "", userId: "", role: 0 };
+}
+exports.SetRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.orgId !== "") {
+            writer.uint32(10).string(message.orgId);
+        }
+        if (message.userId !== "") {
+            writer.uint32(18).string(message.userId);
+        }
+        if (message.role !== 0) {
+            writer.uint32(24).int32(message.role);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseSetRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.orgId = reader.string();
+                    break;
+                case 2:
+                    message.userId = reader.string();
+                    break;
+                case 3:
+                    message.role = reader.int32();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseSetRequest();
+        message.orgId = (_a = object.orgId) !== null && _a !== void 0 ? _a : "";
+        message.userId = (_b = object.userId) !== null && _b !== void 0 ? _b : "";
+        message.role = (_c = object.role) !== null && _c !== void 0 ? _c : 0;
+        return message;
+    },
+};
+function createBaseGetRequest() {
+    return { orgId: "", userId: "" };
+}
+exports.GetRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.orgId !== "") {
+            writer.uint32(10).string(message.orgId);
+        }
+        if (message.userId !== "") {
+            writer.uint32(18).string(message.userId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.orgId = reader.string();
+                    break;
+                case 2:
+                    message.userId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseGetRequest();
+        message.orgId = (_a = object.orgId) !== null && _a !== void 0 ? _a : "";
+        message.userId = (_b = object.userId) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseGetResponse() {
+    return { role: 0 };
+}
+exports.GetResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.role !== 0) {
+            writer.uint32(24).int32(message.role);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 3:
+                    message.role = reader.int32();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseGetResponse();
+        message.role = (_a = object.role) !== null && _a !== void 0 ? _a : 0;
+        return message;
+    },
+};
+function createBaseRemoveRequest() {
+    return { orgId: "", userId: "" };
+}
+exports.RemoveRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.orgId !== "") {
+            writer.uint32(10).string(message.orgId);
+        }
+        if (message.userId !== "") {
+            writer.uint32(18).string(message.userId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseRemoveRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.orgId = reader.string();
+                    break;
+                case 2:
+                    message.userId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseRemoveRequest();
+        message.orgId = (_a = object.orgId) !== null && _a !== void 0 ? _a : "";
+        message.userId = (_b = object.userId) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseListMembersRequest() {
+    return { orgId: "" };
+}
+exports.ListMembersRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.orgId !== "") {
+            writer.uint32(10).string(message.orgId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListMembersRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.orgId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListMembersRequest();
+        message.orgId = (_a = object.orgId) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseListMembersResponse() {
+    return { members: [] };
+}
+exports.ListMembersResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.members) {
+            exports.Member.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListMembersResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.members.push(exports.Member.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListMembersResponse();
+        message.members = ((_a = object.members) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Member.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseListOrganizationsRequest() {
+    return { userId: "" };
+}
+exports.ListOrganizationsRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.userId !== "") {
+            writer.uint32(10).string(message.userId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListOrganizationsRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.userId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListOrganizationsRequest();
+        message.userId = (_a = object.userId) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseListOrganizationsResponse() {
+    return { organizations: [] };
+}
+exports.ListOrganizationsResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.organizations) {
+            exports.Member.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListOrganizationsResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.organizations.push(exports.Member.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListOrganizationsResponse();
+        message.organizations =
+            ((_a = object.organizations) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Member.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseOnCollaboratorSetRequest() {
+    return { collaborator: undefined };
+}
+exports.OnCollaboratorSetRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.collaborator !== undefined) {
+            common_1.Collaborator.encode(message.collaborator, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseOnCollaboratorSetRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.collaborator = common_1.Collaborator.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseOnCollaboratorSetRequest();
+        message.collaborator =
+            object.collaborator !== undefined && object.collaborator !== null
+                ? common_1.Collaborator.fromPartial(object.collaborator)
+                : undefined;
+        return message;
+    },
+};
+function createBaseOnCollaboratorSetResponse() {
+    return { delayedTaskId: "" };
+}
+exports.OnCollaboratorSetResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.delayedTaskId !== "") {
+            writer.uint32(10).string(message.delayedTaskId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseOnCollaboratorSetResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.delayedTaskId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseOnCollaboratorSetResponse();
+        message.delayedTaskId = (_a = object.delayedTaskId) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+exports.MembersDefinition = {
+    name: "Members",
+    fullName: "account.members.Members",
+    methods: {
+        set: {
+            name: "Set",
+            requestType: exports.SetRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        get: {
+            name: "Get",
+            requestType: exports.GetRequest,
+            requestStream: false,
+            responseType: exports.GetResponse,
+            responseStream: false,
+            options: {},
+        },
+        remove: {
+            name: "Remove",
+            requestType: exports.RemoveRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        listMembers: {
+            name: "ListMembers",
+            requestType: exports.ListMembersRequest,
+            requestStream: false,
+            responseType: exports.ListMembersResponse,
+            responseStream: false,
+            options: {},
+        },
+        listOrganizations: {
+            name: "ListOrganizations",
+            requestType: exports.ListOrganizationsRequest,
+            requestStream: false,
+            responseType: exports.ListOrganizationsResponse,
+            responseStream: false,
+            options: {},
+        },
+    },
+};
+exports.ObserverDefinition = {
+    name: "Observer",
+    fullName: "account.members.Observer",
+    methods: {
+        onCollaboratorSet: {
+            name: "OnCollaboratorSet",
+            requestType: exports.OnCollaboratorSetRequest,
+            requestStream: false,
+            responseType: exports.OnCollaboratorSetResponse,
+            responseStream: false,
+            options: {},
+        },
+    },
+};
+//# sourceMappingURL=members.js.map
\ No newline at end of file
diff --git a/clients/members/members.js.map b/clients/members/members.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..976677bd7f750a590f92708d670c5858cfe8272e
--- /dev/null
+++ b/clients/members/members.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"members.js","sourceRoot":"","sources":["members.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/organizations/organizations.d.ts b/clients/organizations/organizations.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..045a3d6d2a7b3779d6079f64bee09094ddb80606
--- /dev/null
+++ b/clients/organizations/organizations.d.ts
@@ -0,0 +1,188 @@
+import { FindOptions } from "../common/common";
+import { Empty } from "../google/protobuf/empty";
+import * as _m0 from "protobufjs/minimal";
+/** Организация */
+export interface Organization {
+    /** Идентификатор организации */
+    id: string;
+    /** Имя организации */
+    name: string;
+    /** Описание организации */
+    description: string;
+    /** URI изображения логотипа */
+    logoUrl: string;
+    ownerId?: string | undefined;
+}
+export interface CreateRequest {
+    org?: Organization;
+}
+export interface CreateResponse {
+    created?: Organization;
+}
+export interface GetRequest {
+    orgId: string;
+}
+export interface GetResponse {
+    org?: Organization;
+}
+export interface UpdateRequest {
+    org?: Organization;
+}
+export interface DeleteRequest {
+    orgId: string;
+}
+export interface Filter {
+    ids: string[];
+    names: string[];
+}
+export interface FindRequest {
+    filter?: Filter;
+    opts?: FindOptions;
+}
+export interface FindResponse {
+    orgs: Organization[];
+    total: number;
+}
+export declare const Organization: {
+    encode(message: Organization, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Organization;
+    fromPartial(object: DeepPartial<Organization>): Organization;
+};
+export declare const CreateRequest: {
+    encode(message: CreateRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CreateRequest;
+    fromPartial(object: DeepPartial<CreateRequest>): CreateRequest;
+};
+export declare const CreateResponse: {
+    encode(message: CreateResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CreateResponse;
+    fromPartial(object: DeepPartial<CreateResponse>): CreateResponse;
+};
+export declare const GetRequest: {
+    encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+    fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+};
+export declare const GetResponse: {
+    encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+    fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+};
+export declare const UpdateRequest: {
+    encode(message: UpdateRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateRequest;
+    fromPartial(object: DeepPartial<UpdateRequest>): UpdateRequest;
+};
+export declare const DeleteRequest: {
+    encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
+    fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
+};
+export declare const Filter: {
+    encode(message: Filter, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Filter;
+    fromPartial(object: DeepPartial<Filter>): Filter;
+};
+export declare const FindRequest: {
+    encode(message: FindRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): FindRequest;
+    fromPartial(object: DeepPartial<FindRequest>): FindRequest;
+};
+export declare const FindResponse: {
+    encode(message: FindResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): FindResponse;
+    fromPartial(object: DeepPartial<FindResponse>): FindResponse;
+};
+export declare type OrganizationsDefinition = typeof OrganizationsDefinition;
+export declare const OrganizationsDefinition: {
+    readonly name: "Organizations";
+    readonly fullName: "account.organizations.Organizations";
+    readonly methods: {
+        readonly create: {
+            readonly name: "Create";
+            readonly requestType: {
+                encode(message: CreateRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CreateRequest;
+                fromPartial(object: DeepPartial<CreateRequest>): CreateRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: CreateResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CreateResponse;
+                fromPartial(object: DeepPartial<CreateResponse>): CreateResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly get: {
+            readonly name: "Get";
+            readonly requestType: {
+                encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+                fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+                fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly delete: {
+            readonly name: "Delete";
+            readonly requestType: {
+                encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
+                fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly find: {
+            readonly name: "Find";
+            readonly requestType: {
+                encode(message: FindRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): FindRequest;
+                fromPartial(object: DeepPartial<FindRequest>): FindRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: FindResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): FindResponse;
+                fromPartial(object: DeepPartial<FindResponse>): FindResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly update: {
+            readonly name: "Update";
+            readonly requestType: {
+                encode(message: UpdateRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): UpdateRequest;
+                fromPartial(object: DeepPartial<UpdateRequest>): UpdateRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+    };
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=organizations.d.ts.map
\ No newline at end of file
diff --git a/clients/organizations/organizations.d.ts.map b/clients/organizations/organizations.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..2014b5a8c92b07842d2817f5b085f1fb5ceb8d94
--- /dev/null
+++ b/clients/organizations/organizations.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["organizations.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/organizations/organizations.js b/clients/organizations/organizations.js
new file mode 100644
index 0000000000000000000000000000000000000000..f9a46e5d0288be0fec7abe4455c436a4b7a8f4f7
--- /dev/null
+++ b/clients/organizations/organizations.js
@@ -0,0 +1,504 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.OrganizationsDefinition = exports.FindResponse = exports.FindRequest = exports.Filter = exports.DeleteRequest = exports.UpdateRequest = exports.GetResponse = exports.GetRequest = exports.CreateResponse = exports.CreateRequest = exports.Organization = void 0;
+/* eslint-disable */
+const common_1 = require("../common/common");
+const long_1 = __importDefault(require("long"));
+const empty_1 = require("../google/protobuf/empty");
+const _m0 = __importStar(require("protobufjs/minimal"));
+function createBaseOrganization() {
+    return { id: "", name: "", description: "", logoUrl: "", ownerId: undefined };
+}
+exports.Organization = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.id !== "") {
+            writer.uint32(10).string(message.id);
+        }
+        if (message.name !== "") {
+            writer.uint32(18).string(message.name);
+        }
+        if (message.description !== "") {
+            writer.uint32(26).string(message.description);
+        }
+        if (message.logoUrl !== "") {
+            writer.uint32(42).string(message.logoUrl);
+        }
+        if (message.ownerId !== undefined) {
+            writer.uint32(50).string(message.ownerId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseOrganization();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.id = reader.string();
+                    break;
+                case 2:
+                    message.name = reader.string();
+                    break;
+                case 3:
+                    message.description = reader.string();
+                    break;
+                case 5:
+                    message.logoUrl = reader.string();
+                    break;
+                case 6:
+                    message.ownerId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e;
+        const message = createBaseOrganization();
+        message.id = (_a = object.id) !== null && _a !== void 0 ? _a : "";
+        message.name = (_b = object.name) !== null && _b !== void 0 ? _b : "";
+        message.description = (_c = object.description) !== null && _c !== void 0 ? _c : "";
+        message.logoUrl = (_d = object.logoUrl) !== null && _d !== void 0 ? _d : "";
+        message.ownerId = (_e = object.ownerId) !== null && _e !== void 0 ? _e : undefined;
+        return message;
+    },
+};
+function createBaseCreateRequest() {
+    return { org: undefined };
+}
+exports.CreateRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.org !== undefined) {
+            exports.Organization.encode(message.org, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCreateRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.org = exports.Organization.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCreateRequest();
+        message.org =
+            object.org !== undefined && object.org !== null
+                ? exports.Organization.fromPartial(object.org)
+                : undefined;
+        return message;
+    },
+};
+function createBaseCreateResponse() {
+    return { created: undefined };
+}
+exports.CreateResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.created !== undefined) {
+            exports.Organization.encode(message.created, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCreateResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.created = exports.Organization.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCreateResponse();
+        message.created =
+            object.created !== undefined && object.created !== null
+                ? exports.Organization.fromPartial(object.created)
+                : undefined;
+        return message;
+    },
+};
+function createBaseGetRequest() {
+    return { orgId: "" };
+}
+exports.GetRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.orgId !== "") {
+            writer.uint32(10).string(message.orgId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.orgId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseGetRequest();
+        message.orgId = (_a = object.orgId) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseGetResponse() {
+    return { org: undefined };
+}
+exports.GetResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.org !== undefined) {
+            exports.Organization.encode(message.org, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.org = exports.Organization.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseGetResponse();
+        message.org =
+            object.org !== undefined && object.org !== null
+                ? exports.Organization.fromPartial(object.org)
+                : undefined;
+        return message;
+    },
+};
+function createBaseUpdateRequest() {
+    return { org: undefined };
+}
+exports.UpdateRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.org !== undefined) {
+            exports.Organization.encode(message.org, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUpdateRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.org = exports.Organization.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseUpdateRequest();
+        message.org =
+            object.org !== undefined && object.org !== null
+                ? exports.Organization.fromPartial(object.org)
+                : undefined;
+        return message;
+    },
+};
+function createBaseDeleteRequest() {
+    return { orgId: "" };
+}
+exports.DeleteRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.orgId !== "") {
+            writer.uint32(10).string(message.orgId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseDeleteRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.orgId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseDeleteRequest();
+        message.orgId = (_a = object.orgId) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseFilter() {
+    return { ids: [], names: [] };
+}
+exports.Filter = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.ids) {
+            writer.uint32(26).string(v);
+        }
+        for (const v of message.names) {
+            writer.uint32(34).string(v);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFilter();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 3:
+                    message.ids.push(reader.string());
+                    break;
+                case 4:
+                    message.names.push(reader.string());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseFilter();
+        message.ids = ((_a = object.ids) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];
+        message.names = ((_b = object.names) === null || _b === void 0 ? void 0 : _b.map((e) => e)) || [];
+        return message;
+    },
+};
+function createBaseFindRequest() {
+    return { filter: undefined, opts: undefined };
+}
+exports.FindRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.filter !== undefined) {
+            exports.Filter.encode(message.filter, writer.uint32(10).fork()).ldelim();
+        }
+        if (message.opts !== undefined) {
+            common_1.FindOptions.encode(message.opts, writer.uint32(18).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFindRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.filter = exports.Filter.decode(reader, reader.uint32());
+                    break;
+                case 2:
+                    message.opts = common_1.FindOptions.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseFindRequest();
+        message.filter =
+            object.filter !== undefined && object.filter !== null
+                ? exports.Filter.fromPartial(object.filter)
+                : undefined;
+        message.opts =
+            object.opts !== undefined && object.opts !== null
+                ? common_1.FindOptions.fromPartial(object.opts)
+                : undefined;
+        return message;
+    },
+};
+function createBaseFindResponse() {
+    return { orgs: [], total: 0 };
+}
+exports.FindResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.orgs) {
+            exports.Organization.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        if (message.total !== 0) {
+            writer.uint32(16).int64(message.total);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFindResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.orgs.push(exports.Organization.decode(reader, reader.uint32()));
+                    break;
+                case 2:
+                    message.total = longToNumber(reader.int64());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseFindResponse();
+        message.orgs = ((_a = object.orgs) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Organization.fromPartial(e))) || [];
+        message.total = (_b = object.total) !== null && _b !== void 0 ? _b : 0;
+        return message;
+    },
+};
+exports.OrganizationsDefinition = {
+    name: "Organizations",
+    fullName: "account.organizations.Organizations",
+    methods: {
+        create: {
+            name: "Create",
+            requestType: exports.CreateRequest,
+            requestStream: false,
+            responseType: exports.CreateResponse,
+            responseStream: false,
+            options: {},
+        },
+        get: {
+            name: "Get",
+            requestType: exports.GetRequest,
+            requestStream: false,
+            responseType: exports.GetResponse,
+            responseStream: false,
+            options: {},
+        },
+        delete: {
+            name: "Delete",
+            requestType: exports.DeleteRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        find: {
+            name: "Find",
+            requestType: exports.FindRequest,
+            requestStream: false,
+            responseType: exports.FindResponse,
+            responseStream: false,
+            options: {},
+        },
+        update: {
+            name: "Update",
+            requestType: exports.UpdateRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+    },
+};
+var globalThis = (() => {
+    if (typeof globalThis !== "undefined")
+        return globalThis;
+    if (typeof self !== "undefined")
+        return self;
+    if (typeof window !== "undefined")
+        return window;
+    if (typeof global !== "undefined")
+        return global;
+    throw "Unable to locate global object";
+})();
+function longToNumber(long) {
+    if (long.gt(Number.MAX_SAFE_INTEGER)) {
+        throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
+    }
+    return long.toNumber();
+}
+if (_m0.util.Long !== long_1.default) {
+    _m0.util.Long = long_1.default;
+    _m0.configure();
+}
+//# sourceMappingURL=organizations.js.map
\ No newline at end of file
diff --git a/clients/organizations/organizations.js.map b/clients/organizations/organizations.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..ceb671bbb3814ce73b1fa2e2f58544ecaf86f5ea
--- /dev/null
+++ b/clients/organizations/organizations.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"organizations.js","sourceRoot":"","sources":["organizations.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/references/references.d.ts b/clients/references/references.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..fab3d0f3bcbd3fc538e7e05bba0e527d64ed1676
--- /dev/null
+++ b/clients/references/references.d.ts
@@ -0,0 +1,63 @@
+import { Item } from "../items/items";
+import * as _m0 from "protobufjs/minimal";
+export interface Reference {
+    id: string;
+    collectionId: string;
+}
+export interface GetRequest {
+    spaceId: string;
+    envId: string;
+    references: Reference[];
+}
+export interface GetResponse {
+    items: Item[];
+    notfound: Reference[];
+}
+export declare const Reference: {
+    encode(message: Reference, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Reference;
+    fromPartial(object: DeepPartial<Reference>): Reference;
+};
+export declare const GetRequest: {
+    encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+    fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+};
+export declare const GetResponse: {
+    encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+    fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+};
+/**
+ * References принимает список ссылок на записи и возвращает два списка:
+ * список найденных записей и не найденных ссылок
+ */
+export declare type ReferencesDefinition = typeof ReferencesDefinition;
+export declare const ReferencesDefinition: {
+    readonly name: "References";
+    readonly fullName: "content.references.References";
+    readonly methods: {
+        readonly get: {
+            readonly name: "Get";
+            readonly requestType: {
+                encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+                fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+                fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+    };
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=references.d.ts.map
\ No newline at end of file
diff --git a/clients/references/references.d.ts.map b/clients/references/references.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..9d626168120d589503403b5744de73dea76c5722
--- /dev/null
+++ b/clients/references/references.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"references.d.ts","sourceRoot":"","sources":["references.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAE1C,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,QAAQ,EAAE,SAAS,EAAE,CAAC;CACvB;AAMD,eAAO,MAAM,SAAS;oBAET,SAAS,WACV,IAAI,MAAM,GACjB,IAAI,MAAM;kBAUC,IAAI,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,SAAS;wBAqB9C,YAAY,SAAS,CAAC,GAAG,SAAS;CAMvD,CAAC;AAMF,eAAO,MAAM,UAAU;oBAEV,UAAU,WACX,IAAI,MAAM,GACjB,IAAI,MAAM;kBAaC,IAAI,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,UAAU;wBAwB/C,YAAY,UAAU,CAAC,GAAG,UAAU;CAQzD,CAAC;AAMF,eAAO,MAAM,WAAW;oBAEX,WAAW,WACZ,IAAI,MAAM,GACjB,IAAI,MAAM;kBAUC,IAAI,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,WAAW;wBAqBhD,YAAY,WAAW,CAAC,GAAG,WAAW;CAO3D,CAAC;AAEF;;;GAGG;AACH,oBAAY,oBAAoB,GAAG,OAAO,oBAAoB,CAAC;AAC/D,eAAO,MAAM,oBAAoB;;;;;;;gCAtGpB,UAAU,WACX,IAAI,MAAM,GACjB,IAAI,MAAM;8BAaC,IAAI,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,UAAU;oCAwB/C,YAAY,UAAU,CAAC,GAAG,UAAU;;;;gCAgB7C,WAAW,WACZ,IAAI,MAAM,GACjB,IAAI,MAAM;8BAUC,IAAI,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,WAAW;oCAqBhD,YAAY,WAAW,CAAC,GAAG,WAAW;;;;;;CA2BlD,CAAC;AAEX,aAAK,OAAO,GACR,IAAI,GACJ,QAAQ,GACR,UAAU,GACV,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,CAAC;AAEd,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,GACnC,CAAC,GACD,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACxB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAChC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAC7B,CAAC,SAAS,EAAE,GACZ;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACtC,OAAO,CAAC,CAAC,CAAC,CAAC"}
\ No newline at end of file
diff --git a/clients/references/references.js b/clients/references/references.js
new file mode 100644
index 0000000000000000000000000000000000000000..4b0ccc913169c6955f241d0ba2011fa2649dea76
--- /dev/null
+++ b/clients/references/references.js
@@ -0,0 +1,176 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ReferencesDefinition = exports.GetResponse = exports.GetRequest = exports.Reference = void 0;
+/* eslint-disable */
+const items_1 = require("../items/items");
+const _m0 = __importStar(require("protobufjs/minimal"));
+function createBaseReference() {
+    return { id: "", collectionId: "" };
+}
+exports.Reference = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.id !== "") {
+            writer.uint32(10).string(message.id);
+        }
+        if (message.collectionId !== "") {
+            writer.uint32(18).string(message.collectionId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseReference();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.id = reader.string();
+                    break;
+                case 2:
+                    message.collectionId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseReference();
+        message.id = (_a = object.id) !== null && _a !== void 0 ? _a : "";
+        message.collectionId = (_b = object.collectionId) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseGetRequest() {
+    return { spaceId: "", envId: "", references: [] };
+}
+exports.GetRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.envId !== "") {
+            writer.uint32(18).string(message.envId);
+        }
+        for (const v of message.references) {
+            exports.Reference.encode(v, writer.uint32(26).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.envId = reader.string();
+                    break;
+                case 3:
+                    message.references.push(exports.Reference.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseGetRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.envId = (_b = object.envId) !== null && _b !== void 0 ? _b : "";
+        message.references =
+            ((_c = object.references) === null || _c === void 0 ? void 0 : _c.map((e) => exports.Reference.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseGetResponse() {
+    return { items: [], notfound: [] };
+}
+exports.GetResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.items) {
+            items_1.Item.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        for (const v of message.notfound) {
+            exports.Reference.encode(v, writer.uint32(18).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.items.push(items_1.Item.decode(reader, reader.uint32()));
+                    break;
+                case 2:
+                    message.notfound.push(exports.Reference.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseGetResponse();
+        message.items = ((_a = object.items) === null || _a === void 0 ? void 0 : _a.map((e) => items_1.Item.fromPartial(e))) || [];
+        message.notfound =
+            ((_b = object.notfound) === null || _b === void 0 ? void 0 : _b.map((e) => exports.Reference.fromPartial(e))) || [];
+        return message;
+    },
+};
+exports.ReferencesDefinition = {
+    name: "References",
+    fullName: "content.references.References",
+    methods: {
+        get: {
+            name: "Get",
+            requestType: exports.GetRequest,
+            requestStream: false,
+            responseType: exports.GetResponse,
+            responseStream: false,
+            options: {},
+        },
+    },
+};
+//# sourceMappingURL=references.js.map
\ No newline at end of file
diff --git a/clients/references/references.js.map b/clients/references/references.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..41f7e72946053e56dd9977cb3bac0fb86c21f8b0
--- /dev/null
+++ b/clients/references/references.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"references.js","sourceRoot":"","sources":["references.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/roles/roles.d.ts b/clients/roles/roles.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..1d6759fa852e04962383aafec0a62d7663360a50
--- /dev/null
+++ b/clients/roles/roles.d.ts
@@ -0,0 +1,195 @@
+import { Rule } from "../common/common";
+import { Empty } from "../google/protobuf/empty";
+import * as _m0 from "protobufjs/minimal";
+export interface Role {
+    /** Внутренний идентификатор роли */
+    id: string;
+    /** Идентификатор пространства */
+    spaceId: string;
+    /** Описание роли, назначение */
+    description: string;
+    /** Список правил доступа к коллекциям */
+    rules: Rule[];
+    /** Список доступных окружений (ID или Alias) */
+    environments: string[];
+    /**
+     * Разрешить доступ API управления:
+     * - Управление коллекциями
+     * - Управление приложениями
+     * - Управление ролями
+     * - Управление окружениями
+     * - Управление приглашениями
+     * - Управление locales
+     * - Управление участниками
+     */
+    allowManagement: boolean;
+}
+export interface CreateRequest {
+    role?: Role;
+}
+export interface CreateResponse {
+    created?: Role;
+}
+export interface GetRequest {
+    spaceId: string;
+    roleId: string;
+}
+export interface GetResponse {
+    role?: Role;
+}
+export interface UpdateRequest {
+    role?: Role;
+}
+export interface ListRequest {
+    spaceId: string;
+}
+export interface ListResponse {
+    roles: Role[];
+}
+export interface DeleteRequest {
+    spaceId: string;
+    roleId: string;
+}
+export declare const Role: {
+    encode(message: Role, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Role;
+    fromPartial(object: DeepPartial<Role>): Role;
+};
+export declare const CreateRequest: {
+    encode(message: CreateRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CreateRequest;
+    fromPartial(object: DeepPartial<CreateRequest>): CreateRequest;
+};
+export declare const CreateResponse: {
+    encode(message: CreateResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CreateResponse;
+    fromPartial(object: DeepPartial<CreateResponse>): CreateResponse;
+};
+export declare const GetRequest: {
+    encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+    fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+};
+export declare const GetResponse: {
+    encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+    fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+};
+export declare const UpdateRequest: {
+    encode(message: UpdateRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateRequest;
+    fromPartial(object: DeepPartial<UpdateRequest>): UpdateRequest;
+};
+export declare const ListRequest: {
+    encode(message: ListRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListRequest;
+    fromPartial(object: DeepPartial<ListRequest>): ListRequest;
+};
+export declare const ListResponse: {
+    encode(message: ListResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListResponse;
+    fromPartial(object: DeepPartial<ListResponse>): ListResponse;
+};
+export declare const DeleteRequest: {
+    encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
+    fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
+};
+export declare type RolesDefinition = typeof RolesDefinition;
+export declare const RolesDefinition: {
+    readonly name: "Roles";
+    readonly fullName: "content.roles.Roles";
+    readonly methods: {
+        /** Create - создает роль в рамках пространства */
+        readonly create: {
+            readonly name: "Create";
+            readonly requestType: {
+                encode(message: CreateRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CreateRequest;
+                fromPartial(object: DeepPartial<CreateRequest>): CreateRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: CreateResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CreateResponse;
+                fromPartial(object: DeepPartial<CreateResponse>): CreateResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** Get - возвращает роль по id */
+        readonly get: {
+            readonly name: "Get";
+            readonly requestType: {
+                encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+                fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+                fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** Update - обновляет параметры роли */
+        readonly update: {
+            readonly name: "Update";
+            readonly requestType: {
+                encode(message: UpdateRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): UpdateRequest;
+                fromPartial(object: DeepPartial<UpdateRequest>): UpdateRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** List - возвращает список ролей, созданных в пространстве */
+        readonly list: {
+            readonly name: "List";
+            readonly requestType: {
+                encode(message: ListRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListRequest;
+                fromPartial(object: DeepPartial<ListRequest>): ListRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: ListResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListResponse;
+                fromPartial(object: DeepPartial<ListResponse>): ListResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** Delete - удаляет указанную роль из пространстве */
+        readonly delete: {
+            readonly name: "Delete";
+            readonly requestType: {
+                encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
+                fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+    };
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=roles.d.ts.map
\ No newline at end of file
diff --git a/clients/roles/roles.d.ts.map b/clients/roles/roles.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..7e263cab85e5163dd14a92a5978abe258a7149ff
--- /dev/null
+++ b/clients/roles/roles.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["roles.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/roles/roles.js b/clients/roles/roles.js
new file mode 100644
index 0000000000000000000000000000000000000000..643bbdf0250459b0b6ad910a53b9ab71112d0ce5
--- /dev/null
+++ b/clients/roles/roles.js
@@ -0,0 +1,452 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.RolesDefinition = exports.DeleteRequest = exports.ListResponse = exports.ListRequest = exports.UpdateRequest = exports.GetResponse = exports.GetRequest = exports.CreateResponse = exports.CreateRequest = exports.Role = void 0;
+/* eslint-disable */
+const common_1 = require("../common/common");
+const empty_1 = require("../google/protobuf/empty");
+const _m0 = __importStar(require("protobufjs/minimal"));
+function createBaseRole() {
+    return {
+        id: "",
+        spaceId: "",
+        description: "",
+        rules: [],
+        environments: [],
+        allowManagement: false,
+    };
+}
+exports.Role = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.id !== "") {
+            writer.uint32(10).string(message.id);
+        }
+        if (message.spaceId !== "") {
+            writer.uint32(18).string(message.spaceId);
+        }
+        if (message.description !== "") {
+            writer.uint32(26).string(message.description);
+        }
+        for (const v of message.rules) {
+            common_1.Rule.encode(v, writer.uint32(34).fork()).ldelim();
+        }
+        for (const v of message.environments) {
+            writer.uint32(42).string(v);
+        }
+        if (message.allowManagement === true) {
+            writer.uint32(80).bool(message.allowManagement);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseRole();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.id = reader.string();
+                    break;
+                case 2:
+                    message.spaceId = reader.string();
+                    break;
+                case 3:
+                    message.description = reader.string();
+                    break;
+                case 4:
+                    message.rules.push(common_1.Rule.decode(reader, reader.uint32()));
+                    break;
+                case 5:
+                    message.environments.push(reader.string());
+                    break;
+                case 10:
+                    message.allowManagement = reader.bool();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e, _f;
+        const message = createBaseRole();
+        message.id = (_a = object.id) !== null && _a !== void 0 ? _a : "";
+        message.spaceId = (_b = object.spaceId) !== null && _b !== void 0 ? _b : "";
+        message.description = (_c = object.description) !== null && _c !== void 0 ? _c : "";
+        message.rules = ((_d = object.rules) === null || _d === void 0 ? void 0 : _d.map((e) => common_1.Rule.fromPartial(e))) || [];
+        message.environments = ((_e = object.environments) === null || _e === void 0 ? void 0 : _e.map((e) => e)) || [];
+        message.allowManagement = (_f = object.allowManagement) !== null && _f !== void 0 ? _f : false;
+        return message;
+    },
+};
+function createBaseCreateRequest() {
+    return { role: undefined };
+}
+exports.CreateRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.role !== undefined) {
+            exports.Role.encode(message.role, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCreateRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.role = exports.Role.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCreateRequest();
+        message.role =
+            object.role !== undefined && object.role !== null
+                ? exports.Role.fromPartial(object.role)
+                : undefined;
+        return message;
+    },
+};
+function createBaseCreateResponse() {
+    return { created: undefined };
+}
+exports.CreateResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.created !== undefined) {
+            exports.Role.encode(message.created, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCreateResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.created = exports.Role.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCreateResponse();
+        message.created =
+            object.created !== undefined && object.created !== null
+                ? exports.Role.fromPartial(object.created)
+                : undefined;
+        return message;
+    },
+};
+function createBaseGetRequest() {
+    return { spaceId: "", roleId: "" };
+}
+exports.GetRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.roleId !== "") {
+            writer.uint32(18).string(message.roleId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.roleId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseGetRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.roleId = (_b = object.roleId) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+function createBaseGetResponse() {
+    return { role: undefined };
+}
+exports.GetResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.role !== undefined) {
+            exports.Role.encode(message.role, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.role = exports.Role.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseGetResponse();
+        message.role =
+            object.role !== undefined && object.role !== null
+                ? exports.Role.fromPartial(object.role)
+                : undefined;
+        return message;
+    },
+};
+function createBaseUpdateRequest() {
+    return { role: undefined };
+}
+exports.UpdateRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.role !== undefined) {
+            exports.Role.encode(message.role, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUpdateRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.role = exports.Role.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseUpdateRequest();
+        message.role =
+            object.role !== undefined && object.role !== null
+                ? exports.Role.fromPartial(object.role)
+                : undefined;
+        return message;
+    },
+};
+function createBaseListRequest() {
+    return { spaceId: "" };
+}
+exports.ListRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseListResponse() {
+    return { roles: [] };
+}
+exports.ListResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.roles) {
+            exports.Role.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.roles.push(exports.Role.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListResponse();
+        message.roles = ((_a = object.roles) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Role.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseDeleteRequest() {
+    return { spaceId: "", roleId: "" };
+}
+exports.DeleteRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.roleId !== "") {
+            writer.uint32(18).string(message.roleId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseDeleteRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.roleId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseDeleteRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.roleId = (_b = object.roleId) !== null && _b !== void 0 ? _b : "";
+        return message;
+    },
+};
+exports.RolesDefinition = {
+    name: "Roles",
+    fullName: "content.roles.Roles",
+    methods: {
+        /** Create - создает роль в рамках пространства */
+        create: {
+            name: "Create",
+            requestType: exports.CreateRequest,
+            requestStream: false,
+            responseType: exports.CreateResponse,
+            responseStream: false,
+            options: {},
+        },
+        /** Get - возвращает роль по id */
+        get: {
+            name: "Get",
+            requestType: exports.GetRequest,
+            requestStream: false,
+            responseType: exports.GetResponse,
+            responseStream: false,
+            options: {},
+        },
+        /** Update - обновляет параметры роли */
+        update: {
+            name: "Update",
+            requestType: exports.UpdateRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        /** List - возвращает список ролей, созданных в пространстве */
+        list: {
+            name: "List",
+            requestType: exports.ListRequest,
+            requestStream: false,
+            responseType: exports.ListResponse,
+            responseStream: false,
+            options: {},
+        },
+        /** Delete - удаляет указанную роль из пространстве */
+        delete: {
+            name: "Delete",
+            requestType: exports.DeleteRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+    },
+};
+//# sourceMappingURL=roles.js.map
\ No newline at end of file
diff --git a/clients/roles/roles.js.map b/clients/roles/roles.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..588bd1b17531dfac0f28887d355a0192fcb8b4fc
--- /dev/null
+++ b/clients/roles/roles.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"roles.js","sourceRoot":"","sources":["roles.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/spaces/spaces.d.ts b/clients/spaces/spaces.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b3995163e63963a58e5b608da5af2c6416763077
--- /dev/null
+++ b/clients/spaces/spaces.d.ts
@@ -0,0 +1,216 @@
+import { Empty } from "../google/protobuf/empty";
+import * as _m0 from "protobufjs/minimal";
+export declare enum State {
+    UNKNOWN = 0,
+    NEW = 1,
+    READY = 2,
+    PREPARING = 3,
+    MAINTENANCE = 4,
+    MIGRATION = 5,
+    DELETING = 6,
+    ERROR = 7,
+    UNRECOGNIZED = -1
+}
+export interface Space {
+    id: string;
+    orgId: string;
+    name: string;
+    description: string;
+    state: State;
+    config?: Config;
+}
+export interface Config {
+    features: string[];
+}
+export interface CreateRequest {
+    space?: Space;
+}
+export interface CreateResponse {
+    created?: Space;
+}
+export interface GetRequest {
+    spaceId: string;
+}
+export interface GetResponse {
+    space?: Space;
+}
+export interface ListRequest {
+    orgId: string;
+}
+export interface ListResponse {
+    spaces: Space[];
+}
+export interface UpdateRequest {
+    space?: Space;
+}
+export interface UpdateConfigRequest {
+    spaceId: string;
+    config?: Config;
+}
+export interface DeleteRequest {
+    spaceId: string;
+}
+export declare const Space: {
+    encode(message: Space, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Space;
+    fromPartial(object: DeepPartial<Space>): Space;
+};
+export declare const Config: {
+    encode(message: Config, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Config;
+    fromPartial(object: DeepPartial<Config>): Config;
+};
+export declare const CreateRequest: {
+    encode(message: CreateRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CreateRequest;
+    fromPartial(object: DeepPartial<CreateRequest>): CreateRequest;
+};
+export declare const CreateResponse: {
+    encode(message: CreateResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CreateResponse;
+    fromPartial(object: DeepPartial<CreateResponse>): CreateResponse;
+};
+export declare const GetRequest: {
+    encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+    fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+};
+export declare const GetResponse: {
+    encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+    fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+};
+export declare const ListRequest: {
+    encode(message: ListRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListRequest;
+    fromPartial(object: DeepPartial<ListRequest>): ListRequest;
+};
+export declare const ListResponse: {
+    encode(message: ListResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): ListResponse;
+    fromPartial(object: DeepPartial<ListResponse>): ListResponse;
+};
+export declare const UpdateRequest: {
+    encode(message: UpdateRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateRequest;
+    fromPartial(object: DeepPartial<UpdateRequest>): UpdateRequest;
+};
+export declare const UpdateConfigRequest: {
+    encode(message: UpdateConfigRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateConfigRequest;
+    fromPartial(object: DeepPartial<UpdateConfigRequest>): UpdateConfigRequest;
+};
+export declare const DeleteRequest: {
+    encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
+    fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
+};
+export declare type SpacesDefinition = typeof SpacesDefinition;
+export declare const SpacesDefinition: {
+    readonly name: "Spaces";
+    readonly fullName: "content.spaces.Spaces";
+    readonly methods: {
+        readonly create: {
+            readonly name: "Create";
+            readonly requestType: {
+                encode(message: CreateRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CreateRequest;
+                fromPartial(object: DeepPartial<CreateRequest>): CreateRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: CreateResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CreateResponse;
+                fromPartial(object: DeepPartial<CreateResponse>): CreateResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly get: {
+            readonly name: "Get";
+            readonly requestType: {
+                encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+                fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+                fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly list: {
+            readonly name: "List";
+            readonly requestType: {
+                encode(message: ListRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListRequest;
+                fromPartial(object: DeepPartial<ListRequest>): ListRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: ListResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): ListResponse;
+                fromPartial(object: DeepPartial<ListResponse>): ListResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly update: {
+            readonly name: "Update";
+            readonly requestType: {
+                encode(message: UpdateRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): UpdateRequest;
+                fromPartial(object: DeepPartial<UpdateRequest>): UpdateRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly updateConfig: {
+            readonly name: "UpdateConfig";
+            readonly requestType: {
+                encode(message: UpdateConfigRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): UpdateConfigRequest;
+                fromPartial(object: DeepPartial<UpdateConfigRequest>): UpdateConfigRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        readonly delete: {
+            readonly name: "Delete";
+            readonly requestType: {
+                encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
+                fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+    };
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=spaces.d.ts.map
\ No newline at end of file
diff --git a/clients/spaces/spaces.d.ts.map b/clients/spaces/spaces.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..b376ae74a8577e4a960e879d6c5982c90613ecb7
--- /dev/null
+++ b/clients/spaces/spaces.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"spaces.d.ts","sourceRoot":"","sources":["spaces.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/spaces/spaces.js b/clients/spaces/spaces.js
new file mode 100644
index 0000000000000000000000000000000000000000..8c692087b5d156d5cb055946c6449bb04255a9e3
--- /dev/null
+++ b/clients/spaces/spaces.js
@@ -0,0 +1,533 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.SpacesDefinition = exports.DeleteRequest = exports.UpdateConfigRequest = exports.UpdateRequest = exports.ListResponse = exports.ListRequest = exports.GetResponse = exports.GetRequest = exports.CreateResponse = exports.CreateRequest = exports.Config = exports.Space = exports.State = void 0;
+/* eslint-disable */
+const empty_1 = require("../google/protobuf/empty");
+const _m0 = __importStar(require("protobufjs/minimal"));
+var State;
+(function (State) {
+    State[State["UNKNOWN"] = 0] = "UNKNOWN";
+    State[State["NEW"] = 1] = "NEW";
+    State[State["READY"] = 2] = "READY";
+    State[State["PREPARING"] = 3] = "PREPARING";
+    State[State["MAINTENANCE"] = 4] = "MAINTENANCE";
+    State[State["MIGRATION"] = 5] = "MIGRATION";
+    State[State["DELETING"] = 6] = "DELETING";
+    State[State["ERROR"] = 7] = "ERROR";
+    State[State["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
+})(State = exports.State || (exports.State = {}));
+function createBaseSpace() {
+    return {
+        id: "",
+        orgId: "",
+        name: "",
+        description: "",
+        state: 0,
+        config: undefined,
+    };
+}
+exports.Space = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.id !== "") {
+            writer.uint32(10).string(message.id);
+        }
+        if (message.orgId !== "") {
+            writer.uint32(18).string(message.orgId);
+        }
+        if (message.name !== "") {
+            writer.uint32(26).string(message.name);
+        }
+        if (message.description !== "") {
+            writer.uint32(34).string(message.description);
+        }
+        if (message.state !== 0) {
+            writer.uint32(40).int32(message.state);
+        }
+        if (message.config !== undefined) {
+            exports.Config.encode(message.config, writer.uint32(82).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseSpace();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.id = reader.string();
+                    break;
+                case 2:
+                    message.orgId = reader.string();
+                    break;
+                case 3:
+                    message.name = reader.string();
+                    break;
+                case 4:
+                    message.description = reader.string();
+                    break;
+                case 5:
+                    message.state = reader.int32();
+                    break;
+                case 10:
+                    message.config = exports.Config.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e;
+        const message = createBaseSpace();
+        message.id = (_a = object.id) !== null && _a !== void 0 ? _a : "";
+        message.orgId = (_b = object.orgId) !== null && _b !== void 0 ? _b : "";
+        message.name = (_c = object.name) !== null && _c !== void 0 ? _c : "";
+        message.description = (_d = object.description) !== null && _d !== void 0 ? _d : "";
+        message.state = (_e = object.state) !== null && _e !== void 0 ? _e : 0;
+        message.config =
+            object.config !== undefined && object.config !== null
+                ? exports.Config.fromPartial(object.config)
+                : undefined;
+        return message;
+    },
+};
+function createBaseConfig() {
+    return { features: [] };
+}
+exports.Config = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.features) {
+            writer.uint32(10).string(v);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseConfig();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.features.push(reader.string());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseConfig();
+        message.features = ((_a = object.features) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];
+        return message;
+    },
+};
+function createBaseCreateRequest() {
+    return { space: undefined };
+}
+exports.CreateRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.space !== undefined) {
+            exports.Space.encode(message.space, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCreateRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.space = exports.Space.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCreateRequest();
+        message.space =
+            object.space !== undefined && object.space !== null
+                ? exports.Space.fromPartial(object.space)
+                : undefined;
+        return message;
+    },
+};
+function createBaseCreateResponse() {
+    return { created: undefined };
+}
+exports.CreateResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.created !== undefined) {
+            exports.Space.encode(message.created, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCreateResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.created = exports.Space.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCreateResponse();
+        message.created =
+            object.created !== undefined && object.created !== null
+                ? exports.Space.fromPartial(object.created)
+                : undefined;
+        return message;
+    },
+};
+function createBaseGetRequest() {
+    return { spaceId: "" };
+}
+exports.GetRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseGetRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseGetResponse() {
+    return { space: undefined };
+}
+exports.GetResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.space !== undefined) {
+            exports.Space.encode(message.space, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.space = exports.Space.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseGetResponse();
+        message.space =
+            object.space !== undefined && object.space !== null
+                ? exports.Space.fromPartial(object.space)
+                : undefined;
+        return message;
+    },
+};
+function createBaseListRequest() {
+    return { orgId: "" };
+}
+exports.ListRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.orgId !== "") {
+            writer.uint32(10).string(message.orgId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.orgId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListRequest();
+        message.orgId = (_a = object.orgId) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseListResponse() {
+    return { spaces: [] };
+}
+exports.ListResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.spaces) {
+            exports.Space.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseListResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaces.push(exports.Space.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseListResponse();
+        message.spaces = ((_a = object.spaces) === null || _a === void 0 ? void 0 : _a.map((e) => exports.Space.fromPartial(e))) || [];
+        return message;
+    },
+};
+function createBaseUpdateRequest() {
+    return { space: undefined };
+}
+exports.UpdateRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.space !== undefined) {
+            exports.Space.encode(message.space, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUpdateRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.space = exports.Space.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseUpdateRequest();
+        message.space =
+            object.space !== undefined && object.space !== null
+                ? exports.Space.fromPartial(object.space)
+                : undefined;
+        return message;
+    },
+};
+function createBaseUpdateConfigRequest() {
+    return { spaceId: "", config: undefined };
+}
+exports.UpdateConfigRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        if (message.config !== undefined) {
+            exports.Config.encode(message.config, writer.uint32(18).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUpdateConfigRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                case 2:
+                    message.config = exports.Config.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseUpdateConfigRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        message.config =
+            object.config !== undefined && object.config !== null
+                ? exports.Config.fromPartial(object.config)
+                : undefined;
+        return message;
+    },
+};
+function createBaseDeleteRequest() {
+    return { spaceId: "" };
+}
+exports.DeleteRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.spaceId !== "") {
+            writer.uint32(10).string(message.spaceId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseDeleteRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.spaceId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseDeleteRequest();
+        message.spaceId = (_a = object.spaceId) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+exports.SpacesDefinition = {
+    name: "Spaces",
+    fullName: "content.spaces.Spaces",
+    methods: {
+        create: {
+            name: "Create",
+            requestType: exports.CreateRequest,
+            requestStream: false,
+            responseType: exports.CreateResponse,
+            responseStream: false,
+            options: {},
+        },
+        get: {
+            name: "Get",
+            requestType: exports.GetRequest,
+            requestStream: false,
+            responseType: exports.GetResponse,
+            responseStream: false,
+            options: {},
+        },
+        list: {
+            name: "List",
+            requestType: exports.ListRequest,
+            requestStream: false,
+            responseType: exports.ListResponse,
+            responseStream: false,
+            options: {},
+        },
+        update: {
+            name: "Update",
+            requestType: exports.UpdateRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        updateConfig: {
+            name: "UpdateConfig",
+            requestType: exports.UpdateConfigRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        delete: {
+            name: "Delete",
+            requestType: exports.DeleteRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+    },
+};
+//# sourceMappingURL=spaces.js.map
\ No newline at end of file
diff --git a/clients/spaces/spaces.js.map b/clients/spaces/spaces.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..f131991328167fe92b9a548621ca28edcaf25c8b
--- /dev/null
+++ b/clients/spaces/spaces.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"spaces.js","sourceRoot":"","sources":["spaces.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/status/status.d.ts b/clients/status/status.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..687783ed85c6269b37738ae3defd5db73ad5c4c7
--- /dev/null
+++ b/clients/status/status.d.ts
@@ -0,0 +1,82 @@
+import { Any } from "../google/protobuf/any";
+import * as _m0 from "protobufjs/minimal";
+/**
+ * The `Status` type defines a logical error model that is suitable for different
+ * programming environments, including REST APIs and RPC APIs. It is used by
+ * [gRPC](https://github.com/grpc). The error model is designed to be:
+ *
+ * - Simple to use and understand for most users
+ * - Flexible enough to meet unexpected needs
+ *
+ * # Overview
+ *
+ * The `Status` message contains three pieces of data: error code, error message,
+ * and error details. The error code should be an enum value of
+ * [google.rpc.Code][google.rpc.Code], but it may accept additional error codes if needed.  The
+ * error message should be a developer-facing English message that helps
+ * developers *understand* and *resolve* the error. If a localized user-facing
+ * error message is needed, put the localized message in the error details or
+ * localize it in the client. The optional error details may contain arbitrary
+ * information about the error. There is a predefined set of error detail types
+ * in the package `google.rpc` which can be used for common error conditions.
+ *
+ * # Language mapping
+ *
+ * The `Status` message is the logical representation of the error model, but it
+ * is not necessarily the actual wire format. When the `Status` message is
+ * exposed in different client libraries and different wire protocols, it can be
+ * mapped differently. For example, it will likely be mapped to some exceptions
+ * in Java, but more likely mapped to some error codes in C.
+ *
+ * # Other uses
+ *
+ * The error model and the `Status` message can be used in a variety of
+ * environments, either with or without APIs, to provide a
+ * consistent developer experience across different environments.
+ *
+ * Example uses of this error model include:
+ *
+ * - Partial errors. If a service needs to return partial errors to the client,
+ *     it may embed the `Status` in the normal response to indicate the partial
+ *     errors.
+ *
+ * - Workflow errors. A typical workflow has multiple steps. Each step may
+ *     have a `Status` message for error reporting purpose.
+ *
+ * - Batch operations. If a client uses batch request and batch response, the
+ *     `Status` message should be used directly inside batch response, one for
+ *     each error sub-response.
+ *
+ * - Asynchronous operations. If an API call embeds asynchronous operation
+ *     results in its response, the status of those operations should be
+ *     represented directly using the `Status` message.
+ *
+ * - Logging. If some API errors are stored in logs, the message `Status` could
+ *     be used directly after any stripping needed for security/privacy reasons.
+ */
+export interface Status {
+    /** The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. */
+    code: number;
+    /**
+     * A developer-facing error message, which should be in English. Any
+     * user-facing error message should be localized and sent in the
+     * [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
+     */
+    message: string;
+    /**
+     * A list of messages that carry the error details.  There will be a
+     * common set of message types for APIs to use.
+     */
+    details: Any[];
+}
+export declare const Status: {
+    encode(message: Status, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Status;
+    fromPartial(object: DeepPartial<Status>): Status;
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=status.d.ts.map
\ No newline at end of file
diff --git a/clients/status/status.d.ts.map b/clients/status/status.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..c9b0cdd4257a316eca959589131369de9b17ff36
--- /dev/null
+++ b/clients/status/status.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAC7C,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,MAAM,WAAW,MAAM;IACrB,4FAA4F;IAC5F,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,EAAE,GAAG,EAAE,CAAC;CAChB;AAMD,eAAO,MAAM,MAAM;oBAEN,MAAM,WACP,IAAI,MAAM,GACjB,IAAI,MAAM;kBAaC,IAAI,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,MAAM;wBAwB3C,YAAY,MAAM,CAAC,GAAG,MAAM;CAOjD,CAAC;AAEF,aAAK,OAAO,GACR,IAAI,GACJ,QAAQ,GACR,UAAU,GACV,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,CAAC;AAEd,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,GACnC,CAAC,GACD,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACxB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAChC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAC7B,CAAC,SAAS,EAAE,GACZ;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACtC,OAAO,CAAC,CAAC,CAAC,CAAC"}
\ No newline at end of file
diff --git a/clients/status/status.js b/clients/status/status.js
new file mode 100644
index 0000000000000000000000000000000000000000..fd111b26c9ac31d18a8aed64f331ce565655ff0c
--- /dev/null
+++ b/clients/status/status.js
@@ -0,0 +1,78 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Status = void 0;
+/* eslint-disable */
+const any_1 = require("../google/protobuf/any");
+const _m0 = __importStar(require("protobufjs/minimal"));
+function createBaseStatus() {
+    return { code: 0, message: "", details: [] };
+}
+exports.Status = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.code !== 0) {
+            writer.uint32(8).int32(message.code);
+        }
+        if (message.message !== "") {
+            writer.uint32(18).string(message.message);
+        }
+        for (const v of message.details) {
+            any_1.Any.encode(v, writer.uint32(26).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseStatus();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.code = reader.int32();
+                    break;
+                case 2:
+                    message.message = reader.string();
+                    break;
+                case 3:
+                    message.details.push(any_1.Any.decode(reader, reader.uint32()));
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c;
+        const message = createBaseStatus();
+        message.code = (_a = object.code) !== null && _a !== void 0 ? _a : 0;
+        message.message = (_b = object.message) !== null && _b !== void 0 ? _b : "";
+        message.details = ((_c = object.details) === null || _c === void 0 ? void 0 : _c.map((e) => any_1.Any.fromPartial(e))) || [];
+        return message;
+    },
+};
+//# sourceMappingURL=status.js.map
\ No newline at end of file
diff --git a/clients/status/status.js.map b/clients/status/status.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..bc7de23662d40378b0c5ca3003aa26239645cb0d
--- /dev/null
+++ b/clients/status/status.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"status.js","sourceRoot":"","sources":["status.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oBAAoB;AACpB,gDAA6C;AAC7C,wDAA0C;AAwE1C,SAAS,gBAAgB;IACvB,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC/C,CAAC;AAEY,QAAA,MAAM,GAAG;IACpB,MAAM,CACJ,OAAe,EACf,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE;YACtB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACtC;QACD,IAAI,OAAO,CAAC,OAAO,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC3C;QACD,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE;YAC/B,SAAG,CAAC,MAAM,CAAC,CAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SACnD;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC9B,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClC,MAAM;gBACR,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBAC1D,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAA2B;;QACrC,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,GAAG,MAAA,MAAM,CAAC,IAAI,mCAAI,CAAC,CAAC;QAChC,OAAO,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC;QACvC,OAAO,CAAC,OAAO,GAAG,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAI,EAAE,CAAC;QACvE,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC"}
\ No newline at end of file
diff --git a/clients/users/users.d.ts b/clients/users/users.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..eb545fe36b3edf348897e7c5d7d5f93361334e20
--- /dev/null
+++ b/clients/users/users.d.ts
@@ -0,0 +1,252 @@
+import { FindOptions } from "../common/common";
+import { Empty } from "../google/protobuf/empty";
+import * as _m0 from "protobufjs/minimal";
+export interface User {
+    /** Уникальный идентификатор, присваивается системой */
+    id: string;
+    /** Уникальное имя, login */
+    name: string;
+    /** Authorization subjects (JWT sub claims) */
+    identities: string[];
+    /** Имя пользователя для отображения */
+    displayName: string;
+    /** Email, указывается пользователем */
+    email: string;
+    /** Флаг что email проверен */
+    emailVerified?: boolean;
+    /** URI изображения пользователя */
+    avatarUrl: string;
+    /** Системный пользователь (может получать доступ к расширенному API) */
+    system?: boolean;
+}
+export interface Filter {
+    id: string[];
+    name: string[];
+    identities: string[];
+    displayName: string[];
+    email: string[];
+    emailVerified?: boolean;
+    system?: boolean;
+}
+export interface CreateRequest {
+    create?: User;
+}
+export interface CreateResponse {
+    user?: User;
+}
+/** userId = `current` для получения текущего пользователя */
+export interface GetRequest {
+    userId: string;
+}
+export interface GetResponse {
+    user?: User;
+}
+export interface FindRequest {
+    filter?: Filter;
+    options?: FindOptions;
+}
+export interface FindResponse {
+    users: User[];
+    total: number;
+}
+/** userId = `current` для обновления текущего пользователя */
+export interface UpdateRequest {
+    /** Содержит только поля необходимые для обновления */
+    update?: User;
+}
+export interface DeleteRequest {
+    userId: string;
+}
+export interface GetByIdentityRequest {
+    identity: string;
+}
+export interface GetByIdentityResponse {
+    user?: User;
+}
+export declare const User: {
+    encode(message: User, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): User;
+    fromPartial(object: DeepPartial<User>): User;
+};
+export declare const Filter: {
+    encode(message: Filter, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): Filter;
+    fromPartial(object: DeepPartial<Filter>): Filter;
+};
+export declare const CreateRequest: {
+    encode(message: CreateRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CreateRequest;
+    fromPartial(object: DeepPartial<CreateRequest>): CreateRequest;
+};
+export declare const CreateResponse: {
+    encode(message: CreateResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): CreateResponse;
+    fromPartial(object: DeepPartial<CreateResponse>): CreateResponse;
+};
+export declare const GetRequest: {
+    encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+    fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+};
+export declare const GetResponse: {
+    encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+    fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+};
+export declare const FindRequest: {
+    encode(message: FindRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): FindRequest;
+    fromPartial(object: DeepPartial<FindRequest>): FindRequest;
+};
+export declare const FindResponse: {
+    encode(message: FindResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): FindResponse;
+    fromPartial(object: DeepPartial<FindResponse>): FindResponse;
+};
+export declare const UpdateRequest: {
+    encode(message: UpdateRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateRequest;
+    fromPartial(object: DeepPartial<UpdateRequest>): UpdateRequest;
+};
+export declare const DeleteRequest: {
+    encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
+    fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
+};
+export declare const GetByIdentityRequest: {
+    encode(message: GetByIdentityRequest, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetByIdentityRequest;
+    fromPartial(object: DeepPartial<GetByIdentityRequest>): GetByIdentityRequest;
+};
+export declare const GetByIdentityResponse: {
+    encode(message: GetByIdentityResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetByIdentityResponse;
+    fromPartial(object: DeepPartial<GetByIdentityResponse>): GetByIdentityResponse;
+};
+export declare type UsersDefinition = typeof UsersDefinition;
+export declare const UsersDefinition: {
+    readonly name: "Users";
+    readonly fullName: "account.users.Users";
+    readonly methods: {
+        /** Создание пользователя или регистрация текущего пользователя в системе, если create.id == `current` */
+        readonly create: {
+            readonly name: "Create";
+            readonly requestType: {
+                encode(message: CreateRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CreateRequest;
+                fromPartial(object: DeepPartial<CreateRequest>): CreateRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: CreateResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): CreateResponse;
+                fromPartial(object: DeepPartial<CreateResponse>): CreateResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /**
+         * - Получение любого пользователя по идентификатору
+         *  - Получение текущего (от лица которого делается запрос) пользователя по специальному идентификатору `current`
+         */
+        readonly get: {
+            readonly name: "Get";
+            readonly requestType: {
+                encode(message: GetRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetRequest;
+                fromPartial(object: DeepPartial<GetRequest>): GetRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+                fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /** Найти пользователей с фильтрацией. Фильтры доступны пользователям в зависимости от их прав */
+        readonly find: {
+            readonly name: "Find";
+            readonly requestType: {
+                encode(message: FindRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): FindRequest;
+                fromPartial(object: DeepPartial<FindRequest>): FindRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: FindResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): FindResponse;
+                fromPartial(object: DeepPartial<FindResponse>): FindResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /**
+         * - Обновление существующего пользователя по идентификатору
+         *  - Обновление текущего пользователя по спец. идентификатору `current`
+         */
+        readonly update: {
+            readonly name: "Update";
+            readonly requestType: {
+                encode(message: UpdateRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): UpdateRequest;
+                fromPartial(object: DeepPartial<UpdateRequest>): UpdateRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /**
+         * - Удаление существующего пользователя по идентификатору
+         *  - Удаление текущего пользователя по спец. идентификатору `current`
+         */
+        readonly delete: {
+            readonly name: "Delete";
+            readonly requestType: {
+                encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
+                fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+        /**
+         * Метод для внутреннего использования. Недоступен для внешних
+         * запросов - авторизация вернет ошибку `access denied`
+         */
+        readonly getByIdentity: {
+            readonly name: "GetByIdentity";
+            readonly requestType: {
+                encode(message: GetByIdentityRequest, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetByIdentityRequest;
+                fromPartial(object: DeepPartial<GetByIdentityRequest>): GetByIdentityRequest;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetByIdentityResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetByIdentityResponse;
+                fromPartial(object: DeepPartial<GetByIdentityResponse>): GetByIdentityResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+    };
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=users.d.ts.map
\ No newline at end of file
diff --git a/clients/users/users.d.ts.map b/clients/users/users.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..cd7b0c334b8a445373b1f272546775aa74ee61ad
--- /dev/null
+++ b/clients/users/users.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["users.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/users/users.js b/clients/users/users.js
new file mode 100644
index 0000000000000000000000000000000000000000..1c0198d3cdf82e9892085fbe0fb6cfb7f195f5b1
--- /dev/null
+++ b/clients/users/users.js
@@ -0,0 +1,674 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.UsersDefinition = exports.GetByIdentityResponse = exports.GetByIdentityRequest = exports.DeleteRequest = exports.UpdateRequest = exports.FindResponse = exports.FindRequest = exports.GetResponse = exports.GetRequest = exports.CreateResponse = exports.CreateRequest = exports.Filter = exports.User = void 0;
+/* eslint-disable */
+const common_1 = require("../common/common");
+const long_1 = __importDefault(require("long"));
+const empty_1 = require("../google/protobuf/empty");
+const _m0 = __importStar(require("protobufjs/minimal"));
+const wrappers_1 = require("../google/protobuf/wrappers");
+function createBaseUser() {
+    return {
+        id: "",
+        name: "",
+        identities: [],
+        displayName: "",
+        email: "",
+        emailVerified: undefined,
+        avatarUrl: "",
+        system: undefined,
+    };
+}
+exports.User = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.id !== "") {
+            writer.uint32(10).string(message.id);
+        }
+        if (message.name !== "") {
+            writer.uint32(18).string(message.name);
+        }
+        for (const v of message.identities) {
+            writer.uint32(26).string(v);
+        }
+        if (message.displayName !== "") {
+            writer.uint32(34).string(message.displayName);
+        }
+        if (message.email !== "") {
+            writer.uint32(42).string(message.email);
+        }
+        if (message.emailVerified !== undefined) {
+            wrappers_1.BoolValue.encode({ value: message.emailVerified }, writer.uint32(50).fork()).ldelim();
+        }
+        if (message.avatarUrl !== "") {
+            writer.uint32(58).string(message.avatarUrl);
+        }
+        if (message.system !== undefined) {
+            wrappers_1.BoolValue.encode({ value: message.system }, writer.uint32(82).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUser();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.id = reader.string();
+                    break;
+                case 2:
+                    message.name = reader.string();
+                    break;
+                case 3:
+                    message.identities.push(reader.string());
+                    break;
+                case 4:
+                    message.displayName = reader.string();
+                    break;
+                case 5:
+                    message.email = reader.string();
+                    break;
+                case 6:
+                    message.emailVerified = wrappers_1.BoolValue.decode(reader, reader.uint32()).value;
+                    break;
+                case 7:
+                    message.avatarUrl = reader.string();
+                    break;
+                case 10:
+                    message.system = wrappers_1.BoolValue.decode(reader, reader.uint32()).value;
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e, _f, _g, _h;
+        const message = createBaseUser();
+        message.id = (_a = object.id) !== null && _a !== void 0 ? _a : "";
+        message.name = (_b = object.name) !== null && _b !== void 0 ? _b : "";
+        message.identities = ((_c = object.identities) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];
+        message.displayName = (_d = object.displayName) !== null && _d !== void 0 ? _d : "";
+        message.email = (_e = object.email) !== null && _e !== void 0 ? _e : "";
+        message.emailVerified = (_f = object.emailVerified) !== null && _f !== void 0 ? _f : undefined;
+        message.avatarUrl = (_g = object.avatarUrl) !== null && _g !== void 0 ? _g : "";
+        message.system = (_h = object.system) !== null && _h !== void 0 ? _h : undefined;
+        return message;
+    },
+};
+function createBaseFilter() {
+    return {
+        id: [],
+        name: [],
+        identities: [],
+        displayName: [],
+        email: [],
+        emailVerified: undefined,
+        system: undefined,
+    };
+}
+exports.Filter = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.id) {
+            writer.uint32(10).string(v);
+        }
+        for (const v of message.name) {
+            writer.uint32(18).string(v);
+        }
+        for (const v of message.identities) {
+            writer.uint32(26).string(v);
+        }
+        for (const v of message.displayName) {
+            writer.uint32(34).string(v);
+        }
+        for (const v of message.email) {
+            writer.uint32(42).string(v);
+        }
+        if (message.emailVerified !== undefined) {
+            wrappers_1.BoolValue.encode({ value: message.emailVerified }, writer.uint32(50).fork()).ldelim();
+        }
+        if (message.system !== undefined) {
+            wrappers_1.BoolValue.encode({ value: message.system }, writer.uint32(82).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFilter();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.id.push(reader.string());
+                    break;
+                case 2:
+                    message.name.push(reader.string());
+                    break;
+                case 3:
+                    message.identities.push(reader.string());
+                    break;
+                case 4:
+                    message.displayName.push(reader.string());
+                    break;
+                case 5:
+                    message.email.push(reader.string());
+                    break;
+                case 6:
+                    message.emailVerified = wrappers_1.BoolValue.decode(reader, reader.uint32()).value;
+                    break;
+                case 10:
+                    message.system = wrappers_1.BoolValue.decode(reader, reader.uint32()).value;
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b, _c, _d, _e, _f, _g;
+        const message = createBaseFilter();
+        message.id = ((_a = object.id) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];
+        message.name = ((_b = object.name) === null || _b === void 0 ? void 0 : _b.map((e) => e)) || [];
+        message.identities = ((_c = object.identities) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];
+        message.displayName = ((_d = object.displayName) === null || _d === void 0 ? void 0 : _d.map((e) => e)) || [];
+        message.email = ((_e = object.email) === null || _e === void 0 ? void 0 : _e.map((e) => e)) || [];
+        message.emailVerified = (_f = object.emailVerified) !== null && _f !== void 0 ? _f : undefined;
+        message.system = (_g = object.system) !== null && _g !== void 0 ? _g : undefined;
+        return message;
+    },
+};
+function createBaseCreateRequest() {
+    return { create: undefined };
+}
+exports.CreateRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.create !== undefined) {
+            exports.User.encode(message.create, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCreateRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.create = exports.User.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCreateRequest();
+        message.create =
+            object.create !== undefined && object.create !== null
+                ? exports.User.fromPartial(object.create)
+                : undefined;
+        return message;
+    },
+};
+function createBaseCreateResponse() {
+    return { user: undefined };
+}
+exports.CreateResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.user !== undefined) {
+            exports.User.encode(message.user, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseCreateResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.user = exports.User.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseCreateResponse();
+        message.user =
+            object.user !== undefined && object.user !== null
+                ? exports.User.fromPartial(object.user)
+                : undefined;
+        return message;
+    },
+};
+function createBaseGetRequest() {
+    return { userId: "" };
+}
+exports.GetRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.userId !== "") {
+            writer.uint32(10).string(message.userId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.userId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseGetRequest();
+        message.userId = (_a = object.userId) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseGetResponse() {
+    return { user: undefined };
+}
+exports.GetResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.user !== undefined) {
+            exports.User.encode(message.user, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.user = exports.User.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseGetResponse();
+        message.user =
+            object.user !== undefined && object.user !== null
+                ? exports.User.fromPartial(object.user)
+                : undefined;
+        return message;
+    },
+};
+function createBaseFindRequest() {
+    return { filter: undefined, options: undefined };
+}
+exports.FindRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.filter !== undefined) {
+            exports.Filter.encode(message.filter, writer.uint32(10).fork()).ldelim();
+        }
+        if (message.options !== undefined) {
+            common_1.FindOptions.encode(message.options, writer.uint32(82).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFindRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.filter = exports.Filter.decode(reader, reader.uint32());
+                    break;
+                case 10:
+                    message.options = common_1.FindOptions.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseFindRequest();
+        message.filter =
+            object.filter !== undefined && object.filter !== null
+                ? exports.Filter.fromPartial(object.filter)
+                : undefined;
+        message.options =
+            object.options !== undefined && object.options !== null
+                ? common_1.FindOptions.fromPartial(object.options)
+                : undefined;
+        return message;
+    },
+};
+function createBaseFindResponse() {
+    return { users: [], total: 0 };
+}
+exports.FindResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        for (const v of message.users) {
+            exports.User.encode(v, writer.uint32(10).fork()).ldelim();
+        }
+        if (message.total !== 0) {
+            writer.uint32(16).int64(message.total);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseFindResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.users.push(exports.User.decode(reader, reader.uint32()));
+                    break;
+                case 2:
+                    message.total = longToNumber(reader.int64());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a, _b;
+        const message = createBaseFindResponse();
+        message.users = ((_a = object.users) === null || _a === void 0 ? void 0 : _a.map((e) => exports.User.fromPartial(e))) || [];
+        message.total = (_b = object.total) !== null && _b !== void 0 ? _b : 0;
+        return message;
+    },
+};
+function createBaseUpdateRequest() {
+    return { update: undefined };
+}
+exports.UpdateRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.update !== undefined) {
+            exports.User.encode(message.update, writer.uint32(18).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseUpdateRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 2:
+                    message.update = exports.User.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseUpdateRequest();
+        message.update =
+            object.update !== undefined && object.update !== null
+                ? exports.User.fromPartial(object.update)
+                : undefined;
+        return message;
+    },
+};
+function createBaseDeleteRequest() {
+    return { userId: "" };
+}
+exports.DeleteRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.userId !== "") {
+            writer.uint32(10).string(message.userId);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseDeleteRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.userId = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseDeleteRequest();
+        message.userId = (_a = object.userId) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseGetByIdentityRequest() {
+    return { identity: "" };
+}
+exports.GetByIdentityRequest = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.identity !== "") {
+            writer.uint32(10).string(message.identity);
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetByIdentityRequest();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.identity = reader.string();
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        var _a;
+        const message = createBaseGetByIdentityRequest();
+        message.identity = (_a = object.identity) !== null && _a !== void 0 ? _a : "";
+        return message;
+    },
+};
+function createBaseGetByIdentityResponse() {
+    return { user: undefined };
+}
+exports.GetByIdentityResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.user !== undefined) {
+            exports.User.encode(message.user, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetByIdentityResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.user = exports.User.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseGetByIdentityResponse();
+        message.user =
+            object.user !== undefined && object.user !== null
+                ? exports.User.fromPartial(object.user)
+                : undefined;
+        return message;
+    },
+};
+exports.UsersDefinition = {
+    name: "Users",
+    fullName: "account.users.Users",
+    methods: {
+        /** Создание пользователя или регистрация текущего пользователя в системе, если create.id == `current` */
+        create: {
+            name: "Create",
+            requestType: exports.CreateRequest,
+            requestStream: false,
+            responseType: exports.CreateResponse,
+            responseStream: false,
+            options: {},
+        },
+        /**
+         * - Получение любого пользователя по идентификатору
+         *  - Получение текущего (от лица которого делается запрос) пользователя по специальному идентификатору `current`
+         */
+        get: {
+            name: "Get",
+            requestType: exports.GetRequest,
+            requestStream: false,
+            responseType: exports.GetResponse,
+            responseStream: false,
+            options: {},
+        },
+        /** Найти пользователей с фильтрацией. Фильтры доступны пользователям в зависимости от их прав */
+        find: {
+            name: "Find",
+            requestType: exports.FindRequest,
+            requestStream: false,
+            responseType: exports.FindResponse,
+            responseStream: false,
+            options: {},
+        },
+        /**
+         * - Обновление существующего пользователя по идентификатору
+         *  - Обновление текущего пользователя по спец. идентификатору `current`
+         */
+        update: {
+            name: "Update",
+            requestType: exports.UpdateRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        /**
+         * - Удаление существующего пользователя по идентификатору
+         *  - Удаление текущего пользователя по спец. идентификатору `current`
+         */
+        delete: {
+            name: "Delete",
+            requestType: exports.DeleteRequest,
+            requestStream: false,
+            responseType: empty_1.Empty,
+            responseStream: false,
+            options: {},
+        },
+        /**
+         * Метод для внутреннего использования. Недоступен для внешних
+         * запросов - авторизация вернет ошибку `access denied`
+         */
+        getByIdentity: {
+            name: "GetByIdentity",
+            requestType: exports.GetByIdentityRequest,
+            requestStream: false,
+            responseType: exports.GetByIdentityResponse,
+            responseStream: false,
+            options: {},
+        },
+    },
+};
+var globalThis = (() => {
+    if (typeof globalThis !== "undefined")
+        return globalThis;
+    if (typeof self !== "undefined")
+        return self;
+    if (typeof window !== "undefined")
+        return window;
+    if (typeof global !== "undefined")
+        return global;
+    throw "Unable to locate global object";
+})();
+function longToNumber(long) {
+    if (long.gt(Number.MAX_SAFE_INTEGER)) {
+        throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
+    }
+    return long.toNumber();
+}
+if (_m0.util.Long !== long_1.default) {
+    _m0.util.Long = long_1.default;
+    _m0.configure();
+}
+//# sourceMappingURL=users.js.map
\ No newline at end of file
diff --git a/clients/users/users.js.map b/clients/users/users.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..bcbb06248ef12b34e6e5394605c4abb3bd51b280
--- /dev/null
+++ b/clients/users/users.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"users.js","sourceRoot":"","sources":["users.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/clients/versions/account/versions.d.ts b/clients/versions/account/versions.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8586a3047769dbea4129ccb89f2b336bc619b537
--- /dev/null
+++ b/clients/versions/account/versions.d.ts
@@ -0,0 +1,40 @@
+import { Version } from "../../common/common";
+import { Empty } from "../../google/protobuf/empty";
+import * as _m0 from "protobufjs/minimal";
+export interface GetResponse {
+    version?: Version;
+}
+export declare const GetResponse: {
+    encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+    fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+};
+export declare type VersionsDefinition = typeof VersionsDefinition;
+export declare const VersionsDefinition: {
+    readonly name: "Versions";
+    readonly fullName: "account.Versions";
+    readonly methods: {
+        readonly get: {
+            readonly name: "Get";
+            readonly requestType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+                fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+    };
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=versions.d.ts.map
\ No newline at end of file
diff --git a/clients/versions/account/versions.d.ts.map b/clients/versions/account/versions.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..638e705c32ea0404f2c28321b77635ec682d5416
--- /dev/null
+++ b/clients/versions/account/versions.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["versions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAMD,eAAO,MAAM,WAAW;oBAEX,WAAW,WACZ,IAAI,MAAM,GACjB,IAAI,MAAM;kBAOC,IAAI,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,WAAW;wBAkBhD,YAAY,WAAW,CAAC,GAAG,WAAW;CAQ3D,CAAC;AAEF,oBAAY,kBAAkB,GAAG,OAAO,kBAAkB,CAAC;AAC3D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;gCAtClB,WAAW,WACZ,IAAI,MAAM,GACjB,IAAI,MAAM;8BAOC,IAAI,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,WAAW;oCAkBhD,YAAY,WAAW,CAAC,GAAG,WAAW;;;;;;CAwBlD,CAAC;AAEX,aAAK,OAAO,GACR,IAAI,GACJ,QAAQ,GACR,UAAU,GACV,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,CAAC;AAEd,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,GACnC,CAAC,GACD,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACxB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAChC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAC7B,CAAC,SAAS,EAAE,GACZ;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACtC,OAAO,CAAC,CAAC,CAAC,CAAC"}
\ No newline at end of file
diff --git a/clients/versions/account/versions.js b/clients/versions/account/versions.js
new file mode 100644
index 0000000000000000000000000000000000000000..59e243c0c2652cf5bcae81eae78f7c0dc3f05643
--- /dev/null
+++ b/clients/versions/account/versions.js
@@ -0,0 +1,81 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.VersionsDefinition = exports.GetResponse = void 0;
+/* eslint-disable */
+const common_1 = require("../../common/common");
+const empty_1 = require("../../google/protobuf/empty");
+const _m0 = __importStar(require("protobufjs/minimal"));
+function createBaseGetResponse() {
+    return { version: undefined };
+}
+exports.GetResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.version !== undefined) {
+            common_1.Version.encode(message.version, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.version = common_1.Version.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseGetResponse();
+        message.version =
+            object.version !== undefined && object.version !== null
+                ? common_1.Version.fromPartial(object.version)
+                : undefined;
+        return message;
+    },
+};
+exports.VersionsDefinition = {
+    name: "Versions",
+    fullName: "account.Versions",
+    methods: {
+        get: {
+            name: "Get",
+            requestType: empty_1.Empty,
+            requestStream: false,
+            responseType: exports.GetResponse,
+            responseStream: false,
+            options: {},
+        },
+    },
+};
+//# sourceMappingURL=versions.js.map
\ No newline at end of file
diff --git a/clients/versions/account/versions.js.map b/clients/versions/account/versions.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..daf38c5d6cfda64660e5fddf5ae7c53f0f47cab2
--- /dev/null
+++ b/clients/versions/account/versions.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"versions.js","sourceRoot":"","sources":["versions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oBAAoB;AACpB,gDAA8C;AAC9C,uDAAoD;AACpD,wDAA0C;AAM1C,SAAS,qBAAqB;IAC5B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC;AAEY,QAAA,WAAW,GAAG;IACzB,MAAM,CACJ,OAAoB,EACpB,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE;YACjC,gBAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SACpE;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,GAAG,gBAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC1D,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAAgC;QAC1C,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;QACxC,OAAO,CAAC,OAAO;YACb,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI;gBACrD,CAAC,CAAC,gBAAO,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;gBACrC,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAGW,QAAA,kBAAkB,GAAG;IAChC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,kBAAkB;IAC5B,OAAO,EAAE;QACP,GAAG,EAAE;YACH,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,aAAK;YAClB,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,mBAAW;YACzB,cAAc,EAAE,KAAK;YACrB,OAAO,EAAE,EAAE;SACZ;KACF;CACO,CAAC"}
\ No newline at end of file
diff --git a/clients/versions/content/versions.d.ts b/clients/versions/content/versions.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e730ee85f8a207649d5e9ea0f1c66eae8efbfcd1
--- /dev/null
+++ b/clients/versions/content/versions.d.ts
@@ -0,0 +1,40 @@
+import { Version } from "../../common/common";
+import { Empty } from "../../google/protobuf/empty";
+import * as _m0 from "protobufjs/minimal";
+export interface GetResponse {
+    version?: Version;
+}
+export declare const GetResponse: {
+    encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+    decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+    fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+};
+export declare type VersionsDefinition = typeof VersionsDefinition;
+export declare const VersionsDefinition: {
+    readonly name: "Versions";
+    readonly fullName: "content.Versions";
+    readonly methods: {
+        readonly get: {
+            readonly name: "Get";
+            readonly requestType: {
+                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
+                decode(input: Uint8Array | _m0.Reader, length?: number | undefined): Empty;
+                fromPartial(_: {}): Empty;
+            };
+            readonly requestStream: false;
+            readonly responseType: {
+                encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
+                decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
+                fromPartial(object: DeepPartial<GetResponse>): GetResponse;
+            };
+            readonly responseStream: false;
+            readonly options: {};
+        };
+    };
+};
+declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
+declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
+    [K in keyof T]?: DeepPartial<T[K]>;
+} : Partial<T>;
+export {};
+//# sourceMappingURL=versions.d.ts.map
\ No newline at end of file
diff --git a/clients/versions/content/versions.d.ts.map b/clients/versions/content/versions.d.ts.map
new file mode 100644
index 0000000000000000000000000000000000000000..638e705c32ea0404f2c28321b77635ec682d5416
--- /dev/null
+++ b/clients/versions/content/versions.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["versions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAMD,eAAO,MAAM,WAAW;oBAEX,WAAW,WACZ,IAAI,MAAM,GACjB,IAAI,MAAM;kBAOC,IAAI,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,WAAW;wBAkBhD,YAAY,WAAW,CAAC,GAAG,WAAW;CAQ3D,CAAC;AAEF,oBAAY,kBAAkB,GAAG,OAAO,kBAAkB,CAAC;AAC3D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;gCAtClB,WAAW,WACZ,IAAI,MAAM,GACjB,IAAI,MAAM;8BAOC,IAAI,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,WAAW;oCAkBhD,YAAY,WAAW,CAAC,GAAG,WAAW;;;;;;CAwBlD,CAAC;AAEX,aAAK,OAAO,GACR,IAAI,GACJ,QAAQ,GACR,UAAU,GACV,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,CAAC;AAEd,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,GACnC,CAAC,GACD,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACxB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAChC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAC7B,CAAC,SAAS,EAAE,GACZ;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACtC,OAAO,CAAC,CAAC,CAAC,CAAC"}
\ No newline at end of file
diff --git a/clients/versions/content/versions.js b/clients/versions/content/versions.js
new file mode 100644
index 0000000000000000000000000000000000000000..bc56f78d401fc6a3eca4e29171297a80ca154b8e
--- /dev/null
+++ b/clients/versions/content/versions.js
@@ -0,0 +1,81 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    var desc = Object.getOwnPropertyDescriptor(m, k);
+    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+      desc = { enumerable: true, get: function() { return m[k]; } };
+    }
+    Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.VersionsDefinition = exports.GetResponse = void 0;
+/* eslint-disable */
+const common_1 = require("../../common/common");
+const empty_1 = require("../../google/protobuf/empty");
+const _m0 = __importStar(require("protobufjs/minimal"));
+function createBaseGetResponse() {
+    return { version: undefined };
+}
+exports.GetResponse = {
+    encode(message, writer = _m0.Writer.create()) {
+        if (message.version !== undefined) {
+            common_1.Version.encode(message.version, writer.uint32(10).fork()).ldelim();
+        }
+        return writer;
+    },
+    decode(input, length) {
+        const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
+        let end = length === undefined ? reader.len : reader.pos + length;
+        const message = createBaseGetResponse();
+        while (reader.pos < end) {
+            const tag = reader.uint32();
+            switch (tag >>> 3) {
+                case 1:
+                    message.version = common_1.Version.decode(reader, reader.uint32());
+                    break;
+                default:
+                    reader.skipType(tag & 7);
+                    break;
+            }
+        }
+        return message;
+    },
+    fromPartial(object) {
+        const message = createBaseGetResponse();
+        message.version =
+            object.version !== undefined && object.version !== null
+                ? common_1.Version.fromPartial(object.version)
+                : undefined;
+        return message;
+    },
+};
+exports.VersionsDefinition = {
+    name: "Versions",
+    fullName: "content.Versions",
+    methods: {
+        get: {
+            name: "Get",
+            requestType: empty_1.Empty,
+            requestStream: false,
+            responseType: exports.GetResponse,
+            responseStream: false,
+            options: {},
+        },
+    },
+};
+//# sourceMappingURL=versions.js.map
\ No newline at end of file
diff --git a/clients/versions/content/versions.js.map b/clients/versions/content/versions.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..daf38c5d6cfda64660e5fddf5ae7c53f0f47cab2
--- /dev/null
+++ b/clients/versions/content/versions.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"versions.js","sourceRoot":"","sources":["versions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oBAAoB;AACpB,gDAA8C;AAC9C,uDAAoD;AACpD,wDAA0C;AAM1C,SAAS,qBAAqB;IAC5B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC;AAEY,QAAA,WAAW,GAAG;IACzB,MAAM,CACJ,OAAoB,EACpB,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QAExC,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE;YACjC,gBAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SACpE;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,GAAG,gBAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC1D,MAAM;gBACR;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,MAAgC;QAC1C,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;QACxC,OAAO,CAAC,OAAO;YACb,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI;gBACrD,CAAC,CAAC,gBAAO,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;gBACrC,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAGW,QAAA,kBAAkB,GAAG;IAChC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,kBAAkB;IAC5B,OAAO,EAAE;QACP,GAAG,EAAE;YACH,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,aAAK;YAClB,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,mBAAW;YACzB,cAAc,EAAE,KAAK;YACrB,OAAO,EAAE,EAAE;SACZ;KACF;CACO,CAAC"}
\ No newline at end of file