// @generated by protobuf-ts 2.9.6
// @generated from protobuf file "shared.proto" (package "api", syntax proto3)
// tslint:disable
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 { DimensionLess } from "./unitOfMeasures";
import { Area } from "./unitOfMeasures";
import { Weight } from "./unitOfMeasures";
import { Volume } from "./unitOfMeasures";
import { Length } from "./unitOfMeasures";
import { Currency } from "./currencyCodes";
/**
 * Deprecated Header for all requests on project resource
 *
 * @generated from protobuf message api.RequestHeader
 */
export interface RequestHeader {
    /**
     * Identifier of the project
     *
     * @generated from protobuf field: string Project = 1 [json_name = "Project"];
     */
    project: string;
}
/**
 * Header for all requests on project resources
 *
 * @generated from protobuf message api.RequestProjectHeader
 */
export interface RequestProjectHeader {
    /**
     * Identifier of the project
     *
     * @generated from protobuf field: string ProjectID = 1 [json_name = "ProjectID"];
     */
    projectID: string;
    /**
     * DateTime ActualDate = 2 ;
     *
     * @generated from protobuf field: string CorrelationID = 3 [json_name = "CorrelationID"];
     */
    correlationID: string;
    /**
     * @generated from protobuf field: string TechnicalID = 4 [json_name = "TechnicalID"];
     */
    technicalID: string;
}
/**
 * Header for all requests on organisation resources
 *
 * @generated from protobuf message api.RequestOrganisationHeader
 */
export interface RequestOrganisationHeader {
    /**
     * Identifier of the organisation
     *
     * @generated from protobuf field: string OrganisationID = 1 [json_name = "OrganisationID"];
     */
    organisationID: string;
    /**
     * @generated from protobuf field: string CorrelationID = 2 [json_name = "CorrelationID"];
     */
    correlationID: string;
    /**
     * @generated from protobuf field: string TechnicalID = 3 [json_name = "TechnicalID"];
     */
    technicalID: string;
}
/**
 * Header for all requests on bucket resources
 *
 * @generated from protobuf message api.RequestBucketHeader
 */
export interface RequestBucketHeader {
    /**
     * Identifier of the bucket
     *
     * @generated from protobuf field: string BucketID = 1 [json_name = "BucketID"];
     */
    bucketID: string;
    /**
     * @generated from protobuf field: string CorrelationID = 2 [json_name = "CorrelationID"];
     */
    correlationID: string;
    /**
     * @generated from protobuf field: string TechnicalID = 3 [json_name = "TechnicalID"];
     */
    technicalID: string;
}
/**
 * Header for all requests on partnerApp resources
 *
 * @generated from protobuf message api.RequestPartnerAppHeader
 */
export interface RequestPartnerAppHeader {
    /**
     * Identifier of the partnerApp
     *
     * @generated from protobuf field: string PartnerAppID = 1 [json_name = "PartnerAppID"];
     */
    partnerAppID: string;
    /**
     * @generated from protobuf field: string CorrelationID = 2 [json_name = "CorrelationID"];
     */
    correlationID: string;
    /**
     * @generated from protobuf field: string TechnicalID = 3 [json_name = "TechnicalID"];
     */
    technicalID: string;
}
/**
 * Header for all requests on connection resources
 *
 * @generated from protobuf message api.RequestConnectionHeader
 */
export interface RequestConnectionHeader {
    /**
     * Identifier of the connection
     *
     * @generated from protobuf field: string ConnectionID = 1 [json_name = "ConnectionID"];
     */
    connectionID: string;
    /**
     * @generated from protobuf field: string CorrelationID = 2 [json_name = "CorrelationID"];
     */
    correlationID: string;
    /**
     * @generated from protobuf field: string TechnicalID = 3 [json_name = "TechnicalID"];
     */
    technicalID: string;
}
/**
 * Header for all requests on attachment type resources
 *
 * @generated from protobuf message api.RequestAttachmentTypeHeader
 */
export interface RequestAttachmentTypeHeader {
    /**
     * Identifier of the attachment type
     *
     * @generated from protobuf field: string AttachmentTypeID = 1 [json_name = "AttachmentTypeID"];
     */
    attachmentTypeID: string;
    /**
     * @generated from protobuf field: string CorrelationID = 2 [json_name = "CorrelationID"];
     */
    correlationID: string;
    /**
     * @generated from protobuf field: string TechnicalID = 3 [json_name = "TechnicalID"];
     */
    technicalID: string;
}
/**
 * Header for all response messages
 *
 * @generated from protobuf message api.ResponseHeader
 */
export interface ResponseHeader {
    /**
     * Identifier of the project
     *
     * @generated from protobuf field: string ProjectID = 1 [json_name = "ProjectID"];
     */
    projectID: string;
    /**
     * @generated from protobuf field: string CorrelationID = 2 [json_name = "CorrelationID"];
     */
    correlationID: string;
    /**
     * @generated from protobuf field: string TechnicalID = 3 [json_name = "TechnicalID"];
     */
    technicalID: string;
}
/**
 * Header for all response messages
 *
 * @generated from protobuf message api.AttachmentTypeResponseHeader
 */
export interface AttachmentTypeResponseHeader {
    /**
     * Identifier of the AttachmentType
     *
     * @generated from protobuf field: string AttachmentTypeID = 1 [json_name = "AttachmentTypeID"];
     */
    attachmentTypeID: string;
    /**
     * @generated from protobuf field: string CorrelationID = 2 [json_name = "CorrelationID"];
     */
    correlationID: string;
    /**
     * @generated from protobuf field: string TechnicalID = 3 [json_name = "TechnicalID"];
     */
    technicalID: string;
}
/**
 * Header for all query messages
 *
 * @generated from protobuf message api.QueryHeader
 */
export interface QueryHeader {
    /**
     * @generated from protobuf field: string Project = 1 [json_name = "Project"];
     */
    project: string;
    // string Author = 2;

    /**
     * @generated from protobuf field: string PagingState = 3 [json_name = "PagingState"];
     */
    pagingState: string;
    /**
     * @generated from protobuf field: string Limit = 4 [json_name = "Limit"];
     */
    limit: string;
    /**
     * @generated from protobuf field: bool LocalizedLabel = 5 [json_name = "LocalizedLabel"];
     */
    localizedLabel: boolean;
}
/**
 * Header for all query project messages
 *
 * @generated from protobuf message api.QueryProjectHeader
 */
export interface QueryProjectHeader {
    /**
     * Identifier of the project
     *
     * @generated from protobuf field: string ProjectID = 1 [json_name = "ProjectID"];
     */
    projectID: string;
    /**
     * Number of elements displayed
     *
     * @generated from protobuf field: string PagingState = 3 [json_name = "PagingState"];
     */
    pagingState: string;
    /**
     * Number of additional elements to display
     *
     * @generated from protobuf field: string Limit = 4 [json_name = "Limit"];
     */
    limit: string;
    /**
     * Return the message in the user's language
     *
     * @generated from protobuf field: bool LocalizedLabel = 5 [json_name = "LocalizedLabel"];
     */
    localizedLabel: boolean;
}
/**
 * @generated from protobuf message api.ResultHeader
 */
export interface ResultHeader {
    /**
     * Number of elements displayed
     *
     * @generated from protobuf field: string PagingState = 1 [json_name = "PagingState"];
     */
    pagingState: string;
}
/**
 * Header for all command messages
 *
 * @generated from protobuf message api.CommandHeader
 */
export interface CommandHeader {
    /**
     * @generated from protobuf field: string ActionCommand = 1 [json_name = "ActionCommand"];
     */
    actionCommand: string;
    /**
     * @generated from protobuf field: api.DateTime CommandTS = 2 [json_name = "CommandTS"];
     */
    commandTS?: DateTime;
    // DateTime ActualDate = 7;

    /**
     * @generated from protobuf field: string Project = 3 [json_name = "Project"];
     */
    project: string;
    /**
     * @generated from protobuf field: string FromDomain = 4 [json_name = "FromDomain"];
     */
    fromDomain: string;
    /**
     * @generated from protobuf field: string FromObject = 5 [json_name = "FromObject"];
     */
    fromObject: string;
    /**
     * @generated from protobuf field: string FromRule = 6 [json_name = "FromRule"];
     */
    fromRule: string;
    /**
     * @generated from protobuf field: string FromEvent = 7 [json_name = "FromEvent"];
     */
    fromEvent: string;
    /**
     * @generated from protobuf field: string FromAuthor = 8 [json_name = "FromAuthor"];
     */
    fromAuthor: string;
}
/**
 * Header for all event messages
 *
 * @generated from protobuf message api.EventHeader
 */
export interface EventHeader {
    /**
     * @generated from protobuf field: string InputEvent = 1 [json_name = "InputEvent"];
     */
    inputEvent: string;
    /**
     * @generated from protobuf field: api.DateTime EventTS = 2 [json_name = "EventTS"];
     */
    eventTS?: DateTime;
    // DateTime ActualDate = 6; //  TODO : add validation rule to make it required :  [(validate.rules).message.required = true]

    /**
     * @generated from protobuf field: string Project = 3 [json_name = "Project"];
     */
    project: string;
    /**
     * @generated from protobuf field: string Author = 4 [json_name = "Author"];
     */
    author: string;
    /**
     * @generated from protobuf field: string EventID = 5 [json_name = "EventID"];
     */
    eventID: string;
    /**
     * @generated from protobuf field: string CreatedBy = 6 [json_name = "CreatedBy"];
     */
    createdBy: string;
}
/**
 * Generic Object structures
 *
 * @generated from protobuf message api.EntityID
 */
export interface EntityID {
    // string UuID = 1
    //    [
    //        (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {read_only: true, description: "Internal identifier"}, (validate.rules).string.unauthorized = true
    //    ];

    /**
     * Your identifier
     *
     * @generated from protobuf field: string RefID = 2 [json_name = "RefID"];
     */
    refID: string;
    /**
     * Your effective date. If your event triggers a status change, this date will be used into the status ActualDate
     *
     * @generated from protobuf field: api.DateTime RefDate = 3 [json_name = "RefDate"];
     */
    refDate?: DateTime;
}
/**
 * Specific Stock ID struct
 *
 * @generated from protobuf message api.StockID
 */
export interface StockID {
    /**
     * Your effective date
     *
     * @generated from protobuf field: api.DateTime RefDate = 3 [json_name = "RefDate"];
     */
    refDate?: DateTime;
}
/**
 * Specific ID struct when No refid
 *
 * @generated from protobuf message api.NoID
 */
export interface NoID {
    /**
     * Your effective date
     *
     * @generated from protobuf field: api.DateTime RefDate = 3 [json_name = "RefDate"];
     */
    refDate?: DateTime;
}
/**
 * @generated from protobuf message api.GenericObject
 */
export interface GenericObject {
    /**
     * @generated from protobuf field: api.EventHeader LastEventHeader = 1 [json_name = "LastEventHeader"];
     */
    lastEventHeader?: EventHeader;
    /**
     * @generated from protobuf field: api.EntityID ID = 2 [json_name = "ID"];
     */
    iD?: EntityID;
    /**
     * @generated from protobuf field: api.GenericObjectPayload Payload = 3 [json_name = "Payload"];
     */
    payload?: GenericObjectPayload;
}
/**
 * @generated from protobuf message api.GenericObjectPayload
 */
export interface GenericObjectPayload {
}
/**
 * Common structures
 *
 * @generated from protobuf message api.DateTime
 */
export interface DateTime {
    /**
     * UTC date/time in <a href='https://en.wikipedia.org/wiki/ISO_8601'>ISO 8601</a> format
     *
     * @generated from protobuf field: string DateTime = 1 [json_name = "DateTime"];
     */
    dateTime: string;
    /**
     * Time zone from where the author emits the event in this <a href='https://en.wikipedia.org/wiki/List_of_tz_database_time_zones'>format</a>
     *
     * @generated from protobuf field: string AuthorTimeZone = 2 [json_name = "AuthorTimeZone"];
     */
    authorTimeZone: string;
}
/**
 * @generated from protobuf message api.ValueType
 */
export interface ValueType {
    /**
     * @generated from protobuf oneof: ValueType
     */
    valueType: {
        oneofKind: "string";
        /**
         * @generated from protobuf field: string String = 1 [json_name = "String"];
         */
        string: string;
    } | {
        oneofKind: "int";
        /**
         * @generated from protobuf field: int64 Int = 2 [json_name = "Int"];
         */
        int: bigint;
    } | {
        oneofKind: "float";
        /**
         * @generated from protobuf field: float Float = 3 [json_name = "Float"];
         */
        float: number;
    } | {
        oneofKind: "bool";
        /**
         * @generated from protobuf field: bool Bool = 4 [json_name = "Bool"];
         */
        bool: boolean;
    } | {
        oneofKind: "timestamp";
        /**
         * @generated from protobuf field: api.DateTime Timestamp = 5 [json_name = "Timestamp"];
         */
        timestamp: DateTime;
    } | {
        oneofKind: undefined;
    };
}
/**
 * @generated from protobuf message api.Amount
 */
export interface Amount {
    /**
     * @generated from protobuf field: float Value = 1 [json_name = "Value"];
     */
    value: number;
    /**
     * <a href='https://en.wikipedia.org/wiki/ISO_4217'>ISO 4217</a> currency code
     *
     * @generated from protobuf field: api.Currency Currency = 2 [json_name = "Currency"];
     */
    currency: Currency;
}
/**
 * @generated from protobuf message api.QuantityLength
 */
export interface QuantityLength {
    /**
     * @generated from protobuf field: float Value = 1 [json_name = "Value"];
     */
    value: number;
    /**
     * @generated from protobuf field: api.Length Unit = 2 [json_name = "Unit"];
     */
    unit: Length;
}
/**
 * @generated from protobuf message api.QuantityVolume
 */
export interface QuantityVolume {
    /**
     * @generated from protobuf field: float Value = 1 [json_name = "Value"];
     */
    value: number;
    /**
     * @generated from protobuf field: api.Volume Unit = 2 [json_name = "Unit"];
     */
    unit: Volume;
}
/**
 * @generated from protobuf message api.QuantityWeight
 */
export interface QuantityWeight {
    /**
     * @generated from protobuf field: float Value = 1 [json_name = "Value"];
     */
    value: number;
    /**
     * @generated from protobuf field: api.Weight Unit = 2 [json_name = "Unit"];
     */
    unit: Weight;
}
/**
 * @generated from protobuf message api.QuantityArea
 */
export interface QuantityArea {
    /**
     * @generated from protobuf field: float Value = 1 [json_name = "Value"];
     */
    value: number;
    /**
     * @generated from protobuf field: api.Area Unit = 2 [json_name = "Unit"];
     */
    unit: Area;
}
/**
 * @generated from protobuf message api.QuantityUnit
 */
export interface QuantityUnit {
    /**
     * @generated from protobuf field: float Value = 1 [json_name = "Value"];
     */
    value: number;
    /**
     * @generated from protobuf field: api.DimensionLess Unit = 2 [json_name = "Unit"];
     */
    unit: DimensionLess;
}
/**
 * @generated from protobuf message api.DomainDescriptionRequest
 */
export interface DomainDescriptionRequest {
}
/**
 * @generated from protobuf message api.DomainDescriptionResponse
 */
export interface DomainDescriptionResponse {
    /**
     * @generated from protobuf field: api.ResponseHeader Header = 1 [json_name = "Header"];
     */
    header?: ResponseHeader;
    /**
     * @generated from protobuf field: api.DomainDescription Payload = 2 [json_name = "Payload"];
     */
    payload?: DomainDescription;
}
/**
 * @generated from protobuf message api.DomainDescription
 */
export interface DomainDescription {
    /**
     * @generated from protobuf field: string Name = 1 [json_name = "Name"];
     */
    name: string;
    /**
     * @generated from protobuf field: repeated api.ObjectDescription ObjectDescription = 2 [json_name = "ObjectDescription"];
     */
    objectDescription: ObjectDescription[];
}
/**
 * @generated from protobuf message api.ObjectDescription
 */
export interface ObjectDescription {
    /**
     * @generated from protobuf field: string Name = 1 [json_name = "Name"];
     */
    name: string;
    /**
     * @generated from protobuf field: repeated api.ObjectAction ApiAction = 2 [json_name = "ApiAction"];
     */
    apiAction: ObjectAction[];
    /**
     * @generated from protobuf field: string PayloadJSON = 3 [json_name = "PayloadJSON"];
     */
    payloadJSON: string;
    /**
     * @generated from protobuf field: repeated api.ObjectAction ApiInput = 4 [json_name = "ApiInput"];
     */
    apiInput: ObjectAction[];
    /**
     * @generated from protobuf field: repeated api.ObjectAction ApiQuery = 5 [json_name = "ApiQuery"];
     */
    apiQuery: ObjectAction[];
}
/**
 * @generated from protobuf message api.ObjectAction
 */
export interface ObjectAction {
    /**
     * @generated from protobuf field: string Name = 1 [json_name = "Name"];
     */
    name: string;
    /**
     * @generated from protobuf field: string JsonTemplate = 2 [json_name = "JsonTemplate"];
     */
    jsonTemplate: string;
}
/**
 * *
 * Message to store metadata definition
 *
 * @generated from protobuf message api.MetadataElement
 */
export interface MetadataElement {
    /**
     * Key of the Metadata and Segmentation of the project
     *
     * @generated from protobuf field: string Key = 1 [json_name = "Key"];
     */
    key: string;
    /**
     * Value of the Metadata and Segmentation of the project
     *
     * @generated from protobuf field: api.ValueType Value = 2 [json_name = "Value"];
     */
    value?: ValueType;
}
/**
 *
 * Simple filter structure for Find query
 *
 * @generated from protobuf message api.SimpleFilter
 */
export interface SimpleFilter {
    /**
     * Filter path
     *
     * @generated from protobuf field: string Attribute = 1 [json_name = "Attribute"];
     */
    attribute: string;
    /**
     * Use this parameter if only one value
     *
     * @generated from protobuf field: string Value = 2 [json_name = "Value"];
     */
    value: string;
    /**
     * Use this parameter if more than one value
     *
     * @generated from protobuf field: repeated string Values = 3 [json_name = "Values"];
     */
    values: string[];
    /**
     * Allowed values : \"\", \"not\"
     *
     * @generated from protobuf field: string Operator = 4 [json_name = "Operator"];
     */
    operator: string;
    /**
     * Metadata's key
     *
     * @generated from protobuf field: string CombinedID = 5 [json_name = "CombinedID"];
     */
    combinedID: string;
}
/**
 *
 * Combined filter structure for Find query
 *
 * @generated from protobuf message api.CombinedFilter
 */
export interface CombinedFilter {
    /**
     * @generated from protobuf field: string Path = 1 [json_name = "Path"];
     */
    path: string;
    /**
     * Simple filter structure for Find query
     *
     * @generated from protobuf field: repeated api.SimpleFilter simpleFilters = 2;
     */
    simpleFilters: SimpleFilter[];
    /**
     * Range filter structure for Find query
     *
     * @generated from protobuf field: repeated api.RangeFilter rangeFilters = 3;
     */
    rangeFilters: RangeFilter[];
    /**
     * @generated from protobuf field: string CombinedID = 4 [json_name = "CombinedID"];
     */
    combinedID: string;
}
/**
 *
 * Range filter structure for Find query
 *
 * @generated from protobuf message api.RangeFilter
 */
export interface RangeFilter {
    /**
     * Filter path
     *
     * @generated from protobuf field: string Attribute = 1 [json_name = "Attribute"];
     */
    attribute: string;
    /**
     * Maximum value
     *
     * @generated from protobuf field: string valueLt = 2;
     */
    valueLt: string;
    /**
     * Minimum value
     *
     * @generated from protobuf field: string valueGt = 3;
     */
    valueGt: string;
    /**
     * Metadata's key
     *
     * @generated from protobuf field: string CombinedID = 4 [json_name = "CombinedID"];
     */
    combinedID: string;
}
/**
 *
 * Block filter structure for Find query, each element (SimpleFilter, RangeFilter & BlockFilter) is an "AND" part of the query
 *
 * @generated from protobuf message api.BlockFilter
 */
export interface BlockFilter {
    /**
     * Simple filter structure for Find query
     *
     * @generated from protobuf field: repeated api.SimpleFilter simpleFilters = 1;
     */
    simpleFilters: SimpleFilter[];
    /**
     * Range filter structure for Find query
     *
     * @generated from protobuf field: repeated api.RangeFilter rangeFilters = 2;
     */
    rangeFilters: RangeFilter[];
    /**
     * block filter structure for Find query
     *
     * @generated from protobuf field: repeated api.BlockFilter BlockFilters = 3 [json_name = "BlockFilters"];
     */
    blockFilters: BlockFilter[];
}
/**
 *
 * MatchField structure, for FindMatching query
 *
 * @generated from protobuf message api.MatchField
 */
export interface MatchField {
    /**
     * Filter path
     *
     * @generated from protobuf field: string Attribute = 1 [json_name = "Attribute"];
     */
    attribute: string;
    /**
     * Filter path for metadata filter
     *
     * @generated from protobuf field: string AttributeCombined = 2 [json_name = "AttributeCombined"];
     */
    attributeCombined: string;
    /**
     * Metadata's key
     *
     * @generated from protobuf field: string CombinedID = 3 [json_name = "CombinedID"];
     */
    combinedID: string;
}
/**
 *
 * Standard structure, having an attribute and a list of values
 *
 * @generated from protobuf message api.MatchFieldResult
 */
export interface MatchFieldResult {
    /**
     * @generated from protobuf field: string Attribute = 1 [json_name = "Attribute"];
     */
    attribute: string;
    /**
     * @generated from protobuf field: repeated string Values = 2 [json_name = "Values"];
     */
    values: string[];
}
/**
 *
 * structure containing error key & value
 *
 * @generated from protobuf message api.ErrorDetail
 */
export interface ErrorDetail {
    /**
     * @generated from protobuf field: string Key = 1 [json_name = "Key"];
     */
    key: string;
    /**
     * @generated from protobuf field: string Value = 2 [json_name = "Value"];
     */
    value: string;
}
/**
 *
 * Error message to be found in all rpc responses
 *
 * @generated from protobuf message api.Errors
 */
export interface Errors {
    /**
     * @generated from protobuf field: string ErrorCode = 1 [json_name = "ErrorCode"];
     */
    errorCode: string; // n1error code (xxyyzzzz)
    /**
     * @generated from protobuf field: string ErrorTrace = 2 [json_name = "ErrorTrace"];
     */
    errorTrace: string; // generated error code, for debugging purposes(in logs)
    /**
     * @generated from protobuf field: repeated api.ErrorDetail ErrorDetails = 3 [json_name = "ErrorDetails"];
     */
    errorDetails: ErrorDetail[];
    /**
     * @generated from protobuf field: string ContextType = 4 [json_name = "ContextType"];
     */
    contextType: string; // Entity
    /**
     * @generated from protobuf field: string ContextProcess = 5 [json_name = "ContextProcess"];
     */
    contextProcess: string; // Method grpc
    /**
     * @generated from protobuf field: string ContextPayload = 6 [json_name = "ContextPayload"];
     */
    contextPayload: string; // Payload request
}
// 
// structure containing error key & value

/**
 * @generated from protobuf message api.ParamElement
 */
export interface ParamElement {
    /**
     * @generated from protobuf field: string Key = 1 [json_name = "Key"];
     */
    key: string;
    // string Value = 2;

    /**
     * @generated from protobuf field: api.ValueType Value = 3 [json_name = "Value"];
     */
    value?: ValueType;
}
/**
 * @generated from protobuf message api.LabelStructure
 */
export interface LabelStructure {
    /**
     * Code of the message
     *
     * @generated from protobuf field: string Code = 1 [json_name = "Code"];
     */
    code: string;
    /**
     * Label of the message
     *
     * @generated from protobuf field: string Label = 2 [json_name = "Label"];
     */
    label: string;
    /**
     * Map of parameter to be put/replaced in the error label
     * Parameters for label
     *
     * @generated from protobuf field: repeated api.ParamElement Params = 3 [json_name = "Params"];
     */
    params: ParamElement[];
}
/**
 * CoreEndpoint represents the REST webservices of Reflex Platform
 *
 * @generated from protobuf message api.CoreEndpoint
 */
export interface CoreEndpoint {
    /**
     * RestEndpoint is the URL to access REST webservices of Platform.
     * It is expected to include protocol.
     * The protocol is expected to be "https://".
     * Empty protocol MUST raise an error.
     * Empty protocol or empty value MUST prevent attempts to access REST services.
     * Empty value or protocol SHOULD NOT prevent normal use of other functions.
     *
     * @generated from protobuf field: string RestEndpoint = 1 [json_name = "RestEndpoint"];
     */
    restEndpoint: string;
    /**
     * GrpcInputEndpoint is the URL to access GRPC Input services of Platform.
     * It is expected to include protocol.
     * The protocol is expected to be "https://".
     * Empty protocol MUST raise an error.
     * Empty protocol or empty value MUST prevent attempts to access gRPC services.
     * Empty value or protocol SHOULD NOT prevent normal use of other functions.
     *
     * @generated from protobuf field: string GrpcInputEndpoint = 2 [json_name = "GrpcInputEndpoint"];
     */
    grpcInputEndpoint: string;
    /**
     * GrpcQueryEndpoint is the URL to access GRPC Query services of Platform.
     * It is expected to include protocol.
     * The protocol is expected to be "https://".
     * Empty protocol MUST raise an error.
     * Empty protocol or empty value MUST prevent attempts to access gRPC services.
     * Empty value or protocol SHOULD NOT prevent normal use of other functions.
     *
     * @generated from protobuf field: string GrpcQueryEndpoint = 3 [json_name = "GrpcQueryEndpoint"];
     */
    grpcQueryEndpoint: string;
    /**
     * GrpcGcsEndpoint is the URL to access GRPC Gcs services of Platform.
     * It is expected to include protocol.
     * The protocol is expected to be "https://".
     * Empty protocol MUST raise an error.
     * Empty protocol or empty value MUST prevent attempts to access gRPC services.
     * Empty value or protocol SHOULD NOT prevent normal use of other functions.
     *
     * @generated from protobuf field: string GrpcGcsEndpoint = 4 [json_name = "GrpcGcsEndpoint"];
     */
    grpcGcsEndpoint: string;
    /**
     * GrpcLoggerEndpoint is the URL to access GRPC Logger services of Platform.
     * It is expected to include protocol.
     * The protocol is expected to be "https://".
     * Empty protocol MUST raise an error.
     * Empty protocol or empty value MUST prevent attempts to access gRPC services.
     * Empty value or protocol SHOULD NOT prevent normal use of other functions.
     *
     * @generated from protobuf field: string GrpcLoggerEndpoint = 5 [json_name = "GrpcLoggerEndpoint"];
     */
    grpcLoggerEndpoint: string;
    /**
     * GrpcProjectModelEndpoint is the URL to access GRPC ProjectModel services of Platform which notably manages the metadata.
     * It is expected to include protocol.
     * The protocol is expected to be "https://".
     * Empty protocol MUST raise an error.
     * Empty protocol or empty value MUST prevent attempts to access gRPC services.
     * Empty value or protocol SHOULD NOT prevent normal use of other functions.
     *
     * @generated from protobuf field: string GrpcProjectModelEndpoint = 6 [json_name = "GrpcProjectModelEndpoint"];
     */
    grpcProjectModelEndpoint: string;
    /**
     * GrpcCoreCollabInputEndpoint is the URL to access GRPC Input services of Platform.
     * It is expected to include protocol.
     * The protocol is expected to be "https://".
     * Empty protocol MUST raise an error.
     * Empty protocol or empty value MUST prevent attempts to access gRPC services.
     * Empty value or protocol SHOULD NOT prevent normal use of other functions.
     *
     * @generated from protobuf field: string GrpcCoreCollabInputEndpoint = 7 [json_name = "GrpcCoreCollabInputEndpoint"];
     */
    grpcCoreCollabInputEndpoint: string;
    /**
     * GrpcCoreCollabQueryEndpoint is the URL to access GRPC Query services of Platform.
     * It is expected to include protocol.
     * The protocol is expected to be "https://".
     * Empty protocol MUST raise an error.
     * Empty protocol or empty value MUST prevent attempts to access gRPC services.
     * Empty value or protocol SHOULD NOT prevent normal use of other functions.
     *
     * @generated from protobuf field: string GrpcCoreCollabQueryEndpoint = 8 [json_name = "GrpcCoreCollabQueryEndpoint"];
     */
    grpcCoreCollabQueryEndpoint: string;
    /**
     * GrpcCoreClaimTypeEndpoint is the URL to access GRPC Query services of Platform.
     * It is expected to include protocol.
     * The protocol is expected to be "https://".
     * Empty protocol MUST raise an error.
     * Empty protocol or empty value MUST prevent attempts to access gRPC services.
     * Empty value or protocol SHOULD NOT prevent normal use of other functions.
     *
     * @generated from protobuf field: string GrpcCoreClaimTypeEndpoint = 9 [json_name = "GrpcCoreClaimTypeEndpoint"];
     */
    grpcCoreClaimTypeEndpoint: string;
}
/**
 * IntegrationEndpoint represents the different endpoints of the integration Platform
 * These services are notably used to manage integration processes / pipelines.
 *
 * @generated from protobuf message api.IntegrationEndpoint
 */
