// @generated by protobuf-ts 2.9.6 // @generated from protobuf file "stockQuery.proto" (package "api", syntax proto3) // tslint:disable import { FindKPIDataResult } from "./clickhouse"; import { FindKPIDataQuery } from "./clickhouse"; import { CountLinesResult } from "./shared"; import { CountLinesQuery } from "./shared"; import { ExtractKPIResult } from "./clickhouse"; import { ExtractKPIQuery } from "./clickhouse"; import { GetKPIDataForUserQuery } from "./clickhouse"; import { GetKPIDataResult } from "./clickhouse"; import { GetKPIDataQuery } from "./clickhouse"; import { ElementByMatchResult } from "./shared"; import { ElementByMatchQuery } from "./shared"; import { ServiceType } from "@protobuf-ts/runtime-rpc"; import type { BinaryWriteOptions } from "@protobuf-ts/runtime"; import type { IBinaryWriter } from "@protobuf-ts/runtime"; import { WireType } from "@protobuf-ts/runtime"; import type { BinaryReadOptions } from "@protobuf-ts/runtime"; import type { IBinaryReader } from "@protobuf-ts/runtime"; import { UnknownFieldHandler } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; import { MessageType } from "@protobuf-ts/runtime"; import { MatchFieldResult } from "./shared"; import { MatchField } from "./shared"; import { BlockFilter } from "./shared"; import { Stock } from "./stock"; import { ResultHeader } from "./shared"; import { EntityID } from "./shared"; import { QueryProjectHeader } from "./shared"; // // Query-server services /** * @generated from protobuf message api.StockByIdQuery */ export interface StockByIdQuery { /** * @generated from protobuf field: api.QueryProjectHeader Header = 1 [json_name = "Header"]; */ header?: QueryProjectHeader; /** * @generated from protobuf field: repeated api.EntityID IDs = 2 [json_name = "IDs"]; */ iDs: EntityID[]; } /** * @generated from protobuf message api.StockByIdResult */ export interface StockByIdResult { /** * @generated from protobuf field: api.ResultHeader Header = 1 [json_name = "Header"]; */ header?: ResultHeader; /** * @generated from protobuf field: repeated api.Stock Objects = 2 [json_name = "Objects"]; */ objects: Stock[]; } /** * @generated from protobuf message api.StockByFilterQuery */ export interface StockByFilterQuery { /** * @generated from protobuf field: api.QueryProjectHeader Header = 1 [json_name = "Header"]; */ header?: QueryProjectHeader; /** * Number of maximum result * * @generated from protobuf field: string limitFilter = 4; */ limitFilter: string; /** * @generated from protobuf field: string queryContext = 5; */ queryContext: string; /** * list of blockFilters structure for Find query, each element (BlockFilter) in the list is an "OR" part of the query, if not empty, simpleFilters (deprecated) & rangeFilters (deprecated) will be ignored * * @generated from protobuf field: repeated api.BlockFilter BlockFilters = 7 [json_name = "BlockFilters"]; */ blockFilters: BlockFilter[]; } /** * @generated from protobuf message api.StockByFilterResult */ export interface StockByFilterResult { /** * @generated from protobuf field: api.ResultHeader Header = 1 [json_name = "Header"]; */ header?: ResultHeader; /** * @generated from protobuf field: repeated api.Stock Objects = 2 [json_name = "Objects"]; */ objects: Stock[]; /** * @generated from protobuf field: string queryContext = 3; */ queryContext: string; } /** * @generated from protobuf message api.StockByMatchQuery */ export interface StockByMatchQuery { /** * @generated from protobuf field: api.QueryProjectHeader Header = 1 [json_name = "Header"]; */ header?: QueryProjectHeader; /** * list of blockFilters structure for Find query, each element (BlockFilter) in the list is an "OR" part of the query, if not empty, simpleFilters (deprecated) & rangeFilters (deprecated) will be ignored * * @generated from protobuf field: repeated api.BlockFilter BlockFilters = 5 [json_name = "BlockFilters"]; */ blockFilters: BlockFilter[]; /** * MatchField list structure, for FindMatching query * * @generated from protobuf field: repeated api.MatchField MatchFields = 6 [json_name = "MatchFields"]; */ matchFields: MatchField[]; } /** * @generated from protobuf message api.StockByMatchResult */ export interface StockByMatchResult { /** * @generated from protobuf field: repeated api.MatchFieldResult MatchResults = 2 [json_name = "MatchResults"]; */ matchResults: MatchFieldResult[]; } // @generated message type with reflection information, may provide speed optimized methods class StockByIdQuery$Type extends MessageType { constructor() { super("api.StockByIdQuery", [ { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => QueryProjectHeader, options: { "validate.rules": { message: { required: true } } } }, { no: 2, name: "IDs", kind: "message", jsonName: "IDs", repeat: 1 /*RepeatType.PACKED*/, T: () => EntityID, options: { "validate.rules": { repeated: { minItems: "1" } } } } ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "IDs"] } }, "api.messageType": "Query" }); } create(value?: PartialMessage): StockByIdQuery { const message = globalThis.Object.create((this.messagePrototype!)); message.iDs = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; } internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: StockByIdQuery): StockByIdQuery { let message = target ?? this.create(), end = reader.pos + length; while (reader.pos < end) { let [fieldNo, wireType] = reader.tag(); switch (fieldNo) { case /* api.QueryProjectHeader Header = 1 [json_name = "Header"];*/ 1: message.header = QueryProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header); break; case /* repeated api.EntityID IDs = 2 [json_name = "IDs"];*/ 2: message.iDs.push(EntityID.internalBinaryRead(reader, reader.uint32(), options)); break; default: let u = options.readUnknownField; if (u === "throw") throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); let d = reader.skip(wireType); if (u !== false) (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); } } return message; } internalBinaryWrite(message: StockByIdQuery, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { /* api.QueryProjectHeader Header = 1 [json_name = "Header"]; */ if (message.header) QueryProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); /* repeated api.EntityID IDs = 2 [json_name = "IDs"]; */ for (let i = 0; i < message.iDs.length; i++) EntityID.internalBinaryWrite(message.iDs[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join(); let u = options.writeUnknownFields; if (u !== false) (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); return writer; } } /** * @generated MessageType for protobuf message api.StockByIdQuery */ export const StockByIdQuery = new StockByIdQuery$Type(); // @generated message type with reflection information, may provide speed optimized methods class StockByIdResult$Type extends MessageType { constructor() { super("api.StockByIdResult", [ { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => ResultHeader }, { no: 2, name: "Objects", kind: "message", jsonName: "Objects", repeat: 1 /*RepeatType.PACKED*/, T: () => Stock } ], { "api.messageType": "Result" }); } create(value?: PartialMessage): StockByIdResult { const message = globalThis.Object.create((this.messagePrototype!)); message.objects = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; } internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: StockByIdResult): StockByIdResult { let message = target ?? this.create(), end = reader.pos + length; while (reader.pos < end) { let [fieldNo, wireType] = reader.tag(); switch (fieldNo) { case /* api.ResultHeader Header = 1 [json_name = "Header"];*/ 1: message.header = ResultHeader.internalBinaryRead(reader, reader.uint32(), options, message.header); break; case /* repeated api.Stock Objects = 2 [json_name = "Objects"];*/ 2: message.objects.push(Stock.internalBinaryRead(reader, reader.uint32(), options)); break; default: let u = options.readUnknownField; if (u === "throw") throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); let d = reader.skip(wireType); if (u !== false) (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); } } return message; } internalBinaryWrite(message: StockByIdResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { /* api.ResultHeader Header = 1 [json_name = "Header"]; */ if (message.header) ResultHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); /* repeated api.Stock Objects = 2 [json_name = "Objects"]; */ for (let i = 0; i < message.objects.length; i++) Stock.internalBinaryWrite(message.objects[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join(); let u = options.writeUnknownFields; if (u !== false) (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); return writer; } } /** * @generated MessageType for protobuf message api.StockByIdResult */ export const StockByIdResult = new StockByIdResult$Type(); // @generated message type with reflection information, may provide speed optimized methods class StockByFilterQuery$Type extends MessageType { constructor() { super("api.StockByFilterQuery", [ { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => QueryProjectHeader, options: { "validate.rules": { message: { required: true } } } }, { no: 4, name: "limitFilter", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Number of maximum result", example: "\"500\"" } } }, { no: 5, name: "queryContext", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, { no: 7, name: "BlockFilters", kind: "message", jsonName: "BlockFilters", repeat: 1 /*RepeatType.PACKED*/, T: () => BlockFilter } ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header"] } } }); } create(value?: PartialMessage): StockByFilterQuery { const message = globalThis.Object.create((this.messagePrototype!)); message.limitFilter = ""; message.queryContext = ""; message.blockFilters = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; } internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: StockByFilterQuery): StockByFilterQuery { let message = target ?? this.create(), end = reader.pos + length; while (reader.pos < end) { let [fieldNo, wireType] = reader.tag(); switch (fieldNo) { case /* api.QueryProjectHeader Header = 1 [json_name = "Header"];*/ 1: message.header = QueryProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header); break; case /* string limitFilter */ 4: message.limitFilter = reader.string(); break; case /* string queryContext */ 5: message.queryContext = reader.string(); break; case /* repeated api.BlockFilter BlockFilters = 7 [json_name = "BlockFilters"];*/ 7: message.blockFilters.push(BlockFilter.internalBinaryRead(reader, reader.uint32(), options)); break; default: let u = options.readUnknownField; if (u === "throw") throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); let d = reader.skip(wireType); if (u !== false) (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); } } return message; } internalBinaryWrite(message: StockByFilterQuery, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { /* api.QueryProjectHeader Header = 1 [json_name = "Header"]; */ if (message.header) QueryProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); /* string limitFilter = 4; */ if (message.limitFilter !== "") writer.tag(4, WireType.LengthDelimited).string(message.limitFilter); /* string queryContext = 5; */ if (message.queryContext !== "") writer.tag(5, WireType.LengthDelimited).string(message.queryContext); /* repeated api.BlockFilter BlockFilters = 7 [json_name = "BlockFilters"]; */ for (let i = 0; i < message.blockFilters.length; i++) BlockFilter.internalBinaryWrite(message.blockFilters[i], writer.tag(7, WireType.LengthDelimited).fork(), options).join(); let u = options.writeUnknownFields; if (u !== false) (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); return writer; } } /** * @generated MessageType for protobuf message api.StockByFilterQuery */ export const StockByFilterQuery = new StockByFilterQuery$Type(); // @generated message type with reflection information, may provide speed optimized methods class StockByFilterResult$Type extends MessageType { constructor() { super("api.StockByFilterResult", [ { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => ResultHeader }, { no: 2, name: "Objects", kind: "message", jsonName: "Objects", repeat: 1 /*RepeatType.PACKED*/, T: () => Stock }, { no: 3, name: "queryContext", kind: "scalar", T: 9 /*ScalarType.STRING*/ } ]); } create(value?: PartialMessage): StockByFilterResult { const message = globalThis.Object.create((this.messagePrototype!)); message.objects = []; message.queryContext = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; } internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: StockByFilterResult): StockByFilterResult { let message = target ?? this.create(), end = reader.pos + length; while (reader.pos < end) { let [fieldNo, wireType] = reader.tag(); switch (fieldNo) { case /* api.ResultHeader Header = 1 [json_name = "Header"];*/ 1: message.header = ResultHeader.internalBinaryRead(reader, reader.uint32(), options, message.header); break; case /* repeated api.Stock Objects = 2 [json_name = "Objects"];*/ 2: message.objects.push(Stock.internalBinaryRead(reader, reader.uint32(), options)); break; case /* string queryContext */ 3: message.queryContext = reader.string(); break; default: let u = options.readUnknownField; if (u === "throw") throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); let d = reader.skip(wireType); if (u !== false) (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); } } return message; } internalBinaryWrite(message: StockByFilterResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { /* api.ResultHeader Header = 1 [json_name = "Header"]; */ if (message.header) ResultHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); /* repeated api.Stock Objects = 2 [json_name = "Objects"]; */ for (let i = 0; i < message.objects.length; i++) Stock.internalBinaryWrite(message.objects[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join(); /* string queryContext = 3; */ if (message.queryContext !== "") writer.tag(3, WireType.LengthDelimited).string(message.queryContext); let u = options.writeUnknownFields; if (u !== false) (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); return writer; } } /** * @generated MessageType for protobuf message api.StockByFilterResult */ export const StockByFilterResult = new StockByFilterResult$Type(); // @generated message type with reflection information, may provide speed optimized methods class StockByMatchQuery$Type extends MessageType { constructor() { super("api.StockByMatchQuery", [ { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => QueryProjectHeader, options: { "validate.rules": { message: { required: true } } } }, { no: 5, name: "BlockFilters", kind: "message", jsonName: "BlockFilters", repeat: 1 /*RepeatType.PACKED*/, T: () => BlockFilter }, { no: 6, name: "MatchFields", kind: "message", jsonName: "MatchFields", repeat: 1 /*RepeatType.PACKED*/, T: () => MatchField, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "MatchField list structure, for FindMatching query" } } } ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header"] } } }); } create(value?: PartialMessage): StockByMatchQuery { const message = globalThis.Object.create((this.messagePrototype!)); message.blockFilters = []; message.matchFields = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; } internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: StockByMatchQuery): StockByMatchQuery { let message = target ?? this.create(), end = reader.pos + length; while (reader.pos < end) { let [fieldNo, wireType] = reader.tag(); switch (fieldNo) { case /* api.QueryProjectHeader Header = 1 [json_name = "Header"];*/ 1: message.header = QueryProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header); break; case /* repeated api.BlockFilter BlockFilters = 5 [json_name = "BlockFilters"];*/ 5: message.blockFilters.push(BlockFilter.internalBinaryRead(reader, reader.uint32(), options)); break; case /* repeated api.MatchField MatchFields = 6 [json_name = "MatchFields"];*/ 6: message.matchFields.push(MatchField.internalBinaryRead(reader, reader.uint32(), options)); break; default: let u = options.readUnknownField; if (u === "throw") throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); let d = reader.skip(wireType); if (u !== false) (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); } } return message; } internalBinaryWrite(message: StockByMatchQuery, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { /* api.QueryProjectHeader Header = 1 [json_name = "Header"]; */ if (message.header) QueryProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); /* repeated api.BlockFilter BlockFilters = 5 [json_name = "BlockFilters"]; */ for (let i = 0; i < message.blockFilters.length; i++) BlockFilter.internalBinaryWrite(message.blockFilters[i], writer.tag(5, WireType.LengthDelimited).fork(), options).join(); /* repeated api.MatchField MatchFields = 6 [json_name = "MatchFields"]; */ for (let i = 0; i < message.matchFields.length; i++) MatchField.internalBinaryWrite(message.matchFields[i], writer.tag(6, WireType.LengthDelimited).fork(), options).join(); let u = options.writeUnknownFields; if (u !== false) (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); return writer; } } /** * @generated MessageType for protobuf message api.StockByMatchQuery */ export const StockByMatchQuery = new StockByMatchQuery$Type(); // @generated message type with reflection information, may provide speed optimized methods class StockByMatchResult$Type extends MessageType { constructor() { super("api.StockByMatchResult", [ { no: 2, name: "MatchResults", kind: "message", jsonName: "MatchResults", repeat: 1 /*RepeatType.PACKED*/, T: () => MatchFieldResult } ]); } create(value?: PartialMessage): StockByMatchResult { const message = globalThis.Object.create((this.messagePrototype!)); message.matchResults = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; } internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: StockByMatchResult): StockByMatchResult { let message = target ?? this.create(), end = reader.pos + length; while (reader.pos < end) { let [fieldNo, wireType] = reader.tag(); switch (fieldNo) { case /* repeated api.MatchFieldResult MatchResults = 2 [json_name = "MatchResults"];*/ 2: message.matchResults.push(MatchFieldResult.internalBinaryRead(reader, reader.uint32(), options)); break; default: let u = options.readUnknownField; if (u === "throw") throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); let d = reader.skip(wireType); if (u !== false) (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); } } return message; } internalBinaryWrite(message: StockByMatchResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { /* repeated api.MatchFieldResult MatchResults = 2 [json_name = "MatchResults"]; */ for (let i = 0; i < message.matchResults.length; i++) MatchFieldResult.internalBinaryWrite(message.matchResults[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join(); let u = options.writeUnknownFields; if (u !== false) (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); return writer; } } /** * @generated MessageType for protobuf message api.StockByMatchResult */ export const StockByMatchResult = new StockByMatchResult$Type(); /** * @generated ServiceType for protobuf service api.StockQuery */ export const StockQuery = new ServiceType("api.StockQuery", [ { name: "GetByIds", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Stock Query"], description: "(Deprecated, will be removed in release 1.10) Get Stock from Ids" }, "api.rscType": "Project", "api.roles": "Platform.Project-Query", "api.moduleID": "stock-inventory", "api.tableName": "stockById", "google.api.method_visibility": { restriction: "INTERNAL" } }, I: StockByIdQuery, O: StockByIdResult }, { name: "Find", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Stock Query"], description: "(Deprecated, will be removed in release 1.10) Find a stock from its properties." }, "api.rscType": "Project", "api.roles": "Platform.Project-Query", "api.moduleID": "stock-inventory", "google.api.method_visibility": { restriction: "PUBLIC" } }, I: StockByFilterQuery, O: StockByFilterResult }, { name: "FindMatchingFieldValues", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Stock Query"], description: "using search criteria & a main field word, find the list of fields containing the searched word (used for auto completion purposes ...) " }, "api.rscType": "Project", "api.roles": "", "api.moduleID": "stock-inventory", "google.api.method_visibility": { restriction: "PUBLIC" } }, I: StockByMatchQuery, O: StockByMatchResult }, { name: "FindMatchingFieldElements", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Stock Query"], description: "using search criteria & a main field word, find the list of field elements containing the searched word (used for auto completion purposes ...) " }, "api.rscType": "Project", "api.roles": "", "api.moduleID": "stock-inventory", "google.api.method_visibility": { restriction: "PUBLIC" } }, I: ElementByMatchQuery, O: ElementByMatchResult }, { name: "GetKPIData", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Stock Query"], description: "Get stock KPI data" }, "api.rscType": "Project", "api.roles": "Platform.Project-KPI", "api.moduleID": "stock-inventory", "google.api.method_visibility": { restriction: "PUBLIC" } }, I: GetKPIDataQuery, O: GetKPIDataResult }, { name: "GetKPIDataForUser", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Stock Query"], description: "Get stock KPI data for a specific user" }, "api.rscType": "Platform", "api.roles": "Platform.Project-KPI", "api.moduleID": "", "google.api.method_visibility": { restriction: "INTERNAL" } }, I: GetKPIDataForUserQuery, O: GetKPIDataResult }, { name: "ExtractKPI", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Stock Query"], description: "Schedule a data extraction" }, "api.rscType": "Project", "api.roles": "", "api.moduleID": "stock-inventory", "google.api.method_visibility": { restriction: "PUBLIC" } }, I: ExtractKPIQuery, O: ExtractKPIResult }, { name: "CountLines", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Stock Query"], description: "Count lines in database for project" }, "api.rscType": "Platform", "api.roles": "Platform.Project-Query", "api.moduleID": "stock-inventory", "google.api.method_visibility": { restriction: "INTERNAL" } }, I: CountLinesQuery, O: CountLinesResult }, { name: "FindKPIData", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Stock Query"], description: "Find stock KPI data" }, "api.rscType": "Project", "api.roles": "", "api.moduleID": "stock-inventory", "google.api.method_visibility": { restriction: "PUBLIC" } }, I: FindKPIDataQuery, O: FindKPIDataResult } ], { "api.serviceType": "Query", "api.k8sService": "query-server" });