// @generated by protoc-gen-es v1.10.0 with parameter "target=ts"
// @generated from file handlingunitAction.proto (package api, syntax proto3)
/* eslint-disable */
// @ts-nocheck

import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
import { Message, proto3 } from "@bufbuild/protobuf";
import { HandlingunitInformation, HandlingunitStatusStruct, QuantifiedDatedGoodsByExeflow, QuantifiedGoodsByExeflow } from "./warehousingShared_pb.js";
import { TrackingSummary } from "./transportShared_pb.js";
import { CommandHeader, DateTime, EntityID, MetadataElement } from "./shared_pb.js";
import { ETA } from "./tradeShared_pb.js";

/**
 *
 * HandlingunitMapContentToExecutionFlow : map the Handlingunit content to the corresponding Executionflow
 *
 * @generated from message api.HandlingunitMapContentToExecutionFlowPayload
 */
export class HandlingunitMapContentToExecutionFlowPayload extends Message<HandlingunitMapContentToExecutionFlowPayload> {
  /**
   * @generated from field: api.HandlingunitInformation Information = 1;
   */
  Information?: HandlingunitInformation;

  /**
   * @generated from field: bool ContainsGoods = 2;
   */
  ContainsGoods = false;

  /**
   * @generated from field: bool ContainsHUs = 3;
   */
  ContainsHUs = false;

  /**
   * @generated from field: repeated api.QuantifiedGoodsByExeflow PreparedContents = 4;
   */
  PreparedContents: QuantifiedGoodsByExeflow[] = [];

  /**
   * @generated from field: repeated string IncludedHandlingunitIDs = 5;
   */
  IncludedHandlingunitIDs: string[] = [];

  /**
   * @generated from field: api.TrackingSummary CurrentTrackingSummary = 6;
   */
  CurrentTrackingSummary?: TrackingSummary;

  /**
   * @generated from field: api.HandlingunitStatusStruct Status = 7;
   */
  Status?: HandlingunitStatusStruct;

  /**
   * Metadata are characteristics specific to the project. They can be of several data form (string, integer, float, boolean or timestamp)
   *
   * @generated from field: repeated api.MetadataElement MetaData = 8;
   */
  MetaData: MetadataElement[] = [];

  /**
   * @generated from field: repeated api.QuantifiedDatedGoodsByExeflow ReceivedContents = 9;
   */
  ReceivedContents: QuantifiedDatedGoodsByExeflow[] = [];