export interface IntegrationEndpoint {
    /**
     * RestEndpoint is the URL to access REST webservices of Integration.
     * It is expected to include protocol.
     * the protocol is expected to be "https://".
     * Empty protocol MUST raise an error.
     * Empty protocol or empty value MUST prevent attempts to access REST services.
     * Empty value or protocol SHOULD NOT prevent normal use of other functions.
     *
     * @generated from protobuf field: string RestEndpoint = 1 [json_name = "RestEndpoint"];
     */
    restEndpoint: string;
    /**
     * GrpcEndpoint is the URL to access GRPC services of Integration
     * It is expected to include protocol and a port.
     * The protocol is expected to be "https://".
     * Empty protocol MUST raise an error.
     * Empty protocol or empty value MUST prevent attempts to access gRPC services.
     * Empty value or protocol SHOULD NOT prevent normal use of other functions.
     *
     * @generated from protobuf field: string GrpcEndpoint = 2 [json_name = "GrpcEndpoint"];
     */
    grpcEndpoint: string;
}
/**
 * StorageEndpoint represents the REST webservices of Google Cloud Storage
 * These REST services are notably used to upload and retrieve files from the storage.
 * In order to authenticate to it, a STS token is required and can be obtained from the CoreEndpoint /api.GcsApi/GetBucketSTS API.
 *
 * @generated from protobuf message api.StorageEndpoint
 */
export interface StorageEndpoint {
    /**
     * Endpoint is the URL to access the REST webservices.
     * It is expected to include portocol.
     * The protocol is expected to be "https://".
     * Empty protocol MUST raise an error.
     * Empty protocol or empty value MUST prevent attempts to access REST services.
     * Empty value or protocol SHOULD NOT prevent normal use of other functions.
     *
     * @generated from protobuf field: string Endpoint = 1 [json_name = "Endpoint"];
     */
    endpoint: string;
    /**
     * Bucket is the name of the bucket associated to this partner app.
     * It should look like <organisationID>/<projectID>/<partnerAppID>.
     *
     * @generated from protobuf field: string Bucket = 2 [json_name = "Bucket"];
     */
    bucket: string;
}
// NatsCredentials holds the configuration for interacting with Platform's NATS.

/**
 * Platform provides a JetStream-enabled account for these credential set.
 * The method to authenticate should comply with JWT decentralized auth.
 *
 * @generated from protobuf message api.NatsCredentials
 */
export interface NatsCredentials {
    /**
     * EndPoint is the URL to connect to NATS.
     * This URL is expected to include protocol and port.
     * Protocol is expected to be "nats://".
     * Any port value SHOULD be acceptable.
     * Missing protocol, address, or port SHOULD raise an error.
     * Invalid protocol SHOULD raise an error.
     * Errors raised in this protocol SHOULD NOT prevent use of any other protocols.
     *
     * @generated from protobuf field: string Endpoint = 1 [json_name = "Endpoint"];
     */
    endpoint: string;
    /**
     * RootSubject defines a namespace of which all subjects must be prefixed with
     * it is expected to be a dot-separated serries of "tokens"
     *
     * @generated from protobuf field: string RootSubject = 2 [json_name = "RootSubject"];
     */
    rootSubject: string;
    /**
     * Username is not used, but may help human readers to identify accounts.
     *
     * @generated from protobuf field: string Username = 3 [json_name = "Username"];
     */
    username: string;
    /**
     * @generated from protobuf field: string UserJwt = 4 [json_name = "UserJwt"];
     */
    userJwt: string; // The JWT part for the authentication. e.g. https://pkg.go.dev/github.com/nats-io/nats.go#UserJWTAndSeed 
    /**
     * @generated from protobuf field: string UserNkeySeed = 5 [json_name = "UserNkeySeed"];
     */
    userNkeySeed: string; // The seed part for the authentication. e.g. https://pkg.go.dev/github.com/nats-io/nats.go#UserJWTAndSeed 
}
/**
 * OpenSearchCredentials holds the configuration for interacting with Platform integration's OpenSearch
 *
 * @generated from protobuf message api.OpenSearchCredentials
 */
export interface OpenSearchCredentials {
    /**
     * Endpoint is the URL to access the OpenSearch dashboard.
     * It is expected to include portocol.
     * The protocol is expected to be "https://".
     * Empty protocol MUST raise an error.
     * Empty protocol or empty value MUST prevent attempts to access REST services.
     * Empty value or protocol SHOULD NOT prevent normal use of other functions.
     *
     * @generated from protobuf field: string Endpoint = 1 [json_name = "Endpoint"];
     */
    endpoint: string;
    /**
     * Username is the provided username to use for authentication
     *
     * @generated from protobuf field: string Username = 2 [json_name = "Username"];
     */
    username: string;
    /**
     * Password is the provided password to use for authentication
     *
     * @generated from protobuf field: string Password = 3 [json_name = "Password"];
     */
    password: string;
    /**
     * Index is the name of the index the partner app is allowed to use
     *
     * @generated from protobuf field: string Index = 4 [json_name = "Index"];
     */
    index: string;
}
/**
 * OpenIDCredentials holds the configuration for interacting with Platform's OpenID Connect server
 * This is used to authenticate to the CoreEndpoint and IntegrationEndpoint by providing a JWT token.
 *
 * @generated from protobuf message api.OpenIDCredentials
 */
export interface OpenIDCredentials {
    /**
     * WellKnownURI is the URL to access the OpenID Connect server's well-known configuration
     * It is expected to include protocol.
     * the protocol is expected to be "https://".
     * Empty protocol MUST raise an error.
     * Empty protocol or empty value MUST prevent attempts to access REST services.
     * Empty value or protocol SHOULD NOT prevent normal use of other functions.
     *
     * @generated from protobuf field: string WellKnownURI = 1 [json_name = "WellKnownURI"];
     */
    wellKnownURI: string;
    /**
     * ServiceAccountName is the name that identifies the service account.
     * It is not used for authentication, but may help human readers to identify accounts.
     *
     * @generated from protobuf field: string ServiceAccountName = 2 [json_name = "ServiceAccountName"];
     */
    serviceAccountName: string;
    /**
     * ServiceAccountPEM is the PEM-encoded private key of the service account that is used for authentication.
     *
     * @generated from protobuf field: string ServiceAccountPEM = 3 [json_name = "ServiceAccountPEM"];
     */
    serviceAccountPEM: string;
}
/**
 *
 * Basic messages (int, bool, string ,etc ) encapsulation inside a message
 * we can use these message to escape default values of basic messages, and have the possibility to put an empty
 * ex: not sending a string in a payload is the same as sending an empty string -> solution: use StringObject
 *
 * @generated from protobuf message api.Int32Object
 */
export interface Int32Object {
    /**
     * @generated from protobuf field: int32 Int32 = 1 [json_name = "Int32"];
     */
    int32: number;
}
/**
 * @generated from protobuf message api.BoolObject
 */
export interface BoolObject {
    /**
     * @generated from protobuf field: bool Bool = 1 [json_name = "Bool"];
     */
    bool: boolean;
}
/**
 * @generated from protobuf message api.StringObject
 */
export interface StringObject {
    /**
     * @generated from protobuf field: string String = 1 [json_name = "String"];
     */
    string: string;
}
/**
 * @generated from protobuf message api.StringDateObject
 */
export interface StringDateObject {
    /**
     * UTC date/time in <a href='https://en.wikipedia.org/wiki/ISO_8601'>ISO 8601</a> format
     *
     * @generated from protobuf field: string DateTime = 10 [json_name = "DateTime"];
     */
    dateTime: string;
}
/**
 * @generated from protobuf message api.WorkflowExecutionResult
 */
export interface WorkflowExecutionResult {
    /**
     * @generated from protobuf field: string WorkflowId = 1 [json_name = "WorkflowId"];
     */
    workflowId: string;
    /**
     * @generated from protobuf field: string RunId = 2 [json_name = "RunId"];
     */
    runId: string;
    /**
     * @generated from protobuf field: string Domain = 3 [json_name = "Domain"];
     */
    domain: string;
}
/**
 * @generated from protobuf message api.ModuleRegistration
 */
export interface ModuleRegistration {
    /**
     * @generated from protobuf field: api.WorkflowTypeEnum WorkflowTarget = 1 [json_name = "WorkflowTarget"];
     */
    workflowTarget: WorkflowTypeEnum;
    /**
     * @generated from protobuf field: string WorkflowPath = 2 [json_name = "WorkflowPath"];
     */
    workflowPath: string;
    /**
     * @generated from protobuf field: api.ModuleWorkflowTypeEnum Type = 3 [json_name = "Type"];
     */
    type: ModuleWorkflowTypeEnum;
    /**
     * @generated from protobuf field: int32 Timeout = 4 [json_name = "Timeout"];
     */
    timeout: number;
}
/**
 * @generated from protobuf message api.ModuleDeregistration
 */
export interface ModuleDeregistration {
    /**
     * @generated from protobuf field: api.WorkflowTypeEnum WorkflowTarget = 1 [json_name = "WorkflowTarget"];
     */
    workflowTarget: WorkflowTypeEnum;
    /**
     * @generated from protobuf field: string WorkflowPath = 2 [json_name = "WorkflowPath"];
     */
    workflowPath: string;
    /**
     * @generated from protobuf field: api.ModuleWorkflowTypeEnum Type = 3 [json_name = "Type"];
     */
    type: ModuleWorkflowTypeEnum;
}
/**
 * Message defining the structure of a ClaimType.
 *
 * @generated from protobuf message api.ClaimType
 */
export interface ClaimType {
    /**
     * @generated from protobuf field: string ID = 1 [json_name = "ID"];
     */
    iD: string; // Unique identifier for the claim type. (formatted as such: "CLAIMTYPE_<ProjectID>_<UUID>")
    /**
     * @generated from protobuf field: string ProjectID = 2 [json_name = "ProjectID"];
     */
    projectID: string; // Identifier for the project associated with the claim.
    /**
     * @generated from protobuf field: string Reason = 3 [json_name = "Reason"];
     */
    reason: string; // Reason or description for the claim.
    /**
     * @generated from protobuf field: string ReasonCode = 4 [json_name = "ReasonCode"];
     */
    reasonCode: string; // Code for the reason of the claim.
    /**
     * @generated from protobuf field: api.ClaimEntityType EntityType = 5 [json_name = "EntityType"];
     */
    entityType: ClaimEntityType; // Type of entity associated with the claim.
    /**
     * @generated from protobuf field: api.ClaimCriticality DefaultCriticality = 6 [json_name = "DefaultCriticality"];
     */
    defaultCriticality: ClaimCriticality; // Default criticality level for the claim which is set upon its creation.
    /**
     * @generated from protobuf field: repeated api.ClaimTransition Transitions = 7 [json_name = "Transitions"];
     */
    transitions: ClaimTransition[]; // List of possible transitions between claim statuses.
    /**
     * @generated from protobuf field: repeated api.ClaimTypeClosure PossibleClosures = 8 [json_name = "PossibleClosures"];
     */
    possibleClosures: ClaimTypeClosure[]; // List of possible closures for the claim.
    /**
     * @generated from protobuf field: repeated string CriticalityAllowedRoles = 9 [json_name = "CriticalityAllowedRoles"];
     */
    criticalityAllowedRoles: string[]; // Roles allowed to set criticality.
    /**
     * @generated from protobuf field: repeated string ReadAllowedRoles = 10 [json_name = "ReadAllowedRoles"];
     */
    readAllowedRoles: string[]; // Roles allowed to read/view the claim.
    /**
     * @generated from protobuf field: repeated string WriteAllowedRoles = 11 [json_name = "WriteAllowedRoles"];
     */
    writeAllowedRoles: string[]; // Roles allowed to write/edit the claim.
    /**
     * @generated from protobuf field: repeated string AssignAllowedRoles = 12 [json_name = "AssignAllowedRoles"];
     */
    assignAllowedRoles: string[]; // Roles allowed to assign the claim.
    /**
     * @generated from protobuf field: repeated api.ClaimStatus AllowedStatuses = 13 [json_name = "AllowedStatuses"];
     */
    allowedStatuses: ClaimStatus[]; // List of allowed statuses for the claim.
    /**
     * @generated from protobuf field: api.ClaimStatus DefaultStatus = 14 [json_name = "DefaultStatus"];
     */
    defaultStatus: ClaimStatus; // Default status for the claim which is set upon its creation.
    /**
     * @generated from protobuf field: api.ClaimSector Sector = 15 [json_name = "Sector"];
     */
    sector: ClaimSector; // Sector of the claim.
    /**
     * @generated from protobuf field: repeated string DefaultAssignees = 16 [json_name = "DefaultAssignees"];
     */
    defaultAssignees: string[]; // Default assignees of the claim.
}
/**
 * Message defining the structure of a ClaimTransition.
 *
 * @generated from protobuf message api.ClaimTransition
 */
export interface ClaimTransition {
    /**
     * @generated from protobuf field: api.ClaimStatus FromStatus = 1 [json_name = "FromStatus"];
     */
    fromStatus: ClaimStatus; // Starting status of the transition.
    /**
     * @generated from protobuf field: api.ClaimStatus ToStatus = 2 [json_name = "ToStatus"];
     */
    toStatus: ClaimStatus; // Ending status of the transition.
    /**
     * @generated from protobuf field: repeated string AllowedRoles = 3 [json_name = "AllowedRoles"];
     */
    allowedRoles: string[]; // Roles allowed to perform this transition.
    /**
     * @generated from protobuf field: bool ShouldNotify = 4 [json_name = "ShouldNotify"];
     */
    shouldNotify: boolean; // Indicates whether notification should be sent to the claim's assignees after this transition.
}
/**
 * Message defining the structure of a ClaimTypeClosure for ClaimTypes.
 *
 * @generated from protobuf message api.ClaimTypeClosure
 */
export interface ClaimTypeClosure {
    /**
     * @generated from protobuf field: string Responsible = 1 [json_name = "Responsible"];
     */
    responsible: string; // Person or entity responsible for the closure.
    /**
     * @generated from protobuf field: repeated string Causes = 2 [json_name = "Causes"];
     */
    causes: string[]; // List of possible causes associated with the closure for a given responsible. Array is multi-valued for claim types but single-valued for claim instances (only one cause per claim closure).
}
/**
 * Message defining the structure of a ClaimClosure for Claim instances.
 *
 * @generated from protobuf message api.ClaimClosure
 */
export interface ClaimClosure {
    /**
     * @generated from protobuf field: string Responsible = 1 [json_name = "Responsible"];
     */
    responsible: string; // Person or entity responsible for the closure.
    /**
     * @generated from protobuf field: string Cause = 2 [json_name = "Cause"];
     */
    cause: string; // Cause associated with the closure.
}
/**
 * Message defining the claim attached to entity
 *
 * @generated from protobuf message api.ClaimSummary
 */
export interface ClaimSummary {
    /**
     * Identifier of the claim type
     *
     * @generated from protobuf field: string ClaimTypeID = 1 [json_name = "ClaimTypeID"];
     */
    claimTypeID: string;
    /**
     * Code of the claim type
     *
     * @generated from protobuf field: string ClaimTypeReason = 2 [json_name = "ClaimTypeReason"];
     */
    claimTypeReason: string;
    /**
     * @generated from protobuf field: int32 Number = 3 [json_name = "Number"];
     */
    number: number;
}
/**
 * @generated from protobuf message api.AttachmentType
 */
export interface AttachmentType {
    /**
     * @generated from protobuf field: string ID = 1 [json_name = "ID"];
     */
    iD: string;
    /**
     * @generated from protobuf field: string ProjectID = 2 [json_name = "ProjectID"];
     */
    projectID: string;
    /**
     * @generated from protobuf field: string Code = 3 [json_name = "Code"];
     */
    code: string;
    /**
     * @generated from protobuf field: api.EntityType Entity = 4 [json_name = "Entity"];
     */
    entity: EntityType;
    /**
     * @generated from protobuf field: string Label = 5 [json_name = "Label"];
     */
    label: string;
    /**
     * @generated from protobuf field: api.SharePolicy SharePolicy = 6 [json_name = "SharePolicy"];
     */
    sharePolicy: SharePolicy;
}
/**
 * @generated from protobuf message api.AttachmentSummary
 */
export interface AttachmentSummary {
    /**
     * @generated from protobuf field: string AttachmentTypeID = 1 [json_name = "AttachmentTypeID"];
     */
    attachmentTypeID: string;
    /**
     * @generated from protobuf field: string AttachmentTypeCode = 2 [json_name = "AttachmentTypeCode"];
     */
    attachmentTypeCode: string;
    /**
     * @generated from protobuf field: int32 Number = 3 [json_name = "Number"];
     */
    number: number;
}
/**
 * @generated from protobuf message api.TranslationMap
 */
export interface TranslationMap {
    /**
     * @generated from protobuf field: map<string, string> data = 1;
     */
    data: {
        [key: string]: string;
    };
}
/**
 * @generated from protobuf message api.ExtractColumnFormat
 */
export interface ExtractColumnFormat {
    /**
     * @generated from protobuf field: api.ExtractColumnFormat.type Type = 1 [json_name = "Type"];
     */
    type: ExtractColumnFormat_type;
    /**
     * @generated from protobuf field: string Format = 2 [json_name = "Format"];
     */
    format: string;
}
/**
 * @generated from protobuf enum api.ExtractColumnFormat.type
 */
export enum ExtractColumnFormat_type {
    /**
     * @generated from protobuf enum value: UNKNOWN = 0;
     */
    UNKNOWN = 0,
    /**
     * @generated from protobuf enum value: DATE = 1;
     */
    DATE = 1,
    /**
     * @generated from protobuf enum value: SUFFIX = 2;
     */
    SUFFIX = 2
}
/**
 * @generated from protobuf message api.ExtractQuery
 */
export interface ExtractQuery {
    /**
     * @generated from protobuf field: api.QueryProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: QueryProjectHeader;
    /**
     * @generated from protobuf field: string UserId = 2 [json_name = "UserId"];
     */
    userId: string;
    /**
     * @generated from protobuf field: repeated api.BlockFilter BlockFilters = 3 [json_name = "BlockFilters"];
     */
    blockFilters: BlockFilter[];
    /**
     * @generated from protobuf field: repeated string Fields = 4 [json_name = "Fields"];
     */
    fields: string[];
    /**
     * @generated from protobuf field: string ListSeparator = 5 [json_name = "ListSeparator"];
     */
    listSeparator: string;
    /**
     * @generated from protobuf field: string DecimalSeparator = 6 [json_name = "DecimalSeparator"];
     */
    decimalSeparator: string;
    /**
     * @generated from protobuf field: repeated string ColumnNames = 7 [json_name = "ColumnNames"];
     */
    columnNames: string[];
    /**
     * @generated from protobuf field: map<string, api.TranslationMap> ColumnTranslationMaps = 8 [json_name = "ColumnTranslationMaps"];
     */
    columnTranslationMaps: {
        [key: string]: TranslationMap;
    };
    /**
     * @generated from protobuf field: map<int32, api.ExtractColumnFormat> ColumnFormats = 9 [json_name = "ColumnFormats"];
     */
    columnFormats: {
        [key: number]: ExtractColumnFormat;
    };
    /**
     * @generated from protobuf field: string TargetTimeZone = 10 [json_name = "TargetTimeZone"];
     */
    targetTimeZone: string;
}
/**
 * @generated from protobuf message api.ExtractResult
 */
export interface ExtractResult {
    /**
     * @generated from protobuf field: api.WorkflowExecutionResult WorkflowExecution = 1 [json_name = "WorkflowExecution"];
     */
    workflowExecution?: WorkflowExecutionResult;
}
/**
 * @generated from protobuf message api.CountLinesQuery
 */
export interface CountLinesQuery {
    /**
     * @generated from protobuf field: string ProjectID = 1 [json_name = "ProjectID"];
     */
    projectID: string;
    /**
     * @generated from protobuf field: int32 Partition = 2 [json_name = "Partition"];
     */
    partition: number;
}
/**
 * @generated from protobuf message api.CountLinesResult
 */
export interface CountLinesResult {
    /**
     * @generated from protobuf field: int32 NbLines = 1 [json_name = "NbLines"];
     */
    nbLines: number;
}
/**
 * @generated from protobuf message api.Scope
 */
export interface Scope {
    /**
     * @generated from protobuf field: string Service = 1 [json_name = "Service"];
     */
    service: string; // Service name
    /**
     * @generated from protobuf field: string Method = 2 [json_name = "Method"];
     */
    method: string; // Method name
    /**
     * @generated from protobuf field: api.ResourceType RscType = 3 [json_name = "RscType"];
     */
    rscType: ResourceType; // Resource type of the method
    /**
     * @generated from protobuf field: bool PlatformReserved = 4 [json_name = "PlatformReserved"];
     */
    platformReserved: boolean; // Reserved for platform usage
    /**
     * @generated from protobuf field: repeated api.Permission TransientPermissions = 5 [json_name = "TransientPermissions"];
     */
    transientPermissions: Permission[]; // Transient permissions (for UI scopes)
    /**
     * @generated from protobuf field: string RscID = 6 [json_name = "RscID"];
     */
    rscID: string; // Resource ID of the method (if any).
    /**
     * @generated from protobuf field: repeated string AppliesOnIDs = 7 [json_name = "AppliesOnIDs"];
     */
    appliesOnIDs: string[]; // This field is used only for roles definition, not scope registration. List of resource IDs on which the role's scope applies. If none is specified, the scope applies on all resources of the given type. It implies that the resource ids are of the same type as the resource type of the scope (or they won't be taken into account).
    /**
     * @generated from protobuf field: string ModuleID = 8 [json_name = "ModuleID"];
     */
    moduleID: string; // Module ID which the scope belongs to
    /**
     * @generated from protobuf field: bool Mandatory = 9 [json_name = "Mandatory"];
     */
    mandatory: boolean; // If mandatory, the scope will always be added to roles of the same RscType. For instance, a UI role "Project-Viewer" will inherit mandatory "Project" UI scopes.
}
/**
 * @generated from protobuf message api.ClientAPI
 */
export interface ClientAPI {
    /**
     * @generated from protobuf field: string Client = 1 [json_name = "Client"];
     */
    client: string;
    /**
     * @generated from protobuf field: repeated api.Scope APIs = 2 [json_name = "APIs"];
     */
    aPIs: Scope[];
    /**
     * @generated from protobuf field: string Roles = 3 [json_name = "Roles"];
     */
    roles: string;
}
/**
 * @generated from protobuf message api.Permission
 */
export interface Permission {
    /**
     * @generated from protobuf field: string Client = 1 [json_name = "Client"];
     */
    client: string;
    /**
     * @generated from protobuf field: repeated api.Scope Scopes = 2 [json_name = "Scopes"];
     */
    scopes: Scope[];
}
/**
 * @generated from protobuf message api.UserUIPermissions
 */
export interface UserUIPermissions {
    /**
     * @generated from protobuf field: api.ResourceType RscType = 1 [json_name = "RscType"];
     */
    rscType: ResourceType;
    /**
     * @generated from protobuf field: string RscID = 2 [json_name = "RscID"];
     */
    rscID: string;
    /**
     * @generated from protobuf field: repeated api.Scope Scopes = 3 [json_name = "Scopes"];
     */
    scopes: Scope[];
}
/**
 * @generated from protobuf message api.ElementByMatchQuery
 */
export interface ElementByMatchQuery {
    /**
     * @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
     *
     * @generated from protobuf field: repeated api.BlockFilter BlockFilters = 2 [json_name = "BlockFilters"];
     */
    blockFilters: BlockFilter[];
    /**
     * MatchElementField structure, containing wanted match string, and the fields to get.
     *
     * @generated from protobuf field: api.MatchElementField MatchElementField = 3 [json_name = "MatchElementField"];
     */
    matchElementField?: MatchElementField;
}
/**
 * @generated from protobuf message api.ElementByMatchResult
 */
export interface ElementByMatchResult {
    /**
     * @generated from protobuf field: repeated api.MatchFieldElementResult MatchResults = 1 [json_name = "MatchResults"];
     */
    matchResults: MatchFieldElementResult[];
}
/**
 * @generated from protobuf message api.MatchElementField
 */
export interface MatchElementField {
    /**
     * @generated from protobuf field: string Match = 1 [json_name = "Match"];
     */
    match: string;
    /**
     * MatchField list structure, for FindMatching query
     *
     * @generated from protobuf field: repeated api.MatchField MatchFields = 2 [json_name = "MatchFields"];
     */
    matchFields: MatchField[];
}
/**
 *
 * Standard structure, having an map of elements (key,value)
 *
 * @generated from protobuf message api.MatchFieldElementResult
 */
export interface MatchFieldElementResult {
    /**
     * @generated from protobuf field: map<string, string> MatchingElements = 3 [json_name = "MatchingElements"];
     */
    matchingElements: {
        [key: string]: string;
    };
}
/**
 * List all data set in the model
 *
 * @generated from protobuf enum api.ModelDataSetEnum
 */
export enum ModelDataSetEnum {
    /**
     * @generated from protobuf enum value: ACTOR = 0;
     */
    ACTOR = 0,
    /**
     * @generated from protobuf enum value: EXECUTIONFLOW = 1;
     */
    EXECUTIONFLOW = 1,
    /**
     * @generated from protobuf enum value: HANDLINGUNIT = 2;
     */
    HANDLINGUNIT = 2,
    /**
     * @generated from protobuf enum value: ITEM = 3;
     */
    ITEM = 3,
    /**
     * @generated from protobuf enum value: METADATA = 4;
     */
    METADATA = 4,
    /**
     * @generated from protobuf enum value: MOVEMENT = 5;
     */
    MOVEMENT = 5,
    /**
     * @generated from protobuf enum value: ORDER = 6;
     */
    ORDER = 6,
    /**
     * @generated from protobuf enum value: PARTNER = 7;
     */
    PARTNER = 7,
    /**
     * @generated from protobuf enum value: STOCK = 8;
     */
    STOCK = 8,
    /**
     * @generated from protobuf enum value: TRACKING = 9;
     */
    TRACKING = 9,
    /**
     * @generated from protobuf enum value: CLAIM = 10;
     */
    CLAIM = 10
}
/**
 * @generated from protobuf enum api.SeverityLevel
 */
