// @generated by protobuf-ts 2.9.6
// @generated from protobuf file "actor.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 { PartnerPayload } from "./partner";
import { ClaimSummary } from "./shared";
import { AttachmentSummary } from "./shared";
import { CarrierService } from "./repositoryShared";
import { ActorSnapshot } from "./repositoryShared";
import { ActorTypology } from "./repositoryShared";
import { ActorStatusStruct } from "./repositoryShared";
import { Address } from "./repositoryShared";
import { MetadataElement } from "./shared";
import { IdType } from "./repositoryShared";
import { EntityID } from "./shared";
import { EventHeader } from "./shared";
// _repository_

/**
 *
 * Aggregation object message
 *
 * @generated from protobuf message api.Actor
 */
export interface Actor {
    /**
     * @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.ActorPayload Payload = 3 [json_name = "Payload"];
     */
    payload?: ActorPayload;
}
/**
 * @generated from protobuf message api.ActorPayload
 */
export interface ActorPayload {
    /**
     * Actor Name
     *
     * @generated from protobuf field: string Name = 1 [json_name = "Name"];
     */
    name: string;
    /**
     * @generated from protobuf field: api.IdType IdType = 2 [json_name = "IdType"];
     */
    idType: IdType;
    /**
     * @generated from protobuf field: repeated api.MetadataElement MetaData = 3 [json_name = "MetaData"];
     */
    metaData: MetadataElement[];
    /**
     * @generated from protobuf field: api.Address Address = 4 [json_name = "Address"];
     */
    address?: Address;
    // ActorContact Contact = 5;

    /**
     * Status field is not accessible from APIs
     *
     * @generated from protobuf field: api.ActorStatusStruct Status = 6 [json_name = "Status"];
     */
    status?: ActorStatusStruct;
    /**
     * Existing PartnerID
     *
     * @generated from protobuf field: string PartnerID = 7 [json_name = "PartnerID"];
     */
    partnerID: string;
    // PartnerPayload Partner = 8;
    // string AdditionalInformations = 9;

    /**
     * @generated from protobuf field: string AdditionalInformation = 15 [json_name = "AdditionalInformation"];
     */
    additionalInformation: string;
    /**
     * @generated from protobuf field: api.ActorTypology Typology = 10 [json_name = "Typology"];
     */
    typology: ActorTypology;
    /**
     * @generated from protobuf field: api.ActorSnapshot Snapshot = 11 [json_name = "Snapshot"];
     */
    snapshot?: ActorSnapshot;
    /**
     * Must be a valid email address
     *
     * @generated from protobuf field: repeated string Emails = 12 [json_name = "Emails"];
     */
    emails: string[];
    /**
     * @generated from protobuf field: repeated string Phones = 13 [json_name = "Phones"];
     */
    phones: string[];
    /**
     * Can manage stock
     *
     * @generated from protobuf field: bool ManagedStock = 14 [json_name = "ManagedStock"];
     */
    managedStock: boolean;
    /**
     * Can be used as carrier
     *
     * @generated from protobuf field: bool IsCarrier = 16 [json_name = "IsCarrier"];
     */
    isCarrier: boolean;
    /**
     * List of carrier services
     *
     * @generated from protobuf field: repeated api.CarrierService CarrierServices = 17 [json_name = "CarrierServices"];
     */
    carrierServices: CarrierService[];
    /**
     * @generated from protobuf field: bool IsShipToConnected = 18 [json_name = "IsShipToConnected"];
     */
    isShipToConnected: boolean;
    /**
     * @generated from protobuf field: bool IsShipFromConnected = 19 [json_name = "IsShipFromConnected"];
     */
    isShipFromConnected: boolean;
    /**
     * Must be existing partner ID
     *
     * @generated from protobuf field: string ShipToPartnerAppID = 20 [json_name = "ShipToPartnerAppID"];
     */
    shipToPartnerAppID: string;
    /**
     * Must be existing partner ID
     *
     * @generated from protobuf field: string ShipFromPartnerAppID = 21 [json_name = "ShipFromPartnerAppID"];
     */
    shipFromPartnerAppID: string;
    /**
     * @generated from protobuf field: repeated api.AttachmentSummary Attachments = 22 [json_name = "Attachments"];
     */
    attachments: AttachmentSummary[];
    /**
     * @generated from protobuf field: int32 AttachmentNumber = 23 [json_name = "AttachmentNumber"];
     */
    attachmentNumber: number;
    /**
     * @generated from protobuf field: repeated api.ClaimSummary Claims = 24 [json_name = "Claims"];
     */
    claims: ClaimSummary[];
    /**
     * @generated from protobuf field: int32 ClaimNumber = 25 [json_name = "ClaimNumber"];
     */
    claimNumber: number;
    /**
     * @generated from protobuf field: string PhotoURI = 26 [json_name = "PhotoURI"];
     */
    photoURI: string;
    /**
     * Prefix used to create executionflow identifiers
     *
     * @generated from protobuf field: repeated string ConnectionIdentifierPrefixes = 28 [json_name = "ConnectionIdentifierPrefixes"];
     */
    connectionIdentifierPrefixes: string[];
}
/**
 * Actor Enrichment : Obsolete
 *
 * @generated from protobuf message api.ActorEnrichment
 */