  constructor(data?: PartialMessage<HandlingunitMapContentToExecutionFlowPayload>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.HandlingunitMapContentToExecutionFlowPayload";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Information", kind: "message", T: HandlingunitInformation },
    { no: 2, name: "ContainsGoods", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
    { no: 3, name: "ContainsHUs", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
    { no: 4, name: "PreparedContents", kind: "message", T: QuantifiedGoodsByExeflow, repeated: true },
    { no: 5, name: "IncludedHandlingunitIDs", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
    { no: 6, name: "CurrentTrackingSummary", kind: "message", T: TrackingSummary },
    { no: 7, name: "Status", kind: "message", T: HandlingunitStatusStruct },
    { no: 8, name: "MetaData", kind: "message", T: MetadataElement, repeated: true },
    { no: 9, name: "ReceivedContents", kind: "message", T: QuantifiedDatedGoodsByExeflow, repeated: true },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HandlingunitMapContentToExecutionFlowPayload {
    return new HandlingunitMapContentToExecutionFlowPayload().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HandlingunitMapContentToExecutionFlowPayload {
    return new HandlingunitMapContentToExecutionFlowPayload().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HandlingunitMapContentToExecutionFlowPayload {
    return new HandlingunitMapContentToExecutionFlowPayload().fromJsonString(jsonString, options);
  }

  static equals(a: HandlingunitMapContentToExecutionFlowPayload | PlainMessage<HandlingunitMapContentToExecutionFlowPayload> | undefined, b: HandlingunitMapContentToExecutionFlowPayload | PlainMessage<HandlingunitMapContentToExecutionFlowPayload> | undefined): boolean {
    return proto3.util.equals(HandlingunitMapContentToExecutionFlowPayload, a, b);
  }
}

/**
 * @generated from message api.HandlingunitMapContentToExecutionFlow
 */
export class HandlingunitMapContentToExecutionFlow extends Message<HandlingunitMapContentToExecutionFlow> {
  /**
   * @generated from field: api.CommandHeader Header = 1;
   */
  Header?: CommandHeader;

  /**
   * @generated from field: api.EntityID ID = 2;
   */
  ID?: EntityID;

  /**
   * @generated from field: api.HandlingunitMapContentToExecutionFlowPayload Payload = 3;
   */
  Payload?: HandlingunitMapContentToExecutionFlowPayload;

  /**
   * @generated from field: api.HandlingunitMapContentToExecutionFlowPayload EventPayload = 4;
   */
  EventPayload?: HandlingunitMapContentToExecutionFlowPayload;

  /**
   * @generated from field: api.HandlingunitMapContentToExecutionFlowPayload PreviousPayload = 5;
   */
  PreviousPayload?: HandlingunitMapContentToExecutionFlowPayload;

  constructor(data?: PartialMessage<HandlingunitMapContentToExecutionFlow>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.HandlingunitMapContentToExecutionFlow";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: CommandHeader },
    { no: 2, name: "ID", kind: "message", T: EntityID },
    { no: 3, name: "Payload", kind: "message", T: HandlingunitMapContentToExecutionFlowPayload },
    { no: 4, name: "EventPayload", kind: "message", T: HandlingunitMapContentToExecutionFlowPayload },
    { no: 5, name: "PreviousPayload", kind: "message", T: HandlingunitMapContentToExecutionFlowPayload },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HandlingunitMapContentToExecutionFlow {
    return new HandlingunitMapContentToExecutionFlow().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HandlingunitMapContentToExecutionFlow {
    return new HandlingunitMapContentToExecutionFlow().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HandlingunitMapContentToExecutionFlow {
    return new HandlingunitMapContentToExecutionFlow().fromJsonString(jsonString, options);
  }

  static equals(a: HandlingunitMapContentToExecutionFlow | PlainMessage<HandlingunitMapContentToExecutionFlow> | undefined, b: HandlingunitMapContentToExecutionFlow | PlainMessage<HandlingunitMapContentToExecutionFlow> | undefined): boolean {
    return proto3.util.equals(HandlingunitMapContentToExecutionFlow, a, b);
  }
}

/**
 *
 * HandlingunitMapTrackingToExecutionFlow : map the Handlingunit Tracking status to the corresponding Executionflow
 *
 * @generated from message api.HandlingunitMapTrackingToExecutionFlowPayload
 */
export class HandlingunitMapTrackingToExecutionFlowPayload extends Message<HandlingunitMapTrackingToExecutionFlowPayload> {
  /**
   * @generated from field: api.TrackingSummary CurrentTrackingSummary = 1;
   */
  CurrentTrackingSummary?: TrackingSummary;

  /**
   * @generated from field: api.HandlingunitStatusStruct Status = 2;
   */
  Status?: HandlingunitStatusStruct;

  /**
   * @generated from field: repeated api.QuantifiedGoodsByExeflow PreparedContents = 3;
   */
  PreparedContents: QuantifiedGoodsByExeflow[] = [];

  /**
   * @generated from field: repeated api.QuantifiedDatedGoodsByExeflow ReceivedContents = 4;
   */
  ReceivedContents: QuantifiedDatedGoodsByExeflow[] = [];

  /**
   * @generated from field: repeated string TrackingIDs = 11;
   */
  TrackingIDs: string[] = [];

  constructor(data?: PartialMessage<HandlingunitMapTrackingToExecutionFlowPayload>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.HandlingunitMapTrackingToExecutionFlowPayload";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "CurrentTrackingSummary", kind: "message", T: TrackingSummary },
    { no: 2, name: "Status", kind: "message", T: HandlingunitStatusStruct },
    { no: 3, name: "PreparedContents", kind: "message", T: QuantifiedGoodsByExeflow, repeated: true },
    { no: 4, name: "ReceivedContents", kind: "message", T: QuantifiedDatedGoodsByExeflow, repeated: true },
    { no: 11, name: "TrackingIDs", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HandlingunitMapTrackingToExecutionFlowPayload {
    return new HandlingunitMapTrackingToExecutionFlowPayload().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HandlingunitMapTrackingToExecutionFlowPayload {
    return new HandlingunitMapTrackingToExecutionFlowPayload().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HandlingunitMapTrackingToExecutionFlowPayload {
    return new HandlingunitMapTrackingToExecutionFlowPayload().fromJsonString(jsonString, options);
  }

  static equals(a: HandlingunitMapTrackingToExecutionFlowPayload | PlainMessage<HandlingunitMapTrackingToExecutionFlowPayload> | undefined, b: HandlingunitMapTrackingToExecutionFlowPayload | PlainMessage<HandlingunitMapTrackingToExecutionFlowPayload> | undefined): boolean {
    return proto3.util.equals(HandlingunitMapTrackingToExecutionFlowPayload, a, b);
  }
}

/**
 * @generated from message api.HandlingunitMapTrackingToExecutionFlow
 */
export class HandlingunitMapTrackingToExecutionFlow extends Message<HandlingunitMapTrackingToExecutionFlow> {
  /**
   * @generated from field: api.CommandHeader Header = 1;
   */
  Header?: CommandHeader;

  /**
   * @generated from field: api.EntityID ID = 2;
   */
  ID?: EntityID;

  /**
   * @generated from field: api.HandlingunitMapTrackingToExecutionFlowPayload Payload = 3;
   */
  Payload?: HandlingunitMapTrackingToExecutionFlowPayload;

  /**
   * @generated from field: api.HandlingunitMapTrackingToExecutionFlowPayload EventPayload = 4;
   */
  EventPayload?: HandlingunitMapTrackingToExecutionFlowPayload;

  /**
   * @generated from field: api.HandlingunitMapTrackingToExecutionFlowPayload PreviousPayload = 5;
   */
  PreviousPayload?: HandlingunitMapTrackingToExecutionFlowPayload;

  constructor(data?: PartialMessage<HandlingunitMapTrackingToExecutionFlow>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.HandlingunitMapTrackingToExecutionFlow";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: CommandHeader },
    { no: 2, name: "ID", kind: "message", T: EntityID },
    { no: 3, name: "Payload", kind: "message", T: HandlingunitMapTrackingToExecutionFlowPayload },
    { no: 4, name: "EventPayload", kind: "message", T: HandlingunitMapTrackingToExecutionFlowPayload },
    { no: 5, name: "PreviousPayload", kind: "message", T: HandlingunitMapTrackingToExecutionFlowPayload },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HandlingunitMapTrackingToExecutionFlow {
    return new HandlingunitMapTrackingToExecutionFlow().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HandlingunitMapTrackingToExecutionFlow {
    return new HandlingunitMapTrackingToExecutionFlow().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HandlingunitMapTrackingToExecutionFlow {
    return new HandlingunitMapTrackingToExecutionFlow().fromJsonString(jsonString, options);
  }

  static equals(a: HandlingunitMapTrackingToExecutionFlow | PlainMessage<HandlingunitMapTrackingToExecutionFlow> | undefined, b: HandlingunitMapTrackingToExecutionFlow | PlainMessage<HandlingunitMapTrackingToExecutionFlow> | undefined): boolean {
    return proto3.util.equals(HandlingunitMapTrackingToExecutionFlow, a, b);
  }
}

/**
 *
 * HandlingunitMapETAToExecutionFlow : map the Handlingunit ETA to the corresponding Executionflow
 *
 * @generated from message api.HandlingunitMapETAToExecutionFlowPayload
 */
export class HandlingunitMapETAToExecutionFlowPayload extends Message<HandlingunitMapETAToExecutionFlowPayload> {
  /**
   * @generated from field: api.ETA HandlingunitETA = 1;
   */
  HandlingunitETA?: ETA;

  /**
   * @generated from field: repeated api.QuantifiedGoodsByExeflow PreparedContents = 3;
   */
  PreparedContents: QuantifiedGoodsByExeflow[] = [];

  /**
   * @generated from field: repeated api.QuantifiedDatedGoodsByExeflow ReceivedContents = 4;
   */
  ReceivedContents: QuantifiedDatedGoodsByExeflow[] = [];

  constructor(data?: PartialMessage<HandlingunitMapETAToExecutionFlowPayload>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.HandlingunitMapETAToExecutionFlowPayload";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "HandlingunitETA", kind: "message", T: ETA },
    { no: 3, name: "PreparedContents", kind: "message", T: QuantifiedGoodsByExeflow, repeated: true },
    { no: 4, name: "ReceivedContents", kind: "message", T: QuantifiedDatedGoodsByExeflow, repeated: true },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HandlingunitMapETAToExecutionFlowPayload {
    return new HandlingunitMapETAToExecutionFlowPayload().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HandlingunitMapETAToExecutionFlowPayload {
    return new HandlingunitMapETAToExecutionFlowPayload().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HandlingunitMapETAToExecutionFlowPayload {
    return new HandlingunitMapETAToExecutionFlowPayload().fromJsonString(jsonString, options);
  }

  static equals(a: HandlingunitMapETAToExecutionFlowPayload | PlainMessage<HandlingunitMapETAToExecutionFlowPayload> | undefined, b: HandlingunitMapETAToExecutionFlowPayload | PlainMessage<HandlingunitMapETAToExecutionFlowPayload> | undefined): boolean {
    return proto3.util.equals(HandlingunitMapETAToExecutionFlowPayload, a, b);
  }
}

/**
 * @generated from message api.HandlingunitMapETAToExecutionFlow
 */
export class HandlingunitMapETAToExecutionFlow extends Message<HandlingunitMapETAToExecutionFlow> {
  /**
   * @generated from field: api.CommandHeader Header = 1;
   */
  Header?: CommandHeader;

  /**
   * @generated from field: api.EntityID ID = 2;
   */
  ID?: EntityID;

  /**
   * @generated from field: api.HandlingunitMapETAToExecutionFlowPayload Payload = 3;
   */
  Payload?: HandlingunitMapETAToExecutionFlowPayload;

  /**
   * @generated from field: api.HandlingunitMapETAToExecutionFlowPayload EventPayload = 4;
   */
  EventPayload?: HandlingunitMapETAToExecutionFlowPayload;

  /**
   * @generated from field: api.HandlingunitMapETAToExecutionFlowPayload PreviousPayload = 5;
   */
  PreviousPayload?: HandlingunitMapETAToExecutionFlowPayload;

  constructor(data?: PartialMessage<HandlingunitMapETAToExecutionFlow>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.HandlingunitMapETAToExecutionFlow";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: CommandHeader },
    { no: 2, name: "ID", kind: "message", T: EntityID },
    { no: 3, name: "Payload", kind: "message", T: HandlingunitMapETAToExecutionFlowPayload },
    { no: 4, name: "EventPayload", kind: "message", T: HandlingunitMapETAToExecutionFlowPayload },
    { no: 5, name: "PreviousPayload", kind: "message", T: HandlingunitMapETAToExecutionFlowPayload },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HandlingunitMapETAToExecutionFlow {
    return new HandlingunitMapETAToExecutionFlow().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HandlingunitMapETAToExecutionFlow {
    return new HandlingunitMapETAToExecutionFlow().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HandlingunitMapETAToExecutionFlow {
    return new HandlingunitMapETAToExecutionFlow().fromJsonString(jsonString, options);
  }

  static equals(a: HandlingunitMapETAToExecutionFlow | PlainMessage<HandlingunitMapETAToExecutionFlow> | undefined, b: HandlingunitMapETAToExecutionFlow | PlainMessage<HandlingunitMapETAToExecutionFlow> | undefined): boolean {
    return proto3.util.equals(HandlingunitMapETAToExecutionFlow, a, b);
  }
}

/**
 *
 * PropagateTracking : replicate tracking status on all included logistic units
 *
 * @generated from message api.HandlingunitPropagateTrackingPayload
 */
export class HandlingunitPropagateTrackingPayload extends Message<HandlingunitPropagateTrackingPayload> {
  /**
   * @generated from field: bool ContainsHUs = 1;
   */
  ContainsHUs = false;

  /**
   * @generated from field: repeated string IncludedHandlingunitIDs = 2;
   */
  IncludedHandlingunitIDs: string[] = [];

  /**
   * @generated from field: api.TrackingSummary CurrentTrackingSummary = 3;
   */
  CurrentTrackingSummary?: TrackingSummary;

  /**
   * @generated from field: api.DateTime DispatchedDateTime = 4;
   */
  DispatchedDateTime?: DateTime;

  constructor(data?: PartialMessage<HandlingunitPropagateTrackingPayload>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.HandlingunitPropagateTrackingPayload";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "ContainsHUs", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
    { no: 2, name: "IncludedHandlingunitIDs", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
    { no: 3, name: "CurrentTrackingSummary", kind: "message", T: TrackingSummary },
    { no: 4, name: "DispatchedDateTime", kind: "message", T: DateTime },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HandlingunitPropagateTrackingPayload {
    return new HandlingunitPropagateTrackingPayload().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HandlingunitPropagateTrackingPayload {
    return new HandlingunitPropagateTrackingPayload().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HandlingunitPropagateTrackingPayload {
    return new HandlingunitPropagateTrackingPayload().fromJsonString(jsonString, options);
  }

  static equals(a: HandlingunitPropagateTrackingPayload | PlainMessage<HandlingunitPropagateTrackingPayload> | undefined, b: HandlingunitPropagateTrackingPayload | PlainMessage<HandlingunitPropagateTrackingPayload> | undefined): boolean {
    return proto3.util.equals(HandlingunitPropagateTrackingPayload, a, b);
  }
}

/**
 * @generated from message api.HandlingunitPropagateTracking
 */
export class HandlingunitPropagateTracking extends Message<HandlingunitPropagateTracking> {
  /**
   * @generated from field: api.CommandHeader Header = 1;
   */
  Header?: CommandHeader;

  /**
   * @generated from field: api.EntityID ID = 2;
   */
  ID?: EntityID;

  /**
   * @generated from field: api.HandlingunitPropagateTrackingPayload Payload = 3;
   */
  Payload?: HandlingunitPropagateTrackingPayload;

  /**
   * @generated from field: api.HandlingunitPropagateTrackingPayload EventPayload = 4;
   */
  EventPayload?: HandlingunitPropagateTrackingPayload;

  /**
   * @generated from field: api.HandlingunitPropagateTrackingPayload PreviousPayload = 5;
   */
  PreviousPayload?: HandlingunitPropagateTrackingPayload;

  constructor(data?: PartialMessage<HandlingunitPropagateTracking>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.HandlingunitPropagateTracking";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: CommandHeader },
    { no: 2, name: "ID", kind: "message", T: EntityID },
    { no: 3, name: "Payload", kind: "message", T: HandlingunitPropagateTrackingPayload },
    { no: 4, name: "EventPayload", kind: "message", T: HandlingunitPropagateTrackingPayload },
    { no: 5, name: "PreviousPayload", kind: "message", T: HandlingunitPropagateTrackingPayload },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HandlingunitPropagateTracking {
    return new HandlingunitPropagateTracking().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HandlingunitPropagateTracking {
    return new HandlingunitPropagateTracking().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HandlingunitPropagateTracking {
    return new HandlingunitPropagateTracking().fromJsonString(jsonString, options);
  }

  static equals(a: HandlingunitPropagateTracking | PlainMessage<HandlingunitPropagateTracking> | undefined, b: HandlingunitPropagateTracking | PlainMessage<HandlingunitPropagateTracking> | undefined): boolean {
    return proto3.util.equals(HandlingunitPropagateTracking, a, b);
  }
}

/**
 *
 * PropagateETA : replicate ETA on all included logistic units
 *
 * @generated from message api.HandlingunitPropagateETAPayload
 */
export class HandlingunitPropagateETAPayload extends Message<HandlingunitPropagateETAPayload> {
  /**
   * @generated from field: api.ETA HandlingunitETA = 1;
   */
  HandlingunitETA?: ETA;

  /**
   * @generated from field: repeated string IncludedHandlingunitIDs = 2;
   */
  IncludedHandlingunitIDs: string[] = [];

  /**
   * @generated from field: bool ContainsHUs = 3;
   */
  ContainsHUs = false;

  constructor(data?: PartialMessage<HandlingunitPropagateETAPayload>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.HandlingunitPropagateETAPayload";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "HandlingunitETA", kind: "message", T: ETA },
    { no: 2, name: "IncludedHandlingunitIDs", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
    { no: 3, name: "ContainsHUs", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HandlingunitPropagateETAPayload {
    return new HandlingunitPropagateETAPayload().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HandlingunitPropagateETAPayload {
    return new HandlingunitPropagateETAPayload().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HandlingunitPropagateETAPayload {
    return new HandlingunitPropagateETAPayload().fromJsonString(jsonString, options);
  }

  static equals(a: HandlingunitPropagateETAPayload | PlainMessage<HandlingunitPropagateETAPayload> | undefined, b: HandlingunitPropagateETAPayload | PlainMessage<HandlingunitPropagateETAPayload> | undefined): boolean {
    return proto3.util.equals(HandlingunitPropagateETAPayload, a, b);
  }
}

/**
 * @generated from message api.HandlingunitPropagateETA
 */
export class HandlingunitPropagateETA extends Message<HandlingunitPropagateETA> {
  /**
   * @generated from field: api.CommandHeader Header = 1;
   */
  Header?: CommandHeader;

  /**
   * @generated from field: api.EntityID ID = 2;
   */
  ID?: EntityID;

  /**
   * @generated from field: api.HandlingunitPropagateETAPayload Payload = 3;
   */
  Payload?: HandlingunitPropagateETAPayload;

  /**
   * @generated from field: api.HandlingunitPropagateETAPayload EventPayload = 4;
   */
  EventPayload?: HandlingunitPropagateETAPayload;

  /**
   * @generated from field: api.HandlingunitPropagateETAPayload PreviousPayload = 5;
   */
  PreviousPayload?: HandlingunitPropagateETAPayload;

  constructor(data?: PartialMessage<HandlingunitPropagateETA>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.HandlingunitPropagateETA";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: CommandHeader },
    { no: 2, name: "ID", kind: "message", T: EntityID },
    { no: 3, name: "Payload", kind: "message", T: HandlingunitPropagateETAPayload },
    { no: 4, name: "EventPayload", kind: "message", T: HandlingunitPropagateETAPayload },
    { no: 5, name: "PreviousPayload", kind: "message", T: HandlingunitPropagateETAPayload },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HandlingunitPropagateETA {
    return new HandlingunitPropagateETA().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HandlingunitPropagateETA {
    return new HandlingunitPropagateETA().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HandlingunitPropagateETA {
    return new HandlingunitPropagateETA().fromJsonString(jsonString, options);
  }

  static equals(a: HandlingunitPropagateETA | PlainMessage<HandlingunitPropagateETA> | undefined, b: HandlingunitPropagateETA | PlainMessage<HandlingunitPropagateETA> | undefined): boolean {
    return proto3.util.equals(HandlingunitPropagateETA, a, b);
  }
}

/**
 *
 * PropagateParentHU : Propagate ParentHU on all included logistic units
 *
 * @generated from message api.HandlingunitPropagateParentHUPayload
 */
export class HandlingunitPropagateParentHUPayload extends Message<HandlingunitPropagateParentHUPayload> {
  /**
   * @generated from field: bool ContainsHUs = 1;
   */
  ContainsHUs = false;

  /**
   * @generated from field: repeated string IncludedHandlingunitIDs = 2;
   */
  IncludedHandlingunitIDs: string[] = [];

  constructor(data?: PartialMessage<HandlingunitPropagateParentHUPayload>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.HandlingunitPropagateParentHUPayload";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "ContainsHUs", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
    { no: 2, name: "IncludedHandlingunitIDs", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HandlingunitPropagateParentHUPayload {
    return new HandlingunitPropagateParentHUPayload().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HandlingunitPropagateParentHUPayload {
    return new HandlingunitPropagateParentHUPayload().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HandlingunitPropagateParentHUPayload {
    return new HandlingunitPropagateParentHUPayload().fromJsonString(jsonString, options);
  }

  static equals(a: HandlingunitPropagateParentHUPayload | PlainMessage<HandlingunitPropagateParentHUPayload> | undefined, b: HandlingunitPropagateParentHUPayload | PlainMessage<HandlingunitPropagateParentHUPayload> | undefined): boolean {
    return proto3.util.equals(HandlingunitPropagateParentHUPayload, a, b);
  }
}

/**
 * @generated from message api.HandlingunitPropagateParentHU
 */
export class HandlingunitPropagateParentHU extends Message<HandlingunitPropagateParentHU> {
  /**
   * @generated from field: api.CommandHeader Header = 1;
   */
  Header?: CommandHeader;

  /**
   * @generated from field: api.EntityID ID = 2;
   */
  ID?: EntityID;

  /**
   * @generated from field: api.HandlingunitPropagateParentHUPayload Payload = 3;
   */
  Payload?: HandlingunitPropagateParentHUPayload;

  /**
   * @generated from field: api.HandlingunitPropagateParentHUPayload EventPayload = 4;
   */
  EventPayload?: HandlingunitPropagateParentHUPayload;

  /**
   * @generated from field: api.HandlingunitPropagateParentHUPayload PreviousPayload = 5;
   */
  PreviousPayload?: HandlingunitPropagateParentHUPayload;

  constructor(data?: PartialMessage<HandlingunitPropagateParentHU>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.HandlingunitPropagateParentHU";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: CommandHeader },
    { no: 2, name: "ID", kind: "message", T: EntityID },
    { no: 3, name: "Payload", kind: "message", T: HandlingunitPropagateParentHUPayload },
    { no: 4, name: "EventPayload", kind: "message", T: HandlingunitPropagateParentHUPayload },
    { no: 5, name: "PreviousPayload", kind: "message", T: HandlingunitPropagateParentHUPayload },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HandlingunitPropagateParentHU {
    return new HandlingunitPropagateParentHU().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HandlingunitPropagateParentHU {
    return new HandlingunitPropagateParentHU().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HandlingunitPropagateParentHU {
    return new HandlingunitPropagateParentHU().fromJsonString(jsonString, options);
  }

  static equals(a: HandlingunitPropagateParentHU | PlainMessage<HandlingunitPropagateParentHU> | undefined, b: HandlingunitPropagateParentHU | PlainMessage<HandlingunitPropagateParentHU> | undefined): boolean {
    return proto3.util.equals(HandlingunitPropagateParentHU, a, b);
  }
}

/**
 *
 * MoveStock : Send a 'moved' event to the stock to decrement the content of the HU
 *
 * @generated from message api.HandlingunitMoveStockPayload
 */
export class HandlingunitMoveStockPayload extends Message<HandlingunitMoveStockPayload> {
  /**
   * @generated from field: repeated api.QuantifiedGoodsByExeflow PreparedContents = 1;
   */
  PreparedContents: QuantifiedGoodsByExeflow[] = [];

  /**
   * @generated from field: repeated api.QuantifiedDatedGoodsByExeflow ReceivedContents = 2;
   */
  ReceivedContents: QuantifiedDatedGoodsByExeflow[] = [];

  /**
   * @generated from field: api.HandlingunitStatusStruct Status = 8;
   */
  Status?: HandlingunitStatusStruct;

  /**
   * @generated from field: api.DateTime DispatchedDateTime = 9;
   */
  DispatchedDateTime?: DateTime;

  constructor(data?: PartialMessage<HandlingunitMoveStockPayload>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.HandlingunitMoveStockPayload";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "PreparedContents", kind: "message", T: QuantifiedGoodsByExeflow, repeated: true },
    { no: 2, name: "ReceivedContents", kind: "message", T: QuantifiedDatedGoodsByExeflow, repeated: true },
    { no: 8, name: "Status", kind: "message", T: HandlingunitStatusStruct },
    { no: 9, name: "DispatchedDateTime", kind: "message", T: DateTime },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HandlingunitMoveStockPayload {
    return new HandlingunitMoveStockPayload().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HandlingunitMoveStockPayload {
    return new HandlingunitMoveStockPayload().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HandlingunitMoveStockPayload {
    return new HandlingunitMoveStockPayload().fromJsonString(jsonString, options);
  }

  static equals(a: HandlingunitMoveStockPayload | PlainMessage<HandlingunitMoveStockPayload> | undefined, b: HandlingunitMoveStockPayload | PlainMessage<HandlingunitMoveStockPayload> | undefined): boolean {
    return proto3.util.equals(HandlingunitMoveStockPayload, a, b);
  }
}

/**
 * @generated from message api.HandlingunitMoveStock
 */
export class HandlingunitMoveStock extends Message<HandlingunitMoveStock> {
  /**
   * @generated from field: api.CommandHeader Header = 1;
   */
  Header?: CommandHeader;

  /**
   * @generated from field: api.EntityID ID = 2;
   */
  ID?: EntityID;

  /**
   * @generated from field: api.HandlingunitMoveStockPayload Payload = 3;
   */
  Payload?: HandlingunitMoveStockPayload;

  /**
   * @generated from field: api.HandlingunitMoveStockPayload EventPayload = 4;
   */
  EventPayload?: HandlingunitMoveStockPayload;

  /**
   * @generated from field: api.HandlingunitMoveStockPayload PreviousPayload = 5;
   */
  PreviousPayload?: HandlingunitMoveStockPayload;

  constructor(data?: PartialMessage<HandlingunitMoveStock>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.HandlingunitMoveStock";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: CommandHeader },
    { no: 2, name: "ID", kind: "message", T: EntityID },
    { no: 3, name: "Payload", kind: "message", T: HandlingunitMoveStockPayload },
    { no: 4, name: "EventPayload", kind: "message", T: HandlingunitMoveStockPayload },
    { no: 5, name: "PreviousPayload", kind: "message", T: HandlingunitMoveStockPayload },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HandlingunitMoveStock {
    return new HandlingunitMoveStock().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HandlingunitMoveStock {
    return new HandlingunitMoveStock().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HandlingunitMoveStock {
    return new HandlingunitMoveStock().fromJsonString(jsonString, options);
  }

  static equals(a: HandlingunitMoveStock | PlainMessage<HandlingunitMoveStock> | undefined, b: HandlingunitMoveStock | PlainMessage<HandlingunitMoveStock> | undefined): boolean {
    return proto3.util.equals(HandlingunitMoveStock, a, b);
  }
}