export enum SeverityLevel {
    /**
     * @generated from protobuf enum value: SEVERITYLEVEL_UNKNOWN = 0;
     */
    SEVERITYLEVEL_UNKNOWN = 0,
    /**
     * Send info logs to client
     *
     * @generated from protobuf enum value: INFO = 1;
     */
    INFO = 1,
    /**
     * Send warning logs to client
     *
     * @generated from protobuf enum value: WARNING = 2;
     */
    WARNING = 2,
    /**
     * Send error logs to client
     *
     * @generated from protobuf enum value: ERROR = 3;
     */
    ERROR = 3,
    /**
     * Send security logs to client
     *
     * @generated from protobuf enum value: SECURITY = 4;
     */
    SECURITY = 4
}
/**
 * @generated from protobuf enum api.ResponseStatus
 */
export enum ResponseStatus {
    /**
     * @generated from protobuf enum value: RESPONSESTATUS_UNKNOWN = 0;
     */
    RESPONSESTATUS_UNKNOWN = 0,
    /**
     * @generated from protobuf enum value: OK = 1;
     */
    OK = 1,
    /**
     * @generated from protobuf enum value: INTERNAL_ERROR = 2;
     */
    INTERNAL_ERROR = 2,
    /**
     * @generated from protobuf enum value: PAYLOAD_INCORRECT = 3;
     */
    PAYLOAD_INCORRECT = 3,
    /**
     * @generated from protobuf enum value: OBJECT_ID_NOT_FOUND = 4;
     */
    OBJECT_ID_NOT_FOUND = 4,
    /**
     * @generated from protobuf enum value: PROJECT_NOT_FOUND = 5;
     */
    PROJECT_NOT_FOUND = 5,
    /**
     * @generated from protobuf enum value: UNAUTHORIZED = 6;
     */
    UNAUTHORIZED = 6,
    /**
     * @generated from protobuf enum value: TIMEOUT = 7;
     */
    TIMEOUT = 7
}
/**
 * @generated from protobuf enum api.WorkflowTypeEnum
 */
export enum WorkflowTypeEnum {
    /**
     * @generated from protobuf enum value: CREATE_PROJECT = 0;
     */
    CREATE_PROJECT = 0,
    /**
     * @generated from protobuf enum value: DELETE_PROJECT = 1;
     */
    DELETE_PROJECT = 1,
    /**
     * @generated from protobuf enum value: DELETE_CORE = 2;
     */
    DELETE_CORE = 2,
    /**
     * @generated from protobuf enum value: DELETE_PARTNER_APP = 3;
     */
    DELETE_PARTNER_APP = 3,
    /**
     * @generated from protobuf enum value: DELETE_CONNECTION = 4;
     */
    DELETE_CONNECTION = 4,
    /**
     * @generated from protobuf enum value: BILLING = 5;
     */
    BILLING = 5,
    /**
     * @generated from protobuf enum value: EXTRACT_DATA = 6;
     */
    EXTRACT_DATA = 6,
    /**
     * @generated from protobuf enum value: STOP_FLINK = 7;
     */
    STOP_FLINK = 7,
    /**
     * @generated from protobuf enum value: START_FLINK = 8;
     */
    START_FLINK = 8,
    /**
     * @generated from protobuf enum value: STOP_IDLE_FLINK = 9;
     */
    STOP_IDLE_FLINK = 9,
    /**
     * @generated from protobuf enum value: OPTIMIZE_CLICKHOUSE = 10;
     */
    OPTIMIZE_CLICKHOUSE = 10,
    /**
     * @generated from protobuf enum value: WAKEUP_FLINK = 11;
     */
    WAKEUP_FLINK = 11,
    /**
     * @generated from protobuf enum value: CREATE_ORGANISATION = 12;
     */
    CREATE_ORGANISATION = 12,
    /**
     * @generated from protobuf enum value: DELETE_ORGANISATION = 13;
     */
    DELETE_ORGANISATION = 13,
    /**
     * @generated from protobuf enum value: PROVISION_PULSAR_DOMAIN = 14;
     */
    PROVISION_PULSAR_DOMAIN = 14,
    /**
     * @generated from protobuf enum value: DEPROVISION_PULSAR_DOMAIN = 15;
     */
    DEPROVISION_PULSAR_DOMAIN = 15,
    /**
     * @generated from protobuf enum value: PROVISION_PULSAR_ORGANISATION = 16;
     */
    PROVISION_PULSAR_ORGANISATION = 16,
    /**
     * @generated from protobuf enum value: DEPROVISION_PULSAR_ORGANISATION = 17;
     */
    DEPROVISION_PULSAR_ORGANISATION = 17,
    /**
     * @generated from protobuf enum value: RECOVER_DATA = 18;
     */
    RECOVER_DATA = 18,
    /**
     * @generated from protobuf enum value: DAILY_PROJECTS_OPERATIONS = 19;
     */
    DAILY_PROJECTS_OPERATIONS = 19,
    /**
     * @generated from protobuf enum value: HEALTH_CHECK_WORKFLOWS = 20;
     */
    HEALTH_CHECK_WORKFLOWS = 20,
    /**
     * @generated from protobuf enum value: EXTRACT_KPI_DATA = 21;
     */
    EXTRACT_KPI_DATA = 21,
    /**
     * @generated from protobuf enum value: UPDATE_MATERIALIZED_VIEW = 22;
     */
    UPDATE_MATERIALIZED_VIEW = 22,
    /**
     * @generated from protobuf enum value: PRUNE_DATA = 23;
     */
    PRUNE_DATA = 23,
    /**
     * @generated from protobuf enum value: CHECK_AND_LAUNCH_RECOVER_DATA = 24;
     */
    CHECK_AND_LAUNCH_RECOVER_DATA = 24,
    /**
     * @generated from protobuf enum value: SYNCHRONIZE_RULES_ON_GIT = 25;
     */
    SYNCHRONIZE_RULES_ON_GIT = 25,
    /**
     * @generated from protobuf enum value: ANONYMIZE_DATA = 26;
     */
    ANONYMIZE_DATA = 26
}
/**
 * @generated from protobuf enum api.ModuleWorkflowTypeEnum
 */
export enum ModuleWorkflowTypeEnum {
    /**
     * @generated from protobuf enum value: PRE_WORKFLOW = 0;
     */
    PRE_WORKFLOW = 0,
    /**
     * @generated from protobuf enum value: POST_WORKFLOW = 1;
     */
    POST_WORKFLOW = 1
}
/**
 * @generated from protobuf enum api.WorkflowSemaphore
 */
export enum WorkflowSemaphore {
    /**
     * @generated from protobuf enum value: WS_DB_OPERATION = 0;
     */
    WS_DB_OPERATION = 0,
    /**
     * @generated from protobuf enum value: WS_PROVISIONING = 1;
     */
    WS_PROVISIONING = 1,
    /**
     * @generated from protobuf enum value: WS_RECOVER_DATA = 2;
     */
    WS_RECOVER_DATA = 2,
    /**
     * @generated from protobuf enum value: WS_SYNCHRONIZE_RULES = 3;
     */
    WS_SYNCHRONIZE_RULES = 3,
    /**
     * @generated from protobuf enum value: WS_CHECK_AND_LAUNCH_RECOVER_DATA = 4;
     */
    WS_CHECK_AND_LAUNCH_RECOVER_DATA = 4
}
/**
 * @generated from protobuf enum api.SharePolicy
 */
export enum SharePolicy {
    /**
     * @generated from protobuf enum value: SHARE_POLICY_UNKNOWN = 0;
     */
    SHARE_POLICY_UNKNOWN = 0,
    /**
     * @generated from protobuf enum value: SHARE_POLICY_PRIVATE = 10;
     */
    SHARE_POLICY_PRIVATE = 10,
    /**
     * @generated from protobuf enum value: SHARE_POLICY_PUBLIC = 11;
     */
    SHARE_POLICY_PUBLIC = 11,
    /**
     * @generated from protobuf enum value: SHARE_POLICY_1DAY = 20;
     */
    SHARE_POLICY_1DAY = 20,
    /**
     * @generated from protobuf enum value: SHARE_POLICY_2DAYS = 21;
     */
    SHARE_POLICY_2DAYS = 21,
    /**
     * @generated from protobuf enum value: SHARE_POLICY_4DAYS = 22;
     */
    SHARE_POLICY_4DAYS = 22,
    /**
     * @generated from protobuf enum value: SHARE_POLICY_1WEEK = 23;
     */
    SHARE_POLICY_1WEEK = 23,
    /**
     * @generated from protobuf enum value: SHARE_POLICY_2WEEKS = 24;
     */
    SHARE_POLICY_2WEEKS = 24,
    /**
     * @generated from protobuf enum value: SHARE_POLICY_1MONTH = 25;
     */
    SHARE_POLICY_1MONTH = 25
}
/**
 * @generated from protobuf enum api.EntityType
 */
export enum EntityType {
    /**
     * @generated from protobuf enum value: ENTITY_TYPE_UNKNOWN = 0;
     */
    UNKNOWN = 0,
    /**
     * Trade
     *
     * @generated from protobuf enum value: ENTITY_TYPE_ACTOR = 1;
     */
    ACTOR = 1,
    /**
     * @generated from protobuf enum value: ENTITY_TYPE_EXECUTIONFLOW = 2;
     */
    EXECUTIONFLOW = 2,
    /**
     * @generated from protobuf enum value: ENTITY_TYPE_FAMILY = 3;
     */
    FAMILY = 3,
    /**
     * @generated from protobuf enum value: ENTITY_TYPE_HANDLINGUNIT = 4;
     */
    HANDLINGUNIT = 4,
    /**
     * @generated from protobuf enum value: ENTITY_TYPE_ITEM = 5;
     */
    ITEM = 5,
    /**
     * @generated from protobuf enum value: ENTITY_TYPE_ORDER = 6;
     */
    ORDER = 6,
    /**
     * @generated from protobuf enum value: ENTITY_TYPE_PARTNER = 7;
     */
    PARTNER = 7,
    /**
     * @generated from protobuf enum value: ENTITY_TYPE_STOCK = 8;
     */
    STOCK = 8,
    /**
     * @generated from protobuf enum value: ENTITY_TYPE_TRACKING = 9;
     */
    TRACKING = 9,
    /**
     * @generated from protobuf enum value: ENTITY_TYPE_MOVEMENT = 11;
     */
    MOVEMENT = 11,
    /**
     * Collab
     *
     * @generated from protobuf enum value: ENTITY_TYPE_CLAIM = 10;
     */
    CLAIM = 10
}
/**
 * @generated from protobuf enum api.ClaimEntityType
 */
export enum ClaimEntityType {
    /**
     * @generated from protobuf enum value: CLAIM_ENTITY_TYPE_UNKNOWN = 0;
     */
    UNKNOWN = 0,
    /**
     * Trade
     *
     * @generated from protobuf enum value: CLAIM_ENTITY_TYPE_ACTOR = 1;
     */
    ACTOR = 1,
    /**
     * @generated from protobuf enum value: CLAIM_ENTITY_TYPE_EXECUTIONFLOW = 2;
     */
    EXECUTIONFLOW = 2,
    /**
     * @generated from protobuf enum value: CLAIM_ENTITY_TYPE_HANDLINGUNIT = 3;
     */
    HANDLINGUNIT = 3,
    /**
     * @generated from protobuf enum value: CLAIM_ENTITY_TYPE_ORDER = 4;
     */
    ORDER = 4,
    /**
     * CLAIM_ENTITY_TYPE_TRACKING = 5;
     *
     * @generated from protobuf enum value: CLAIM_ENTITY_TYPE_MOVEMENT = 6;
     */
    MOVEMENT = 6
}
/**
 * @generated from protobuf enum api.ClaimSector
 */
export enum ClaimSector {
    /**
     * @generated from protobuf enum value: CLAIM_SECTOR_UNKNOWN = 0;
     */
    UNKNOWN = 0,
    /**
     * @generated from protobuf enum value: CLAIM_SECTOR_TRANSPORT = 1;
     */
    TRANSPORT = 1,
    /**
     * @generated from protobuf enum value: CLAIM_SECTOR_WAREHOUSING = 2;
     */
    WAREHOUSING = 2,
    /**
     * @generated from protobuf enum value: CLAIM_SECTOR_DELIVERY = 3;
     */
    DELIVERY = 3,
    /**
     * @generated from protobuf enum value: CLAIM_SECTOR_FINANCIAL = 4;
     */
    FINANCIAL = 4,
    /**
     * @generated from protobuf enum value: CLAIM_SECTOR_MISCELLANEOUS = 5;
     */
    MISCELLANEOUS = 5
}
/**
 * Enum representing different statuses of a claim.
 * Includes a "category" for each status which is used to determine the color of the status in the UI.
 * For example : CLAIM_STATUS_START_NEW is in the "START" category and the status is "NEW".
 * A status should be "CLAIM_STATUS_<category>_<status>" with category and status being alphanumeric.
 *
 * @generated from protobuf enum api.ClaimStatus
 */
export enum ClaimStatus {
    /**
     * @generated from protobuf enum value: CLAIM_STATUS_UNKNOWN = 0;
     */
    UNKNOWN = 0,
    /**
     * @generated from protobuf enum value: CLAIM_STATUS_START_NEW = 100;
     */
    START_NEW = 100,
    /**
     * @generated from protobuf enum value: CLAIM_STATUS_START_TODO = 101;
     */
    START_TODO = 101,
    /**
     * @generated from protobuf enum value: CLAIM_STATUS_INPROGRESS_TREATMENT = 200;
     */
    INPROGRESS_TREATMENT = 200,
    /**
     * @generated from protobuf enum value: CLAIM_STATUS_INPROGRESS_RESOLUTION = 201;
     */
    INPROGRESS_RESOLUTION = 201,
    /**
     * @generated from protobuf enum value: CLAIM_STATUS_STANDBY_WAITINGFORINFO = 300;
     */
    STANDBY_WAITINGFORINFO = 300,
    /**
     * @generated from protobuf enum value: CLAIM_STATUS_STANDBY_PAUSE = 301;
     */
    STANDBY_PAUSE = 301,
    /**
     * @generated from protobuf enum value: CLAIM_STATUS_END_CANCELLED = 400;
     */
    END_CANCELLED = 400,
    /**
     * @generated from protobuf enum value: CLAIM_STATUS_END_SOLVED = 401;
     */
    END_SOLVED = 401,
    /**
     * @generated from protobuf enum value: CLAIM_STATUS_END_CLOSED = 402;
     */
    END_CLOSED = 402,
    /**
     * @generated from protobuf enum value: CLAIM_STATUS_END_REJECTED = 403;
     */
    END_REJECTED = 403
}
/**
 * Enum representing the criticality levels of a claim.
 * The higher the criticality, the more important the claim is.
 *
 * @generated from protobuf enum api.ClaimCriticality
 */
export enum ClaimCriticality {
    /**
     * @generated from protobuf enum value: CLAIM_CRITICALITY_UNKNOWN = 0;
     */
    UNKNOWN = 0,
    /**
     * @generated from protobuf enum value: CLAIM_CRITICALITY_LOW = 10;
     */
    LOW = 10,
    /**
     * @generated from protobuf enum value: CLAIM_CRITICALITY_MEDIUM = 20;
     */
    MEDIUM = 20,
    /**
     * @generated from protobuf enum value: CLAIM_CRITICALITY_HIGH = 30;
     */
    HIGH = 30,
    /**
     * @generated from protobuf enum value: CLAIM_CRITICALITY_BLOCKING = 40;
     */
    BLOCKING = 40
}
/**
 * @generated from protobuf enum api.EntityAdminPlatform
 */
export enum EntityAdminPlatform {
    /**
     * @generated from protobuf enum value: PROJECT_PLATFORM = 0;
     */
    PROJECT_PLATFORM = 0,
    /**
     * @generated from protobuf enum value: METRICS = 1;
     */
    METRICS = 1,
    /**
     * @generated from protobuf enum value: WAKEUP_ENTITY = 2;
     */
    WAKEUP_ENTITY = 2,
    /**
     * @generated from protobuf enum value: NOTIFICATION = 3;
     */
    NOTIFICATION = 3
}
/**
 * @generated from protobuf enum api.RecoverType
 */
export enum RecoverType {
    /**
     * @generated from protobuf enum value: RECOVER_OPENSEARCH = 0;
     */
    RECOVER_OPENSEARCH = 0,
    /**
     * @generated from protobuf enum value: RECOVER_CLICKHOUSE = 1;
     */
    RECOVER_CLICKHOUSE = 1,
    /**
     * @generated from protobuf enum value: RECOVER_ALL = 2;
     */
    RECOVER_ALL = 2
}
/**
 * Enum representing the different types of resources which can be created in the platform.
 *
 * @generated from protobuf enum api.ResourceType
 */
