// @generated by protoc-gen-es v1.10.0 with parameter "target=ts"
// @generated from file claimAction.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 { ClaimStatusStruct } from "./collabShared_pb.js";
import { Amount, ClaimClosure, ClaimCriticality, ClaimEntityType, CommandHeader, EntityID, MetadataElement } from "./shared_pb.js";

/**
 *
 * Notify : Push the claim event to notification
 *
 * @generated from message api.ClaimNotifyPayload
 */
export class ClaimNotifyPayload extends Message<ClaimNotifyPayload> {
  /**
   * @generated from field: repeated string Assignees = 1;
   */
  Assignees: string[] = [];

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

  /**
   * @generated from field: repeated string RemovedAssignees = 3;
   */
  RemovedAssignees: string[] = [];

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

  /**
   * @generated from field: api.ClaimCriticality Criticality = 5;
   */
  Criticality = ClaimCriticality.UNKNOWN;

  /**
   * @generated from field: string EndComment = 6;
   */
  EndComment = "";

  /**
   * @generated from field: api.ClaimClosure Closure = 7;
   */
  Closure?: ClaimClosure;

  /**
   * @generated from field: repeated string AddedAssignees = 8;
   */
  AddedAssignees: string[] = [];

  /**
   * @generated from field: string Reason = 9;
   */
  Reason = "";

  /**
   * @generated from field: api.ClaimEntityType EntityType = 10;
   */
  EntityType = ClaimEntityType.UNKNOWN;

  /**
   * @generated from field: string EntityID = 11;
   */
  EntityID = "";

  /**
   * @generated from field: string Title = 12;
   */
  Title = "";

  /**
   * @generated from field: repeated api.MetadataElement MetaData = 13;
   */
  MetaData: MetadataElement[] = [];

  /**
   * @generated from field: string DisplayID = 14;
   */
  DisplayID = "";

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ClaimNotifyPayload";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Assignees", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
    { no: 2, name: "Status", kind: "message", T: ClaimStatusStruct },
    { no: 3, name: "RemovedAssignees", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
    { no: 4, name: "Amount", kind: "message", T: Amount },
    { no: 5, name: "Criticality", kind: "enum", T: proto3.getEnumType(ClaimCriticality) },
    { no: 6, name: "EndComment", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 7, name: "Closure", kind: "message", T: ClaimClosure },
    { no: 8, name: "AddedAssignees", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
    { no: 9, name: "Reason", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 10, name: "EntityType", kind: "enum", T: proto3.getEnumType(ClaimEntityType) },
    { no: 11, name: "EntityID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 12, name: "Title", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 13, name: "MetaData", kind: "message", T: MetadataElement, repeated: true },
    { no: 14, name: "DisplayID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

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

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

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

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

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

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

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

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

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

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ClaimNotify";
  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: ClaimNotifyPayload },
    { no: 4, name: "EventPayload", kind: "message", T: ClaimNotifyPayload },
    { no: 5, name: "PreviousPayload", kind: "message", T: ClaimNotifyPayload },
  ]);

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

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

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

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

/**
 *
 * PropagateActor : Propagate the created claim on actor
 *
 * @generated from message api.ClaimPropagateActorPayload
 */
export class ClaimPropagateActorPayload extends Message<ClaimPropagateActorPayload> {
  /**
   * Identifier of the Actor
   *
   * @generated from field: string EntityID = 1;
   */
  EntityID = "";

  /**
   * Identifier of the claim type
   *
   * @generated from field: string ClaimTypeID = 2;
   */
  ClaimTypeID = "";

  /**
   * @generated from field: string Reason = 3;
   */
  Reason = "";

  /**
   * @generated from field: api.ClaimEntityType EntityType = 4;
   */
  EntityType = ClaimEntityType.UNKNOWN;

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ClaimPropagateActorPayload";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "EntityID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "ClaimTypeID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "Reason", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 4, name: "EntityType", kind: "enum", T: proto3.getEnumType(ClaimEntityType) },
  ]);

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

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

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

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

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

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

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

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

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

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ClaimPropagateActor";
  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: ClaimPropagateActorPayload },
    { no: 4, name: "EventPayload", kind: "message", T: ClaimPropagateActorPayload },
    { no: 5, name: "PreviousPayload", kind: "message", T: ClaimPropagateActorPayload },
  ]);

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

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

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

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

/**
 *
 * PropagateHandlingunit : Propagate the created claim on actor
 *
 * @generated from message api.ClaimPropagateHandlingunitPayload
 */
export class ClaimPropagateHandlingunitPayload extends Message<ClaimPropagateHandlingunitPayload> {
  /**
   * Identifier of the Handlingunit
   *
   * @generated from field: string EntityID = 1;
   */
  EntityID = "";

  /**
   * Identifier of the claim type
   *
   * @generated from field: string ClaimTypeID = 2;
   */
  ClaimTypeID = "";