export interface ActorEnrichment {
    /**
     * @generated from protobuf field: string ParentEventID = 1 [json_name = "ParentEventID"];
     */
    parentEventID: string;
    /**
     * @generated from protobuf field: string EntityName = 2 [json_name = "EntityName"];
     */
    entityName: string;
    /**
     * @generated from protobuf field: string EntityRefID = 3 [json_name = "EntityRefID"];
     */
    entityRefID: string;
    /**
     * @generated from protobuf field: string RefFilter = 4 [json_name = "RefFilter"];
     */
    refFilter: string;
    /**
     * @generated from protobuf field: string MergePath = 5 [json_name = "MergePath"];
     */
    mergePath: string;
    /**
     * @generated from protobuf oneof: Content
     */
    content: {
        oneofKind: "partner";
        /**
         * @generated from protobuf field: api.PartnerPayload Partner = 10 [json_name = "Partner"];
         */
        partner: PartnerPayload;
    } | {
        oneofKind: undefined;
    };
    /**
     * @generated from protobuf field: string Project = 6 [json_name = "Project"];
     */
    project: string;
    /**
     * @generated from protobuf field: string ParentEntityName = 7 [json_name = "ParentEntityName"];
     */
    parentEntityName: string;
    /**
     * @generated from protobuf field: string ParentEntityID = 8 [json_name = "ParentEntityID"];
     */
    parentEntityID: string;
}
/**
 * @generated from protobuf message api.ActorTriplet
 */
