"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 __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
    return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.control_client = void 0;
/**
 * Generated by the protoc-gen-ts.  DO NOT EDIT!
 * compiler version: 3.19.1
 * source: controlclient.proto
 * git: https://github.com/thesayyn/protoc-gen-ts */
const pb_1 = __importStar(require("google-protobuf"));
const grpc_1 = __importStar(require("@grpc/grpc-js"));
var control_client;
(function (control_client) {
    var __SimilarityMetric_one_of_decls, __CreateIndexRequest_one_of_decls, __CreateIndexResponse_one_of_decls, __DeleteIndexRequest_one_of_decls, __DeleteIndexResponse_one_of_decls, __ListIndexesRequest_one_of_decls, __ListIndexesResponse_one_of_decls, __DeleteCacheRequest_one_of_decls, __DeleteCacheResponse_one_of_decls, __CreateCacheRequest_one_of_decls, __CreateCacheResponse_one_of_decls, __ListCachesRequest_one_of_decls, __CacheLimits_one_of_decls, __TopicLimits_one_of_decls, __Cache_one_of_decls, __ListCachesResponse_one_of_decls, __CreateSigningKeyRequest_one_of_decls, __CreateSigningKeyResponse_one_of_decls, __RevokeSigningKeyRequest_one_of_decls, __RevokeSigningKeyResponse_one_of_decls, __SigningKey_one_of_decls, __ListSigningKeysRequest_one_of_decls, __ListSigningKeysResponse_one_of_decls, __FlushCacheRequest_one_of_decls, __FlushCacheResponse_one_of_decls;
    class _SimilarityMetric extends pb_1.Message {
        constructor(data) {
            super();
            __SimilarityMetric_one_of_decls.set(this, [[1, 2, 3]]);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __SimilarityMetric_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") {
                if ("euclidean_similarity" in data && data.euclidean_similarity != undefined) {
                    this.euclidean_similarity = data.euclidean_similarity;
                }
                if ("inner_product" in data && data.inner_product != undefined) {
                    this.inner_product = data.inner_product;
                }
                if ("cosine_similarity" in data && data.cosine_similarity != undefined) {
                    this.cosine_similarity = data.cosine_similarity;
                }
            }
        }
        get euclidean_similarity() {
            return pb_1.Message.getWrapperField(this, _SimilarityMetric._EuclideanSimilarity, 1);
        }
        set euclidean_similarity(value) {
            pb_1.Message.setOneofWrapperField(this, 1, __classPrivateFieldGet(this, __SimilarityMetric_one_of_decls, "f")[0], value);
        }
        get has_euclidean_similarity() {
            return pb_1.Message.getField(this, 1) != null;
        }
        get inner_product() {
            return pb_1.Message.getWrapperField(this, _SimilarityMetric._InnerProduct, 2);
        }
        set inner_product(value) {
            pb_1.Message.setOneofWrapperField(this, 2, __classPrivateFieldGet(this, __SimilarityMetric_one_of_decls, "f")[0], value);
        }
        get has_inner_product() {
            return pb_1.Message.getField(this, 2) != null;
        }
        get cosine_similarity() {
            return pb_1.Message.getWrapperField(this, _SimilarityMetric._CosineSimilarity, 3);
        }
        set cosine_similarity(value) {
            pb_1.Message.setOneofWrapperField(this, 3, __classPrivateFieldGet(this, __SimilarityMetric_one_of_decls, "f")[0], value);
        }
        get has_cosine_similarity() {
            return pb_1.Message.getField(this, 3) != null;
        }
        get similarity_metric() {
            const cases = {
                0: "none",
                1: "euclidean_similarity",
                2: "inner_product",
                3: "cosine_similarity"
            };
            return cases[pb_1.Message.computeOneofCase(this, [1, 2, 3])];
        }
        static fromObject(data) {
            const message = new _SimilarityMetric({});
            if (data.euclidean_similarity != null) {
                message.euclidean_similarity = _SimilarityMetric._EuclideanSimilarity.fromObject(data.euclidean_similarity);
            }
            if (data.inner_product != null) {
                message.inner_product = _SimilarityMetric._InnerProduct.fromObject(data.inner_product);
            }
            if (data.cosine_similarity != null) {
                message.cosine_similarity = _SimilarityMetric._CosineSimilarity.fromObject(data.cosine_similarity);
            }
            return message;
        }
        toObject() {
            const data = {};
            if (this.euclidean_similarity != null) {
                data.euclidean_similarity = this.euclidean_similarity.toObject();
            }
            if (this.inner_product != null) {
                data.inner_product = this.inner_product.toObject();
            }
            if (this.cosine_similarity != null) {
                data.cosine_similarity = this.cosine_similarity.toObject();
            }
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (this.has_euclidean_similarity)
                writer.writeMessage(1, this.euclidean_similarity, () => this.euclidean_similarity.serialize(writer));
            if (this.has_inner_product)
                writer.writeMessage(2, this.inner_product, () => this.inner_product.serialize(writer));
            if (this.has_cosine_similarity)
                writer.writeMessage(3, this.cosine_similarity, () => this.cosine_similarity.serialize(writer));
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _SimilarityMetric();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        reader.readMessage(message.euclidean_similarity, () => message.euclidean_similarity = _SimilarityMetric._EuclideanSimilarity.deserialize(reader));
                        break;
                    case 2:
                        reader.readMessage(message.inner_product, () => message.inner_product = _SimilarityMetric._InnerProduct.deserialize(reader));
                        break;
                    case 3:
                        reader.readMessage(message.cosine_similarity, () => message.cosine_similarity = _SimilarityMetric._CosineSimilarity.deserialize(reader));
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _SimilarityMetric.deserialize(bytes);
        }
    }
    __SimilarityMetric_one_of_decls = new WeakMap();
    control_client._SimilarityMetric = _SimilarityMetric;
    (function (_SimilarityMetric) {
        var __EuclideanSimilarity_one_of_decls, __InnerProduct_one_of_decls, __CosineSimilarity_one_of_decls;
        class _EuclideanSimilarity extends pb_1.Message {
            constructor(data) {
                super();
                __EuclideanSimilarity_one_of_decls.set(this, []);
                pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __EuclideanSimilarity_one_of_decls, "f"));
                if (!Array.isArray(data) && typeof data == "object") { }
            }
            static fromObject(data) {
                const message = new _EuclideanSimilarity({});
                return message;
            }
            toObject() {
                const data = {};
                return data;
            }
            serialize(w) {
                const writer = w || new pb_1.BinaryWriter();
                if (!w)
                    return writer.getResultBuffer();
            }
            static deserialize(bytes) {
                const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _EuclideanSimilarity();
                while (reader.nextField()) {
                    if (reader.isEndGroup())
                        break;
                    switch (reader.getFieldNumber()) {
                        default: reader.skipField();
                    }
                }
                return message;
            }
            serializeBinary() {
                return this.serialize();
            }
            static deserializeBinary(bytes) {
                return _EuclideanSimilarity.deserialize(bytes);
            }
        }
        __EuclideanSimilarity_one_of_decls = new WeakMap();
        _SimilarityMetric._EuclideanSimilarity = _EuclideanSimilarity;
        class _InnerProduct extends pb_1.Message {
            constructor(data) {
                super();
                __InnerProduct_one_of_decls.set(this, []);
                pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __InnerProduct_one_of_decls, "f"));
                if (!Array.isArray(data) && typeof data == "object") { }
            }
            static fromObject(data) {
                const message = new _InnerProduct({});
                return message;
            }
            toObject() {
                const data = {};
                return data;
            }
            serialize(w) {
                const writer = w || new pb_1.BinaryWriter();
                if (!w)
                    return writer.getResultBuffer();
            }
            static deserialize(bytes) {
                const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _InnerProduct();
                while (reader.nextField()) {
                    if (reader.isEndGroup())
                        break;
                    switch (reader.getFieldNumber()) {
                        default: reader.skipField();
                    }
                }
                return message;
            }
            serializeBinary() {
                return this.serialize();
            }
            static deserializeBinary(bytes) {
                return _InnerProduct.deserialize(bytes);
            }
        }
        __InnerProduct_one_of_decls = new WeakMap();
        _SimilarityMetric._InnerProduct = _InnerProduct;
        class _CosineSimilarity extends pb_1.Message {
            constructor(data) {
                super();
                __CosineSimilarity_one_of_decls.set(this, []);
                pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __CosineSimilarity_one_of_decls, "f"));
                if (!Array.isArray(data) && typeof data == "object") { }
            }
            static fromObject(data) {
                const message = new _CosineSimilarity({});
                return message;
            }
            toObject() {
                const data = {};
                return data;
            }
            serialize(w) {
                const writer = w || new pb_1.BinaryWriter();
                if (!w)
                    return writer.getResultBuffer();
            }
            static deserialize(bytes) {
                const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _CosineSimilarity();
                while (reader.nextField()) {
                    if (reader.isEndGroup())
                        break;
                    switch (reader.getFieldNumber()) {
                        default: reader.skipField();
                    }
                }
                return message;
            }
            serializeBinary() {
                return this.serialize();
            }
            static deserializeBinary(bytes) {
                return _CosineSimilarity.deserialize(bytes);
            }
        }
        __CosineSimilarity_one_of_decls = new WeakMap();
        _SimilarityMetric._CosineSimilarity = _CosineSimilarity;
    })(_SimilarityMetric = control_client._SimilarityMetric || (control_client._SimilarityMetric = {}));
    class _CreateIndexRequest extends pb_1.Message {
        constructor(data) {
            super();
            __CreateIndexRequest_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __CreateIndexRequest_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") {
                if ("index_name" in data && data.index_name != undefined) {
                    this.index_name = data.index_name;
                }
                if ("num_dimensions" in data && data.num_dimensions != undefined) {
                    this.num_dimensions = data.num_dimensions;
                }
                if ("similarity_metric" in data && data.similarity_metric != undefined) {
                    this.similarity_metric = data.similarity_metric;
                }
            }
        }
        get index_name() {
            return pb_1.Message.getFieldWithDefault(this, 1, "");
        }
        set index_name(value) {
            pb_1.Message.setField(this, 1, value);
        }
        get num_dimensions() {
            return pb_1.Message.getFieldWithDefault(this, 2, 0);
        }
        set num_dimensions(value) {
            pb_1.Message.setField(this, 2, value);
        }
        get similarity_metric() {
            return pb_1.Message.getWrapperField(this, _SimilarityMetric, 3);
        }
        set similarity_metric(value) {
            pb_1.Message.setWrapperField(this, 3, value);
        }
        get has_similarity_metric() {
            return pb_1.Message.getField(this, 3) != null;
        }
        static fromObject(data) {
            const message = new _CreateIndexRequest({});
            if (data.index_name != null) {
                message.index_name = data.index_name;
            }
            if (data.num_dimensions != null) {
                message.num_dimensions = data.num_dimensions;
            }
            if (data.similarity_metric != null) {
                message.similarity_metric = _SimilarityMetric.fromObject(data.similarity_metric);
            }
            return message;
        }
        toObject() {
            const data = {};
            if (this.index_name != null) {
                data.index_name = this.index_name;
            }
            if (this.num_dimensions != null) {
                data.num_dimensions = this.num_dimensions;
            }
            if (this.similarity_metric != null) {
                data.similarity_metric = this.similarity_metric.toObject();
            }
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (this.index_name.length)
                writer.writeString(1, this.index_name);
            if (this.num_dimensions != 0)
                writer.writeUint64(2, this.num_dimensions);
            if (this.has_similarity_metric)
                writer.writeMessage(3, this.similarity_metric, () => this.similarity_metric.serialize(writer));
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _CreateIndexRequest();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.index_name = reader.readString();
                        break;
                    case 2:
                        message.num_dimensions = reader.readUint64();
                        break;
                    case 3:
                        reader.readMessage(message.similarity_metric, () => message.similarity_metric = _SimilarityMetric.deserialize(reader));
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _CreateIndexRequest.deserialize(bytes);
        }
    }
    __CreateIndexRequest_one_of_decls = new WeakMap();
    control_client._CreateIndexRequest = _CreateIndexRequest;
    class _CreateIndexResponse extends pb_1.Message {
        constructor(data) {
            super();
            __CreateIndexResponse_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __CreateIndexResponse_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") { }
        }
        static fromObject(data) {
            const message = new _CreateIndexResponse({});
            return message;
        }
        toObject() {
            const data = {};
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _CreateIndexResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _CreateIndexResponse.deserialize(bytes);
        }
    }
    __CreateIndexResponse_one_of_decls = new WeakMap();
    control_client._CreateIndexResponse = _CreateIndexResponse;
    class _DeleteIndexRequest extends pb_1.Message {
        constructor(data) {
            super();
            __DeleteIndexRequest_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __DeleteIndexRequest_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") {
                if ("index_name" in data && data.index_name != undefined) {
                    this.index_name = data.index_name;
                }
            }
        }
        get index_name() {
            return pb_1.Message.getFieldWithDefault(this, 1, "");
        }
        set index_name(value) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data) {
            const message = new _DeleteIndexRequest({});
            if (data.index_name != null) {
                message.index_name = data.index_name;
            }
            return message;
        }
        toObject() {
            const data = {};
            if (this.index_name != null) {
                data.index_name = this.index_name;
            }
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (this.index_name.length)
                writer.writeString(1, this.index_name);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _DeleteIndexRequest();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.index_name = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _DeleteIndexRequest.deserialize(bytes);
        }
    }
    __DeleteIndexRequest_one_of_decls = new WeakMap();
    control_client._DeleteIndexRequest = _DeleteIndexRequest;
    class _DeleteIndexResponse extends pb_1.Message {
        constructor(data) {
            super();
            __DeleteIndexResponse_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __DeleteIndexResponse_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") { }
        }
        static fromObject(data) {
            const message = new _DeleteIndexResponse({});
            return message;
        }
        toObject() {
            const data = {};
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _DeleteIndexResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _DeleteIndexResponse.deserialize(bytes);
        }
    }
    __DeleteIndexResponse_one_of_decls = new WeakMap();
    control_client._DeleteIndexResponse = _DeleteIndexResponse;
    class _ListIndexesRequest extends pb_1.Message {
        constructor(data) {
            super();
            __ListIndexesRequest_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __ListIndexesRequest_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") { }
        }
        static fromObject(data) {
            const message = new _ListIndexesRequest({});
            return message;
        }
        toObject() {
            const data = {};
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _ListIndexesRequest();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _ListIndexesRequest.deserialize(bytes);
        }
    }
    __ListIndexesRequest_one_of_decls = new WeakMap();
    control_client._ListIndexesRequest = _ListIndexesRequest;
    class _ListIndexesResponse extends pb_1.Message {
        constructor(data) {
            super();
            __ListIndexesResponse_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [1], __classPrivateFieldGet(this, __ListIndexesResponse_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") {
                if ("indexes" in data && data.indexes != undefined) {
                    this.indexes = data.indexes;
                }
            }
        }
        get indexes() {
            return pb_1.Message.getRepeatedWrapperField(this, _ListIndexesResponse._Index, 1);
        }
        set indexes(value) {
            pb_1.Message.setRepeatedWrapperField(this, 1, value);
        }
        static fromObject(data) {
            const message = new _ListIndexesResponse({});
            if (data.indexes != null) {
                message.indexes = data.indexes.map(item => _ListIndexesResponse._Index.fromObject(item));
            }
            return message;
        }
        toObject() {
            const data = {};
            if (this.indexes != null) {
                data.indexes = this.indexes.map((item) => item.toObject());
            }
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (this.indexes.length)
                writer.writeRepeatedMessage(1, this.indexes, (item) => item.serialize(writer));
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _ListIndexesResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        reader.readMessage(message.indexes, () => pb_1.Message.addToRepeatedWrapperField(message, 1, _ListIndexesResponse._Index.deserialize(reader), _ListIndexesResponse._Index));
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _ListIndexesResponse.deserialize(bytes);
        }
    }
    __ListIndexesResponse_one_of_decls = new WeakMap();
    control_client._ListIndexesResponse = _ListIndexesResponse;
    (function (_ListIndexesResponse) {
        var __Index_one_of_decls;
        class _Index extends pb_1.Message {
            constructor(data) {
                super();
                __Index_one_of_decls.set(this, []);
                pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __Index_one_of_decls, "f"));
                if (!Array.isArray(data) && typeof data == "object") {
                    if ("index_name" in data && data.index_name != undefined) {
                        this.index_name = data.index_name;
                    }
                    if ("num_dimensions" in data && data.num_dimensions != undefined) {
                        this.num_dimensions = data.num_dimensions;
                    }
                    if ("similarity_metric" in data && data.similarity_metric != undefined) {
                        this.similarity_metric = data.similarity_metric;
                    }
                }
            }
            get index_name() {
                return pb_1.Message.getFieldWithDefault(this, 1, "");
            }
            set index_name(value) {
                pb_1.Message.setField(this, 1, value);
            }
            get num_dimensions() {
                return pb_1.Message.getFieldWithDefault(this, 2, 0);
            }
            set num_dimensions(value) {
                pb_1.Message.setField(this, 2, value);
            }
            get similarity_metric() {
                return pb_1.Message.getWrapperField(this, _SimilarityMetric, 3);
            }
            set similarity_metric(value) {
                pb_1.Message.setWrapperField(this, 3, value);
            }
            get has_similarity_metric() {
                return pb_1.Message.getField(this, 3) != null;
            }
            static fromObject(data) {
                const message = new _Index({});
                if (data.index_name != null) {
                    message.index_name = data.index_name;
                }
                if (data.num_dimensions != null) {
                    message.num_dimensions = data.num_dimensions;
                }
                if (data.similarity_metric != null) {
                    message.similarity_metric = _SimilarityMetric.fromObject(data.similarity_metric);
                }
                return message;
            }
            toObject() {
                const data = {};
                if (this.index_name != null) {
                    data.index_name = this.index_name;
                }
                if (this.num_dimensions != null) {
                    data.num_dimensions = this.num_dimensions;
                }
                if (this.similarity_metric != null) {
                    data.similarity_metric = this.similarity_metric.toObject();
                }
                return data;
            }
            serialize(w) {
                const writer = w || new pb_1.BinaryWriter();
                if (this.index_name.length)
                    writer.writeString(1, this.index_name);
                if (this.num_dimensions != 0)
                    writer.writeUint64(2, this.num_dimensions);
                if (this.has_similarity_metric)
                    writer.writeMessage(3, this.similarity_metric, () => this.similarity_metric.serialize(writer));
                if (!w)
                    return writer.getResultBuffer();
            }
            static deserialize(bytes) {
                const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _Index();
                while (reader.nextField()) {
                    if (reader.isEndGroup())
                        break;
                    switch (reader.getFieldNumber()) {
                        case 1:
                            message.index_name = reader.readString();
                            break;
                        case 2:
                            message.num_dimensions = reader.readUint64();
                            break;
                        case 3:
                            reader.readMessage(message.similarity_metric, () => message.similarity_metric = _SimilarityMetric.deserialize(reader));
                            break;
                        default: reader.skipField();
                    }
                }
                return message;
            }
            serializeBinary() {
                return this.serialize();
            }
            static deserializeBinary(bytes) {
                return _Index.deserialize(bytes);
            }
        }
        __Index_one_of_decls = new WeakMap();
        _ListIndexesResponse._Index = _Index;
    })(_ListIndexesResponse = control_client._ListIndexesResponse || (control_client._ListIndexesResponse = {}));
    class _DeleteCacheRequest extends pb_1.Message {
        constructor(data) {
            super();
            __DeleteCacheRequest_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __DeleteCacheRequest_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") {
                if ("cache_name" in data && data.cache_name != undefined) {
                    this.cache_name = data.cache_name;
                }
            }
        }
        get cache_name() {
            return pb_1.Message.getFieldWithDefault(this, 1, "");
        }
        set cache_name(value) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data) {
            const message = new _DeleteCacheRequest({});
            if (data.cache_name != null) {
                message.cache_name = data.cache_name;
            }
            return message;
        }
        toObject() {
            const data = {};
            if (this.cache_name != null) {
                data.cache_name = this.cache_name;
            }
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (this.cache_name.length)
                writer.writeString(1, this.cache_name);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _DeleteCacheRequest();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.cache_name = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _DeleteCacheRequest.deserialize(bytes);
        }
    }
    __DeleteCacheRequest_one_of_decls = new WeakMap();
    control_client._DeleteCacheRequest = _DeleteCacheRequest;
    class _DeleteCacheResponse extends pb_1.Message {
        constructor(data) {
            super();
            __DeleteCacheResponse_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __DeleteCacheResponse_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") { }
        }
        static fromObject(data) {
            const message = new _DeleteCacheResponse({});
            return message;
        }
        toObject() {
            const data = {};
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _DeleteCacheResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _DeleteCacheResponse.deserialize(bytes);
        }
    }
    __DeleteCacheResponse_one_of_decls = new WeakMap();
    control_client._DeleteCacheResponse = _DeleteCacheResponse;
    class _CreateCacheRequest extends pb_1.Message {
        constructor(data) {
            super();
            __CreateCacheRequest_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __CreateCacheRequest_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") {
                if ("cache_name" in data && data.cache_name != undefined) {
                    this.cache_name = data.cache_name;
                }
            }
        }
        get cache_name() {
            return pb_1.Message.getFieldWithDefault(this, 1, "");
        }
        set cache_name(value) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data) {
            const message = new _CreateCacheRequest({});
            if (data.cache_name != null) {
                message.cache_name = data.cache_name;
            }
            return message;
        }
        toObject() {
            const data = {};
            if (this.cache_name != null) {
                data.cache_name = this.cache_name;
            }
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (this.cache_name.length)
                writer.writeString(1, this.cache_name);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _CreateCacheRequest();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.cache_name = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _CreateCacheRequest.deserialize(bytes);
        }
    }
    __CreateCacheRequest_one_of_decls = new WeakMap();
    control_client._CreateCacheRequest = _CreateCacheRequest;
    class _CreateCacheResponse extends pb_1.Message {
        constructor(data) {
            super();
            __CreateCacheResponse_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __CreateCacheResponse_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") { }
        }
        static fromObject(data) {
            const message = new _CreateCacheResponse({});
            return message;
        }
        toObject() {
            const data = {};
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _CreateCacheResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _CreateCacheResponse.deserialize(bytes);
        }
    }
    __CreateCacheResponse_one_of_decls = new WeakMap();
    control_client._CreateCacheResponse = _CreateCacheResponse;
    class _ListCachesRequest extends pb_1.Message {
        constructor(data) {
            super();
            __ListCachesRequest_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __ListCachesRequest_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") {
                if ("next_token" in data && data.next_token != undefined) {
                    this.next_token = data.next_token;
                }
            }
        }
        get next_token() {
            return pb_1.Message.getFieldWithDefault(this, 1, "");
        }
        set next_token(value) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data) {
            const message = new _ListCachesRequest({});
            if (data.next_token != null) {
                message.next_token = data.next_token;
            }
            return message;
        }
        toObject() {
            const data = {};
            if (this.next_token != null) {
                data.next_token = this.next_token;
            }
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (this.next_token.length)
                writer.writeString(1, this.next_token);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _ListCachesRequest();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.next_token = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _ListCachesRequest.deserialize(bytes);
        }
    }
    __ListCachesRequest_one_of_decls = new WeakMap();
    control_client._ListCachesRequest = _ListCachesRequest;
    class _CacheLimits extends pb_1.Message {
        constructor(data) {
            super();
            __CacheLimits_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __CacheLimits_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") {
                if ("max_traffic_rate" in data && data.max_traffic_rate != undefined) {
                    this.max_traffic_rate = data.max_traffic_rate;
                }
                if ("max_throughput_kbps" in data && data.max_throughput_kbps != undefined) {
                    this.max_throughput_kbps = data.max_throughput_kbps;
                }
                if ("max_item_size_kb" in data && data.max_item_size_kb != undefined) {
                    this.max_item_size_kb = data.max_item_size_kb;
                }
                if ("max_ttl_seconds" in data && data.max_ttl_seconds != undefined) {
                    this.max_ttl_seconds = data.max_ttl_seconds;
                }
            }
        }
        get max_traffic_rate() {
            return pb_1.Message.getFieldWithDefault(this, 1, 0);
        }
        set max_traffic_rate(value) {
            pb_1.Message.setField(this, 1, value);
        }
        get max_throughput_kbps() {
            return pb_1.Message.getFieldWithDefault(this, 2, 0);
        }
        set max_throughput_kbps(value) {
            pb_1.Message.setField(this, 2, value);
        }
        get max_item_size_kb() {
            return pb_1.Message.getFieldWithDefault(this, 3, 0);
        }
        set max_item_size_kb(value) {
            pb_1.Message.setField(this, 3, value);
        }
        get max_ttl_seconds() {
            return pb_1.Message.getFieldWithDefault(this, 4, 0);
        }
        set max_ttl_seconds(value) {
            pb_1.Message.setField(this, 4, value);
        }
        static fromObject(data) {
            const message = new _CacheLimits({});
            if (data.max_traffic_rate != null) {
                message.max_traffic_rate = data.max_traffic_rate;
            }
            if (data.max_throughput_kbps != null) {
                message.max_throughput_kbps = data.max_throughput_kbps;
            }
            if (data.max_item_size_kb != null) {
                message.max_item_size_kb = data.max_item_size_kb;
            }
            if (data.max_ttl_seconds != null) {
                message.max_ttl_seconds = data.max_ttl_seconds;
            }
            return message;
        }
        toObject() {
            const data = {};
            if (this.max_traffic_rate != null) {
                data.max_traffic_rate = this.max_traffic_rate;
            }
            if (this.max_throughput_kbps != null) {
                data.max_throughput_kbps = this.max_throughput_kbps;
            }
            if (this.max_item_size_kb != null) {
                data.max_item_size_kb = this.max_item_size_kb;
            }
            if (this.max_ttl_seconds != null) {
                data.max_ttl_seconds = this.max_ttl_seconds;
            }
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (this.max_traffic_rate != 0)
                writer.writeUint32(1, this.max_traffic_rate);
            if (this.max_throughput_kbps != 0)
                writer.writeUint32(2, this.max_throughput_kbps);
            if (this.max_item_size_kb != 0)
                writer.writeUint32(3, this.max_item_size_kb);
            if (this.max_ttl_seconds != 0)
                writer.writeUint64(4, this.max_ttl_seconds);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _CacheLimits();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.max_traffic_rate = reader.readUint32();
                        break;
                    case 2:
                        message.max_throughput_kbps = reader.readUint32();
                        break;
                    case 3:
                        message.max_item_size_kb = reader.readUint32();
                        break;
                    case 4:
                        message.max_ttl_seconds = reader.readUint64();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _CacheLimits.deserialize(bytes);
        }
    }
    __CacheLimits_one_of_decls = new WeakMap();
    control_client._CacheLimits = _CacheLimits;
    class _TopicLimits extends pb_1.Message {
        constructor(data) {
            super();
            __TopicLimits_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __TopicLimits_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") {
                if ("max_publish_rate" in data && data.max_publish_rate != undefined) {
                    this.max_publish_rate = data.max_publish_rate;
                }
                if ("max_subscription_count" in data && data.max_subscription_count != undefined) {
                    this.max_subscription_count = data.max_subscription_count;
                }
                if ("max_publish_message_size_kb" in data && data.max_publish_message_size_kb != undefined) {
                    this.max_publish_message_size_kb = data.max_publish_message_size_kb;
                }
            }
        }
        get max_publish_rate() {
            return pb_1.Message.getFieldWithDefault(this, 1, 0);
        }
        set max_publish_rate(value) {
            pb_1.Message.setField(this, 1, value);
        }
        get max_subscription_count() {
            return pb_1.Message.getFieldWithDefault(this, 2, 0);
        }
        set max_subscription_count(value) {
            pb_1.Message.setField(this, 2, value);
        }
        get max_publish_message_size_kb() {
            return pb_1.Message.getFieldWithDefault(this, 3, 0);
        }
        set max_publish_message_size_kb(value) {
            pb_1.Message.setField(this, 3, value);
        }
        static fromObject(data) {
            const message = new _TopicLimits({});
            if (data.max_publish_rate != null) {
                message.max_publish_rate = data.max_publish_rate;
            }
            if (data.max_subscription_count != null) {
                message.max_subscription_count = data.max_subscription_count;
            }
            if (data.max_publish_message_size_kb != null) {
                message.max_publish_message_size_kb = data.max_publish_message_size_kb;
            }
            return message;
        }
        toObject() {
            const data = {};
            if (this.max_publish_rate != null) {
                data.max_publish_rate = this.max_publish_rate;
            }
            if (this.max_subscription_count != null) {
                data.max_subscription_count = this.max_subscription_count;
            }
            if (this.max_publish_message_size_kb != null) {
                data.max_publish_message_size_kb = this.max_publish_message_size_kb;
            }
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (this.max_publish_rate != 0)
                writer.writeUint32(1, this.max_publish_rate);
            if (this.max_subscription_count != 0)
                writer.writeUint32(2, this.max_subscription_count);
            if (this.max_publish_message_size_kb != 0)
                writer.writeUint32(3, this.max_publish_message_size_kb);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _TopicLimits();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.max_publish_rate = reader.readUint32();
                        break;
                    case 2:
                        message.max_subscription_count = reader.readUint32();
                        break;
                    case 3:
                        message.max_publish_message_size_kb = reader.readUint32();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _TopicLimits.deserialize(bytes);
        }
    }
    __TopicLimits_one_of_decls = new WeakMap();
    control_client._TopicLimits = _TopicLimits;
    class _Cache extends pb_1.Message {
        constructor(data) {
            super();
            __Cache_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __Cache_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") {
                if ("cache_name" in data && data.cache_name != undefined) {
                    this.cache_name = data.cache_name;
                }
                if ("cache_limits" in data && data.cache_limits != undefined) {
                    this.cache_limits = data.cache_limits;
                }
                if ("topic_limits" in data && data.topic_limits != undefined) {
                    this.topic_limits = data.topic_limits;
                }
            }
        }
        get cache_name() {
            return pb_1.Message.getFieldWithDefault(this, 1, "");
        }
        set cache_name(value) {
            pb_1.Message.setField(this, 1, value);
        }
        get cache_limits() {
            return pb_1.Message.getWrapperField(this, _CacheLimits, 2);
        }
        set cache_limits(value) {
            pb_1.Message.setWrapperField(this, 2, value);
        }
        get has_cache_limits() {
            return pb_1.Message.getField(this, 2) != null;
        }
        get topic_limits() {
            return pb_1.Message.getWrapperField(this, _TopicLimits, 3);
        }
        set topic_limits(value) {
            pb_1.Message.setWrapperField(this, 3, value);
        }
        get has_topic_limits() {
            return pb_1.Message.getField(this, 3) != null;
        }
        static fromObject(data) {
            const message = new _Cache({});
            if (data.cache_name != null) {
                message.cache_name = data.cache_name;
            }
            if (data.cache_limits != null) {
                message.cache_limits = _CacheLimits.fromObject(data.cache_limits);
            }
            if (data.topic_limits != null) {
                message.topic_limits = _TopicLimits.fromObject(data.topic_limits);
            }
            return message;
        }
        toObject() {
            const data = {};
            if (this.cache_name != null) {
                data.cache_name = this.cache_name;
            }
            if (this.cache_limits != null) {
                data.cache_limits = this.cache_limits.toObject();
            }
            if (this.topic_limits != null) {
                data.topic_limits = this.topic_limits.toObject();
            }
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (this.cache_name.length)
                writer.writeString(1, this.cache_name);
            if (this.has_cache_limits)
                writer.writeMessage(2, this.cache_limits, () => this.cache_limits.serialize(writer));
            if (this.has_topic_limits)
                writer.writeMessage(3, this.topic_limits, () => this.topic_limits.serialize(writer));
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _Cache();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.cache_name = reader.readString();
                        break;
                    case 2:
                        reader.readMessage(message.cache_limits, () => message.cache_limits = _CacheLimits.deserialize(reader));
                        break;
                    case 3:
                        reader.readMessage(message.topic_limits, () => message.topic_limits = _TopicLimits.deserialize(reader));
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _Cache.deserialize(bytes);
        }
    }
    __Cache_one_of_decls = new WeakMap();
    control_client._Cache = _Cache;
    class _ListCachesResponse extends pb_1.Message {
        constructor(data) {
            super();
            __ListCachesResponse_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [1], __classPrivateFieldGet(this, __ListCachesResponse_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") {
                if ("cache" in data && data.cache != undefined) {
                    this.cache = data.cache;
                }
                if ("next_token" in data && data.next_token != undefined) {
                    this.next_token = data.next_token;
                }
            }
        }
        get cache() {
            return pb_1.Message.getRepeatedWrapperField(this, _Cache, 1);
        }
        set cache(value) {
            pb_1.Message.setRepeatedWrapperField(this, 1, value);
        }
        get next_token() {
            return pb_1.Message.getFieldWithDefault(this, 2, "");
        }
        set next_token(value) {
            pb_1.Message.setField(this, 2, value);
        }
        static fromObject(data) {
            const message = new _ListCachesResponse({});
            if (data.cache != null) {
                message.cache = data.cache.map(item => _Cache.fromObject(item));
            }
            if (data.next_token != null) {
                message.next_token = data.next_token;
            }
            return message;
        }
        toObject() {
            const data = {};
            if (this.cache != null) {
                data.cache = this.cache.map((item) => item.toObject());
            }
            if (this.next_token != null) {
                data.next_token = this.next_token;
            }
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (this.cache.length)
                writer.writeRepeatedMessage(1, this.cache, (item) => item.serialize(writer));
            if (this.next_token.length)
                writer.writeString(2, this.next_token);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _ListCachesResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        reader.readMessage(message.cache, () => pb_1.Message.addToRepeatedWrapperField(message, 1, _Cache.deserialize(reader), _Cache));
                        break;
                    case 2:
                        message.next_token = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _ListCachesResponse.deserialize(bytes);
        }
    }
    __ListCachesResponse_one_of_decls = new WeakMap();
    control_client._ListCachesResponse = _ListCachesResponse;
    class _CreateSigningKeyRequest extends pb_1.Message {
        constructor(data) {
            super();
            __CreateSigningKeyRequest_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __CreateSigningKeyRequest_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") {
                if ("ttl_minutes" in data && data.ttl_minutes != undefined) {
                    this.ttl_minutes = data.ttl_minutes;
                }
            }
        }
        get ttl_minutes() {
            return pb_1.Message.getFieldWithDefault(this, 1, 0);
        }
        set ttl_minutes(value) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data) {
            const message = new _CreateSigningKeyRequest({});
            if (data.ttl_minutes != null) {
                message.ttl_minutes = data.ttl_minutes;
            }
            return message;
        }
        toObject() {
            const data = {};
            if (this.ttl_minutes != null) {
                data.ttl_minutes = this.ttl_minutes;
            }
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (this.ttl_minutes != 0)
                writer.writeUint32(1, this.ttl_minutes);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _CreateSigningKeyRequest();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.ttl_minutes = reader.readUint32();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _CreateSigningKeyRequest.deserialize(bytes);
        }
    }
    __CreateSigningKeyRequest_one_of_decls = new WeakMap();
    control_client._CreateSigningKeyRequest = _CreateSigningKeyRequest;
    class _CreateSigningKeyResponse extends pb_1.Message {
        constructor(data) {
            super();
            __CreateSigningKeyResponse_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __CreateSigningKeyResponse_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") {
                if ("key" in data && data.key != undefined) {
                    this.key = data.key;
                }
                if ("expires_at" in data && data.expires_at != undefined) {
                    this.expires_at = data.expires_at;
                }
            }
        }
        get key() {
            return pb_1.Message.getFieldWithDefault(this, 1, "");
        }
        set key(value) {
            pb_1.Message.setField(this, 1, value);
        }
        get expires_at() {
            return pb_1.Message.getFieldWithDefault(this, 2, 0);
        }
        set expires_at(value) {
            pb_1.Message.setField(this, 2, value);
        }
        static fromObject(data) {
            const message = new _CreateSigningKeyResponse({});
            if (data.key != null) {
                message.key = data.key;
            }
            if (data.expires_at != null) {
                message.expires_at = data.expires_at;
            }
            return message;
        }
        toObject() {
            const data = {};
            if (this.key != null) {
                data.key = this.key;
            }
            if (this.expires_at != null) {
                data.expires_at = this.expires_at;
            }
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (this.key.length)
                writer.writeString(1, this.key);
            if (this.expires_at != 0)
                writer.writeUint64(2, this.expires_at);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _CreateSigningKeyResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.key = reader.readString();
                        break;
                    case 2:
                        message.expires_at = reader.readUint64();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _CreateSigningKeyResponse.deserialize(bytes);
        }
    }
    __CreateSigningKeyResponse_one_of_decls = new WeakMap();
    control_client._CreateSigningKeyResponse = _CreateSigningKeyResponse;
    class _RevokeSigningKeyRequest extends pb_1.Message {
        constructor(data) {
            super();
            __RevokeSigningKeyRequest_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __RevokeSigningKeyRequest_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") {
                if ("key_id" in data && data.key_id != undefined) {
                    this.key_id = data.key_id;
                }
            }
        }
        get key_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "");
        }
        set key_id(value) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data) {
            const message = new _RevokeSigningKeyRequest({});
            if (data.key_id != null) {
                message.key_id = data.key_id;
            }
            return message;
        }
        toObject() {
            const data = {};
            if (this.key_id != null) {
                data.key_id = this.key_id;
            }
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (this.key_id.length)
                writer.writeString(1, this.key_id);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _RevokeSigningKeyRequest();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.key_id = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _RevokeSigningKeyRequest.deserialize(bytes);
        }
    }
    __RevokeSigningKeyRequest_one_of_decls = new WeakMap();
    control_client._RevokeSigningKeyRequest = _RevokeSigningKeyRequest;
    class _RevokeSigningKeyResponse extends pb_1.Message {
        constructor(data) {
            super();
            __RevokeSigningKeyResponse_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __RevokeSigningKeyResponse_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") { }
        }
        static fromObject(data) {
            const message = new _RevokeSigningKeyResponse({});
            return message;
        }
        toObject() {
            const data = {};
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _RevokeSigningKeyResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _RevokeSigningKeyResponse.deserialize(bytes);
        }
    }
    __RevokeSigningKeyResponse_one_of_decls = new WeakMap();
    control_client._RevokeSigningKeyResponse = _RevokeSigningKeyResponse;
    class _SigningKey extends pb_1.Message {
        constructor(data) {
            super();
            __SigningKey_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __SigningKey_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") {
                if ("key_id" in data && data.key_id != undefined) {
                    this.key_id = data.key_id;
                }
                if ("expires_at" in data && data.expires_at != undefined) {
                    this.expires_at = data.expires_at;
                }
            }
        }
        get key_id() {
            return pb_1.Message.getFieldWithDefault(this, 1, "");
        }
        set key_id(value) {
            pb_1.Message.setField(this, 1, value);
        }
        get expires_at() {
            return pb_1.Message.getFieldWithDefault(this, 2, 0);
        }
        set expires_at(value) {
            pb_1.Message.setField(this, 2, value);
        }
        static fromObject(data) {
            const message = new _SigningKey({});
            if (data.key_id != null) {
                message.key_id = data.key_id;
            }
            if (data.expires_at != null) {
                message.expires_at = data.expires_at;
            }
            return message;
        }
        toObject() {
            const data = {};
            if (this.key_id != null) {
                data.key_id = this.key_id;
            }
            if (this.expires_at != null) {
                data.expires_at = this.expires_at;
            }
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (this.key_id.length)
                writer.writeString(1, this.key_id);
            if (this.expires_at != 0)
                writer.writeUint64(2, this.expires_at);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _SigningKey();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.key_id = reader.readString();
                        break;
                    case 2:
                        message.expires_at = reader.readUint64();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _SigningKey.deserialize(bytes);
        }
    }
    __SigningKey_one_of_decls = new WeakMap();
    control_client._SigningKey = _SigningKey;
    class _ListSigningKeysRequest extends pb_1.Message {
        constructor(data) {
            super();
            __ListSigningKeysRequest_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __ListSigningKeysRequest_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") {
                if ("next_token" in data && data.next_token != undefined) {
                    this.next_token = data.next_token;
                }
            }
        }
        get next_token() {
            return pb_1.Message.getFieldWithDefault(this, 1, "");
        }
        set next_token(value) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data) {
            const message = new _ListSigningKeysRequest({});
            if (data.next_token != null) {
                message.next_token = data.next_token;
            }
            return message;
        }
        toObject() {
            const data = {};
            if (this.next_token != null) {
                data.next_token = this.next_token;
            }
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (this.next_token.length)
                writer.writeString(1, this.next_token);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _ListSigningKeysRequest();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.next_token = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _ListSigningKeysRequest.deserialize(bytes);
        }
    }
    __ListSigningKeysRequest_one_of_decls = new WeakMap();
    control_client._ListSigningKeysRequest = _ListSigningKeysRequest;
    class _ListSigningKeysResponse extends pb_1.Message {
        constructor(data) {
            super();
            __ListSigningKeysResponse_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [1], __classPrivateFieldGet(this, __ListSigningKeysResponse_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") {
                if ("signing_key" in data && data.signing_key != undefined) {
                    this.signing_key = data.signing_key;
                }
                if ("next_token" in data && data.next_token != undefined) {
                    this.next_token = data.next_token;
                }
            }
        }
        get signing_key() {
            return pb_1.Message.getRepeatedWrapperField(this, _SigningKey, 1);
        }
        set signing_key(value) {
            pb_1.Message.setRepeatedWrapperField(this, 1, value);
        }
        get next_token() {
            return pb_1.Message.getFieldWithDefault(this, 2, "");
        }
        set next_token(value) {
            pb_1.Message.setField(this, 2, value);
        }
        static fromObject(data) {
            const message = new _ListSigningKeysResponse({});
            if (data.signing_key != null) {
                message.signing_key = data.signing_key.map(item => _SigningKey.fromObject(item));
            }
            if (data.next_token != null) {
                message.next_token = data.next_token;
            }
            return message;
        }
        toObject() {
            const data = {};
            if (this.signing_key != null) {
                data.signing_key = this.signing_key.map((item) => item.toObject());
            }
            if (this.next_token != null) {
                data.next_token = this.next_token;
            }
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (this.signing_key.length)
                writer.writeRepeatedMessage(1, this.signing_key, (item) => item.serialize(writer));
            if (this.next_token.length)
                writer.writeString(2, this.next_token);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _ListSigningKeysResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        reader.readMessage(message.signing_key, () => pb_1.Message.addToRepeatedWrapperField(message, 1, _SigningKey.deserialize(reader), _SigningKey));
                        break;
                    case 2:
                        message.next_token = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _ListSigningKeysResponse.deserialize(bytes);
        }
    }
    __ListSigningKeysResponse_one_of_decls = new WeakMap();
    control_client._ListSigningKeysResponse = _ListSigningKeysResponse;
    class _FlushCacheRequest extends pb_1.Message {
        constructor(data) {
            super();
            __FlushCacheRequest_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __FlushCacheRequest_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") {
                if ("cache_name" in data && data.cache_name != undefined) {
                    this.cache_name = data.cache_name;
                }
            }
        }
        get cache_name() {
            return pb_1.Message.getFieldWithDefault(this, 1, "");
        }
        set cache_name(value) {
            pb_1.Message.setField(this, 1, value);
        }
        static fromObject(data) {
            const message = new _FlushCacheRequest({});
            if (data.cache_name != null) {
                message.cache_name = data.cache_name;
            }
            return message;
        }
        toObject() {
            const data = {};
            if (this.cache_name != null) {
                data.cache_name = this.cache_name;
            }
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (this.cache_name.length)
                writer.writeString(1, this.cache_name);
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _FlushCacheRequest();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    case 1:
                        message.cache_name = reader.readString();
                        break;
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _FlushCacheRequest.deserialize(bytes);
        }
    }
    __FlushCacheRequest_one_of_decls = new WeakMap();
    control_client._FlushCacheRequest = _FlushCacheRequest;
    class _FlushCacheResponse extends pb_1.Message {
        constructor(data) {
            super();
            __FlushCacheResponse_one_of_decls.set(this, []);
            pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], __classPrivateFieldGet(this, __FlushCacheResponse_one_of_decls, "f"));
            if (!Array.isArray(data) && typeof data == "object") { }
        }
        static fromObject(data) {
            const message = new _FlushCacheResponse({});
            return message;
        }
        toObject() {
            const data = {};
            return data;
        }
        serialize(w) {
            const writer = w || new pb_1.BinaryWriter();
            if (!w)
                return writer.getResultBuffer();
        }
        static deserialize(bytes) {
            const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new _FlushCacheResponse();
            while (reader.nextField()) {
                if (reader.isEndGroup())
                    break;
                switch (reader.getFieldNumber()) {
                    default: reader.skipField();
                }
            }
            return message;
        }
        serializeBinary() {
            return this.serialize();
        }
        static deserializeBinary(bytes) {
            return _FlushCacheResponse.deserialize(bytes);
        }
    }
    __FlushCacheResponse_one_of_decls = new WeakMap();
    control_client._FlushCacheResponse = _FlushCacheResponse;
    class UnimplementedScsControlService {
    }
    UnimplementedScsControlService.definition = {
        CreateCache: {
            path: "/control_client.ScsControl/CreateCache",
            requestStream: false,
            responseStream: false,
            requestSerialize: (message) => Buffer.from(message.serialize()),
            requestDeserialize: (bytes) => _CreateCacheRequest.deserialize(new Uint8Array(bytes)),
            responseSerialize: (message) => Buffer.from(message.serialize()),
            responseDeserialize: (bytes) => _CreateCacheResponse.deserialize(new Uint8Array(bytes))
        },
        DeleteCache: {
            path: "/control_client.ScsControl/DeleteCache",
            requestStream: false,
            responseStream: false,
            requestSerialize: (message) => Buffer.from(message.serialize()),
            requestDeserialize: (bytes) => _DeleteCacheRequest.deserialize(new Uint8Array(bytes)),
            responseSerialize: (message) => Buffer.from(message.serialize()),
            responseDeserialize: (bytes) => _DeleteCacheResponse.deserialize(new Uint8Array(bytes))
        },
        ListCaches: {
            path: "/control_client.ScsControl/ListCaches",
            requestStream: false,
            responseStream: false,
            requestSerialize: (message) => Buffer.from(message.serialize()),
            requestDeserialize: (bytes) => _ListCachesRequest.deserialize(new Uint8Array(bytes)),
            responseSerialize: (message) => Buffer.from(message.serialize()),
            responseDeserialize: (bytes) => _ListCachesResponse.deserialize(new Uint8Array(bytes))
        },
        FlushCache: {
            path: "/control_client.ScsControl/FlushCache",
            requestStream: false,
            responseStream: false,
            requestSerialize: (message) => Buffer.from(message.serialize()),
            requestDeserialize: (bytes) => _FlushCacheRequest.deserialize(new Uint8Array(bytes)),
            responseSerialize: (message) => Buffer.from(message.serialize()),
            responseDeserialize: (bytes) => _FlushCacheResponse.deserialize(new Uint8Array(bytes))
        },
        CreateSigningKey: {
            path: "/control_client.ScsControl/CreateSigningKey",
            requestStream: false,
            responseStream: false,
            requestSerialize: (message) => Buffer.from(message.serialize()),
            requestDeserialize: (bytes) => _CreateSigningKeyRequest.deserialize(new Uint8Array(bytes)),
            responseSerialize: (message) => Buffer.from(message.serialize()),
            responseDeserialize: (bytes) => _CreateSigningKeyResponse.deserialize(new Uint8Array(bytes))
        },
        RevokeSigningKey: {
            path: "/control_client.ScsControl/RevokeSigningKey",
            requestStream: false,
            responseStream: false,
            requestSerialize: (message) => Buffer.from(message.serialize()),
            requestDeserialize: (bytes) => _RevokeSigningKeyRequest.deserialize(new Uint8Array(bytes)),
            responseSerialize: (message) => Buffer.from(message.serialize()),
            responseDeserialize: (bytes) => _RevokeSigningKeyResponse.deserialize(new Uint8Array(bytes))
        },
        ListSigningKeys: {
            path: "/control_client.ScsControl/ListSigningKeys",
            requestStream: false,
            responseStream: false,
            requestSerialize: (message) => Buffer.from(message.serialize()),
            requestDeserialize: (bytes) => _ListSigningKeysRequest.deserialize(new Uint8Array(bytes)),
            responseSerialize: (message) => Buffer.from(message.serialize()),
            responseDeserialize: (bytes) => _ListSigningKeysResponse.deserialize(new Uint8Array(bytes))
        },
        CreateIndex: {
            path: "/control_client.ScsControl/CreateIndex",
            requestStream: false,
            responseStream: false,
            requestSerialize: (message) => Buffer.from(message.serialize()),
            requestDeserialize: (bytes) => _CreateIndexRequest.deserialize(new Uint8Array(bytes)),
            responseSerialize: (message) => Buffer.from(message.serialize()),
            responseDeserialize: (bytes) => _CreateIndexResponse.deserialize(new Uint8Array(bytes))
        },
        DeleteIndex: {
            path: "/control_client.ScsControl/DeleteIndex",
            requestStream: false,
            responseStream: false,
            requestSerialize: (message) => Buffer.from(message.serialize()),
            requestDeserialize: (bytes) => _DeleteIndexRequest.deserialize(new Uint8Array(bytes)),
            responseSerialize: (message) => Buffer.from(message.serialize()),
            responseDeserialize: (bytes) => _DeleteIndexResponse.deserialize(new Uint8Array(bytes))
        },
        ListIndexes: {
            path: "/control_client.ScsControl/ListIndexes",
            requestStream: false,
            responseStream: false,
            requestSerialize: (message) => Buffer.from(message.serialize()),
            requestDeserialize: (bytes) => _ListIndexesRequest.deserialize(new Uint8Array(bytes)),
            responseSerialize: (message) => Buffer.from(message.serialize()),
            responseDeserialize: (bytes) => _ListIndexesResponse.deserialize(new Uint8Array(bytes))
        }
    };
    control_client.UnimplementedScsControlService = UnimplementedScsControlService;
    class ScsControlClient extends grpc_1.makeGenericClientConstructor(UnimplementedScsControlService.definition, "ScsControl", {}) {
        constructor(address, credentials, options) {
            super(address, credentials, options);
            this.CreateCache = (message, metadata, options, callback) => {
                return super.CreateCache(message, metadata, options, callback);
            };
            this.DeleteCache = (message, metadata, options, callback) => {
                return super.DeleteCache(message, metadata, options, callback);
            };
            this.ListCaches = (message, metadata, options, callback) => {
                return super.ListCaches(message, metadata, options, callback);
            };
            this.FlushCache = (message, metadata, options, callback) => {
                return super.FlushCache(message, metadata, options, callback);
            };
            this.CreateSigningKey = (message, metadata, options, callback) => {
                return super.CreateSigningKey(message, metadata, options, callback);
            };
            this.RevokeSigningKey = (message, metadata, options, callback) => {
                return super.RevokeSigningKey(message, metadata, options, callback);
            };
            this.ListSigningKeys = (message, metadata, options, callback) => {
                return super.ListSigningKeys(message, metadata, options, callback);
            };
            this.CreateIndex = (message, metadata, options, callback) => {
                return super.CreateIndex(message, metadata, options, callback);
            };
            this.DeleteIndex = (message, metadata, options, callback) => {
                return super.DeleteIndex(message, metadata, options, callback);
            };
            this.ListIndexes = (message, metadata, options, callback) => {
                return super.ListIndexes(message, metadata, options, callback);
            };
        }
    }
    control_client.ScsControlClient = ScsControlClient;
})(control_client = exports.control_client || (exports.control_client = {}));