  /**
   * @generated from field: string Reason = 3;
   */
  Reason = "";

  /**
   * @generated from field: api.ClaimEntityType EntityType = 4;
   */
  EntityType = ClaimEntityType.UNKNOWN;

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ClaimPropagateHandlingunitPayload";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "EntityID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "ClaimTypeID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "Reason", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 4, name: "EntityType", kind: "enum", T: proto3.getEnumType(ClaimEntityType) },
  ]);

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

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

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

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

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

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

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

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

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

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ClaimPropagateHandlingunit";
  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: ClaimPropagateHandlingunitPayload },
    { no: 4, name: "EventPayload", kind: "message", T: ClaimPropagateHandlingunitPayload },
    { no: 5, name: "PreviousPayload", kind: "message", T: ClaimPropagateHandlingunitPayload },
  ]);

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

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

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

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

/**
 *
 * PropagateOrder : Propagate the created claim on actor
 *
 * @generated from message api.ClaimPropagateOrderPayload
 */
export class ClaimPropagateOrderPayload extends Message<ClaimPropagateOrderPayload> {
  /**
   * Identifier of the Order
   *
   * @generated from field: string EntityID = 1;
   */
  EntityID = "";

  /**
   * Identifier of the claim type
   *
   * @generated from field: string ClaimTypeID = 2;
   */
  ClaimTypeID = "";

  /**
   * @generated from field: string Reason = 3;
   */
  Reason = "";

  /**
   * @generated from field: api.ClaimEntityType EntityType = 4;
   */
  EntityType = ClaimEntityType.UNKNOWN;

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ClaimPropagateOrderPayload";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "EntityID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "ClaimTypeID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "Reason", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 4, name: "EntityType", kind: "enum", T: proto3.getEnumType(ClaimEntityType) },
  ]);

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

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

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

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

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

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

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

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

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

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ClaimPropagateOrder";
  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: ClaimPropagateOrderPayload },
    { no: 4, name: "EventPayload", kind: "message", T: ClaimPropagateOrderPayload },
    { no: 5, name: "PreviousPayload", kind: "message", T: ClaimPropagateOrderPayload },
  ]);

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

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

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

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

/**
 *
 * PropagateExecutionflow : Propagate the created claim on Executionflow
 *
 * @generated from message api.ClaimPropagateExecutionflowPayload
 */
export class ClaimPropagateExecutionflowPayload extends Message<ClaimPropagateExecutionflowPayload> {
  /**
   * Identifier of the Executionflow
   *
   * @generated from field: string EntityID = 1;
   */
  EntityID = "";

  /**
   * Identifier of the claim type
   *
   * @generated from field: string ClaimTypeID = 2;
   */
  ClaimTypeID = "";

  /**
   * @generated from field: string Reason = 3;
   */
  Reason = "";

  /**
   * @generated from field: api.ClaimEntityType EntityType = 4;
   */
  EntityType = ClaimEntityType.UNKNOWN;

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ClaimPropagateExecutionflowPayload";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "EntityID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "ClaimTypeID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "Reason", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 4, name: "EntityType", kind: "enum", T: proto3.getEnumType(ClaimEntityType) },
  ]);

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

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

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

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

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

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

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

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

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

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ClaimPropagateExecutionflow";
  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: ClaimPropagateExecutionflowPayload },
    { no: 4, name: "EventPayload", kind: "message", T: ClaimPropagateExecutionflowPayload },
    { no: 5, name: "PreviousPayload", kind: "message", T: ClaimPropagateExecutionflowPayload },
  ]);

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

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

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

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

/**
 *
 * PropagateMovement : Propagate the created claim on actor
 *
 * @generated from message api.ClaimPropagateMovementPayload
 */
export class ClaimPropagateMovementPayload extends Message<ClaimPropagateMovementPayload> {
  /**
   * Identifier of the StockMove
   *
   * @generated from field: string EntityID = 1;
   */
  EntityID = "";

  /**
   * Identifier of the claim type
   *
   * @generated from field: string ClaimTypeID = 2;
   */
  ClaimTypeID = "";

  /**
   * @generated from field: string Reason = 3;
   */
  Reason = "";

  /**
   * @generated from field: api.ClaimEntityType EntityType = 4;
   */
  EntityType = ClaimEntityType.UNKNOWN;

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ClaimPropagateMovementPayload";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "EntityID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "ClaimTypeID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "Reason", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 4, name: "EntityType", kind: "enum", T: proto3.getEnumType(ClaimEntityType) },
  ]);

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

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

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

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

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

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

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

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

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

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ClaimPropagateMovement";
  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: ClaimPropagateMovementPayload },
    { no: 4, name: "EventPayload", kind: "message", T: ClaimPropagateMovementPayload },
    { no: 5, name: "PreviousPayload", kind: "message", T: ClaimPropagateMovementPayload },
  ]);

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

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

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

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