export interface ActorTriplet {
    /**
     * @generated from protobuf field: api.Actor Current = 1 [json_name = "Current"];
     */
    current?: Actor;
    /**
     * @generated from protobuf field: api.Actor Previous = 2 [json_name = "Previous"];
     */
    previous?: Actor;
    /**
     * @generated from protobuf field: api.Actor LastEvent = 3 [json_name = "LastEvent"];
     */
    lastEvent?: Actor;
}
// @generated message type with reflection information, may provide speed optimized methods
class Actor$Type extends MessageType<Actor> {
    constructor() {
        super("api.Actor", [
            { no: 1, name: "LastEventHeader", kind: "message", jsonName: "LastEventHeader", T: () => EventHeader },
            { no: 2, name: "ID", kind: "message", jsonName: "ID", T: () => EntityID, options: { "api.indexationType": { Types: [{ Context: "*", Type: "generatedText" }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortText" }] } } },
            { no: 3, name: "Payload", kind: "message", jsonName: "Payload", T: () => ActorPayload }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { description: "Aggregation object message" } } });
    }
    create(value?: PartialMessage<Actor>): Actor {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<Actor>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Actor): Actor {
        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.ActorPayload Payload = 3 [json_name = "Payload"];*/ 3:
                    message.payload = ActorPayload.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: Actor, 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.ActorPayload Payload = 3 [json_name = "Payload"]; */
        if (message.payload)
            ActorPayload.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.Actor
 */
export const Actor = new Actor$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ActorPayload$Type extends MessageType<ActorPayload> {
    constructor() {
        super("api.ActorPayload", [
            { no: 1, name: "Name", kind: "scalar", jsonName: "Name", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Actor Name" }, "api.dataRestrictionKey": "Movement,Stock,Executionflow,Handlingunit,Order,Actor,Tracking", "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,String)" }, { Context: "Tracking", Group: "tracking", Queryable: true }] } } },
            { no: 2, name: "IdType", kind: "enum", jsonName: "IdType", T: () => ["api.IdType", IdType], options: { "api.indexationType": { Types: [{ Context: "*", Type: "generatedText,keyword" }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortKeyword" }] } } },
            { no: 3, name: "MetaData", kind: "message", jsonName: "MetaData", repeat: 1 /*RepeatType.PACKED*/, T: () => MetadataElement, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Metadata are characteristics specific to the project. They can be of several data form (string, integer, float, boolean or timestamp)" }, "api.metadata": true, "api.aggKey": "Key", "api.kpiExclude": { Items: [{ Context: "Order", Group: "order" }, { Context: "Tracking", Group: "tracking" }] }, "api.parentEntity": "Actor" } },
            { no: 4, name: "Address", kind: "message", jsonName: "Address", T: () => Address },
            { no: 6, name: "Status", kind: "message", jsonName: "Status", T: () => ActorStatusStruct, options: { "validate.rules": { message: { unauthorized: true } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { readOnly: true }, "api.kpiExclude": { Items: [{ Context: "Order", Group: "movement" }, { Context: "Executionflow", Group: "executionflow" }, { Context: "Handlingunit", Group: "handlingunit" }, { Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Tracking", Group: "tracking" }] }, "api.enrichmentClear": "Order,Executionflow,Stock,Movement,Tracking" } },
            { no: 7, name: "PartnerID", kind: "scalar", jsonName: "PartnerID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Existing PartnerID" }, "api.entityRef": "Partner", "api.dataRestrictionKey": "Movement,Stock,Executionflow,Handlingunit,Order,Actor,Tracking", "api.indexationType": { Types: [{ Context: "*", Type: "generatedText,keyword" }] }, "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,String)" }, { Context: "Tracking", Group: "tracking", Queryable: true }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortKeyword" }] } } },
            { no: 15, name: "AdditionalInformation", kind: "scalar", jsonName: "AdditionalInformation", T: 9 /*ScalarType.STRING*/ },
            { no: 10, name: "Typology", kind: "enum", jsonName: "Typology", T: () => ["api.ActorTypology", ActorTypology], options: { "api.kpiItems": { Items: [{ Context: "Actor", Group: "actor", Queryable: true }, { Context: "Executionflow", Group: "executionflow", Queryable: true }, { Context: "Stock", Group: "stock", Queryable: true }, { Context: "Stock", Group: "stock_extended", Queryable: true, CustomType: "SimpleAggregateFunction(anyLast,String)" }] } } },
            { no: 11, name: "Snapshot", kind: "message", jsonName: "Snapshot", T: () => ActorSnapshot, options: { "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Executionflow", Group: "executionflow" }, { Context: "Movement", Group: "movement" }, { Context: "Handlingunit", Group: "handlingunit" }, { Context: "Order", Group: "order" }, { Context: "Actor", Group: "actor" }, { Context: "Tracking", Group: "tracking" }] }, "api.enrichmentClear": "Order,Executionflow,Stock,Movement,Tracking" } },
            { no: 12, name: "Emails", kind: "scalar", jsonName: "Emails", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { repeated: { items: { string: { email: true, ignoreEmpty: true } } } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Must be a valid email address", example: "[\"John.doe@reflex.com\", \"will.smith@reflex.com\"]" }, "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Movement", Group: "movement" }, { Context: "Handlingunit", Group: "handlingunit" }, { Context: "Actor", Group: "actor" }, { Context: "Tracking", Group: "tracking" }] } } },
            { no: 13, name: "Phones", kind: "scalar", jsonName: "Phones", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { example: "[\"07 00 00 00 00\", \"+49 6 00 00 00 00\"]" }, "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Executionflow", Group: "executionflow" }, { Context: "Movement", Group: "movement" }, { Context: "Handlingunit", Group: "handlingunit" }, { Context: "Order", Group: "order" }, { Context: "Actor", Group: "actor" }, { Context: "Tracking", Group: "tracking" }] } } },
            { no: 14, name: "ManagedStock", kind: "scalar", jsonName: "ManagedStock", T: 8 /*ScalarType.BOOL*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Can manage stock" }, "api.enrichmentClear": "Tracking", "api.kpiItems": { Items: [{ Context: "Executionflow", Group: "executionflow", Queryable: true }] } } },
            { no: 16, name: "IsCarrier", kind: "scalar", jsonName: "IsCarrier", T: 8 /*ScalarType.BOOL*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Can be used as carrier" }, "api.enrichmentClear": "Stock,Movement" } },
            { no: 17, name: "CarrierServices", kind: "message", jsonName: "CarrierServices", repeat: 1 /*RepeatType.PACKED*/, T: () => CarrierService, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "List of carrier services" }, "api.aggKey": "ID", "api.kpiExclude": { Items: [{ Context: "Stock", Group: "stock" }, { Context: "Stock", Group: "stock_extended" }, { Context: "Executionflow", Group: "executionflow" }, { Context: "Movement", Group: "movement" }, { Context: "Handlingunit", Group: "handlingunit" }, { Context: "Order", Group: "order" }, { Context: "Actor", Group: "actor" }, { Context: "Tracking", Group: "tracking" }] }, "api.enrichmentClear": "Stock,Movement,Tracking" } },
            { no: 18, name: "IsShipToConnected", kind: "scalar", jsonName: "IsShipToConnected", T: 8 /*ScalarType.BOOL*/, options: { "api.enrichmentClear": "Stock,Movement,Tracking" } },
            { no: 19, name: "IsShipFromConnected", kind: "scalar", jsonName: "IsShipFromConnected", T: 8 /*ScalarType.BOOL*/, options: { "api.enrichmentClear": "Stock,Movement,Tracking" } },
            { no: 20, name: "ShipToPartnerAppID", kind: "scalar", jsonName: "ShipToPartnerAppID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Must be existing partner ID" }, "api.enrichmentClear": "Stock,Movement,Tracking", "api.indexationType": { Types: [{ Context: "*", Type: "generatedText,keyword" }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortKeyword" }] } } },
            { no: 21, name: "ShipFromPartnerAppID", kind: "scalar", jsonName: "ShipFromPartnerAppID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Must be existing partner ID" }, "api.enrichmentClear": "Stock,Movement,Tracking", "api.indexationType": { Types: [{ Context: "*", Type: "generatedText,keyword" }] }, "api.viewType": { Types: [{ Context: "*", Type: "shortKeyword" }] } } },
            { no: 22, name: "Attachments", kind: "message", jsonName: "Attachments", repeat: 1 /*RepeatType.PACKED*/, T: () => AttachmentSummary, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Number of attachments per type" }, "api.aggSkip": "AttachmentAdded,AttachmentRemoved", "api.enrichmentClear": "Order,Executionflow,Stock,Movement,Tracking" } },
            { no: 23, name: "AttachmentNumber", kind: "scalar", jsonName: "AttachmentNumber", T: 5 /*ScalarType.INT32*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Total number of attachments" }, "api.enrichmentClear": "Order,Executionflow,Stock,Movement,Tracking" } },
            { no: 24, name: "Claims", kind: "message", jsonName: "Claims", repeat: 1 /*RepeatType.PACKED*/, T: () => ClaimSummary, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Number of claims per type" }, "api.aggKey": "ClaimTypeID", "api.aggSkip": "ClaimAdded", "api.enrichmentClear": "Order,Executionflow,Stock,Movement,Tracking" } },
            { no: 25, name: "ClaimNumber", kind: "scalar", jsonName: "ClaimNumber", T: 5 /*ScalarType.INT32*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Total number of claims" }, "api.enrichmentClear": "Order,Stock,Movement,Tracking" } },
            { no: 26, name: "PhotoURI", kind: "scalar", jsonName: "PhotoURI", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { example: "\"https://reflex-visibility-forever.jpg\"" }, "api.kpiItems": { Items: [{ Context: "Actor", Group: "actor", Queryable: true }, { Context: "Executionflow", Group: "executionflow", Queryable: true }, { Context: "Stock", Group: "stock", Queryable: true }, { Context: "Stock", Group: "stock_extended", Queryable: true, CustomType: "SimpleAggregateFunction(anyLast,String)" }] }, "api.viewType": { Types: [{ Context: "*", Type: "image" }] } } },
            { no: 28, name: "ConnectionIdentifierPrefixes", kind: "scalar", jsonName: "ConnectionIdentifierPrefixes", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "api.enrichmentClear": "Stock,Movement,Tracking" } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Name"] } } });
    }
    create(value?: PartialMessage<ActorPayload>): ActorPayload {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.name = "";
        message.idType = 0;
        message.metaData = [];
        message.partnerID = "";
        message.additionalInformation = "";
        message.typology = 0;
        message.emails = [];
        message.phones = [];
        message.managedStock = false;
        message.isCarrier = false;
        message.carrierServices = [];
        message.isShipToConnected = false;
        message.isShipFromConnected = false;
        message.shipToPartnerAppID = "";
        message.shipFromPartnerAppID = "";
        message.attachments = [];
        message.attachmentNumber = 0;
        message.claims = [];
        message.claimNumber = 0;
        message.photoURI = "";
        message.connectionIdentifierPrefixes = [];
        if (value !== undefined)
            reflectionMergePartial<ActorPayload>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ActorPayload): ActorPayload {
        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 /* api.IdType IdType = 2 [json_name = "IdType"];*/ 2:
                    message.idType = reader.int32();
                    break;
                case /* repeated api.MetadataElement MetaData = 3 [json_name = "MetaData"];*/ 3:
                    message.metaData.push(MetadataElement.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* api.Address Address = 4 [json_name = "Address"];*/ 4:
                    message.address = Address.internalBinaryRead(reader, reader.uint32(), options, message.address);
                    break;
                case /* api.ActorStatusStruct Status = 6 [json_name = "Status"];*/ 6:
                    message.status = ActorStatusStruct.internalBinaryRead(reader, reader.uint32(), options, message.status);
                    break;
                case /* string PartnerID = 7 [json_name = "PartnerID"];*/ 7:
                    message.partnerID = reader.string();
                    break;
                case /* string AdditionalInformation = 15 [json_name = "AdditionalInformation"];*/ 15:
                    message.additionalInformation = reader.string();
                    break;
                case /* api.ActorTypology Typology = 10 [json_name = "Typology"];*/ 10:
                    message.typology = reader.int32();
                    break;
                case /* api.ActorSnapshot Snapshot = 11 [json_name = "Snapshot"];*/ 11:
                    message.snapshot = ActorSnapshot.internalBinaryRead(reader, reader.uint32(), options, message.snapshot);
                    break;
                case /* repeated string Emails = 12 [json_name = "Emails"];*/ 12:
                    message.emails.push(reader.string());
                    break;
                case /* repeated string Phones = 13 [json_name = "Phones"];*/ 13:
                    message.phones.push(reader.string());
                    break;
                case /* bool ManagedStock = 14 [json_name = "ManagedStock"];*/ 14:
                    message.managedStock = reader.bool();
                    break;
                case /* bool IsCarrier = 16 [json_name = "IsCarrier"];*/ 16:
                    message.isCarrier = reader.bool();
                    break;
                case /* repeated api.CarrierService CarrierServices = 17 [json_name = "CarrierServices"];*/ 17:
                    message.carrierServices.push(CarrierService.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* bool IsShipToConnected = 18 [json_name = "IsShipToConnected"];*/ 18:
                    message.isShipToConnected = reader.bool();
                    break;
                case /* bool IsShipFromConnected = 19 [json_name = "IsShipFromConnected"];*/ 19:
                    message.isShipFromConnected = reader.bool();
                    break;
                case /* string ShipToPartnerAppID = 20 [json_name = "ShipToPartnerAppID"];*/ 20:
                    message.shipToPartnerAppID = reader.string();
                    break;
                case /* string ShipFromPartnerAppID = 21 [json_name = "ShipFromPartnerAppID"];*/ 21:
                    message.shipFromPartnerAppID = reader.string();
                    break;
                case /* repeated api.AttachmentSummary Attachments = 22 [json_name = "Attachments"];*/ 22:
                    message.attachments.push(AttachmentSummary.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* int32 AttachmentNumber = 23 [json_name = "AttachmentNumber"];*/ 23:
                    message.attachmentNumber = reader.int32();
                    break;
                case /* repeated api.ClaimSummary Claims = 24 [json_name = "Claims"];*/ 24:
                    message.claims.push(ClaimSummary.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* int32 ClaimNumber = 25 [json_name = "ClaimNumber"];*/ 25:
                    message.claimNumber = reader.int32();
                    break;
                case /* string PhotoURI = 26 [json_name = "PhotoURI"];*/ 26:
                    message.photoURI = reader.string();
                    break;
                case /* repeated string ConnectionIdentifierPrefixes = 28 [json_name = "ConnectionIdentifierPrefixes"];*/ 28:
                    message.connectionIdentifierPrefixes.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: ActorPayload, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Name = 1 [json_name = "Name"]; */
        if (message.name !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.name);
        /* api.IdType IdType = 2 [json_name = "IdType"]; */
        if (message.idType !== 0)
            writer.tag(2, WireType.Varint).int32(message.idType);
        /* repeated api.MetadataElement MetaData = 3 [json_name = "MetaData"]; */
        for (let i = 0; i < message.metaData.length; i++)
            MetadataElement.internalBinaryWrite(message.metaData[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();
        /* api.Address Address = 4 [json_name = "Address"]; */
        if (message.address)
            Address.internalBinaryWrite(message.address, writer.tag(4, WireType.LengthDelimited).fork(), options).join();
        /* api.ActorStatusStruct Status = 6 [json_name = "Status"]; */
        if (message.status)
            ActorStatusStruct.internalBinaryWrite(message.status, writer.tag(6, WireType.LengthDelimited).fork(), options).join();
        /* string PartnerID = 7 [json_name = "PartnerID"]; */
        if (message.partnerID !== "")
            writer.tag(7, WireType.LengthDelimited).string(message.partnerID);
        /* string AdditionalInformation = 15 [json_name = "AdditionalInformation"]; */
        if (message.additionalInformation !== "")
            writer.tag(15, WireType.LengthDelimited).string(message.additionalInformation);
        /* api.ActorTypology Typology = 10 [json_name = "Typology"]; */
        if (message.typology !== 0)
            writer.tag(10, WireType.Varint).int32(message.typology);
        /* api.ActorSnapshot Snapshot = 11 [json_name = "Snapshot"]; */
        if (message.snapshot)
            ActorSnapshot.internalBinaryWrite(message.snapshot, writer.tag(11, WireType.LengthDelimited).fork(), options).join();
        /* repeated string Emails = 12 [json_name = "Emails"]; */
        for (let i = 0; i < message.emails.length; i++)
            writer.tag(12, WireType.LengthDelimited).string(message.emails[i]);
        /* repeated string Phones = 13 [json_name = "Phones"]; */
        for (let i = 0; i < message.phones.length; i++)
            writer.tag(13, WireType.LengthDelimited).string(message.phones[i]);
        /* bool ManagedStock = 14 [json_name = "ManagedStock"]; */
        if (message.managedStock !== false)
            writer.tag(14, WireType.Varint).bool(message.managedStock);
        /* bool IsCarrier = 16 [json_name = "IsCarrier"]; */
        if (message.isCarrier !== false)
            writer.tag(16, WireType.Varint).bool(message.isCarrier);
        /* repeated api.CarrierService CarrierServices = 17 [json_name = "CarrierServices"]; */
        for (let i = 0; i < message.carrierServices.length; i++)
            CarrierService.internalBinaryWrite(message.carrierServices[i], writer.tag(17, WireType.LengthDelimited).fork(), options).join();
        /* bool IsShipToConnected = 18 [json_name = "IsShipToConnected"]; */
        if (message.isShipToConnected !== false)
            writer.tag(18, WireType.Varint).bool(message.isShipToConnected);
        /* bool IsShipFromConnected = 19 [json_name = "IsShipFromConnected"]; */
        if (message.isShipFromConnected !== false)
            writer.tag(19, WireType.Varint).bool(message.isShipFromConnected);
        /* string ShipToPartnerAppID = 20 [json_name = "ShipToPartnerAppID"]; */
        if (message.shipToPartnerAppID !== "")
            writer.tag(20, WireType.LengthDelimited).string(message.shipToPartnerAppID);
        /* string ShipFromPartnerAppID = 21 [json_name = "ShipFromPartnerAppID"]; */
        if (message.shipFromPartnerAppID !== "")
            writer.tag(21, WireType.LengthDelimited).string(message.shipFromPartnerAppID);
        /* repeated api.AttachmentSummary Attachments = 22 [json_name = "Attachments"]; */
        for (let i = 0; i < message.attachments.length; i++)
            AttachmentSummary.internalBinaryWrite(message.attachments[i], writer.tag(22, WireType.LengthDelimited).fork(), options).join();
        /* int32 AttachmentNumber = 23 [json_name = "AttachmentNumber"]; */
        if (message.attachmentNumber !== 0)
            writer.tag(23, WireType.Varint).int32(message.attachmentNumber);
        /* repeated api.ClaimSummary Claims = 24 [json_name = "Claims"]; */
        for (let i = 0; i < message.claims.length; i++)
            ClaimSummary.internalBinaryWrite(message.claims[i], writer.tag(24, WireType.LengthDelimited).fork(), options).join();
        /* int32 ClaimNumber = 25 [json_name = "ClaimNumber"]; */
        if (message.claimNumber !== 0)
            writer.tag(25, WireType.Varint).int32(message.claimNumber);
        /* string PhotoURI = 26 [json_name = "PhotoURI"]; */
        if (message.photoURI !== "")
            writer.tag(26, WireType.LengthDelimited).string(message.photoURI);
        /* repeated string ConnectionIdentifierPrefixes = 28 [json_name = "ConnectionIdentifierPrefixes"]; */
        for (let i = 0; i < message.connectionIdentifierPrefixes.length; i++)
            writer.tag(28, WireType.LengthDelimited).string(message.connectionIdentifierPrefixes[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.ActorPayload
 */
export const ActorPayload = new ActorPayload$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ActorEnrichment$Type extends MessageType<ActorEnrichment> {
    constructor() {
        super("api.ActorEnrichment", [
            { no: 1, name: "ParentEventID", kind: "scalar", jsonName: "ParentEventID", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "EntityName", kind: "scalar", jsonName: "EntityName", T: 9 /*ScalarType.STRING*/ },
            { no: 3, name: "EntityRefID", kind: "scalar", jsonName: "EntityRefID", T: 9 /*ScalarType.STRING*/ },
            { no: 4, name: "RefFilter", kind: "scalar", jsonName: "RefFilter", T: 9 /*ScalarType.STRING*/ },
            { no: 5, name: "MergePath", kind: "scalar", jsonName: "MergePath", T: 9 /*ScalarType.STRING*/ },
            { no: 10, name: "Partner", kind: "message", jsonName: "Partner", oneof: "content", T: () => PartnerPayload },
            { no: 6, name: "Project", kind: "scalar", jsonName: "Project", T: 9 /*ScalarType.STRING*/ },
            { no: 7, name: "ParentEntityName", kind: "scalar", jsonName: "ParentEntityName", T: 9 /*ScalarType.STRING*/ },
            { no: 8, name: "ParentEntityID", kind: "scalar", jsonName: "ParentEntityID", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<ActorEnrichment>): ActorEnrichment {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.parentEventID = "";
        message.entityName = "";
        message.entityRefID = "";
        message.refFilter = "";
        message.mergePath = "";
        message.content = { oneofKind: undefined };
        message.project = "";
        message.parentEntityName = "";
        message.parentEntityID = "";
        if (value !== undefined)
            reflectionMergePartial<ActorEnrichment>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ActorEnrichment): ActorEnrichment {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ParentEventID = 1 [json_name = "ParentEventID"];*/ 1:
                    message.parentEventID = reader.string();
                    break;
                case /* string EntityName = 2 [json_name = "EntityName"];*/ 2:
                    message.entityName = reader.string();
                    break;
                case /* string EntityRefID = 3 [json_name = "EntityRefID"];*/ 3:
                    message.entityRefID = reader.string();
                    break;
                case /* string RefFilter = 4 [json_name = "RefFilter"];*/ 4:
                    message.refFilter = reader.string();
                    break;
                case /* string MergePath = 5 [json_name = "MergePath"];*/ 5:
                    message.mergePath = reader.string();
                    break;
                case /* api.PartnerPayload Partner = 10 [json_name = "Partner"];*/ 10:
                    message.content = {
                        oneofKind: "partner",
                        partner: PartnerPayload.internalBinaryRead(reader, reader.uint32(), options, (message.content as any).partner)
                    };
                    break;
                case /* string Project = 6 [json_name = "Project"];*/ 6:
                    message.project = reader.string();
                    break;
                case /* string ParentEntityName = 7 [json_name = "ParentEntityName"];*/ 7:
                    message.parentEntityName = reader.string();
                    break;
                case /* string ParentEntityID = 8 [json_name = "ParentEntityID"];*/ 8:
                    message.parentEntityID = 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: ActorEnrichment, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ParentEventID = 1 [json_name = "ParentEventID"]; */
        if (message.parentEventID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.parentEventID);
        /* string EntityName = 2 [json_name = "EntityName"]; */
        if (message.entityName !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.entityName);
        /* string EntityRefID = 3 [json_name = "EntityRefID"]; */
        if (message.entityRefID !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.entityRefID);
        /* string RefFilter = 4 [json_name = "RefFilter"]; */
        if (message.refFilter !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.refFilter);
        /* string MergePath = 5 [json_name = "MergePath"]; */
        if (message.mergePath !== "")
            writer.tag(5, WireType.LengthDelimited).string(message.mergePath);
        /* api.PartnerPayload Partner = 10 [json_name = "Partner"]; */
        if (message.content.oneofKind === "partner")
            PartnerPayload.internalBinaryWrite(message.content.partner, writer.tag(10, WireType.LengthDelimited).fork(), options).join();
        /* string Project = 6 [json_name = "Project"]; */
        if (message.project !== "")
            writer.tag(6, WireType.LengthDelimited).string(message.project);
        /* string ParentEntityName = 7 [json_name = "ParentEntityName"]; */
        if (message.parentEntityName !== "")
            writer.tag(7, WireType.LengthDelimited).string(message.parentEntityName);
        /* string ParentEntityID = 8 [json_name = "ParentEntityID"]; */
        if (message.parentEntityID !== "")
            writer.tag(8, WireType.LengthDelimited).string(message.parentEntityID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ActorEnrichment
 */
export const ActorEnrichment = new ActorEnrichment$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ActorTriplet$Type extends MessageType<ActorTriplet> {
    constructor() {
        super("api.ActorTriplet", [
            { no: 1, name: "Current", kind: "message", jsonName: "Current", T: () => Actor },
            { no: 2, name: "Previous", kind: "message", jsonName: "Previous", T: () => Actor },
            { no: 3, name: "LastEvent", kind: "message", jsonName: "LastEvent", T: () => Actor }
        ]);
    }
    create(value?: PartialMessage<ActorTriplet>): ActorTriplet {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<ActorTriplet>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ActorTriplet): ActorTriplet {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.Actor Current = 1 [json_name = "Current"];*/ 1:
                    message.current = Actor.internalBinaryRead(reader, reader.uint32(), options, message.current);
                    break;
                case /* api.Actor Previous = 2 [json_name = "Previous"];*/ 2:
                    message.previous = Actor.internalBinaryRead(reader, reader.uint32(), options, message.previous);
                    break;
                case /* api.Actor LastEvent = 3 [json_name = "LastEvent"];*/ 3:
                    message.lastEvent = Actor.internalBinaryRead(reader, reader.uint32(), options, message.lastEvent);
                    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: ActorTriplet, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.Actor Current = 1 [json_name = "Current"]; */
        if (message.current)
            Actor.internalBinaryWrite(message.current, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* api.Actor Previous = 2 [json_name = "Previous"]; */
        if (message.previous)
            Actor.internalBinaryWrite(message.previous, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        /* api.Actor LastEvent = 3 [json_name = "LastEvent"]; */
        if (message.lastEvent)
            Actor.internalBinaryWrite(message.lastEvent, 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.ActorTriplet
 */
export const ActorTriplet = new ActorTriplet$Type();