export enum ResourceType {
    /**
     * @generated from protobuf enum value: RESOURCE_TYPE_UNKNOWN = 0;
     */
    UNKNOWN = 0,
    /**
     * @generated from protobuf enum value: RESOURCE_TYPE_PLATFORM = 10;
     */
    PLATFORM = 10,
    /**
     * @generated from protobuf enum value: RESOURCE_TYPE_ORGANISATION = 20;
     */
    ORGANISATION = 20,
    /**
     * @generated from protobuf enum value: RESOURCE_TYPE_PROJECT = 30;
     */
    PROJECT = 30,
    /**
     * @generated from protobuf enum value: RESOURCE_TYPE_PARTNERAPP = 40;
     */
    PARTNERAPP = 40,
    /**
     * @generated from protobuf enum value: RESOURCE_TYPE_CONNECTION = 50;
     */
    CONNECTION = 50,
    /**
     * @generated from protobuf enum value: RESOURCE_TYPE_ATTACHMENTTYPE = 60;
     */
    ATTACHMENTTYPE = 60,
    /**
     * @generated from protobuf enum value: RESOURCE_TYPE_CLAIMTYPE = 70;
     */
    CLAIMTYPE = 70
}
// @generated message type with reflection information, may provide speed optimized methods
class RequestHeader$Type extends MessageType<RequestHeader> {
    constructor() {
        super("api.RequestHeader", [
            { no: 1, name: "Project", kind: "scalar", jsonName: "Project", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1", notContains: " " } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Identifier of the project" } } }
        ]);
    }
    create(value?: PartialMessage<RequestHeader>): RequestHeader {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.project = "";
        if (value !== undefined)
            reflectionMergePartial<RequestHeader>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RequestHeader): RequestHeader {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Project = 1 [json_name = "Project"];*/ 1:
                    message.project = 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: RequestHeader, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Project = 1 [json_name = "Project"]; */
        if (message.project !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.project);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.RequestHeader
 */
export const RequestHeader = new RequestHeader$Type();
// @generated message type with reflection information, may provide speed optimized methods
class RequestProjectHeader$Type extends MessageType<RequestProjectHeader> {
    constructor() {
        super("api.RequestProjectHeader", [
            { no: 1, name: "ProjectID", kind: "scalar", jsonName: "ProjectID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1", notContains: " " } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Identifier of the project", example: "\"Your_Project_ID\"" } } },
            { no: 3, name: "CorrelationID", kind: "scalar", jsonName: "CorrelationID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "This ID is sent back into the response header in order to be able to correlate request and response", example: "\"CorrID_A\"" } } },
            { no: 4, name: "TechnicalID", kind: "scalar", jsonName: "TechnicalID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "This ID is sent back into the response header in order to be able to correlate request and response", example: "\"TechID_A\"" } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["ProjectID"] } } });
    }
    create(value?: PartialMessage<RequestProjectHeader>): RequestProjectHeader {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.projectID = "";
        message.correlationID = "";
        message.technicalID = "";
        if (value !== undefined)
            reflectionMergePartial<RequestProjectHeader>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RequestProjectHeader): RequestProjectHeader {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ProjectID = 1 [json_name = "ProjectID"];*/ 1:
                    message.projectID = reader.string();
                    break;
                case /* string CorrelationID = 3 [json_name = "CorrelationID"];*/ 3:
                    message.correlationID = reader.string();
                    break;
                case /* string TechnicalID = 4 [json_name = "TechnicalID"];*/ 4:
                    message.technicalID = 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: RequestProjectHeader, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ProjectID = 1 [json_name = "ProjectID"]; */
        if (message.projectID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.projectID);
        /* string CorrelationID = 3 [json_name = "CorrelationID"]; */
        if (message.correlationID !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.correlationID);
        /* string TechnicalID = 4 [json_name = "TechnicalID"]; */
        if (message.technicalID !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.technicalID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.RequestProjectHeader
 */
export const RequestProjectHeader = new RequestProjectHeader$Type();
// @generated message type with reflection information, may provide speed optimized methods
class RequestOrganisationHeader$Type extends MessageType<RequestOrganisationHeader> {
    constructor() {
        super("api.RequestOrganisationHeader", [
            { no: 1, name: "OrganisationID", kind: "scalar", jsonName: "OrganisationID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1", notContains: " " } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Identifier of the organisation" } } },
            { no: 2, name: "CorrelationID", kind: "scalar", jsonName: "CorrelationID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "This ID is sent back into the response header in order to be able to correlate request and response", example: "\"CorrID_A\"" } } },
            { no: 3, name: "TechnicalID", kind: "scalar", jsonName: "TechnicalID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "This ID is sent back into the response header in order to be able to correlate request and response", example: "\"TechID_A\"" } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["OrganisationID"] } } });
    }
    create(value?: PartialMessage<RequestOrganisationHeader>): RequestOrganisationHeader {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.organisationID = "";
        message.correlationID = "";
        message.technicalID = "";
        if (value !== undefined)
            reflectionMergePartial<RequestOrganisationHeader>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RequestOrganisationHeader): RequestOrganisationHeader {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string OrganisationID = 1 [json_name = "OrganisationID"];*/ 1:
                    message.organisationID = reader.string();
                    break;
                case /* string CorrelationID = 2 [json_name = "CorrelationID"];*/ 2:
                    message.correlationID = reader.string();
                    break;
                case /* string TechnicalID = 3 [json_name = "TechnicalID"];*/ 3:
                    message.technicalID = 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: RequestOrganisationHeader, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string OrganisationID = 1 [json_name = "OrganisationID"]; */
        if (message.organisationID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.organisationID);
        /* string CorrelationID = 2 [json_name = "CorrelationID"]; */
        if (message.correlationID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.correlationID);
        /* string TechnicalID = 3 [json_name = "TechnicalID"]; */
        if (message.technicalID !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.technicalID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.RequestOrganisationHeader
 */
export const RequestOrganisationHeader = new RequestOrganisationHeader$Type();
// @generated message type with reflection information, may provide speed optimized methods
class RequestBucketHeader$Type extends MessageType<RequestBucketHeader> {
    constructor() {
        super("api.RequestBucketHeader", [
            { no: 1, name: "BucketID", kind: "scalar", jsonName: "BucketID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1", notContains: " " } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Identifier of the bucket" } } },
            { no: 2, name: "CorrelationID", kind: "scalar", jsonName: "CorrelationID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "This ID is sent back into the response header in order to be able to correlate request and response", example: "\"CorrID_A\"" } } },
            { no: 3, name: "TechnicalID", kind: "scalar", jsonName: "TechnicalID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "This ID is sent back into the response header in order to be able to correlate request and response", example: "\"TechID_A\"" } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["BucketID"] } } });
    }
    create(value?: PartialMessage<RequestBucketHeader>): RequestBucketHeader {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.bucketID = "";
        message.correlationID = "";
        message.technicalID = "";
        if (value !== undefined)
            reflectionMergePartial<RequestBucketHeader>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RequestBucketHeader): RequestBucketHeader {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string BucketID = 1 [json_name = "BucketID"];*/ 1:
                    message.bucketID = reader.string();
                    break;
                case /* string CorrelationID = 2 [json_name = "CorrelationID"];*/ 2:
                    message.correlationID = reader.string();
                    break;
                case /* string TechnicalID = 3 [json_name = "TechnicalID"];*/ 3:
                    message.technicalID = 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: RequestBucketHeader, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string BucketID = 1 [json_name = "BucketID"]; */
        if (message.bucketID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.bucketID);
        /* string CorrelationID = 2 [json_name = "CorrelationID"]; */
        if (message.correlationID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.correlationID);
        /* string TechnicalID = 3 [json_name = "TechnicalID"]; */
        if (message.technicalID !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.technicalID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.RequestBucketHeader
 */
export const RequestBucketHeader = new RequestBucketHeader$Type();
// @generated message type with reflection information, may provide speed optimized methods
class RequestPartnerAppHeader$Type extends MessageType<RequestPartnerAppHeader> {
    constructor() {
        super("api.RequestPartnerAppHeader", [
            { no: 1, name: "PartnerAppID", kind: "scalar", jsonName: "PartnerAppID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1", notContains: " " } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Identifier of the partnerApp" } } },
            { no: 2, name: "CorrelationID", kind: "scalar", jsonName: "CorrelationID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "This ID is sent back into the response header in order to be able to correlate request and response", example: "\"CorrID_A\"" } } },
            { no: 3, name: "TechnicalID", kind: "scalar", jsonName: "TechnicalID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "This ID is sent back into the response header in order to be able to correlate request and response", example: "\"TechID_A\"" } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["PartnerAppID"] } } });
    }
    create(value?: PartialMessage<RequestPartnerAppHeader>): RequestPartnerAppHeader {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.partnerAppID = "";
        message.correlationID = "";
        message.technicalID = "";
        if (value !== undefined)
            reflectionMergePartial<RequestPartnerAppHeader>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RequestPartnerAppHeader): RequestPartnerAppHeader {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string PartnerAppID = 1 [json_name = "PartnerAppID"];*/ 1:
                    message.partnerAppID = reader.string();
                    break;
                case /* string CorrelationID = 2 [json_name = "CorrelationID"];*/ 2:
                    message.correlationID = reader.string();
                    break;
                case /* string TechnicalID = 3 [json_name = "TechnicalID"];*/ 3:
                    message.technicalID = 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: RequestPartnerAppHeader, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string PartnerAppID = 1 [json_name = "PartnerAppID"]; */
        if (message.partnerAppID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.partnerAppID);
        /* string CorrelationID = 2 [json_name = "CorrelationID"]; */
        if (message.correlationID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.correlationID);
        /* string TechnicalID = 3 [json_name = "TechnicalID"]; */
        if (message.technicalID !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.technicalID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.RequestPartnerAppHeader
 */
export const RequestPartnerAppHeader = new RequestPartnerAppHeader$Type();
// @generated message type with reflection information, may provide speed optimized methods
class RequestConnectionHeader$Type extends MessageType<RequestConnectionHeader> {
    constructor() {
        super("api.RequestConnectionHeader", [
            { no: 1, name: "ConnectionID", kind: "scalar", jsonName: "ConnectionID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1", notContains: " " } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Identifier of the connection" } } },
            { no: 2, name: "CorrelationID", kind: "scalar", jsonName: "CorrelationID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "This ID is sent back into the response header in order to be able to correlate request and response", example: "\"CorrID_A\"" } } },
            { no: 3, name: "TechnicalID", kind: "scalar", jsonName: "TechnicalID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "This ID is sent back into the response header in order to be able to correlate request and response", example: "\"TechID_A\"" } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["ConnectionID"] } } });
    }
    create(value?: PartialMessage<RequestConnectionHeader>): RequestConnectionHeader {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.connectionID = "";
        message.correlationID = "";
        message.technicalID = "";
        if (value !== undefined)
            reflectionMergePartial<RequestConnectionHeader>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RequestConnectionHeader): RequestConnectionHeader {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ConnectionID = 1 [json_name = "ConnectionID"];*/ 1:
                    message.connectionID = reader.string();
                    break;
                case /* string CorrelationID = 2 [json_name = "CorrelationID"];*/ 2:
                    message.correlationID = reader.string();
                    break;
                case /* string TechnicalID = 3 [json_name = "TechnicalID"];*/ 3:
                    message.technicalID = 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: RequestConnectionHeader, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ConnectionID = 1 [json_name = "ConnectionID"]; */
        if (message.connectionID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.connectionID);
        /* string CorrelationID = 2 [json_name = "CorrelationID"]; */
        if (message.correlationID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.correlationID);
        /* string TechnicalID = 3 [json_name = "TechnicalID"]; */
        if (message.technicalID !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.technicalID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.RequestConnectionHeader
 */
export const RequestConnectionHeader = new RequestConnectionHeader$Type();
// @generated message type with reflection information, may provide speed optimized methods
class RequestAttachmentTypeHeader$Type extends MessageType<RequestAttachmentTypeHeader> {
    constructor() {
        super("api.RequestAttachmentTypeHeader", [
            { no: 1, name: "AttachmentTypeID", kind: "scalar", jsonName: "AttachmentTypeID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1", notContains: " " } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Identifier of the attachment type" } } },
            { no: 2, name: "CorrelationID", kind: "scalar", jsonName: "CorrelationID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "This ID is sent back into the response header in order to be able to correlate request and response", example: "\"CorrID_A\"" } } },
            { no: 3, name: "TechnicalID", kind: "scalar", jsonName: "TechnicalID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "This ID is sent back into the response header in order to be able to correlate request and response", example: "\"TechID_A\"" } } }
        ]);
    }
    create(value?: PartialMessage<RequestAttachmentTypeHeader>): RequestAttachmentTypeHeader {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.attachmentTypeID = "";
        message.correlationID = "";
        message.technicalID = "";
        if (value !== undefined)
            reflectionMergePartial<RequestAttachmentTypeHeader>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RequestAttachmentTypeHeader): RequestAttachmentTypeHeader {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string AttachmentTypeID = 1 [json_name = "AttachmentTypeID"];*/ 1:
                    message.attachmentTypeID = reader.string();
                    break;
                case /* string CorrelationID = 2 [json_name = "CorrelationID"];*/ 2:
                    message.correlationID = reader.string();
                    break;
                case /* string TechnicalID = 3 [json_name = "TechnicalID"];*/ 3:
                    message.technicalID = 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: RequestAttachmentTypeHeader, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string AttachmentTypeID = 1 [json_name = "AttachmentTypeID"]; */
        if (message.attachmentTypeID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.attachmentTypeID);
        /* string CorrelationID = 2 [json_name = "CorrelationID"]; */
        if (message.correlationID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.correlationID);
        /* string TechnicalID = 3 [json_name = "TechnicalID"]; */
        if (message.technicalID !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.technicalID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.RequestAttachmentTypeHeader
 */
export const RequestAttachmentTypeHeader = new RequestAttachmentTypeHeader$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ResponseHeader$Type extends MessageType<ResponseHeader> {
    constructor() {
        super("api.ResponseHeader", [
            { no: 1, name: "ProjectID", kind: "scalar", jsonName: "ProjectID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Identifier of the project" } } },
            { no: 2, name: "CorrelationID", kind: "scalar", jsonName: "CorrelationID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "This ID is filled using the request CorrelationID if provided in order to be able to correlate request and response", example: "\"CorrID_A\"" } } },
            { no: 3, name: "TechnicalID", kind: "scalar", jsonName: "TechnicalID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "This ID is filled using the request TechnicalID if provided in order to be able to correlate request and response", example: "\"TechID_A\"" } } }
        ]);
    }
    create(value?: PartialMessage<ResponseHeader>): ResponseHeader {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.projectID = "";
        message.correlationID = "";
        message.technicalID = "";
        if (value !== undefined)
            reflectionMergePartial<ResponseHeader>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResponseHeader): ResponseHeader {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ProjectID = 1 [json_name = "ProjectID"];*/ 1:
                    message.projectID = reader.string();
                    break;
                case /* string CorrelationID = 2 [json_name = "CorrelationID"];*/ 2:
                    message.correlationID = reader.string();
                    break;
                case /* string TechnicalID = 3 [json_name = "TechnicalID"];*/ 3:
                    message.technicalID = 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: ResponseHeader, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ProjectID = 1 [json_name = "ProjectID"]; */
        if (message.projectID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.projectID);
        /* string CorrelationID = 2 [json_name = "CorrelationID"]; */
        if (message.correlationID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.correlationID);
        /* string TechnicalID = 3 [json_name = "TechnicalID"]; */
        if (message.technicalID !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.technicalID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ResponseHeader
 */
export const ResponseHeader = new ResponseHeader$Type();
// @generated message type with reflection information, may provide speed optimized methods
class AttachmentTypeResponseHeader$Type extends MessageType<AttachmentTypeResponseHeader> {
    constructor() {
        super("api.AttachmentTypeResponseHeader", [
            { no: 1, name: "AttachmentTypeID", kind: "scalar", jsonName: "AttachmentTypeID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Identifier of the AttachmentType" } } },
            { no: 2, name: "CorrelationID", kind: "scalar", jsonName: "CorrelationID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "This ID is filled using the request CorrelationID if provided in order to be able to correlate request and response", example: "\"CorrID_A\"" } } },
            { no: 3, name: "TechnicalID", kind: "scalar", jsonName: "TechnicalID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "This ID is filled using the request TechnicalID if provided in order to be able to correlate request and response", example: "\"TechID_A\"" } } }
        ]);
    }
    create(value?: PartialMessage<AttachmentTypeResponseHeader>): AttachmentTypeResponseHeader {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.attachmentTypeID = "";
        message.correlationID = "";
        message.technicalID = "";
        if (value !== undefined)
            reflectionMergePartial<AttachmentTypeResponseHeader>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AttachmentTypeResponseHeader): AttachmentTypeResponseHeader {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string AttachmentTypeID = 1 [json_name = "AttachmentTypeID"];*/ 1:
                    message.attachmentTypeID = reader.string();
                    break;
                case /* string CorrelationID = 2 [json_name = "CorrelationID"];*/ 2:
                    message.correlationID = reader.string();
                    break;
                case /* string TechnicalID = 3 [json_name = "TechnicalID"];*/ 3:
                    message.technicalID = 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: AttachmentTypeResponseHeader, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string AttachmentTypeID = 1 [json_name = "AttachmentTypeID"]; */
        if (message.attachmentTypeID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.attachmentTypeID);
        /* string CorrelationID = 2 [json_name = "CorrelationID"]; */
        if (message.correlationID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.correlationID);
        /* string TechnicalID = 3 [json_name = "TechnicalID"]; */
        if (message.technicalID !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.technicalID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.AttachmentTypeResponseHeader
 */
export const AttachmentTypeResponseHeader = new AttachmentTypeResponseHeader$Type();
// @generated message type with reflection information, may provide speed optimized methods
class QueryHeader$Type extends MessageType<QueryHeader> {
    constructor() {
        super("api.QueryHeader", [
            { no: 1, name: "Project", kind: "scalar", jsonName: "Project", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1", notContains: " " } } } },
            { no: 3, name: "PagingState", kind: "scalar", jsonName: "PagingState", T: 9 /*ScalarType.STRING*/ },
            { no: 4, name: "Limit", kind: "scalar", jsonName: "Limit", T: 9 /*ScalarType.STRING*/ },
            { no: 5, name: "LocalizedLabel", kind: "scalar", jsonName: "LocalizedLabel", T: 8 /*ScalarType.BOOL*/ }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["ProjectID"] } } });
    }
    create(value?: PartialMessage<QueryHeader>): QueryHeader {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.project = "";
        message.pagingState = "";
        message.limit = "";
        message.localizedLabel = false;
        if (value !== undefined)
            reflectionMergePartial<QueryHeader>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryHeader): QueryHeader {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Project = 1 [json_name = "Project"];*/ 1:
                    message.project = reader.string();
                    break;
                case /* string PagingState = 3 [json_name = "PagingState"];*/ 3:
                    message.pagingState = reader.string();
                    break;
                case /* string Limit = 4 [json_name = "Limit"];*/ 4:
                    message.limit = reader.string();
                    break;
                case /* bool LocalizedLabel = 5 [json_name = "LocalizedLabel"];*/ 5:
                    message.localizedLabel = reader.bool();
                    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: QueryHeader, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Project = 1 [json_name = "Project"]; */
        if (message.project !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.project);
        /* string PagingState = 3 [json_name = "PagingState"]; */
        if (message.pagingState !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.pagingState);
        /* string Limit = 4 [json_name = "Limit"]; */
        if (message.limit !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.limit);
        /* bool LocalizedLabel = 5 [json_name = "LocalizedLabel"]; */
        if (message.localizedLabel !== false)
            writer.tag(5, WireType.Varint).bool(message.localizedLabel);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.QueryHeader
 */
export const QueryHeader = new QueryHeader$Type();
// @generated message type with reflection information, may provide speed optimized methods
class QueryProjectHeader$Type extends MessageType<QueryProjectHeader> {
    constructor() {
        super("api.QueryProjectHeader", [
            { no: 1, name: "ProjectID", kind: "scalar", jsonName: "ProjectID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1", notContains: " " } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Identifier of the project" } } },
            { no: 3, name: "PagingState", kind: "scalar", jsonName: "PagingState", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Start position of the query result page. Pagination disabled if equal to -1.", example: "\"50\"" } } },
            { no: 4, name: "Limit", kind: "scalar", jsonName: "Limit", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Length of the query result page", example: "\"50\"" } } },
            { no: 5, name: "LocalizedLabel", kind: "scalar", jsonName: "LocalizedLabel", T: 8 /*ScalarType.BOOL*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Return the message in the user's language" } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["ProjectID"] } } });
    }
    create(value?: PartialMessage<QueryProjectHeader>): QueryProjectHeader {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.projectID = "";
        message.pagingState = "";
        message.limit = "";
        message.localizedLabel = false;
        if (value !== undefined)
            reflectionMergePartial<QueryProjectHeader>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryProjectHeader): QueryProjectHeader {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ProjectID = 1 [json_name = "ProjectID"];*/ 1:
                    message.projectID = reader.string();
                    break;
                case /* string PagingState = 3 [json_name = "PagingState"];*/ 3:
                    message.pagingState = reader.string();
                    break;
                case /* string Limit = 4 [json_name = "Limit"];*/ 4:
                    message.limit = reader.string();
                    break;
                case /* bool LocalizedLabel = 5 [json_name = "LocalizedLabel"];*/ 5:
                    message.localizedLabel = reader.bool();
                    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: QueryProjectHeader, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ProjectID = 1 [json_name = "ProjectID"]; */
        if (message.projectID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.projectID);
        /* string PagingState = 3 [json_name = "PagingState"]; */
        if (message.pagingState !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.pagingState);
        /* string Limit = 4 [json_name = "Limit"]; */
        if (message.limit !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.limit);
        /* bool LocalizedLabel = 5 [json_name = "LocalizedLabel"]; */
        if (message.localizedLabel !== false)
            writer.tag(5, WireType.Varint).bool(message.localizedLabel);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.QueryProjectHeader
 */
export const QueryProjectHeader = new QueryProjectHeader$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ResultHeader$Type extends MessageType<ResultHeader> {
    constructor() {
        super("api.ResultHeader", [
            { no: 1, name: "PagingState", kind: "scalar", jsonName: "PagingState", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Number of elements displayed", example: "\"50\"" } } }
        ]);
    }
    create(value?: PartialMessage<ResultHeader>): ResultHeader {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.pagingState = "";
        if (value !== undefined)
            reflectionMergePartial<ResultHeader>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResultHeader): ResultHeader {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string PagingState = 1 [json_name = "PagingState"];*/ 1:
                    message.pagingState = 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: ResultHeader, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string PagingState = 1 [json_name = "PagingState"]; */
        if (message.pagingState !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.pagingState);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ResultHeader
 */
export const ResultHeader = new ResultHeader$Type();
// @generated message type with reflection information, may provide speed optimized methods
class CommandHeader$Type extends MessageType<CommandHeader> {
    constructor() {
        super("api.CommandHeader", [
            { no: 1, name: "ActionCommand", kind: "scalar", jsonName: "ActionCommand", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "CommandTS", kind: "message", jsonName: "CommandTS", T: () => DateTime },
            { no: 3, name: "Project", kind: "scalar", jsonName: "Project", T: 9 /*ScalarType.STRING*/ },
            { no: 4, name: "FromDomain", kind: "scalar", jsonName: "FromDomain", T: 9 /*ScalarType.STRING*/ },
            { no: 5, name: "FromObject", kind: "scalar", jsonName: "FromObject", T: 9 /*ScalarType.STRING*/ },
            { no: 6, name: "FromRule", kind: "scalar", jsonName: "FromRule", T: 9 /*ScalarType.STRING*/ },
            { no: 7, name: "FromEvent", kind: "scalar", jsonName: "FromEvent", T: 9 /*ScalarType.STRING*/ },
            { no: 8, name: "FromAuthor", kind: "scalar", jsonName: "FromAuthor", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<CommandHeader>): CommandHeader {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.actionCommand = "";
        message.project = "";
        message.fromDomain = "";
        message.fromObject = "";
        message.fromRule = "";
        message.fromEvent = "";
        message.fromAuthor = "";
        if (value !== undefined)
            reflectionMergePartial<CommandHeader>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CommandHeader): CommandHeader {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ActionCommand = 1 [json_name = "ActionCommand"];*/ 1:
                    message.actionCommand = reader.string();
                    break;
                case /* api.DateTime CommandTS = 2 [json_name = "CommandTS"];*/ 2:
                    message.commandTS = DateTime.internalBinaryRead(reader, reader.uint32(), options, message.commandTS);
                    break;
                case /* string Project = 3 [json_name = "Project"];*/ 3:
                    message.project = reader.string();
                    break;
                case /* string FromDomain = 4 [json_name = "FromDomain"];*/ 4:
                    message.fromDomain = reader.string();
                    break;
                case /* string FromObject = 5 [json_name = "FromObject"];*/ 5:
                    message.fromObject = reader.string();
                    break;
                case /* string FromRule = 6 [json_name = "FromRule"];*/ 6:
                    message.fromRule = reader.string();
                    break;
                case /* string FromEvent = 7 [json_name = "FromEvent"];*/ 7:
                    message.fromEvent = reader.string();
                    break;
                case /* string FromAuthor = 8 [json_name = "FromAuthor"];*/ 8:
                    message.fromAuthor = 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: CommandHeader, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ActionCommand = 1 [json_name = "ActionCommand"]; */
        if (message.actionCommand !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.actionCommand);
        /* api.DateTime CommandTS = 2 [json_name = "CommandTS"]; */
        if (message.commandTS)
            DateTime.internalBinaryWrite(message.commandTS, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        /* string Project = 3 [json_name = "Project"]; */
        if (message.project !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.project);
        /* string FromDomain = 4 [json_name = "FromDomain"]; */
        if (message.fromDomain !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.fromDomain);
        /* string FromObject = 5 [json_name = "FromObject"]; */
        if (message.fromObject !== "")
            writer.tag(5, WireType.LengthDelimited).string(message.fromObject);
        /* string FromRule = 6 [json_name = "FromRule"]; */
        if (message.fromRule !== "")
            writer.tag(6, WireType.LengthDelimited).string(message.fromRule);
        /* string FromEvent = 7 [json_name = "FromEvent"]; */
        if (message.fromEvent !== "")
            writer.tag(7, WireType.LengthDelimited).string(message.fromEvent);
        /* string FromAuthor = 8 [json_name = "FromAuthor"]; */
        if (message.fromAuthor !== "")
            writer.tag(8, WireType.LengthDelimited).string(message.fromAuthor);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.CommandHeader
 */
export const CommandHeader = new CommandHeader$Type();
// @generated message type with reflection information, may provide speed optimized methods
class EventHeader$Type extends MessageType<EventHeader> {
    constructor() {
        super("api.EventHeader", [
            { no: 1, name: "InputEvent", kind: "scalar", jsonName: "InputEvent", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 2, name: "EventTS", kind: "message", jsonName: "EventTS", T: () => DateTime, options: { "validate.rules": { message: { required: true } } } },
            { no: 3, name: "Project", kind: "scalar", jsonName: "Project", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 4, name: "Author", kind: "scalar", jsonName: "Author", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } }, "api.viewType": { Types: [{ Context: "*", Type: "user" }] } } },
            { no: 5, name: "EventID", kind: "scalar", jsonName: "EventID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 6, name: "CreatedBy", kind: "scalar", jsonName: "CreatedBy", T: 9 /*ScalarType.STRING*/, options: { "api.indexationType": { Types: [{ Context: "*", Type: "text" }] }, "api.kpiItems": { Items: [{ Context: "Executionflow", Group: "executionflow", Queryable: true }, { Context: "Order", Group: "order", Queryable: true }, { Context: "Claim", Group: "claim", Queryable: true }] }, "api.viewType": { Types: [{ Context: "*", Type: "user" }] } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["InputEvent", "EventTS", "Project", "Author", "EventID"] } } });
    }
    create(value?: PartialMessage<EventHeader>): EventHeader {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.inputEvent = "";
        message.project = "";
        message.author = "";
        message.eventID = "";
        message.createdBy = "";
        if (value !== undefined)
            reflectionMergePartial<EventHeader>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: EventHeader): EventHeader {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string InputEvent = 1 [json_name = "InputEvent"];*/ 1:
                    message.inputEvent = reader.string();
                    break;
                case /* api.DateTime EventTS = 2 [json_name = "EventTS"];*/ 2:
                    message.eventTS = DateTime.internalBinaryRead(reader, reader.uint32(), options, message.eventTS);
                    break;
                case /* string Project = 3 [json_name = "Project"];*/ 3:
                    message.project = reader.string();
                    break;
                case /* string Author = 4 [json_name = "Author"];*/ 4:
                    message.author = reader.string();
                    break;
                case /* string EventID = 5 [json_name = "EventID"];*/ 5:
                    message.eventID = reader.string();
                    break;
                case /* string CreatedBy = 6 [json_name = "CreatedBy"];*/ 6:
                    message.createdBy = 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: EventHeader, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string InputEvent = 1 [json_name = "InputEvent"]; */
        if (message.inputEvent !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.inputEvent);
        /* api.DateTime EventTS = 2 [json_name = "EventTS"]; */
        if (message.eventTS)
            DateTime.internalBinaryWrite(message.eventTS, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        /* string Project = 3 [json_name = "Project"]; */
        if (message.project !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.project);
        /* string Author = 4 [json_name = "Author"]; */
        if (message.author !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.author);
        /* string EventID = 5 [json_name = "EventID"]; */
        if (message.eventID !== "")
            writer.tag(5, WireType.LengthDelimited).string(message.eventID);
        /* string CreatedBy = 6 [json_name = "CreatedBy"]; */
        if (message.createdBy !== "")
            writer.tag(6, WireType.LengthDelimited).string(message.createdBy);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.EventHeader
 */
export const EventHeader = new EventHeader$Type();
// @generated message type with reflection information, may provide speed optimized methods
class EntityID$Type extends MessageType<EntityID> {
    constructor() {
        super("api.EntityID", [
            { no: 2, name: "RefID", kind: "scalar", jsonName: "RefID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1", maxLen: "192" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Your identifier", example: "\"Your_Object_ID\"" } } },
            { no: 3, name: "RefDate", kind: "message", jsonName: "RefDate", T: () => DateTime, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Your effective date. If your event triggers a status change, this date will be used into the status ActualDate" } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["RefID"] } } });
    }
    create(value?: PartialMessage<EntityID>): EntityID {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.refID = "";
        if (value !== undefined)
            reflectionMergePartial<EntityID>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: EntityID): EntityID {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string RefID = 2 [json_name = "RefID"];*/ 2:
                    message.refID = reader.string();
                    break;
                case /* api.DateTime RefDate = 3 [json_name = "RefDate"];*/ 3:
                    message.refDate = DateTime.internalBinaryRead(reader, reader.uint32(), options, message.refDate);
                    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: EntityID, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string RefID = 2 [json_name = "RefID"]; */
        if (message.refID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.refID);
        /* api.DateTime RefDate = 3 [json_name = "RefDate"]; */
        if (message.refDate)
            DateTime.internalBinaryWrite(message.refDate, writer.tag(3, 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.EntityID
 */
export const EntityID = new EntityID$Type();
// @generated message type with reflection information, may provide speed optimized methods
class StockID$Type extends MessageType<StockID> {
    constructor() {
        super("api.StockID", [
            { no: 3, name: "RefDate", kind: "message", jsonName: "RefDate", T: () => DateTime, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Your effective date" } } }
        ]);
    }
    create(value?: PartialMessage<StockID>): StockID {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<StockID>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: StockID): StockID {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.DateTime RefDate = 3 [json_name = "RefDate"];*/ 3:
                    message.refDate = DateTime.internalBinaryRead(reader, reader.uint32(), options, message.refDate);
                    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: StockID, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.DateTime RefDate = 3 [json_name = "RefDate"]; */
        if (message.refDate)
            DateTime.internalBinaryWrite(message.refDate, writer.tag(3, 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.StockID
 */
export const StockID = new StockID$Type();
// @generated message type with reflection information, may provide speed optimized methods
class NoID$Type extends MessageType<NoID> {
    constructor() {
        super("api.NoID", [
            { no: 3, name: "RefDate", kind: "message", jsonName: "RefDate", T: () => DateTime, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Your effective date" } } }
        ]);
    }
    create(value?: PartialMessage<NoID>): NoID {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<NoID>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NoID): NoID {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.DateTime RefDate = 3 [json_name = "RefDate"];*/ 3:
                    message.refDate = DateTime.internalBinaryRead(reader, reader.uint32(), options, message.refDate);
                    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: NoID, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.DateTime RefDate = 3 [json_name = "RefDate"]; */
        if (message.refDate)
            DateTime.internalBinaryWrite(message.refDate, writer.tag(3, 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.NoID
 */
export const NoID = new NoID$Type();
// @generated message type with reflection information, may provide speed optimized methods
class GenericObject$Type extends MessageType<GenericObject> {
    constructor() {
        super("api.GenericObject", [
            { no: 1, name: "LastEventHeader", kind: "message", jsonName: "LastEventHeader", T: () => EventHeader },
            { no: 2, name: "ID", kind: "message", jsonName: "ID", T: () => EntityID },
            { no: 3, name: "Payload", kind: "message", jsonName: "Payload", T: () => GenericObjectPayload }
        ]);
    }
    create(value?: PartialMessage<GenericObject>): GenericObject {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<GenericObject>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GenericObject): GenericObject {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.EventHeader LastEventHeader = 1 [json_name = "LastEventHeader"];*/ 1:
                    message.lastEventHeader = EventHeader.internalBinaryRead(reader, reader.uint32(), options, message.lastEventHeader);
                    break;
                case /* api.EntityID ID = 2 [json_name = "ID"];*/ 2:
                    message.iD = EntityID.internalBinaryRead(reader, reader.uint32(), options, message.iD);
                    break;
                case /* api.GenericObjectPayload Payload = 3 [json_name = "Payload"];*/ 3:
                    message.payload = GenericObjectPayload.internalBinaryRead(reader, reader.uint32(), options, message.payload);
                    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: GenericObject, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.EventHeader LastEventHeader = 1 [json_name = "LastEventHeader"]; */
        if (message.lastEventHeader)
            EventHeader.internalBinaryWrite(message.lastEventHeader, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* api.EntityID ID = 2 [json_name = "ID"]; */
        if (message.iD)
            EntityID.internalBinaryWrite(message.iD, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        /* api.GenericObjectPayload Payload = 3 [json_name = "Payload"]; */
        if (message.payload)
            GenericObjectPayload.internalBinaryWrite(message.payload, writer.tag(3, 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.GenericObject
 */
export const GenericObject = new GenericObject$Type();
// @generated message type with reflection information, may provide speed optimized methods
class GenericObjectPayload$Type extends MessageType<GenericObjectPayload> {
    constructor() {
        super("api.GenericObjectPayload", []);
    }
    create(value?: PartialMessage<GenericObjectPayload>): GenericObjectPayload {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<GenericObjectPayload>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GenericObjectPayload): GenericObjectPayload {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                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: GenericObjectPayload, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.GenericObjectPayload
 */
export const GenericObjectPayload = new GenericObjectPayload$Type();
// @generated message type with reflection information, may provide speed optimized methods
class DateTime$Type extends MessageType<DateTime> {
    constructor() {
        super("api.DateTime", [
            { no: 1, name: "DateTime", kind: "scalar", jsonName: "DateTime", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { dateIso8601: true } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "UTC date/time in <a href='https://en.wikipedia.org/wiki/ISO_8601'>ISO 8601</a> format", example: "\"2023-01-01T00:00:00Z\"" }, "api.indexationType": { Types: [{ Context: "*", Type: "date" }] }, "api.kpiItems": { Items: [{ Context: "Actor", Group: "actor", Queryable: true }, { Context: "Executionflow", Group: "executionflow", Queryable: true }, { Context: "Handlingunit", Group: "handlingunit", Queryable: true }, { Context: "Item", Group: "item", Queryable: true }, { Context: "Movement", Group: "movement", Queryable: true }, { Context: "Order", Group: "order", Queryable: true }, { Context: "Partner", Group: "partner", Queryable: true }, { Context: "Stock", Group: "stock", Queryable: true }, { Context: "Stock", Group: "stock_extended", Queryable: true, CustomType: "SimpleAggregateFunction(anyLast,DateTime)" }, { Context: "Tracking", Group: "tracking", Queryable: true }, { Context: "Claim", Group: "claim", Queryable: true }] }, "api.viewType": { Types: [{ Context: "*", Type: "date" }] } } },
            { no: 2, name: "AuthorTimeZone", kind: "scalar", jsonName: "AuthorTimeZone", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { tzData: true } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Time zone from where the author emits the event in this <a href='https://en.wikipedia.org/wiki/List_of_tz_database_time_zones'>format</a>", example: "\"Europe/Paris\"" } } }
        ]);
    }
    create(value?: PartialMessage<DateTime>): DateTime {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.dateTime = "";
        message.authorTimeZone = "";
        if (value !== undefined)
            reflectionMergePartial<DateTime>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DateTime): DateTime {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string DateTime = 1 [json_name = "DateTime"];*/ 1:
                    message.dateTime = reader.string();
                    break;
                case /* string AuthorTimeZone = 2 [json_name = "AuthorTimeZone"];*/ 2:
                    message.authorTimeZone = 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: DateTime, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string DateTime = 1 [json_name = "DateTime"]; */
        if (message.dateTime !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.dateTime);
        /* string AuthorTimeZone = 2 [json_name = "AuthorTimeZone"]; */
        if (message.authorTimeZone !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.authorTimeZone);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.DateTime
 */
export const DateTime = new DateTime$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ValueType$Type extends MessageType<ValueType> {
    constructor() {
        super("api.ValueType", [
            { no: 1, name: "String", kind: "scalar", jsonName: "String", oneof: "valueType", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { example: "\"Hello World !\"" } } },
            { no: 2, name: "Int", kind: "scalar", jsonName: "Int", oneof: "valueType", T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { example: "42" } } },
            { no: 3, name: "Float", kind: "scalar", jsonName: "Float", oneof: "valueType", T: 2 /*ScalarType.FLOAT*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { example: "3.1415" } } },
            { no: 4, name: "Bool", kind: "scalar", jsonName: "Bool", oneof: "valueType", T: 8 /*ScalarType.BOOL*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { example: "\"true / false\"" } } },
            { no: 5, name: "Timestamp", kind: "message", jsonName: "Timestamp", oneof: "valueType", T: () => DateTime, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": {} } }
        ]);
    }
    create(value?: PartialMessage<ValueType>): ValueType {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.valueType = { oneofKind: undefined };
        if (value !== undefined)
            reflectionMergePartial<ValueType>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ValueType): ValueType {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string String = 1 [json_name = "String"];*/ 1:
                    message.valueType = {
                        oneofKind: "string",
                        string: reader.string()
                    };
                    break;
                case /* int64 Int = 2 [json_name = "Int"];*/ 2:
                    message.valueType = {
                        oneofKind: "int",
                        int: reader.int64().toBigInt()
                    };
                    break;
                case /* float Float = 3 [json_name = "Float"];*/ 3:
                    message.valueType = {
                        oneofKind: "float",
                        float: reader.float()
                    };
                    break;
                case /* bool Bool = 4 [json_name = "Bool"];*/ 4:
                    message.valueType = {
                        oneofKind: "bool",
                        bool: reader.bool()
                    };
                    break;
                case /* api.DateTime Timestamp = 5 [json_name = "Timestamp"];*/ 5:
                    message.valueType = {
                        oneofKind: "timestamp",
                        timestamp: DateTime.internalBinaryRead(reader, reader.uint32(), options, (message.valueType as any).timestamp)
                    };
                    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: ValueType, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string String = 1 [json_name = "String"]; */
        if (message.valueType.oneofKind === "string")
            writer.tag(1, WireType.LengthDelimited).string(message.valueType.string);
        /* int64 Int = 2 [json_name = "Int"]; */
        if (message.valueType.oneofKind === "int")
            writer.tag(2, WireType.Varint).int64(message.valueType.int);
        /* float Float = 3 [json_name = "Float"]; */
        if (message.valueType.oneofKind === "float")
            writer.tag(3, WireType.Bit32).float(message.valueType.float);
        /* bool Bool = 4 [json_name = "Bool"]; */
        if (message.valueType.oneofKind === "bool")
            writer.tag(4, WireType.Varint).bool(message.valueType.bool);
        /* api.DateTime Timestamp = 5 [json_name = "Timestamp"]; */
        if (message.valueType.oneofKind === "timestamp")
            DateTime.internalBinaryWrite(message.valueType.timestamp, writer.tag(5, 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.ValueType
 */
export const ValueType = new ValueType$Type();
// @generated message type with reflection information, may provide speed optimized methods
class Amount$Type extends MessageType<Amount> {
    constructor() {
        super("api.Amount", [
            { no: 1, name: "Value", kind: "scalar", jsonName: "Value", T: 2 /*ScalarType.FLOAT*/, options: { "api.kpiItems": { Items: [{ Context: "Claim", Group: "claim", Queryable: true }] } } },
            { no: 2, name: "Currency", kind: "enum", jsonName: "Currency", T: () => ["api.Currency", Currency], options: { "validate.rules": { enum: { definedOnly: true } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "<a href='https://en.wikipedia.org/wiki/ISO_4217'>ISO 4217</a> currency code", example: "[\"EUR\", \"USD\"]" }, "api.kpiItems": { Items: [{ Context: "Claim", Group: "claim", Queryable: true }] } } }
        ]);
    }
    create(value?: PartialMessage<Amount>): Amount {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.value = 0;
        message.currency = 0;
        if (value !== undefined)
            reflectionMergePartial<Amount>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Amount): Amount {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* float Value = 1 [json_name = "Value"];*/ 1:
                    message.value = reader.float();
                    break;
                case /* api.Currency Currency = 2 [json_name = "Currency"];*/ 2:
                    message.currency = reader.int32();
                    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: Amount, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* float Value = 1 [json_name = "Value"]; */
        if (message.value !== 0)
            writer.tag(1, WireType.Bit32).float(message.value);
        /* api.Currency Currency = 2 [json_name = "Currency"]; */
        if (message.currency !== 0)
            writer.tag(2, WireType.Varint).int32(message.currency);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.Amount
 */
export const Amount = new Amount$Type();
// @generated message type with reflection information, may provide speed optimized methods
class QuantityLength$Type extends MessageType<QuantityLength> {
    constructor() {
        super("api.QuantityLength", [
            { no: 1, name: "Value", kind: "scalar", jsonName: "Value", T: 2 /*ScalarType.FLOAT*/ },
            { no: 2, name: "Unit", kind: "enum", jsonName: "Unit", T: () => ["api.Length", Length] }
        ]);
    }
    create(value?: PartialMessage<QuantityLength>): QuantityLength {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.value = 0;
        message.unit = 0;
        if (value !== undefined)
            reflectionMergePartial<QuantityLength>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QuantityLength): QuantityLength {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* float Value = 1 [json_name = "Value"];*/ 1:
                    message.value = reader.float();
                    break;
                case /* api.Length Unit = 2 [json_name = "Unit"];*/ 2:
                    message.unit = reader.int32();
                    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: QuantityLength, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* float Value = 1 [json_name = "Value"]; */
        if (message.value !== 0)
            writer.tag(1, WireType.Bit32).float(message.value);
        /* api.Length Unit = 2 [json_name = "Unit"]; */
        if (message.unit !== 0)
            writer.tag(2, WireType.Varint).int32(message.unit);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.QuantityLength
 */
export const QuantityLength = new QuantityLength$Type();
// @generated message type with reflection information, may provide speed optimized methods
class QuantityVolume$Type extends MessageType<QuantityVolume> {
    constructor() {
        super("api.QuantityVolume", [
            { no: 1, name: "Value", kind: "scalar", jsonName: "Value", T: 2 /*ScalarType.FLOAT*/, options: { "api.dataRestrictionKey": "Movement,Stock,Executionflow,Handlingunit,Order,Item,Actor,Partner,Tracking", "api.kpiItems": { Items: [{ Context: "Executionflow", Group: "executionflow", Queryable: true }, { Context: "Handlingunit", Group: "handlingunit", Queryable: true }] } } },
            { no: 2, name: "Unit", kind: "enum", jsonName: "Unit", T: () => ["api.Volume", Volume], options: { "api.dataRestrictionKey": "Movement,Stock,Executionflow,Handlingunit,Order,Item,Actor,Partner,Tracking", "api.kpiItems": { Items: [{ Context: "Executionflow", Group: "executionflow", Queryable: true }, { Context: "Handlingunit", Group: "handlingunit", Queryable: true }] } } }
        ]);
    }
    create(value?: PartialMessage<QuantityVolume>): QuantityVolume {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.value = 0;
        message.unit = 0;
        if (value !== undefined)
            reflectionMergePartial<QuantityVolume>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QuantityVolume): QuantityVolume {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* float Value = 1 [json_name = "Value"];*/ 1:
                    message.value = reader.float();
                    break;
                case /* api.Volume Unit = 2 [json_name = "Unit"];*/ 2:
                    message.unit = reader.int32();
                    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: QuantityVolume, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* float Value = 1 [json_name = "Value"]; */
        if (message.value !== 0)
            writer.tag(1, WireType.Bit32).float(message.value);
        /* api.Volume Unit = 2 [json_name = "Unit"]; */
        if (message.unit !== 0)
            writer.tag(2, WireType.Varint).int32(message.unit);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.QuantityVolume
 */
export const QuantityVolume = new QuantityVolume$Type();
// @generated message type with reflection information, may provide speed optimized methods
class QuantityWeight$Type extends MessageType<QuantityWeight> {
    constructor() {
        super("api.QuantityWeight", [
            { no: 1, name: "Value", kind: "scalar", jsonName: "Value", T: 2 /*ScalarType.FLOAT*/, options: { "api.dataRestrictionKey": "Movement,Stock,Executionflow,Handlingunit,Order,Item,Actor,Partner,Tracking", "api.kpiItems": { Items: [{ Context: "Executionflow", Group: "executionflow", Queryable: true }, { Context: "Handlingunit", Group: "handlingunit", Queryable: true }] } } },
            { no: 2, name: "Unit", kind: "enum", jsonName: "Unit", T: () => ["api.Weight", Weight], options: { "api.dataRestrictionKey": "Movement,Stock,Executionflow,Handlingunit,Order,Item,Actor,Partner,Tracking", "api.kpiItems": { Items: [{ Context: "Executionflow", Group: "executionflow", Queryable: true }, { Context: "Handlingunit", Group: "handlingunit", Queryable: true }] } } }
        ]);
    }
    create(value?: PartialMessage<QuantityWeight>): QuantityWeight {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.value = 0;
        message.unit = 0;
        if (value !== undefined)
            reflectionMergePartial<QuantityWeight>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QuantityWeight): QuantityWeight {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* float Value = 1 [json_name = "Value"];*/ 1:
                    message.value = reader.float();
                    break;
                case /* api.Weight Unit = 2 [json_name = "Unit"];*/ 2:
                    message.unit = reader.int32();
                    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: QuantityWeight, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* float Value = 1 [json_name = "Value"]; */
        if (message.value !== 0)
            writer.tag(1, WireType.Bit32).float(message.value);
        /* api.Weight Unit = 2 [json_name = "Unit"]; */
        if (message.unit !== 0)
            writer.tag(2, WireType.Varint).int32(message.unit);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.QuantityWeight
 */
export const QuantityWeight = new QuantityWeight$Type();
// @generated message type with reflection information, may provide speed optimized methods
class QuantityArea$Type extends MessageType<QuantityArea> {
    constructor() {
        super("api.QuantityArea", [
            { no: 1, name: "Value", kind: "scalar", jsonName: "Value", T: 2 /*ScalarType.FLOAT*/ },
            { no: 2, name: "Unit", kind: "enum", jsonName: "Unit", T: () => ["api.Area", Area] }
        ]);
    }
    create(value?: PartialMessage<QuantityArea>): QuantityArea {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.value = 0;
        message.unit = 0;
        if (value !== undefined)
            reflectionMergePartial<QuantityArea>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QuantityArea): QuantityArea {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* float Value = 1 [json_name = "Value"];*/ 1:
                    message.value = reader.float();
                    break;
                case /* api.Area Unit = 2 [json_name = "Unit"];*/ 2:
                    message.unit = reader.int32();
                    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: QuantityArea, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* float Value = 1 [json_name = "Value"]; */
        if (message.value !== 0)
            writer.tag(1, WireType.Bit32).float(message.value);
        /* api.Area Unit = 2 [json_name = "Unit"]; */
        if (message.unit !== 0)
            writer.tag(2, WireType.Varint).int32(message.unit);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.QuantityArea
 */
export const QuantityArea = new QuantityArea$Type();
// @generated message type with reflection information, may provide speed optimized methods
class QuantityUnit$Type extends MessageType<QuantityUnit> {
    constructor() {
        super("api.QuantityUnit", [
            { no: 1, name: "Value", kind: "scalar", jsonName: "Value", T: 2 /*ScalarType.FLOAT*/ },
            { no: 2, name: "Unit", kind: "enum", jsonName: "Unit", T: () => ["api.DimensionLess", DimensionLess] }
        ]);
    }
    create(value?: PartialMessage<QuantityUnit>): QuantityUnit {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.value = 0;
        message.unit = 0;
        if (value !== undefined)
            reflectionMergePartial<QuantityUnit>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QuantityUnit): QuantityUnit {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* float Value = 1 [json_name = "Value"];*/ 1:
                    message.value = reader.float();
                    break;
                case /* api.DimensionLess Unit = 2 [json_name = "Unit"];*/ 2:
                    message.unit = reader.int32();
                    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: QuantityUnit, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* float Value = 1 [json_name = "Value"]; */
        if (message.value !== 0)
            writer.tag(1, WireType.Bit32).float(message.value);
        /* api.DimensionLess Unit = 2 [json_name = "Unit"]; */
        if (message.unit !== 0)
            writer.tag(2, WireType.Varint).int32(message.unit);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.QuantityUnit
 */
export const QuantityUnit = new QuantityUnit$Type();
// @generated message type with reflection information, may provide speed optimized methods
class DomainDescriptionRequest$Type extends MessageType<DomainDescriptionRequest> {
    constructor() {
        super("api.DomainDescriptionRequest", []);
    }
    create(value?: PartialMessage<DomainDescriptionRequest>): DomainDescriptionRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<DomainDescriptionRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DomainDescriptionRequest): DomainDescriptionRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                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: DomainDescriptionRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.DomainDescriptionRequest
 */
export const DomainDescriptionRequest = new DomainDescriptionRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class DomainDescriptionResponse$Type extends MessageType<DomainDescriptionResponse> {
    constructor() {
        super("api.DomainDescriptionResponse", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => ResponseHeader },
            { no: 2, name: "Payload", kind: "message", jsonName: "Payload", T: () => DomainDescription }
        ]);
    }
    create(value?: PartialMessage<DomainDescriptionResponse>): DomainDescriptionResponse {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<DomainDescriptionResponse>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DomainDescriptionResponse): DomainDescriptionResponse {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.ResponseHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = ResponseHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* api.DomainDescription Payload = 2 [json_name = "Payload"];*/ 2:
                    message.payload = DomainDescription.internalBinaryRead(reader, reader.uint32(), options, message.payload);
                    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: DomainDescriptionResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.ResponseHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            ResponseHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* api.DomainDescription Payload = 2 [json_name = "Payload"]; */
        if (message.payload)
            DomainDescription.internalBinaryWrite(message.payload, 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.DomainDescriptionResponse
 */
export const DomainDescriptionResponse = new DomainDescriptionResponse$Type();
// @generated message type with reflection information, may provide speed optimized methods
class DomainDescription$Type extends MessageType<DomainDescription> {
    constructor() {
        super("api.DomainDescription", [
            { no: 1, name: "Name", kind: "scalar", jsonName: "Name", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "ObjectDescription", kind: "message", jsonName: "ObjectDescription", repeat: 1 /*RepeatType.PACKED*/, T: () => ObjectDescription }
        ]);
    }
    create(value?: PartialMessage<DomainDescription>): DomainDescription {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.name = "";
        message.objectDescription = [];
        if (value !== undefined)
            reflectionMergePartial<DomainDescription>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DomainDescription): DomainDescription {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Name = 1 [json_name = "Name"];*/ 1:
                    message.name = reader.string();
                    break;
                case /* repeated api.ObjectDescription ObjectDescription = 2 [json_name = "ObjectDescription"];*/ 2:
                    message.objectDescription.push(ObjectDescription.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: DomainDescription, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Name = 1 [json_name = "Name"]; */
        if (message.name !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.name);
        /* repeated api.ObjectDescription ObjectDescription = 2 [json_name = "ObjectDescription"]; */
        for (let i = 0; i < message.objectDescription.length; i++)
            ObjectDescription.internalBinaryWrite(message.objectDescription[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.DomainDescription
 */
export const DomainDescription = new DomainDescription$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ObjectDescription$Type extends MessageType<ObjectDescription> {
    constructor() {
        super("api.ObjectDescription", [
            { no: 1, name: "Name", kind: "scalar", jsonName: "Name", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "ApiAction", kind: "message", jsonName: "ApiAction", repeat: 1 /*RepeatType.PACKED*/, T: () => ObjectAction },
            { no: 3, name: "PayloadJSON", kind: "scalar", jsonName: "PayloadJSON", T: 9 /*ScalarType.STRING*/ },
            { no: 4, name: "ApiInput", kind: "message", jsonName: "ApiInput", repeat: 1 /*RepeatType.PACKED*/, T: () => ObjectAction },
            { no: 5, name: "ApiQuery", kind: "message", jsonName: "ApiQuery", repeat: 1 /*RepeatType.PACKED*/, T: () => ObjectAction }
        ]);
    }
    create(value?: PartialMessage<ObjectDescription>): ObjectDescription {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.name = "";
        message.apiAction = [];
        message.payloadJSON = "";
        message.apiInput = [];
        message.apiQuery = [];
        if (value !== undefined)
            reflectionMergePartial<ObjectDescription>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ObjectDescription): ObjectDescription {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Name = 1 [json_name = "Name"];*/ 1:
                    message.name = reader.string();
                    break;
                case /* repeated api.ObjectAction ApiAction = 2 [json_name = "ApiAction"];*/ 2:
                    message.apiAction.push(ObjectAction.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* string PayloadJSON = 3 [json_name = "PayloadJSON"];*/ 3:
                    message.payloadJSON = reader.string();
                    break;
                case /* repeated api.ObjectAction ApiInput = 4 [json_name = "ApiInput"];*/ 4:
                    message.apiInput.push(ObjectAction.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* repeated api.ObjectAction ApiQuery = 5 [json_name = "ApiQuery"];*/ 5:
                    message.apiQuery.push(ObjectAction.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: ObjectDescription, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Name = 1 [json_name = "Name"]; */
        if (message.name !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.name);
        /* repeated api.ObjectAction ApiAction = 2 [json_name = "ApiAction"]; */
        for (let i = 0; i < message.apiAction.length; i++)
            ObjectAction.internalBinaryWrite(message.apiAction[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        /* string PayloadJSON = 3 [json_name = "PayloadJSON"]; */
        if (message.payloadJSON !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.payloadJSON);
        /* repeated api.ObjectAction ApiInput = 4 [json_name = "ApiInput"]; */
        for (let i = 0; i < message.apiInput.length; i++)
            ObjectAction.internalBinaryWrite(message.apiInput[i], writer.tag(4, WireType.LengthDelimited).fork(), options).join();
        /* repeated api.ObjectAction ApiQuery = 5 [json_name = "ApiQuery"]; */
        for (let i = 0; i < message.apiQuery.length; i++)
            ObjectAction.internalBinaryWrite(message.apiQuery[i], writer.tag(5, 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.ObjectDescription
 */
export const ObjectDescription = new ObjectDescription$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ObjectAction$Type extends MessageType<ObjectAction> {
    constructor() {
        super("api.ObjectAction", [
            { no: 1, name: "Name", kind: "scalar", jsonName: "Name", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "JsonTemplate", kind: "scalar", jsonName: "JsonTemplate", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<ObjectAction>): ObjectAction {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.name = "";
        message.jsonTemplate = "";
        if (value !== undefined)
            reflectionMergePartial<ObjectAction>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ObjectAction): ObjectAction {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Name = 1 [json_name = "Name"];*/ 1:
                    message.name = reader.string();
                    break;
                case /* string JsonTemplate = 2 [json_name = "JsonTemplate"];*/ 2:
                    message.jsonTemplate = 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: ObjectAction, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Name = 1 [json_name = "Name"]; */
        if (message.name !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.name);
        /* string JsonTemplate = 2 [json_name = "JsonTemplate"]; */
        if (message.jsonTemplate !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.jsonTemplate);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ObjectAction
 */
export const ObjectAction = new ObjectAction$Type();
// @generated message type with reflection information, may provide speed optimized methods
class MetadataElement$Type extends MessageType<MetadataElement> {
    constructor() {
        super("api.MetadataElement", [
            { no: 1, name: "Key", kind: "scalar", jsonName: "Key", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Key of the Metadata and Segmentation of the project" } } },
            { no: 2, name: "Value", kind: "message", jsonName: "Value", T: () => ValueType, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Value of the Metadata and Segmentation of the project" } } }
        ]);
    }
    create(value?: PartialMessage<MetadataElement>): MetadataElement {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.key = "";
        if (value !== undefined)
            reflectionMergePartial<MetadataElement>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MetadataElement): MetadataElement {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Key = 1 [json_name = "Key"];*/ 1:
                    message.key = reader.string();
                    break;
                case /* api.ValueType Value = 2 [json_name = "Value"];*/ 2:
                    message.value = ValueType.internalBinaryRead(reader, reader.uint32(), options, message.value);
                    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: MetadataElement, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Key = 1 [json_name = "Key"]; */
        if (message.key !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.key);
        /* api.ValueType Value = 2 [json_name = "Value"]; */
        if (message.value)
            ValueType.internalBinaryWrite(message.value, 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.MetadataElement
 */
export const MetadataElement = new MetadataElement$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SimpleFilter$Type extends MessageType<SimpleFilter> {
    constructor() {
        super("api.SimpleFilter", [
            { no: 1, name: "Attribute", kind: "scalar", jsonName: "Attribute", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxLen: "250" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Filter path", example: "\"ID.RefID\"" } } },
            { no: 2, name: "Value", kind: "scalar", jsonName: "Value", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxLen: "250" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Use this parameter if only one value" } } },
            { no: 3, name: "Values", kind: "scalar", jsonName: "Values", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { repeated: { items: { string: { maxLen: "250" } } } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Use this parameter if more than one value" } } },
            { no: 4, name: "Operator", kind: "scalar", jsonName: "Operator", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxLen: "50" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Allowed values : \"\", \"not\"" } } },
            { no: 5, name: "CombinedID", kind: "scalar", jsonName: "CombinedID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxLen: "250" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Metadata's key" } } }
        ]);
    }
    create(value?: PartialMessage<SimpleFilter>): SimpleFilter {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.attribute = "";
        message.value = "";
        message.values = [];
        message.operator = "";
        message.combinedID = "";
        if (value !== undefined)
            reflectionMergePartial<SimpleFilter>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SimpleFilter): SimpleFilter {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Attribute = 1 [json_name = "Attribute"];*/ 1:
                    message.attribute = reader.string();
                    break;
                case /* string Value = 2 [json_name = "Value"];*/ 2:
                    message.value = reader.string();
                    break;
                case /* repeated string Values = 3 [json_name = "Values"];*/ 3:
                    message.values.push(reader.string());
                    break;
                case /* string Operator = 4 [json_name = "Operator"];*/ 4:
                    message.operator = reader.string();
                    break;
                case /* string CombinedID = 5 [json_name = "CombinedID"];*/ 5:
                    message.combinedID = 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: SimpleFilter, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Attribute = 1 [json_name = "Attribute"]; */
        if (message.attribute !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.attribute);
        /* string Value = 2 [json_name = "Value"]; */
        if (message.value !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.value);
        /* repeated string Values = 3 [json_name = "Values"]; */
        for (let i = 0; i < message.values.length; i++)
            writer.tag(3, WireType.LengthDelimited).string(message.values[i]);
        /* string Operator = 4 [json_name = "Operator"]; */
        if (message.operator !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.operator);
        /* string CombinedID = 5 [json_name = "CombinedID"]; */
        if (message.combinedID !== "")
            writer.tag(5, WireType.LengthDelimited).string(message.combinedID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.SimpleFilter
 */
export const SimpleFilter = new SimpleFilter$Type();
// @generated message type with reflection information, may provide speed optimized methods
class CombinedFilter$Type extends MessageType<CombinedFilter> {
    constructor() {
        super("api.CombinedFilter", [
            { no: 1, name: "Path", kind: "scalar", jsonName: "Path", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "simpleFilters", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => SimpleFilter, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Simple filter structure for Find query" } } },
            { no: 3, name: "rangeFilters", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => RangeFilter, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Range filter structure for Find query" } } },
            { no: 4, name: "CombinedID", kind: "scalar", jsonName: "CombinedID", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<CombinedFilter>): CombinedFilter {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.path = "";
        message.simpleFilters = [];
        message.rangeFilters = [];
        message.combinedID = "";
        if (value !== undefined)
            reflectionMergePartial<CombinedFilter>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CombinedFilter): CombinedFilter {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Path = 1 [json_name = "Path"];*/ 1:
                    message.path = reader.string();
                    break;
                case /* repeated api.SimpleFilter simpleFilters */ 2:
                    message.simpleFilters.push(SimpleFilter.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* repeated api.RangeFilter rangeFilters */ 3:
                    message.rangeFilters.push(RangeFilter.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* string CombinedID = 4 [json_name = "CombinedID"];*/ 4:
                    message.combinedID = 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: CombinedFilter, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Path = 1 [json_name = "Path"]; */
        if (message.path !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.path);
        /* repeated api.SimpleFilter simpleFilters = 2; */
        for (let i = 0; i < message.simpleFilters.length; i++)
            SimpleFilter.internalBinaryWrite(message.simpleFilters[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        /* repeated api.RangeFilter rangeFilters = 3; */
        for (let i = 0; i < message.rangeFilters.length; i++)
            RangeFilter.internalBinaryWrite(message.rangeFilters[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();
        /* string CombinedID = 4 [json_name = "CombinedID"]; */
        if (message.combinedID !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.combinedID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.CombinedFilter
 */
export const CombinedFilter = new CombinedFilter$Type();
// @generated message type with reflection information, may provide speed optimized methods
class RangeFilter$Type extends MessageType<RangeFilter> {
    constructor() {
        super("api.RangeFilter", [
            { no: 1, name: "Attribute", kind: "scalar", jsonName: "Attribute", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxLen: "250" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Filter path", example: "\"ID.RefID\"" } } },
            { no: 2, name: "valueLt", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxLen: "250" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Maximum value" } } },
            { no: 3, name: "valueGt", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxLen: "250" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Minimum value" } } },
            { no: 4, name: "CombinedID", kind: "scalar", jsonName: "CombinedID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxLen: "250" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Metadata's key" } } }
        ]);
    }
    create(value?: PartialMessage<RangeFilter>): RangeFilter {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.attribute = "";
        message.valueLt = "";
        message.valueGt = "";
        message.combinedID = "";
        if (value !== undefined)
            reflectionMergePartial<RangeFilter>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RangeFilter): RangeFilter {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Attribute = 1 [json_name = "Attribute"];*/ 1:
                    message.attribute = reader.string();
                    break;
                case /* string valueLt */ 2:
                    message.valueLt = reader.string();
                    break;
                case /* string valueGt */ 3:
                    message.valueGt = reader.string();
                    break;
                case /* string CombinedID = 4 [json_name = "CombinedID"];*/ 4:
                    message.combinedID = 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: RangeFilter, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Attribute = 1 [json_name = "Attribute"]; */
        if (message.attribute !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.attribute);
        /* string valueLt = 2; */
        if (message.valueLt !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.valueLt);
        /* string valueGt = 3; */
        if (message.valueGt !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.valueGt);
        /* string CombinedID = 4 [json_name = "CombinedID"]; */
        if (message.combinedID !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.combinedID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.RangeFilter
 */
export const RangeFilter = new RangeFilter$Type();
// @generated message type with reflection information, may provide speed optimized methods
class BlockFilter$Type extends MessageType<BlockFilter> {
    constructor() {
        super("api.BlockFilter", [
            { no: 1, name: "simpleFilters", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => SimpleFilter, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Simple filter structure for Find query" } } },
            { no: 2, name: "rangeFilters", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => RangeFilter, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Range filter structure for Find query" } } },
            { no: 3, name: "BlockFilters", kind: "message", jsonName: "BlockFilters", repeat: 1 /*RepeatType.PACKED*/, T: () => BlockFilter, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Block filter structure for Find query" } } }
        ]);
    }
    create(value?: PartialMessage<BlockFilter>): BlockFilter {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.simpleFilters = [];
        message.rangeFilters = [];
        message.blockFilters = [];
        if (value !== undefined)
            reflectionMergePartial<BlockFilter>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BlockFilter): BlockFilter {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated api.SimpleFilter simpleFilters */ 1:
                    message.simpleFilters.push(SimpleFilter.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* repeated api.RangeFilter rangeFilters */ 2:
                    message.rangeFilters.push(RangeFilter.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* repeated api.BlockFilter BlockFilters = 3 [json_name = "BlockFilters"];*/ 3:
                    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: BlockFilter, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated api.SimpleFilter simpleFilters = 1; */
        for (let i = 0; i < message.simpleFilters.length; i++)
            SimpleFilter.internalBinaryWrite(message.simpleFilters[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* repeated api.RangeFilter rangeFilters = 2; */
        for (let i = 0; i < message.rangeFilters.length; i++)
            RangeFilter.internalBinaryWrite(message.rangeFilters[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        /* repeated api.BlockFilter BlockFilters = 3 [json_name = "BlockFilters"]; */
        for (let i = 0; i < message.blockFilters.length; i++)
            BlockFilter.internalBinaryWrite(message.blockFilters[i], writer.tag(3, 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.BlockFilter
 */
export const BlockFilter = new BlockFilter$Type();
// @generated message type with reflection information, may provide speed optimized methods
class MatchField$Type extends MessageType<MatchField> {
    constructor() {
        super("api.MatchField", [
            { no: 1, name: "Attribute", kind: "scalar", jsonName: "Attribute", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Filter path" } } },
            { no: 2, name: "AttributeCombined", kind: "scalar", jsonName: "AttributeCombined", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Filter path for metadata filter" } } },
            { no: 3, name: "CombinedID", kind: "scalar", jsonName: "CombinedID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Metadata's key" } } }
        ]);
    }
    create(value?: PartialMessage<MatchField>): MatchField {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.attribute = "";
        message.attributeCombined = "";
        message.combinedID = "";
        if (value !== undefined)
            reflectionMergePartial<MatchField>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MatchField): MatchField {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Attribute = 1 [json_name = "Attribute"];*/ 1:
                    message.attribute = reader.string();
                    break;
                case /* string AttributeCombined = 2 [json_name = "AttributeCombined"];*/ 2:
                    message.attributeCombined = reader.string();
                    break;
                case /* string CombinedID = 3 [json_name = "CombinedID"];*/ 3:
                    message.combinedID = 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: MatchField, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Attribute = 1 [json_name = "Attribute"]; */
        if (message.attribute !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.attribute);
        /* string AttributeCombined = 2 [json_name = "AttributeCombined"]; */
        if (message.attributeCombined !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.attributeCombined);
        /* string CombinedID = 3 [json_name = "CombinedID"]; */
        if (message.combinedID !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.combinedID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.MatchField
 */
export const MatchField = new MatchField$Type();
// @generated message type with reflection information, may provide speed optimized methods
class MatchFieldResult$Type extends MessageType<MatchFieldResult> {
    constructor() {
        super("api.MatchFieldResult", [
            { no: 1, name: "Attribute", kind: "scalar", jsonName: "Attribute", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "Values", kind: "scalar", jsonName: "Values", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<MatchFieldResult>): MatchFieldResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.attribute = "";
        message.values = [];
        if (value !== undefined)
            reflectionMergePartial<MatchFieldResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MatchFieldResult): MatchFieldResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Attribute = 1 [json_name = "Attribute"];*/ 1:
                    message.attribute = reader.string();
                    break;
                case /* repeated string Values = 2 [json_name = "Values"];*/ 2:
                    message.values.push(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: MatchFieldResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Attribute = 1 [json_name = "Attribute"]; */
        if (message.attribute !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.attribute);
        /* repeated string Values = 2 [json_name = "Values"]; */
        for (let i = 0; i < message.values.length; i++)
            writer.tag(2, WireType.LengthDelimited).string(message.values[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.MatchFieldResult
 */
export const MatchFieldResult = new MatchFieldResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ErrorDetail$Type extends MessageType<ErrorDetail> {
    constructor() {
        super("api.ErrorDetail", [
            { no: 1, name: "Key", kind: "scalar", jsonName: "Key", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "Value", kind: "scalar", jsonName: "Value", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<ErrorDetail>): ErrorDetail {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.key = "";
        message.value = "";
        if (value !== undefined)
            reflectionMergePartial<ErrorDetail>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ErrorDetail): ErrorDetail {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Key = 1 [json_name = "Key"];*/ 1:
                    message.key = reader.string();
                    break;
                case /* string Value = 2 [json_name = "Value"];*/ 2:
                    message.value = 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: ErrorDetail, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Key = 1 [json_name = "Key"]; */
        if (message.key !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.key);
        /* string Value = 2 [json_name = "Value"]; */
        if (message.value !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.value);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ErrorDetail
 */
export const ErrorDetail = new ErrorDetail$Type();
// @generated message type with reflection information, may provide speed optimized methods
class Errors$Type extends MessageType<Errors> {
    constructor() {
        super("api.Errors", [
            { no: 1, name: "ErrorCode", kind: "scalar", jsonName: "ErrorCode", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "ErrorTrace", kind: "scalar", jsonName: "ErrorTrace", T: 9 /*ScalarType.STRING*/ },
            { no: 3, name: "ErrorDetails", kind: "message", jsonName: "ErrorDetails", repeat: 1 /*RepeatType.PACKED*/, T: () => ErrorDetail },
            { no: 4, name: "ContextType", kind: "scalar", jsonName: "ContextType", T: 9 /*ScalarType.STRING*/ },
            { no: 5, name: "ContextProcess", kind: "scalar", jsonName: "ContextProcess", T: 9 /*ScalarType.STRING*/ },
            { no: 6, name: "ContextPayload", kind: "scalar", jsonName: "ContextPayload", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<Errors>): Errors {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.errorCode = "";
        message.errorTrace = "";
        message.errorDetails = [];
        message.contextType = "";
        message.contextProcess = "";
        message.contextPayload = "";
        if (value !== undefined)
            reflectionMergePartial<Errors>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Errors): Errors {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ErrorCode = 1 [json_name = "ErrorCode"];*/ 1:
                    message.errorCode = reader.string();
                    break;
                case /* string ErrorTrace = 2 [json_name = "ErrorTrace"];*/ 2:
                    message.errorTrace = reader.string();
                    break;
                case /* repeated api.ErrorDetail ErrorDetails = 3 [json_name = "ErrorDetails"];*/ 3:
                    message.errorDetails.push(ErrorDetail.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* string ContextType = 4 [json_name = "ContextType"];*/ 4:
                    message.contextType = reader.string();
                    break;
                case /* string ContextProcess = 5 [json_name = "ContextProcess"];*/ 5:
                    message.contextProcess = reader.string();
                    break;
                case /* string ContextPayload = 6 [json_name = "ContextPayload"];*/ 6:
                    message.contextPayload = 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: Errors, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ErrorCode = 1 [json_name = "ErrorCode"]; */
        if (message.errorCode !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.errorCode);
        /* string ErrorTrace = 2 [json_name = "ErrorTrace"]; */
        if (message.errorTrace !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.errorTrace);
        /* repeated api.ErrorDetail ErrorDetails = 3 [json_name = "ErrorDetails"]; */
        for (let i = 0; i < message.errorDetails.length; i++)
            ErrorDetail.internalBinaryWrite(message.errorDetails[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();
        /* string ContextType = 4 [json_name = "ContextType"]; */
        if (message.contextType !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.contextType);
        /* string ContextProcess = 5 [json_name = "ContextProcess"]; */
        if (message.contextProcess !== "")
            writer.tag(5, WireType.LengthDelimited).string(message.contextProcess);
        /* string ContextPayload = 6 [json_name = "ContextPayload"]; */
        if (message.contextPayload !== "")
            writer.tag(6, WireType.LengthDelimited).string(message.contextPayload);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.Errors
 */
export const Errors = new Errors$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ParamElement$Type extends MessageType<ParamElement> {
    constructor() {
        super("api.ParamElement", [
            { no: 1, name: "Key", kind: "scalar", jsonName: "Key", T: 9 /*ScalarType.STRING*/ },
            { no: 3, name: "Value", kind: "message", jsonName: "Value", T: () => ValueType }
        ]);
    }
    create(value?: PartialMessage<ParamElement>): ParamElement {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.key = "";
        if (value !== undefined)
            reflectionMergePartial<ParamElement>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ParamElement): ParamElement {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Key = 1 [json_name = "Key"];*/ 1:
                    message.key = reader.string();
                    break;
                case /* api.ValueType Value = 3 [json_name = "Value"];*/ 3:
                    message.value = ValueType.internalBinaryRead(reader, reader.uint32(), options, message.value);
                    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: ParamElement, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Key = 1 [json_name = "Key"]; */
        if (message.key !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.key);
        /* api.ValueType Value = 3 [json_name = "Value"]; */
        if (message.value)
            ValueType.internalBinaryWrite(message.value, writer.tag(3, 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.ParamElement
 */
export const ParamElement = new ParamElement$Type();
// @generated message type with reflection information, may provide speed optimized methods
class LabelStructure$Type extends MessageType<LabelStructure> {
    constructor() {
        super("api.LabelStructure", [
            { no: 1, name: "Code", kind: "scalar", jsonName: "Code", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Code of the message" }, "api.indexationType": { Types: [{ Context: "*", Type: "generatedText" }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortText" }] } } },
            { no: 2, name: "Label", kind: "scalar", jsonName: "Label", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Label of the message" } } },
            { no: 3, name: "Params", kind: "message", jsonName: "Params", repeat: 1 /*RepeatType.PACKED*/, T: () => ParamElement, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Parameters for label" }, "api.aggKey": "Key" } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Code", "Label"] } } });
    }
    create(value?: PartialMessage<LabelStructure>): LabelStructure {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.code = "";
        message.label = "";
        message.params = [];
        if (value !== undefined)
            reflectionMergePartial<LabelStructure>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LabelStructure): LabelStructure {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Code = 1 [json_name = "Code"];*/ 1:
                    message.code = reader.string();
                    break;
                case /* string Label = 2 [json_name = "Label"];*/ 2:
                    message.label = reader.string();
                    break;
                case /* repeated api.ParamElement Params = 3 [json_name = "Params"];*/ 3:
                    message.params.push(ParamElement.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: LabelStructure, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Code = 1 [json_name = "Code"]; */
        if (message.code !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.code);
        /* string Label = 2 [json_name = "Label"]; */
        if (message.label !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.label);
        /* repeated api.ParamElement Params = 3 [json_name = "Params"]; */
        for (let i = 0; i < message.params.length; i++)
            ParamElement.internalBinaryWrite(message.params[i], writer.tag(3, 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.LabelStructure
 */
export const LabelStructure = new LabelStructure$Type();
// @generated message type with reflection information, may provide speed optimized methods
class CoreEndpoint$Type extends MessageType<CoreEndpoint> {
    constructor() {
        super("api.CoreEndpoint", [
            { no: 1, name: "RestEndpoint", kind: "scalar", jsonName: "RestEndpoint", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "GrpcInputEndpoint", kind: "scalar", jsonName: "GrpcInputEndpoint", T: 9 /*ScalarType.STRING*/ },
            { no: 3, name: "GrpcQueryEndpoint", kind: "scalar", jsonName: "GrpcQueryEndpoint", T: 9 /*ScalarType.STRING*/ },
            { no: 4, name: "GrpcGcsEndpoint", kind: "scalar", jsonName: "GrpcGcsEndpoint", T: 9 /*ScalarType.STRING*/ },
            { no: 5, name: "GrpcLoggerEndpoint", kind: "scalar", jsonName: "GrpcLoggerEndpoint", T: 9 /*ScalarType.STRING*/ },
            { no: 6, name: "GrpcProjectModelEndpoint", kind: "scalar", jsonName: "GrpcProjectModelEndpoint", T: 9 /*ScalarType.STRING*/ },
            { no: 7, name: "GrpcCoreCollabInputEndpoint", kind: "scalar", jsonName: "GrpcCoreCollabInputEndpoint", T: 9 /*ScalarType.STRING*/ },
            { no: 8, name: "GrpcCoreCollabQueryEndpoint", kind: "scalar", jsonName: "GrpcCoreCollabQueryEndpoint", T: 9 /*ScalarType.STRING*/ },
            { no: 9, name: "GrpcCoreClaimTypeEndpoint", kind: "scalar", jsonName: "GrpcCoreClaimTypeEndpoint", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<CoreEndpoint>): CoreEndpoint {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.restEndpoint = "";
        message.grpcInputEndpoint = "";
        message.grpcQueryEndpoint = "";
        message.grpcGcsEndpoint = "";
        message.grpcLoggerEndpoint = "";
        message.grpcProjectModelEndpoint = "";
        message.grpcCoreCollabInputEndpoint = "";
        message.grpcCoreCollabQueryEndpoint = "";
        message.grpcCoreClaimTypeEndpoint = "";
        if (value !== undefined)
            reflectionMergePartial<CoreEndpoint>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CoreEndpoint): CoreEndpoint {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string RestEndpoint = 1 [json_name = "RestEndpoint"];*/ 1:
                    message.restEndpoint = reader.string();
                    break;
                case /* string GrpcInputEndpoint = 2 [json_name = "GrpcInputEndpoint"];*/ 2:
                    message.grpcInputEndpoint = reader.string();
                    break;
                case /* string GrpcQueryEndpoint = 3 [json_name = "GrpcQueryEndpoint"];*/ 3:
                    message.grpcQueryEndpoint = reader.string();
                    break;
                case /* string GrpcGcsEndpoint = 4 [json_name = "GrpcGcsEndpoint"];*/ 4:
                    message.grpcGcsEndpoint = reader.string();
                    break;
                case /* string GrpcLoggerEndpoint = 5 [json_name = "GrpcLoggerEndpoint"];*/ 5:
                    message.grpcLoggerEndpoint = reader.string();
                    break;
                case /* string GrpcProjectModelEndpoint = 6 [json_name = "GrpcProjectModelEndpoint"];*/ 6:
                    message.grpcProjectModelEndpoint = reader.string();
                    break;
                case /* string GrpcCoreCollabInputEndpoint = 7 [json_name = "GrpcCoreCollabInputEndpoint"];*/ 7:
                    message.grpcCoreCollabInputEndpoint = reader.string();
                    break;
                case /* string GrpcCoreCollabQueryEndpoint = 8 [json_name = "GrpcCoreCollabQueryEndpoint"];*/ 8:
                    message.grpcCoreCollabQueryEndpoint = reader.string();
                    break;
                case /* string GrpcCoreClaimTypeEndpoint = 9 [json_name = "GrpcCoreClaimTypeEndpoint"];*/ 9:
                    message.grpcCoreClaimTypeEndpoint = 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: CoreEndpoint, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string RestEndpoint = 1 [json_name = "RestEndpoint"]; */
        if (message.restEndpoint !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.restEndpoint);
        /* string GrpcInputEndpoint = 2 [json_name = "GrpcInputEndpoint"]; */
        if (message.grpcInputEndpoint !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.grpcInputEndpoint);
        /* string GrpcQueryEndpoint = 3 [json_name = "GrpcQueryEndpoint"]; */
        if (message.grpcQueryEndpoint !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.grpcQueryEndpoint);
        /* string GrpcGcsEndpoint = 4 [json_name = "GrpcGcsEndpoint"]; */
        if (message.grpcGcsEndpoint !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.grpcGcsEndpoint);
        /* string GrpcLoggerEndpoint = 5 [json_name = "GrpcLoggerEndpoint"]; */
        if (message.grpcLoggerEndpoint !== "")
            writer.tag(5, WireType.LengthDelimited).string(message.grpcLoggerEndpoint);
        /* string GrpcProjectModelEndpoint = 6 [json_name = "GrpcProjectModelEndpoint"]; */
        if (message.grpcProjectModelEndpoint !== "")
            writer.tag(6, WireType.LengthDelimited).string(message.grpcProjectModelEndpoint);
        /* string GrpcCoreCollabInputEndpoint = 7 [json_name = "GrpcCoreCollabInputEndpoint"]; */
        if (message.grpcCoreCollabInputEndpoint !== "")
            writer.tag(7, WireType.LengthDelimited).string(message.grpcCoreCollabInputEndpoint);
        /* string GrpcCoreCollabQueryEndpoint = 8 [json_name = "GrpcCoreCollabQueryEndpoint"]; */
        if (message.grpcCoreCollabQueryEndpoint !== "")
            writer.tag(8, WireType.LengthDelimited).string(message.grpcCoreCollabQueryEndpoint);
        /* string GrpcCoreClaimTypeEndpoint = 9 [json_name = "GrpcCoreClaimTypeEndpoint"]; */
        if (message.grpcCoreClaimTypeEndpoint !== "")
            writer.tag(9, WireType.LengthDelimited).string(message.grpcCoreClaimTypeEndpoint);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.CoreEndpoint
 */
export const CoreEndpoint = new CoreEndpoint$Type();
// @generated message type with reflection information, may provide speed optimized methods
class IntegrationEndpoint$Type extends MessageType<IntegrationEndpoint> {
    constructor() {
        super("api.IntegrationEndpoint", [
            { no: 1, name: "RestEndpoint", kind: "scalar", jsonName: "RestEndpoint", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "GrpcEndpoint", kind: "scalar", jsonName: "GrpcEndpoint", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<IntegrationEndpoint>): IntegrationEndpoint {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.restEndpoint = "";
        message.grpcEndpoint = "";
        if (value !== undefined)
            reflectionMergePartial<IntegrationEndpoint>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: IntegrationEndpoint): IntegrationEndpoint {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string RestEndpoint = 1 [json_name = "RestEndpoint"];*/ 1:
                    message.restEndpoint = reader.string();
                    break;
                case /* string GrpcEndpoint = 2 [json_name = "GrpcEndpoint"];*/ 2:
                    message.grpcEndpoint = 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: IntegrationEndpoint, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string RestEndpoint = 1 [json_name = "RestEndpoint"]; */
        if (message.restEndpoint !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.restEndpoint);
        /* string GrpcEndpoint = 2 [json_name = "GrpcEndpoint"]; */
        if (message.grpcEndpoint !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.grpcEndpoint);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.IntegrationEndpoint
 */
export const IntegrationEndpoint = new IntegrationEndpoint$Type();
// @generated message type with reflection information, may provide speed optimized methods
class StorageEndpoint$Type extends MessageType<StorageEndpoint> {
    constructor() {
        super("api.StorageEndpoint", [
            { no: 1, name: "Endpoint", kind: "scalar", jsonName: "Endpoint", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "Bucket", kind: "scalar", jsonName: "Bucket", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<StorageEndpoint>): StorageEndpoint {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.endpoint = "";
        message.bucket = "";
        if (value !== undefined)
            reflectionMergePartial<StorageEndpoint>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: StorageEndpoint): StorageEndpoint {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Endpoint = 1 [json_name = "Endpoint"];*/ 1:
                    message.endpoint = reader.string();
                    break;
                case /* string Bucket = 2 [json_name = "Bucket"];*/ 2:
                    message.bucket = 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: StorageEndpoint, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Endpoint = 1 [json_name = "Endpoint"]; */
        if (message.endpoint !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.endpoint);
        /* string Bucket = 2 [json_name = "Bucket"]; */
        if (message.bucket !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.bucket);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.StorageEndpoint
 */
export const StorageEndpoint = new StorageEndpoint$Type();
// @generated message type with reflection information, may provide speed optimized methods
class NatsCredentials$Type extends MessageType<NatsCredentials> {
    constructor() {
        super("api.NatsCredentials", [
            { no: 1, name: "Endpoint", kind: "scalar", jsonName: "Endpoint", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "RootSubject", kind: "scalar", jsonName: "RootSubject", T: 9 /*ScalarType.STRING*/ },
            { no: 3, name: "Username", kind: "scalar", jsonName: "Username", T: 9 /*ScalarType.STRING*/ },
            { no: 4, name: "UserJwt", kind: "scalar", jsonName: "UserJwt", T: 9 /*ScalarType.STRING*/ },
            { no: 5, name: "UserNkeySeed", kind: "scalar", jsonName: "UserNkeySeed", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<NatsCredentials>): NatsCredentials {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.endpoint = "";
        message.rootSubject = "";
        message.username = "";
        message.userJwt = "";
        message.userNkeySeed = "";
        if (value !== undefined)
            reflectionMergePartial<NatsCredentials>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NatsCredentials): NatsCredentials {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Endpoint = 1 [json_name = "Endpoint"];*/ 1:
                    message.endpoint = reader.string();
                    break;
                case /* string RootSubject = 2 [json_name = "RootSubject"];*/ 2:
                    message.rootSubject = reader.string();
                    break;
                case /* string Username = 3 [json_name = "Username"];*/ 3:
                    message.username = reader.string();
                    break;
                case /* string UserJwt = 4 [json_name = "UserJwt"];*/ 4:
                    message.userJwt = reader.string();
                    break;
                case /* string UserNkeySeed = 5 [json_name = "UserNkeySeed"];*/ 5:
                    message.userNkeySeed = 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: NatsCredentials, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Endpoint = 1 [json_name = "Endpoint"]; */
        if (message.endpoint !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.endpoint);
        /* string RootSubject = 2 [json_name = "RootSubject"]; */
        if (message.rootSubject !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.rootSubject);
        /* string Username = 3 [json_name = "Username"]; */
        if (message.username !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.username);
        /* string UserJwt = 4 [json_name = "UserJwt"]; */
        if (message.userJwt !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.userJwt);
        /* string UserNkeySeed = 5 [json_name = "UserNkeySeed"]; */
        if (message.userNkeySeed !== "")
            writer.tag(5, WireType.LengthDelimited).string(message.userNkeySeed);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.NatsCredentials
 */
export const NatsCredentials = new NatsCredentials$Type();
// @generated message type with reflection information, may provide speed optimized methods
class OpenSearchCredentials$Type extends MessageType<OpenSearchCredentials> {
    constructor() {
        super("api.OpenSearchCredentials", [
            { no: 1, name: "Endpoint", kind: "scalar", jsonName: "Endpoint", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "Username", kind: "scalar", jsonName: "Username", T: 9 /*ScalarType.STRING*/ },
            { no: 3, name: "Password", kind: "scalar", jsonName: "Password", T: 9 /*ScalarType.STRING*/ },
            { no: 4, name: "Index", kind: "scalar", jsonName: "Index", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<OpenSearchCredentials>): OpenSearchCredentials {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.endpoint = "";
        message.username = "";
        message.password = "";
        message.index = "";
        if (value !== undefined)
            reflectionMergePartial<OpenSearchCredentials>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OpenSearchCredentials): OpenSearchCredentials {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Endpoint = 1 [json_name = "Endpoint"];*/ 1:
                    message.endpoint = reader.string();
                    break;
                case /* string Username = 2 [json_name = "Username"];*/ 2:
                    message.username = reader.string();
                    break;
                case /* string Password = 3 [json_name = "Password"];*/ 3:
                    message.password = reader.string();
                    break;
                case /* string Index = 4 [json_name = "Index"];*/ 4:
                    message.index = 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: OpenSearchCredentials, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Endpoint = 1 [json_name = "Endpoint"]; */
        if (message.endpoint !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.endpoint);
        /* string Username = 2 [json_name = "Username"]; */
        if (message.username !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.username);
        /* string Password = 3 [json_name = "Password"]; */
        if (message.password !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.password);
        /* string Index = 4 [json_name = "Index"]; */
        if (message.index !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.index);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.OpenSearchCredentials
 */
export const OpenSearchCredentials = new OpenSearchCredentials$Type();
// @generated message type with reflection information, may provide speed optimized methods
class OpenIDCredentials$Type extends MessageType<OpenIDCredentials> {
    constructor() {
        super("api.OpenIDCredentials", [
            { no: 1, name: "WellKnownURI", kind: "scalar", jsonName: "WellKnownURI", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "ServiceAccountName", kind: "scalar", jsonName: "ServiceAccountName", T: 9 /*ScalarType.STRING*/ },
            { no: 3, name: "ServiceAccountPEM", kind: "scalar", jsonName: "ServiceAccountPEM", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<OpenIDCredentials>): OpenIDCredentials {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.wellKnownURI = "";
        message.serviceAccountName = "";
        message.serviceAccountPEM = "";
        if (value !== undefined)
            reflectionMergePartial<OpenIDCredentials>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OpenIDCredentials): OpenIDCredentials {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string WellKnownURI = 1 [json_name = "WellKnownURI"];*/ 1:
                    message.wellKnownURI = reader.string();
                    break;
                case /* string ServiceAccountName = 2 [json_name = "ServiceAccountName"];*/ 2:
                    message.serviceAccountName = reader.string();
                    break;
                case /* string ServiceAccountPEM = 3 [json_name = "ServiceAccountPEM"];*/ 3:
                    message.serviceAccountPEM = 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: OpenIDCredentials, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string WellKnownURI = 1 [json_name = "WellKnownURI"]; */
        if (message.wellKnownURI !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.wellKnownURI);
        /* string ServiceAccountName = 2 [json_name = "ServiceAccountName"]; */
        if (message.serviceAccountName !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.serviceAccountName);
        /* string ServiceAccountPEM = 3 [json_name = "ServiceAccountPEM"]; */
        if (message.serviceAccountPEM !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.serviceAccountPEM);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.OpenIDCredentials
 */
export const OpenIDCredentials = new OpenIDCredentials$Type();
// @generated message type with reflection information, may provide speed optimized methods
class Int32Object$Type extends MessageType<Int32Object> {
    constructor() {
        super("api.Int32Object", [
            { no: 1, name: "Int32", kind: "scalar", jsonName: "Int32", T: 5 /*ScalarType.INT32*/ }
        ]);
    }
    create(value?: PartialMessage<Int32Object>): Int32Object {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.int32 = 0;
        if (value !== undefined)
            reflectionMergePartial<Int32Object>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Int32Object): Int32Object {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* int32 Int32 = 1 [json_name = "Int32"];*/ 1:
                    message.int32 = reader.int32();
                    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: Int32Object, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* int32 Int32 = 1 [json_name = "Int32"]; */
        if (message.int32 !== 0)
            writer.tag(1, WireType.Varint).int32(message.int32);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.Int32Object
 */
export const Int32Object = new Int32Object$Type();
// @generated message type with reflection information, may provide speed optimized methods
class BoolObject$Type extends MessageType<BoolObject> {
    constructor() {
        super("api.BoolObject", [
            { no: 1, name: "Bool", kind: "scalar", jsonName: "Bool", T: 8 /*ScalarType.BOOL*/ }
        ]);
    }
    create(value?: PartialMessage<BoolObject>): BoolObject {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.bool = false;
        if (value !== undefined)
            reflectionMergePartial<BoolObject>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BoolObject): BoolObject {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* bool Bool = 1 [json_name = "Bool"];*/ 1:
                    message.bool = reader.bool();
                    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: BoolObject, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* bool Bool = 1 [json_name = "Bool"]; */
        if (message.bool !== false)
            writer.tag(1, WireType.Varint).bool(message.bool);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.BoolObject
 */
export const BoolObject = new BoolObject$Type();
// @generated message type with reflection information, may provide speed optimized methods
class StringObject$Type extends MessageType<StringObject> {
    constructor() {
        super("api.StringObject", [
            { no: 1, name: "String", kind: "scalar", jsonName: "String", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<StringObject>): StringObject {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.string = "";
        if (value !== undefined)
            reflectionMergePartial<StringObject>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: StringObject): StringObject {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string String = 1 [json_name = "String"];*/ 1:
                    message.string = 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: StringObject, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string String = 1 [json_name = "String"]; */
        if (message.string !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.string);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.StringObject
 */
export const StringObject = new StringObject$Type();
// @generated message type with reflection information, may provide speed optimized methods
class StringDateObject$Type extends MessageType<StringDateObject> {
    constructor() {
        super("api.StringDateObject", [
            { no: 10, name: "DateTime", kind: "scalar", jsonName: "DateTime", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { dateIso8601: true } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "UTC date/time in <a href='https://en.wikipedia.org/wiki/ISO_8601'>ISO 8601</a> format" }, "api.indexationType": { Types: [{ Context: "*", Type: "date" }] }, "api.viewType": { Types: [{ Context: "*", Type: "date" }] } } }
        ]);
    }
    create(value?: PartialMessage<StringDateObject>): StringDateObject {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.dateTime = "";
        if (value !== undefined)
            reflectionMergePartial<StringDateObject>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: StringDateObject): StringDateObject {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string DateTime = 10 [json_name = "DateTime"];*/ 10:
                    message.dateTime = 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: StringDateObject, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string DateTime = 10 [json_name = "DateTime"]; */
        if (message.dateTime !== "")
            writer.tag(10, WireType.LengthDelimited).string(message.dateTime);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.StringDateObject
 */
export const StringDateObject = new StringDateObject$Type();
// @generated message type with reflection information, may provide speed optimized methods
class WorkflowExecutionResult$Type extends MessageType<WorkflowExecutionResult> {
    constructor() {
        super("api.WorkflowExecutionResult", [
            { no: 1, name: "WorkflowId", kind: "scalar", jsonName: "WorkflowId", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 2, name: "RunId", kind: "scalar", jsonName: "RunId", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "Domain", kind: "scalar", jsonName: "Domain", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ]);
    }
    create(value?: PartialMessage<WorkflowExecutionResult>): WorkflowExecutionResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.workflowId = "";
        message.runId = "";
        message.domain = "";
        if (value !== undefined)
            reflectionMergePartial<WorkflowExecutionResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: WorkflowExecutionResult): WorkflowExecutionResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string WorkflowId = 1 [json_name = "WorkflowId"];*/ 1:
                    message.workflowId = reader.string();
                    break;
                case /* string RunId = 2 [json_name = "RunId"];*/ 2:
                    message.runId = reader.string();
                    break;
                case /* string Domain = 3 [json_name = "Domain"];*/ 3:
                    message.domain = 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: WorkflowExecutionResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string WorkflowId = 1 [json_name = "WorkflowId"]; */
        if (message.workflowId !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.workflowId);
        /* string RunId = 2 [json_name = "RunId"]; */
        if (message.runId !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.runId);
        /* string Domain = 3 [json_name = "Domain"]; */
        if (message.domain !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.domain);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.WorkflowExecutionResult
 */
export const WorkflowExecutionResult = new WorkflowExecutionResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ModuleRegistration$Type extends MessageType<ModuleRegistration> {
    constructor() {
        super("api.ModuleRegistration", [
            { no: 1, name: "WorkflowTarget", kind: "enum", jsonName: "WorkflowTarget", T: () => ["api.WorkflowTypeEnum", WorkflowTypeEnum], options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Into which core workflow, the module child workflow will be registered" } } },
            { no: 2, name: "WorkflowPath", kind: "scalar", jsonName: "WorkflowPath", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Go path of module child workflow implementation" } } },
            { no: 3, name: "Type", kind: "enum", jsonName: "Type", T: () => ["api.ModuleWorkflowTypeEnum", ModuleWorkflowTypeEnum], options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "PRE or POST to execute before or after the core workfow targeted" } } },
            { no: 4, name: "Timeout", kind: "scalar", jsonName: "Timeout", T: 5 /*ScalarType.INT32*/, options: { "validate.rules": { int32: { gt: 0 } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "max timeout in minutes of the module child workflow, ignored if it exceeds the platform default value." } } }
        ]);
    }
    create(value?: PartialMessage<ModuleRegistration>): ModuleRegistration {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.workflowTarget = 0;
        message.workflowPath = "";
        message.type = 0;
        message.timeout = 0;
        if (value !== undefined)
            reflectionMergePartial<ModuleRegistration>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ModuleRegistration): ModuleRegistration {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.WorkflowTypeEnum WorkflowTarget = 1 [json_name = "WorkflowTarget"];*/ 1:
                    message.workflowTarget = reader.int32();
                    break;
                case /* string WorkflowPath = 2 [json_name = "WorkflowPath"];*/ 2:
                    message.workflowPath = reader.string();
                    break;
                case /* api.ModuleWorkflowTypeEnum Type = 3 [json_name = "Type"];*/ 3:
                    message.type = reader.int32();
                    break;
                case /* int32 Timeout = 4 [json_name = "Timeout"];*/ 4:
                    message.timeout = reader.int32();
                    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: ModuleRegistration, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.WorkflowTypeEnum WorkflowTarget = 1 [json_name = "WorkflowTarget"]; */
        if (message.workflowTarget !== 0)
            writer.tag(1, WireType.Varint).int32(message.workflowTarget);
        /* string WorkflowPath = 2 [json_name = "WorkflowPath"]; */
        if (message.workflowPath !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.workflowPath);
        /* api.ModuleWorkflowTypeEnum Type = 3 [json_name = "Type"]; */
        if (message.type !== 0)
            writer.tag(3, WireType.Varint).int32(message.type);
        /* int32 Timeout = 4 [json_name = "Timeout"]; */
        if (message.timeout !== 0)
            writer.tag(4, WireType.Varint).int32(message.timeout);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ModuleRegistration
 */
export const ModuleRegistration = new ModuleRegistration$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ModuleDeregistration$Type extends MessageType<ModuleDeregistration> {
    constructor() {
        super("api.ModuleDeregistration", [
            { no: 1, name: "WorkflowTarget", kind: "enum", jsonName: "WorkflowTarget", T: () => ["api.WorkflowTypeEnum", WorkflowTypeEnum], options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Into which core workflow, the module child workflow will be registered" } } },
            { no: 2, name: "WorkflowPath", kind: "scalar", jsonName: "WorkflowPath", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Go path of module child workflow implementation" } } },
            { no: 3, name: "Type", kind: "enum", jsonName: "Type", T: () => ["api.ModuleWorkflowTypeEnum", ModuleWorkflowTypeEnum], options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "PRE or POST to execute before or after the core workfow targeted" } } }
        ]);
    }
    create(value?: PartialMessage<ModuleDeregistration>): ModuleDeregistration {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.workflowTarget = 0;
        message.workflowPath = "";
        message.type = 0;
        if (value !== undefined)
            reflectionMergePartial<ModuleDeregistration>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ModuleDeregistration): ModuleDeregistration {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.WorkflowTypeEnum WorkflowTarget = 1 [json_name = "WorkflowTarget"];*/ 1:
                    message.workflowTarget = reader.int32();
                    break;
                case /* string WorkflowPath = 2 [json_name = "WorkflowPath"];*/ 2:
                    message.workflowPath = reader.string();
                    break;
                case /* api.ModuleWorkflowTypeEnum Type = 3 [json_name = "Type"];*/ 3:
                    message.type = reader.int32();
                    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: ModuleDeregistration, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.WorkflowTypeEnum WorkflowTarget = 1 [json_name = "WorkflowTarget"]; */
        if (message.workflowTarget !== 0)
            writer.tag(1, WireType.Varint).int32(message.workflowTarget);
        /* string WorkflowPath = 2 [json_name = "WorkflowPath"]; */
        if (message.workflowPath !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.workflowPath);
        /* api.ModuleWorkflowTypeEnum Type = 3 [json_name = "Type"]; */
        if (message.type !== 0)
            writer.tag(3, WireType.Varint).int32(message.type);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ModuleDeregistration
 */
export const ModuleDeregistration = new ModuleDeregistration$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ClaimType$Type extends MessageType<ClaimType> {
    constructor() {
        super("api.ClaimType", [
            { no: 1, name: "ID", kind: "scalar", jsonName: "ID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 2, name: "ProjectID", kind: "scalar", jsonName: "ProjectID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "Reason", kind: "scalar", jsonName: "Reason", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 4, name: "ReasonCode", kind: "scalar", jsonName: "ReasonCode", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1", pattern: "^[a-zA-Z0-9]+$" } } } },
            { no: 5, name: "EntityType", kind: "enum", jsonName: "EntityType", T: () => ["api.ClaimEntityType", ClaimEntityType, "CLAIM_ENTITY_TYPE_"], options: { "validate.rules": { enum: { definedOnly: true } } } },
            { no: 6, name: "DefaultCriticality", kind: "enum", jsonName: "DefaultCriticality", T: () => ["api.ClaimCriticality", ClaimCriticality, "CLAIM_CRITICALITY_"], options: { "validate.rules": { enum: { definedOnly: true } } } },
            { no: 7, name: "Transitions", kind: "message", jsonName: "Transitions", repeat: 1 /*RepeatType.PACKED*/, T: () => ClaimTransition },
            { no: 8, name: "PossibleClosures", kind: "message", jsonName: "PossibleClosures", repeat: 1 /*RepeatType.PACKED*/, T: () => ClaimTypeClosure },
            { no: 9, name: "CriticalityAllowedRoles", kind: "scalar", jsonName: "CriticalityAllowedRoles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 10, name: "ReadAllowedRoles", kind: "scalar", jsonName: "ReadAllowedRoles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 11, name: "WriteAllowedRoles", kind: "scalar", jsonName: "WriteAllowedRoles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 12, name: "AssignAllowedRoles", kind: "scalar", jsonName: "AssignAllowedRoles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 13, name: "AllowedStatuses", kind: "enum", jsonName: "AllowedStatuses", repeat: 1 /*RepeatType.PACKED*/, T: () => ["api.ClaimStatus", ClaimStatus, "CLAIM_STATUS_"] },
            { no: 14, name: "DefaultStatus", kind: "enum", jsonName: "DefaultStatus", T: () => ["api.ClaimStatus", ClaimStatus, "CLAIM_STATUS_"], options: { "validate.rules": { enum: { definedOnly: true } } } },
            { no: 15, name: "Sector", kind: "enum", jsonName: "Sector", T: () => ["api.ClaimSector", ClaimSector, "CLAIM_SECTOR_"] },
            { no: 16, name: "DefaultAssignees", kind: "scalar", jsonName: "DefaultAssignees", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<ClaimType>): ClaimType {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.iD = "";
        message.projectID = "";
        message.reason = "";
        message.reasonCode = "";
        message.entityType = 0;
        message.defaultCriticality = 0;
        message.transitions = [];
        message.possibleClosures = [];
        message.criticalityAllowedRoles = [];
        message.readAllowedRoles = [];
        message.writeAllowedRoles = [];
        message.assignAllowedRoles = [];
        message.allowedStatuses = [];
        message.defaultStatus = 0;
        message.sector = 0;
        message.defaultAssignees = [];
        if (value !== undefined)
            reflectionMergePartial<ClaimType>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ClaimType): ClaimType {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ID = 1 [json_name = "ID"];*/ 1:
                    message.iD = reader.string();
                    break;
                case /* string ProjectID = 2 [json_name = "ProjectID"];*/ 2:
                    message.projectID = reader.string();
                    break;
                case /* string Reason = 3 [json_name = "Reason"];*/ 3:
                    message.reason = reader.string();
                    break;
                case /* string ReasonCode = 4 [json_name = "ReasonCode"];*/ 4:
                    message.reasonCode = reader.string();
                    break;
                case /* api.ClaimEntityType EntityType = 5 [json_name = "EntityType"];*/ 5:
                    message.entityType = reader.int32();
                    break;
                case /* api.ClaimCriticality DefaultCriticality = 6 [json_name = "DefaultCriticality"];*/ 6:
                    message.defaultCriticality = reader.int32();
                    break;
                case /* repeated api.ClaimTransition Transitions = 7 [json_name = "Transitions"];*/ 7:
                    message.transitions.push(ClaimTransition.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* repeated api.ClaimTypeClosure PossibleClosures = 8 [json_name = "PossibleClosures"];*/ 8:
                    message.possibleClosures.push(ClaimTypeClosure.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* repeated string CriticalityAllowedRoles = 9 [json_name = "CriticalityAllowedRoles"];*/ 9:
                    message.criticalityAllowedRoles.push(reader.string());
                    break;
                case /* repeated string ReadAllowedRoles = 10 [json_name = "ReadAllowedRoles"];*/ 10:
                    message.readAllowedRoles.push(reader.string());
                    break;
                case /* repeated string WriteAllowedRoles = 11 [json_name = "WriteAllowedRoles"];*/ 11:
                    message.writeAllowedRoles.push(reader.string());
                    break;
                case /* repeated string AssignAllowedRoles = 12 [json_name = "AssignAllowedRoles"];*/ 12:
                    message.assignAllowedRoles.push(reader.string());
                    break;
                case /* repeated api.ClaimStatus AllowedStatuses = 13 [json_name = "AllowedStatuses"];*/ 13:
                    if (wireType === WireType.LengthDelimited)
                        for (let e = reader.int32() + reader.pos; reader.pos < e;)
                            message.allowedStatuses.push(reader.int32());
                    else
                        message.allowedStatuses.push(reader.int32());
                    break;
                case /* api.ClaimStatus DefaultStatus = 14 [json_name = "DefaultStatus"];*/ 14:
                    message.defaultStatus = reader.int32();
                    break;
                case /* api.ClaimSector Sector = 15 [json_name = "Sector"];*/ 15:
                    message.sector = reader.int32();
                    break;
                case /* repeated string DefaultAssignees = 16 [json_name = "DefaultAssignees"];*/ 16:
                    message.defaultAssignees.push(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: ClaimType, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ID = 1 [json_name = "ID"]; */
        if (message.iD !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.iD);
        /* string ProjectID = 2 [json_name = "ProjectID"]; */
        if (message.projectID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.projectID);
        /* string Reason = 3 [json_name = "Reason"]; */
        if (message.reason !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.reason);
        /* string ReasonCode = 4 [json_name = "ReasonCode"]; */
        if (message.reasonCode !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.reasonCode);
        /* api.ClaimEntityType EntityType = 5 [json_name = "EntityType"]; */
        if (message.entityType !== 0)
            writer.tag(5, WireType.Varint).int32(message.entityType);
        /* api.ClaimCriticality DefaultCriticality = 6 [json_name = "DefaultCriticality"]; */
        if (message.defaultCriticality !== 0)
            writer.tag(6, WireType.Varint).int32(message.defaultCriticality);
        /* repeated api.ClaimTransition Transitions = 7 [json_name = "Transitions"]; */
        for (let i = 0; i < message.transitions.length; i++)
            ClaimTransition.internalBinaryWrite(message.transitions[i], writer.tag(7, WireType.LengthDelimited).fork(), options).join();
        /* repeated api.ClaimTypeClosure PossibleClosures = 8 [json_name = "PossibleClosures"]; */
        for (let i = 0; i < message.possibleClosures.length; i++)
            ClaimTypeClosure.internalBinaryWrite(message.possibleClosures[i], writer.tag(8, WireType.LengthDelimited).fork(), options).join();
        /* repeated string CriticalityAllowedRoles = 9 [json_name = "CriticalityAllowedRoles"]; */
        for (let i = 0; i < message.criticalityAllowedRoles.length; i++)
            writer.tag(9, WireType.LengthDelimited).string(message.criticalityAllowedRoles[i]);
        /* repeated string ReadAllowedRoles = 10 [json_name = "ReadAllowedRoles"]; */
        for (let i = 0; i < message.readAllowedRoles.length; i++)
            writer.tag(10, WireType.LengthDelimited).string(message.readAllowedRoles[i]);
        /* repeated string WriteAllowedRoles = 11 [json_name = "WriteAllowedRoles"]; */
        for (let i = 0; i < message.writeAllowedRoles.length; i++)
            writer.tag(11, WireType.LengthDelimited).string(message.writeAllowedRoles[i]);
        /* repeated string AssignAllowedRoles = 12 [json_name = "AssignAllowedRoles"]; */
        for (let i = 0; i < message.assignAllowedRoles.length; i++)
            writer.tag(12, WireType.LengthDelimited).string(message.assignAllowedRoles[i]);
        /* repeated api.ClaimStatus AllowedStatuses = 13 [json_name = "AllowedStatuses"]; */
        if (message.allowedStatuses.length) {
            writer.tag(13, WireType.LengthDelimited).fork();
            for (let i = 0; i < message.allowedStatuses.length; i++)
                writer.int32(message.allowedStatuses[i]);
            writer.join();
        }
        /* api.ClaimStatus DefaultStatus = 14 [json_name = "DefaultStatus"]; */
        if (message.defaultStatus !== 0)
            writer.tag(14, WireType.Varint).int32(message.defaultStatus);
        /* api.ClaimSector Sector = 15 [json_name = "Sector"]; */
        if (message.sector !== 0)
            writer.tag(15, WireType.Varint).int32(message.sector);
        /* repeated string DefaultAssignees = 16 [json_name = "DefaultAssignees"]; */
        for (let i = 0; i < message.defaultAssignees.length; i++)
            writer.tag(16, WireType.LengthDelimited).string(message.defaultAssignees[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ClaimType
 */
export const ClaimType = new ClaimType$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ClaimTransition$Type extends MessageType<ClaimTransition> {
    constructor() {
        super("api.ClaimTransition", [
            { no: 1, name: "FromStatus", kind: "enum", jsonName: "FromStatus", T: () => ["api.ClaimStatus", ClaimStatus, "CLAIM_STATUS_"], options: { "validate.rules": { enum: { definedOnly: true } } } },
            { no: 2, name: "ToStatus", kind: "enum", jsonName: "ToStatus", T: () => ["api.ClaimStatus", ClaimStatus, "CLAIM_STATUS_"], options: { "validate.rules": { enum: { definedOnly: true } } } },
            { no: 3, name: "AllowedRoles", kind: "scalar", jsonName: "AllowedRoles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 4, name: "ShouldNotify", kind: "scalar", jsonName: "ShouldNotify", T: 8 /*ScalarType.BOOL*/ }
        ]);
    }
    create(value?: PartialMessage<ClaimTransition>): ClaimTransition {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.fromStatus = 0;
        message.toStatus = 0;
        message.allowedRoles = [];
        message.shouldNotify = false;
        if (value !== undefined)
            reflectionMergePartial<ClaimTransition>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ClaimTransition): ClaimTransition {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.ClaimStatus FromStatus = 1 [json_name = "FromStatus"];*/ 1:
                    message.fromStatus = reader.int32();
                    break;
                case /* api.ClaimStatus ToStatus = 2 [json_name = "ToStatus"];*/ 2:
                    message.toStatus = reader.int32();
                    break;
                case /* repeated string AllowedRoles = 3 [json_name = "AllowedRoles"];*/ 3:
                    message.allowedRoles.push(reader.string());
                    break;
                case /* bool ShouldNotify = 4 [json_name = "ShouldNotify"];*/ 4:
                    message.shouldNotify = reader.bool();
                    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: ClaimTransition, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.ClaimStatus FromStatus = 1 [json_name = "FromStatus"]; */
        if (message.fromStatus !== 0)
            writer.tag(1, WireType.Varint).int32(message.fromStatus);
        /* api.ClaimStatus ToStatus = 2 [json_name = "ToStatus"]; */
        if (message.toStatus !== 0)
            writer.tag(2, WireType.Varint).int32(message.toStatus);
        /* repeated string AllowedRoles = 3 [json_name = "AllowedRoles"]; */
        for (let i = 0; i < message.allowedRoles.length; i++)
            writer.tag(3, WireType.LengthDelimited).string(message.allowedRoles[i]);
        /* bool ShouldNotify = 4 [json_name = "ShouldNotify"]; */
        if (message.shouldNotify !== false)
            writer.tag(4, WireType.Varint).bool(message.shouldNotify);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ClaimTransition
 */
export const ClaimTransition = new ClaimTransition$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ClaimTypeClosure$Type extends MessageType<ClaimTypeClosure> {
    constructor() {
        super("api.ClaimTypeClosure", [
            { no: 1, name: "Responsible", kind: "scalar", jsonName: "Responsible", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 2, name: "Causes", kind: "scalar", jsonName: "Causes", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<ClaimTypeClosure>): ClaimTypeClosure {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.responsible = "";
        message.causes = [];
        if (value !== undefined)
            reflectionMergePartial<ClaimTypeClosure>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ClaimTypeClosure): ClaimTypeClosure {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Responsible = 1 [json_name = "Responsible"];*/ 1:
                    message.responsible = reader.string();
                    break;
                case /* repeated string Causes = 2 [json_name = "Causes"];*/ 2:
                    message.causes.push(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: ClaimTypeClosure, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Responsible = 1 [json_name = "Responsible"]; */
        if (message.responsible !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.responsible);
        /* repeated string Causes = 2 [json_name = "Causes"]; */
        for (let i = 0; i < message.causes.length; i++)
            writer.tag(2, WireType.LengthDelimited).string(message.causes[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ClaimTypeClosure
 */
export const ClaimTypeClosure = new ClaimTypeClosure$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ClaimClosure$Type extends MessageType<ClaimClosure> {
    constructor() {
        super("api.ClaimClosure", [
            { no: 1, name: "Responsible", kind: "scalar", jsonName: "Responsible", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } }, "api.kpiItems": { Items: [{ Context: "Claim", Group: "claim", Queryable: true }] } } },
            { no: 2, name: "Cause", kind: "scalar", jsonName: "Cause", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } }, "api.kpiItems": { Items: [{ Context: "Claim", Group: "claim", Queryable: true }] } } }
        ]);
    }
    create(value?: PartialMessage<ClaimClosure>): ClaimClosure {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.responsible = "";
        message.cause = "";
        if (value !== undefined)
            reflectionMergePartial<ClaimClosure>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ClaimClosure): ClaimClosure {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Responsible = 1 [json_name = "Responsible"];*/ 1:
                    message.responsible = reader.string();
                    break;
                case /* string Cause = 2 [json_name = "Cause"];*/ 2:
                    message.cause = 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: ClaimClosure, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Responsible = 1 [json_name = "Responsible"]; */
        if (message.responsible !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.responsible);
        /* string Cause = 2 [json_name = "Cause"]; */
        if (message.cause !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.cause);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ClaimClosure
 */
export const ClaimClosure = new ClaimClosure$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ClaimSummary$Type extends MessageType<ClaimSummary> {
    constructor() {
        super("api.ClaimSummary", [
            { no: 1, name: "ClaimTypeID", kind: "scalar", jsonName: "ClaimTypeID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Identifier of the claim type" }, "api.indexationType": { Types: [{ Context: "*", Type: "generatedText,keyword" }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortKeyword" }] } } },
            { no: 2, name: "ClaimTypeReason", kind: "scalar", jsonName: "ClaimTypeReason", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Reason of the claim type" } } },
            { no: 3, name: "Number", kind: "scalar", jsonName: "Number", T: 5 /*ScalarType.INT32*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Number of claims with this type" } } }
        ]);
    }
    create(value?: PartialMessage<ClaimSummary>): ClaimSummary {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.claimTypeID = "";
        message.claimTypeReason = "";
        message.number = 0;
        if (value !== undefined)
            reflectionMergePartial<ClaimSummary>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ClaimSummary): ClaimSummary {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ClaimTypeID = 1 [json_name = "ClaimTypeID"];*/ 1:
                    message.claimTypeID = reader.string();
                    break;
                case /* string ClaimTypeReason = 2 [json_name = "ClaimTypeReason"];*/ 2:
                    message.claimTypeReason = reader.string();
                    break;
                case /* int32 Number = 3 [json_name = "Number"];*/ 3:
                    message.number = reader.int32();
                    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: ClaimSummary, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ClaimTypeID = 1 [json_name = "ClaimTypeID"]; */
        if (message.claimTypeID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.claimTypeID);
        /* string ClaimTypeReason = 2 [json_name = "ClaimTypeReason"]; */
        if (message.claimTypeReason !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.claimTypeReason);
        /* int32 Number = 3 [json_name = "Number"]; */
        if (message.number !== 0)
            writer.tag(3, WireType.Varint).int32(message.number);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ClaimSummary
 */
export const ClaimSummary = new ClaimSummary$Type();
// @generated message type with reflection information, may provide speed optimized methods
class AttachmentType$Type extends MessageType<AttachmentType> {
    constructor() {
        super("api.AttachmentType", [
            { no: 1, name: "ID", kind: "scalar", jsonName: "ID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 2, name: "ProjectID", kind: "scalar", jsonName: "ProjectID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "Code", kind: "scalar", jsonName: "Code", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 4, name: "Entity", kind: "enum", jsonName: "Entity", T: () => ["api.EntityType", EntityType, "ENTITY_TYPE_"], options: { "validate.rules": { enum: { definedOnly: true } } } },
            { no: 5, name: "Label", kind: "scalar", jsonName: "Label", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 6, name: "SharePolicy", kind: "enum", jsonName: "SharePolicy", T: () => ["api.SharePolicy", SharePolicy], options: { "validate.rules": { enum: { definedOnly: true } } } }
        ]);
    }
    create(value?: PartialMessage<AttachmentType>): AttachmentType {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.iD = "";
        message.projectID = "";
        message.code = "";
        message.entity = 0;
        message.label = "";
        message.sharePolicy = 0;
        if (value !== undefined)
            reflectionMergePartial<AttachmentType>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AttachmentType): AttachmentType {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ID = 1 [json_name = "ID"];*/ 1:
                    message.iD = reader.string();
                    break;
                case /* string ProjectID = 2 [json_name = "ProjectID"];*/ 2:
                    message.projectID = reader.string();
                    break;
                case /* string Code = 3 [json_name = "Code"];*/ 3:
                    message.code = reader.string();
                    break;
                case /* api.EntityType Entity = 4 [json_name = "Entity"];*/ 4:
                    message.entity = reader.int32();
                    break;
                case /* string Label = 5 [json_name = "Label"];*/ 5:
                    message.label = reader.string();
                    break;
                case /* api.SharePolicy SharePolicy = 6 [json_name = "SharePolicy"];*/ 6:
                    message.sharePolicy = reader.int32();
                    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: AttachmentType, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ID = 1 [json_name = "ID"]; */
        if (message.iD !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.iD);
        /* string ProjectID = 2 [json_name = "ProjectID"]; */
        if (message.projectID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.projectID);
        /* string Code = 3 [json_name = "Code"]; */
        if (message.code !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.code);
        /* api.EntityType Entity = 4 [json_name = "Entity"]; */
        if (message.entity !== 0)
            writer.tag(4, WireType.Varint).int32(message.entity);
        /* string Label = 5 [json_name = "Label"]; */
        if (message.label !== "")
            writer.tag(5, WireType.LengthDelimited).string(message.label);
        /* api.SharePolicy SharePolicy = 6 [json_name = "SharePolicy"]; */
        if (message.sharePolicy !== 0)
            writer.tag(6, WireType.Varint).int32(message.sharePolicy);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.AttachmentType
 */
export const AttachmentType = new AttachmentType$Type();
// @generated message type with reflection information, may provide speed optimized methods
class AttachmentSummary$Type extends MessageType<AttachmentSummary> {
    constructor() {
        super("api.AttachmentSummary", [
            { no: 1, name: "AttachmentTypeID", kind: "scalar", jsonName: "AttachmentTypeID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "ID of the attachment type" }, "api.indexationType": { Types: [{ Context: "*", Type: "generatedText,keyword" }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortKeyword" }] } } },
            { no: 2, name: "AttachmentTypeCode", kind: "scalar", jsonName: "AttachmentTypeCode", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Code of the attachment type" }, "api.indexationType": { Types: [{ Context: "*", Type: "generatedText" }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortText" }] } } },
            { no: 3, name: "Number", kind: "scalar", jsonName: "Number", T: 5 /*ScalarType.INT32*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Number of attachments with this type" } } }
        ]);
    }
    create(value?: PartialMessage<AttachmentSummary>): AttachmentSummary {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.attachmentTypeID = "";
        message.attachmentTypeCode = "";
        message.number = 0;
        if (value !== undefined)
            reflectionMergePartial<AttachmentSummary>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AttachmentSummary): AttachmentSummary {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string AttachmentTypeID = 1 [json_name = "AttachmentTypeID"];*/ 1:
                    message.attachmentTypeID = reader.string();
                    break;
                case /* string AttachmentTypeCode = 2 [json_name = "AttachmentTypeCode"];*/ 2:
                    message.attachmentTypeCode = reader.string();
                    break;
                case /* int32 Number = 3 [json_name = "Number"];*/ 3:
                    message.number = reader.int32();
                    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: AttachmentSummary, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string AttachmentTypeID = 1 [json_name = "AttachmentTypeID"]; */
        if (message.attachmentTypeID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.attachmentTypeID);
        /* string AttachmentTypeCode = 2 [json_name = "AttachmentTypeCode"]; */
        if (message.attachmentTypeCode !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.attachmentTypeCode);
        /* int32 Number = 3 [json_name = "Number"]; */
        if (message.number !== 0)
            writer.tag(3, WireType.Varint).int32(message.number);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.AttachmentSummary
 */
export const AttachmentSummary = new AttachmentSummary$Type();
// @generated message type with reflection information, may provide speed optimized methods
class TranslationMap$Type extends MessageType<TranslationMap> {
    constructor() {
        super("api.TranslationMap", [
            { no: 1, name: "data", kind: "map", K: 9 /*ScalarType.STRING*/, V: { kind: "scalar", T: 9 /*ScalarType.STRING*/ } }
        ]);
    }
    create(value?: PartialMessage<TranslationMap>): TranslationMap {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.data = {};
        if (value !== undefined)
            reflectionMergePartial<TranslationMap>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TranslationMap): TranslationMap {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* map<string, string> data */ 1:
                    this.binaryReadMap1(message.data, reader, 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;
    }
    private binaryReadMap1(map: TranslationMap["data"], reader: IBinaryReader, options: BinaryReadOptions): void {
        let len = reader.uint32(), end = reader.pos + len, key: keyof TranslationMap["data"] | undefined, val: TranslationMap["data"][any] | undefined;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case 1:
                    key = reader.string();
                    break;
                case 2:
                    val = reader.string();
                    break;
                default: throw new globalThis.Error("unknown map entry field for field api.TranslationMap.data");
            }
        }
        map[key ?? ""] = val ?? "";
    }
    internalBinaryWrite(message: TranslationMap, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* map<string, string> data = 1; */
        for (let k of globalThis.Object.keys(message.data))
            writer.tag(1, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k).tag(2, WireType.LengthDelimited).string(message.data[k]).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.TranslationMap
 */
export const TranslationMap = new TranslationMap$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ExtractColumnFormat$Type extends MessageType<ExtractColumnFormat> {
    constructor() {
        super("api.ExtractColumnFormat", [
            { no: 1, name: "Type", kind: "enum", jsonName: "Type", T: () => ["api.ExtractColumnFormat.type", ExtractColumnFormat_type] },
            { no: 2, name: "Format", kind: "scalar", jsonName: "Format", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ]);
    }
    create(value?: PartialMessage<ExtractColumnFormat>): ExtractColumnFormat {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.type = 0;
        message.format = "";
        if (value !== undefined)
            reflectionMergePartial<ExtractColumnFormat>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ExtractColumnFormat): ExtractColumnFormat {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.ExtractColumnFormat.type Type = 1 [json_name = "Type"];*/ 1:
                    message.type = reader.int32();
                    break;
                case /* string Format = 2 [json_name = "Format"];*/ 2:
                    message.format = 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: ExtractColumnFormat, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.ExtractColumnFormat.type Type = 1 [json_name = "Type"]; */
        if (message.type !== 0)
            writer.tag(1, WireType.Varint).int32(message.type);
        /* string Format = 2 [json_name = "Format"]; */
        if (message.format !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.format);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ExtractColumnFormat
 */
export const ExtractColumnFormat = new ExtractColumnFormat$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ExtractQuery$Type extends MessageType<ExtractQuery> {
    constructor() {
        super("api.ExtractQuery", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => QueryProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "UserId", kind: "scalar", jsonName: "UserId", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "BlockFilters", kind: "message", jsonName: "BlockFilters", repeat: 1 /*RepeatType.PACKED*/, T: () => BlockFilter },
            { no: 4, name: "Fields", kind: "scalar", jsonName: "Fields", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 5, name: "ListSeparator", kind: "scalar", jsonName: "ListSeparator", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 6, name: "DecimalSeparator", kind: "scalar", jsonName: "DecimalSeparator", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 7, name: "ColumnNames", kind: "scalar", jsonName: "ColumnNames", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 8, name: "ColumnTranslationMaps", kind: "map", jsonName: "ColumnTranslationMaps", K: 9 /*ScalarType.STRING*/, V: { kind: "message", T: () => TranslationMap } },
            { no: 9, name: "ColumnFormats", kind: "map", jsonName: "ColumnFormats", K: 5 /*ScalarType.INT32*/, V: { kind: "message", T: () => ExtractColumnFormat } },
            { no: 10, name: "TargetTimeZone", kind: "scalar", jsonName: "TargetTimeZone", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1", tzData: true } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Target user time zone  <a href='https://en.wikipedia.org/wiki/List_of_tz_database_time_zones'>format</a>", example: "\"Europe/Paris\"" } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "UserId", "Fields", "ListSeparator", "DecimalSeparator", "ColumnName"] } } });
    }
    create(value?: PartialMessage<ExtractQuery>): ExtractQuery {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.userId = "";
        message.blockFilters = [];
        message.fields = [];
        message.listSeparator = "";
        message.decimalSeparator = "";
        message.columnNames = [];
        message.columnTranslationMaps = {};
        message.columnFormats = {};
        message.targetTimeZone = "";
        if (value !== undefined)
            reflectionMergePartial<ExtractQuery>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ExtractQuery): ExtractQuery {
        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 UserId = 2 [json_name = "UserId"];*/ 2:
                    message.userId = reader.string();
                    break;
                case /* repeated api.BlockFilter BlockFilters = 3 [json_name = "BlockFilters"];*/ 3:
                    message.blockFilters.push(BlockFilter.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* repeated string Fields = 4 [json_name = "Fields"];*/ 4:
                    message.fields.push(reader.string());
                    break;
                case /* string ListSeparator = 5 [json_name = "ListSeparator"];*/ 5:
                    message.listSeparator = reader.string();
                    break;
                case /* string DecimalSeparator = 6 [json_name = "DecimalSeparator"];*/ 6:
                    message.decimalSeparator = reader.string();
                    break;
                case /* repeated string ColumnNames = 7 [json_name = "ColumnNames"];*/ 7:
                    message.columnNames.push(reader.string());
                    break;
                case /* map<string, api.TranslationMap> ColumnTranslationMaps = 8 [json_name = "ColumnTranslationMaps"];*/ 8:
                    this.binaryReadMap8(message.columnTranslationMaps, reader, options);
                    break;
                case /* map<int32, api.ExtractColumnFormat> ColumnFormats = 9 [json_name = "ColumnFormats"];*/ 9:
                    this.binaryReadMap9(message.columnFormats, reader, options);
                    break;
                case /* string TargetTimeZone = 10 [json_name = "TargetTimeZone"];*/ 10:
                    message.targetTimeZone = 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;
    }
    private binaryReadMap8(map: ExtractQuery["columnTranslationMaps"], reader: IBinaryReader, options: BinaryReadOptions): void {
        let len = reader.uint32(), end = reader.pos + len, key: keyof ExtractQuery["columnTranslationMaps"] | undefined, val: ExtractQuery["columnTranslationMaps"][any] | undefined;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case 1:
                    key = reader.string();
                    break;
                case 2:
                    val = TranslationMap.internalBinaryRead(reader, reader.uint32(), options);
                    break;
                default: throw new globalThis.Error("unknown map entry field for field api.ExtractQuery.ColumnTranslationMaps");
            }
        }
        map[key ?? ""] = val ?? TranslationMap.create();
    }
    private binaryReadMap9(map: ExtractQuery["columnFormats"], reader: IBinaryReader, options: BinaryReadOptions): void {
        let len = reader.uint32(), end = reader.pos + len, key: keyof ExtractQuery["columnFormats"] | undefined, val: ExtractQuery["columnFormats"][any] | undefined;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case 1:
                    key = reader.int32();
                    break;
                case 2:
                    val = ExtractColumnFormat.internalBinaryRead(reader, reader.uint32(), options);
                    break;
                default: throw new globalThis.Error("unknown map entry field for field api.ExtractQuery.ColumnFormats");
            }
        }
        map[key ?? 0] = val ?? ExtractColumnFormat.create();
    }
    internalBinaryWrite(message: ExtractQuery, 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 UserId = 2 [json_name = "UserId"]; */
        if (message.userId !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.userId);
        /* repeated api.BlockFilter BlockFilters = 3 [json_name = "BlockFilters"]; */
        for (let i = 0; i < message.blockFilters.length; i++)
            BlockFilter.internalBinaryWrite(message.blockFilters[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();
        /* repeated string Fields = 4 [json_name = "Fields"]; */
        for (let i = 0; i < message.fields.length; i++)
            writer.tag(4, WireType.LengthDelimited).string(message.fields[i]);
        /* string ListSeparator = 5 [json_name = "ListSeparator"]; */
        if (message.listSeparator !== "")
            writer.tag(5, WireType.LengthDelimited).string(message.listSeparator);
        /* string DecimalSeparator = 6 [json_name = "DecimalSeparator"]; */
        if (message.decimalSeparator !== "")
            writer.tag(6, WireType.LengthDelimited).string(message.decimalSeparator);
        /* repeated string ColumnNames = 7 [json_name = "ColumnNames"]; */
        for (let i = 0; i < message.columnNames.length; i++)
            writer.tag(7, WireType.LengthDelimited).string(message.columnNames[i]);
        /* map<string, api.TranslationMap> ColumnTranslationMaps = 8 [json_name = "ColumnTranslationMaps"]; */
        for (let k of globalThis.Object.keys(message.columnTranslationMaps)) {
            writer.tag(8, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k);
            writer.tag(2, WireType.LengthDelimited).fork();
            TranslationMap.internalBinaryWrite(message.columnTranslationMaps[k], writer, options);
            writer.join().join();
        }
        /* map<int32, api.ExtractColumnFormat> ColumnFormats = 9 [json_name = "ColumnFormats"]; */
        for (let k of globalThis.Object.keys(message.columnFormats)) {
            writer.tag(9, WireType.LengthDelimited).fork().tag(1, WireType.Varint).int32(parseInt(k));
            writer.tag(2, WireType.LengthDelimited).fork();
            ExtractColumnFormat.internalBinaryWrite(message.columnFormats[k as any], writer, options);
            writer.join().join();
        }
        /* string TargetTimeZone = 10 [json_name = "TargetTimeZone"]; */
        if (message.targetTimeZone !== "")
            writer.tag(10, WireType.LengthDelimited).string(message.targetTimeZone);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ExtractQuery
 */
export const ExtractQuery = new ExtractQuery$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ExtractResult$Type extends MessageType<ExtractResult> {
    constructor() {
        super("api.ExtractResult", [
            { no: 1, name: "WorkflowExecution", kind: "message", jsonName: "WorkflowExecution", T: () => WorkflowExecutionResult }
        ]);
    }
    create(value?: PartialMessage<ExtractResult>): ExtractResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<ExtractResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ExtractResult): ExtractResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.WorkflowExecutionResult WorkflowExecution = 1 [json_name = "WorkflowExecution"];*/ 1:
                    message.workflowExecution = WorkflowExecutionResult.internalBinaryRead(reader, reader.uint32(), options, message.workflowExecution);
                    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: ExtractResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.WorkflowExecutionResult WorkflowExecution = 1 [json_name = "WorkflowExecution"]; */
        if (message.workflowExecution)
            WorkflowExecutionResult.internalBinaryWrite(message.workflowExecution, writer.tag(1, 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.ExtractResult
 */
export const ExtractResult = new ExtractResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class CountLinesQuery$Type extends MessageType<CountLinesQuery> {
    constructor() {
        super("api.CountLinesQuery", [
            { no: 1, name: "ProjectID", kind: "scalar", jsonName: "ProjectID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 2, name: "Partition", kind: "scalar", jsonName: "Partition", T: 5 /*ScalarType.INT32*/, options: { "validate.rules": { int32: { gte: 0 } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["ProjectID"] } } });
    }
    create(value?: PartialMessage<CountLinesQuery>): CountLinesQuery {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.projectID = "";
        message.partition = 0;
        if (value !== undefined)
            reflectionMergePartial<CountLinesQuery>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CountLinesQuery): CountLinesQuery {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ProjectID = 1 [json_name = "ProjectID"];*/ 1:
                    message.projectID = reader.string();
                    break;
                case /* int32 Partition = 2 [json_name = "Partition"];*/ 2:
                    message.partition = reader.int32();
                    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: CountLinesQuery, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ProjectID = 1 [json_name = "ProjectID"]; */
        if (message.projectID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.projectID);
        /* int32 Partition = 2 [json_name = "Partition"]; */
        if (message.partition !== 0)
            writer.tag(2, WireType.Varint).int32(message.partition);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.CountLinesQuery
 */
export const CountLinesQuery = new CountLinesQuery$Type();
// @generated message type with reflection information, may provide speed optimized methods
class CountLinesResult$Type extends MessageType<CountLinesResult> {
    constructor() {
        super("api.CountLinesResult", [
            { no: 1, name: "NbLines", kind: "scalar", jsonName: "NbLines", T: 5 /*ScalarType.INT32*/ }
        ]);
    }
    create(value?: PartialMessage<CountLinesResult>): CountLinesResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.nbLines = 0;
        if (value !== undefined)
            reflectionMergePartial<CountLinesResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CountLinesResult): CountLinesResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* int32 NbLines = 1 [json_name = "NbLines"];*/ 1:
                    message.nbLines = reader.int32();
                    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: CountLinesResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* int32 NbLines = 1 [json_name = "NbLines"]; */
        if (message.nbLines !== 0)
            writer.tag(1, WireType.Varint).int32(message.nbLines);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.CountLinesResult
 */
export const CountLinesResult = new CountLinesResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class Scope$Type extends MessageType<Scope> {
    constructor() {
        super("api.Scope", [
            { no: 1, name: "Service", kind: "scalar", jsonName: "Service", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 2, name: "Method", kind: "scalar", jsonName: "Method", T: 9 /*ScalarType.STRING*/ },
            { no: 3, name: "RscType", kind: "enum", jsonName: "RscType", T: () => ["api.ResourceType", ResourceType, "RESOURCE_TYPE_"] },
            { no: 4, name: "PlatformReserved", kind: "scalar", jsonName: "PlatformReserved", T: 8 /*ScalarType.BOOL*/ },
            { no: 5, name: "TransientPermissions", kind: "message", jsonName: "TransientPermissions", repeat: 1 /*RepeatType.PACKED*/, T: () => Permission },
            { no: 6, name: "RscID", kind: "scalar", jsonName: "RscID", T: 9 /*ScalarType.STRING*/ },
            { no: 7, name: "AppliesOnIDs", kind: "scalar", jsonName: "AppliesOnIDs", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 8, name: "ModuleID", kind: "scalar", jsonName: "ModuleID", T: 9 /*ScalarType.STRING*/ },
            { no: 9, name: "Mandatory", kind: "scalar", jsonName: "Mandatory", T: 8 /*ScalarType.BOOL*/ }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Service"] } } });
    }
    create(value?: PartialMessage<Scope>): Scope {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.service = "";
        message.method = "";
        message.rscType = 0;
        message.platformReserved = false;
        message.transientPermissions = [];
        message.rscID = "";
        message.appliesOnIDs = [];
        message.moduleID = "";
        message.mandatory = false;
        if (value !== undefined)
            reflectionMergePartial<Scope>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Scope): Scope {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Service = 1 [json_name = "Service"];*/ 1:
                    message.service = reader.string();
                    break;
                case /* string Method = 2 [json_name = "Method"];*/ 2:
                    message.method = reader.string();
                    break;
                case /* api.ResourceType RscType = 3 [json_name = "RscType"];*/ 3:
                    message.rscType = reader.int32();
                    break;
                case /* bool PlatformReserved = 4 [json_name = "PlatformReserved"];*/ 4:
                    message.platformReserved = reader.bool();
                    break;
                case /* repeated api.Permission TransientPermissions = 5 [json_name = "TransientPermissions"];*/ 5:
                    message.transientPermissions.push(Permission.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* string RscID = 6 [json_name = "RscID"];*/ 6:
                    message.rscID = reader.string();
                    break;
                case /* repeated string AppliesOnIDs = 7 [json_name = "AppliesOnIDs"];*/ 7:
                    message.appliesOnIDs.push(reader.string());
                    break;
                case /* string ModuleID = 8 [json_name = "ModuleID"];*/ 8:
                    message.moduleID = reader.string();
                    break;
                case /* bool Mandatory = 9 [json_name = "Mandatory"];*/ 9:
                    message.mandatory = reader.bool();
                    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: Scope, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Service = 1 [json_name = "Service"]; */
        if (message.service !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.service);
        /* string Method = 2 [json_name = "Method"]; */
        if (message.method !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.method);
        /* api.ResourceType RscType = 3 [json_name = "RscType"]; */
        if (message.rscType !== 0)
            writer.tag(3, WireType.Varint).int32(message.rscType);
        /* bool PlatformReserved = 4 [json_name = "PlatformReserved"]; */
        if (message.platformReserved !== false)
            writer.tag(4, WireType.Varint).bool(message.platformReserved);
        /* repeated api.Permission TransientPermissions = 5 [json_name = "TransientPermissions"]; */
        for (let i = 0; i < message.transientPermissions.length; i++)
            Permission.internalBinaryWrite(message.transientPermissions[i], writer.tag(5, WireType.LengthDelimited).fork(), options).join();
        /* string RscID = 6 [json_name = "RscID"]; */
        if (message.rscID !== "")
            writer.tag(6, WireType.LengthDelimited).string(message.rscID);
        /* repeated string AppliesOnIDs = 7 [json_name = "AppliesOnIDs"]; */
        for (let i = 0; i < message.appliesOnIDs.length; i++)
            writer.tag(7, WireType.LengthDelimited).string(message.appliesOnIDs[i]);
        /* string ModuleID = 8 [json_name = "ModuleID"]; */
        if (message.moduleID !== "")
            writer.tag(8, WireType.LengthDelimited).string(message.moduleID);
        /* bool Mandatory = 9 [json_name = "Mandatory"]; */
        if (message.mandatory !== false)
            writer.tag(9, WireType.Varint).bool(message.mandatory);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.Scope
 */
export const Scope = new Scope$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ClientAPI$Type extends MessageType<ClientAPI> {
    constructor() {
        super("api.ClientAPI", [
            { no: 1, name: "Client", kind: "scalar", jsonName: "Client", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "APIs", kind: "message", jsonName: "APIs", repeat: 1 /*RepeatType.PACKED*/, T: () => Scope },
            { no: 3, name: "Roles", kind: "scalar", jsonName: "Roles", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<ClientAPI>): ClientAPI {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.client = "";
        message.aPIs = [];
        message.roles = "";
        if (value !== undefined)
            reflectionMergePartial<ClientAPI>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ClientAPI): ClientAPI {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Client = 1 [json_name = "Client"];*/ 1:
                    message.client = reader.string();
                    break;
                case /* repeated api.Scope APIs = 2 [json_name = "APIs"];*/ 2:
                    message.aPIs.push(Scope.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* string Roles = 3 [json_name = "Roles"];*/ 3:
                    message.roles = 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: ClientAPI, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Client = 1 [json_name = "Client"]; */
        if (message.client !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.client);
        /* repeated api.Scope APIs = 2 [json_name = "APIs"]; */
        for (let i = 0; i < message.aPIs.length; i++)
            Scope.internalBinaryWrite(message.aPIs[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        /* string Roles = 3 [json_name = "Roles"]; */
        if (message.roles !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.roles);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ClientAPI
 */
export const ClientAPI = new ClientAPI$Type();
// @generated message type with reflection information, may provide speed optimized methods
class Permission$Type extends MessageType<Permission> {
    constructor() {
        super("api.Permission", [
            { no: 1, name: "Client", kind: "scalar", jsonName: "Client", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 2, name: "Scopes", kind: "message", jsonName: "Scopes", repeat: 1 /*RepeatType.PACKED*/, T: () => Scope, options: { "validate.rules": { repeated: { minItems: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Client", "Scopes"] } } });
    }
    create(value?: PartialMessage<Permission>): Permission {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.client = "";
        message.scopes = [];
        if (value !== undefined)
            reflectionMergePartial<Permission>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Permission): Permission {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Client = 1 [json_name = "Client"];*/ 1:
                    message.client = reader.string();
                    break;
                case /* repeated api.Scope Scopes = 2 [json_name = "Scopes"];*/ 2:
                    message.scopes.push(Scope.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: Permission, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Client = 1 [json_name = "Client"]; */
        if (message.client !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.client);
        /* repeated api.Scope Scopes = 2 [json_name = "Scopes"]; */
        for (let i = 0; i < message.scopes.length; i++)
            Scope.internalBinaryWrite(message.scopes[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.Permission
 */
export const Permission = new Permission$Type();
// @generated message type with reflection information, may provide speed optimized methods
class UserUIPermissions$Type extends MessageType<UserUIPermissions> {
    constructor() {
        super("api.UserUIPermissions", [
            { no: 1, name: "RscType", kind: "enum", jsonName: "RscType", T: () => ["api.ResourceType", ResourceType, "RESOURCE_TYPE_"] },
            { no: 2, name: "RscID", kind: "scalar", jsonName: "RscID", T: 9 /*ScalarType.STRING*/ },
            { no: 3, name: "Scopes", kind: "message", jsonName: "Scopes", repeat: 1 /*RepeatType.PACKED*/, T: () => Scope }
        ]);
    }
    create(value?: PartialMessage<UserUIPermissions>): UserUIPermissions {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.rscType = 0;
        message.rscID = "";
        message.scopes = [];
        if (value !== undefined)
            reflectionMergePartial<UserUIPermissions>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UserUIPermissions): UserUIPermissions {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.ResourceType RscType = 1 [json_name = "RscType"];*/ 1:
                    message.rscType = reader.int32();
                    break;
                case /* string RscID = 2 [json_name = "RscID"];*/ 2:
                    message.rscID = reader.string();
                    break;
                case /* repeated api.Scope Scopes = 3 [json_name = "Scopes"];*/ 3:
                    message.scopes.push(Scope.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: UserUIPermissions, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.ResourceType RscType = 1 [json_name = "RscType"]; */
        if (message.rscType !== 0)
            writer.tag(1, WireType.Varint).int32(message.rscType);
        /* string RscID = 2 [json_name = "RscID"]; */
        if (message.rscID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.rscID);
        /* repeated api.Scope Scopes = 3 [json_name = "Scopes"]; */
        for (let i = 0; i < message.scopes.length; i++)
            Scope.internalBinaryWrite(message.scopes[i], writer.tag(3, 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.UserUIPermissions
 */
export const UserUIPermissions = new UserUIPermissions$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ElementByMatchQuery$Type extends MessageType<ElementByMatchQuery> {
    constructor() {
        super("api.ElementByMatchQuery", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => QueryProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "BlockFilters", kind: "message", jsonName: "BlockFilters", repeat: 1 /*RepeatType.PACKED*/, T: () => BlockFilter },
            { no: 3, name: "MatchElementField", kind: "message", jsonName: "MatchElementField", T: () => MatchElementField }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header"] } } });
    }
    create(value?: PartialMessage<ElementByMatchQuery>): ElementByMatchQuery {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.blockFilters = [];
        if (value !== undefined)
            reflectionMergePartial<ElementByMatchQuery>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ElementByMatchQuery): ElementByMatchQuery {
        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 = 2 [json_name = "BlockFilters"];*/ 2:
                    message.blockFilters.push(BlockFilter.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* api.MatchElementField MatchElementField = 3 [json_name = "MatchElementField"];*/ 3:
                    message.matchElementField = MatchElementField.internalBinaryRead(reader, reader.uint32(), options, message.matchElementField);
                    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: ElementByMatchQuery, 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 = 2 [json_name = "BlockFilters"]; */
        for (let i = 0; i < message.blockFilters.length; i++)
            BlockFilter.internalBinaryWrite(message.blockFilters[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        /* api.MatchElementField MatchElementField = 3 [json_name = "MatchElementField"]; */
        if (message.matchElementField)
            MatchElementField.internalBinaryWrite(message.matchElementField, writer.tag(3, 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.ElementByMatchQuery
 */
export const ElementByMatchQuery = new ElementByMatchQuery$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ElementByMatchResult$Type extends MessageType<ElementByMatchResult> {
    constructor() {
        super("api.ElementByMatchResult", [
            { no: 1, name: "MatchResults", kind: "message", jsonName: "MatchResults", repeat: 1 /*RepeatType.PACKED*/, T: () => MatchFieldElementResult }
        ]);
    }
    create(value?: PartialMessage<ElementByMatchResult>): ElementByMatchResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.matchResults = [];
        if (value !== undefined)
            reflectionMergePartial<ElementByMatchResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ElementByMatchResult): ElementByMatchResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated api.MatchFieldElementResult MatchResults = 1 [json_name = "MatchResults"];*/ 1:
                    message.matchResults.push(MatchFieldElementResult.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: ElementByMatchResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated api.MatchFieldElementResult MatchResults = 1 [json_name = "MatchResults"]; */
        for (let i = 0; i < message.matchResults.length; i++)
            MatchFieldElementResult.internalBinaryWrite(message.matchResults[i], writer.tag(1, 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.ElementByMatchResult
 */
export const ElementByMatchResult = new ElementByMatchResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class MatchElementField$Type extends MessageType<MatchElementField> {
    constructor() {
        super("api.MatchElementField", [
            { no: 1, name: "Match", kind: "scalar", jsonName: "Match", T: 9 /*ScalarType.STRING*/ },
            { no: 2, 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" } } }
        ]);
    }
    create(value?: PartialMessage<MatchElementField>): MatchElementField {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.match = "";
        message.matchFields = [];
        if (value !== undefined)
            reflectionMergePartial<MatchElementField>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MatchElementField): MatchElementField {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Match = 1 [json_name = "Match"];*/ 1:
                    message.match = reader.string();
                    break;
                case /* repeated api.MatchField MatchFields = 2 [json_name = "MatchFields"];*/ 2:
                    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: MatchElementField, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Match = 1 [json_name = "Match"]; */
        if (message.match !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.match);
        /* repeated api.MatchField MatchFields = 2 [json_name = "MatchFields"]; */
        for (let i = 0; i < message.matchFields.length; i++)
            MatchField.internalBinaryWrite(message.matchFields[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.MatchElementField
 */
export const MatchElementField = new MatchElementField$Type();
// @generated message type with reflection information, may provide speed optimized methods
class MatchFieldElementResult$Type extends MessageType<MatchFieldElementResult> {
    constructor() {
        super("api.MatchFieldElementResult", [
            { no: 3, name: "MatchingElements", kind: "map", jsonName: "MatchingElements", K: 9 /*ScalarType.STRING*/, V: { kind: "scalar", T: 9 /*ScalarType.STRING*/ } }
        ]);
    }
    create(value?: PartialMessage<MatchFieldElementResult>): MatchFieldElementResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.matchingElements = {};
        if (value !== undefined)
            reflectionMergePartial<MatchFieldElementResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MatchFieldElementResult): MatchFieldElementResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* map<string, string> MatchingElements = 3 [json_name = "MatchingElements"];*/ 3:
                    this.binaryReadMap3(message.matchingElements, reader, 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;
    }
    private binaryReadMap3(map: MatchFieldElementResult["matchingElements"], reader: IBinaryReader, options: BinaryReadOptions): void {
        let len = reader.uint32(), end = reader.pos + len, key: keyof MatchFieldElementResult["matchingElements"] | undefined, val: MatchFieldElementResult["matchingElements"][any] | undefined;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case 1:
                    key = reader.string();
                    break;
                case 2:
                    val = reader.string();
                    break;
                default: throw new globalThis.Error("unknown map entry field for field api.MatchFieldElementResult.MatchingElements");
            }
        }
        map[key ?? ""] = val ?? "";
    }
    internalBinaryWrite(message: MatchFieldElementResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* map<string, string> MatchingElements = 3 [json_name = "MatchingElements"]; */
        for (let k of globalThis.Object.keys(message.matchingElements))
            writer.tag(3, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k).tag(2, WireType.LengthDelimited).string(message.matchingElements[k]).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.MatchFieldElementResult
 */
export const MatchFieldElementResult = new MatchFieldElementResult$Type();
