// @generated by protoc-gen-es v1.10.0 with parameter "target=ts"
// @generated from file logger.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 { BlockFilter, DateTime, EntityID, EventHeader, LabelStructure, MatchField, MatchFieldResult, QueryProjectHeader, RequestProjectHeader, ResponseHeader, ResultHeader, SeverityLevel } from "./shared_pb.js";

/**
 * @generated from message api.PlatformLogPayload
 */
export class PlatformLogPayload extends Message<PlatformLogPayload> {
  /**
   * Log severity level
   *
   * @generated from field: api.SeverityLevel Severity = 1;
   */
  Severity = SeverityLevel.SEVERITYLEVEL_UNKNOWN;

  /**
   * Where the log occured, for example \"CORE\"
   *
   * @generated from field: string Namespace = 2;
   */
  Namespace = "";

  /**
   * When the log occured
   *
   * @generated from field: api.DateTime DateTime = 3;
   */
  DateTime?: DateTime;

  /**
   * Technical message of the log
   *
   * @generated from field: api.LabelStructure TechMessage = 4;
   */
  TechMessage?: LabelStructure;

  /**
   * User message of the log
   *
   * @generated from field: api.LabelStructure UserMessage = 5;
   */
  UserMessage?: LabelStructure;

  /**
   * Detailed elements of the log
   *
   * @generated from field: repeated api.LabelStructure DetailElements = 6;
   */
  DetailElements: LabelStructure[] = [];

  /**
   * Correlation ID attached to the log
   *
   * @generated from field: string CorrelationID = 7;
   */
  CorrelationID = "";

  /**
   * Context payload attached to the log
   *
   * @generated from field: string ContextPayload = 8;
   */
  ContextPayload = "";

  /**
   * Type attached to the log, can be anything such as Item, Actor, Order...
   *
   * @generated from field: string Type = 9;
   */
  Type = "";

  /**
   * Task attached to the log, can be anything such as Created, Notified, Find...
   *
   * @generated from field: string Task = 10;
   */
  Task = "";

  /**
   * OriginalID attached to the log, can be the ID of an entity related to the log
   *
   * @generated from field: string OriginalID = 11;
   */
  OriginalID = "";

  /**
   * In case the log is identified as an error, the stack trace ; otherwise can be left empty
   *
   * @generated from field: string StackTrace = 12;
   */
  StackTrace = "";

  /**
   * Tags attached to the log
   *
   * @generated from field: repeated string Tags = 13;
   */
  Tags: string[] = [];

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.PlatformLogPayload";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Severity", kind: "enum", T: proto3.getEnumType(SeverityLevel) },
    { no: 2, name: "Namespace", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "DateTime", kind: "message", T: DateTime },
    { no: 4, name: "TechMessage", kind: "message", T: LabelStructure },
    { no: 5, name: "UserMessage", kind: "message", T: LabelStructure },
    { no: 6, name: "DetailElements", kind: "message", T: LabelStructure, repeated: true },
    { no: 7, name: "CorrelationID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 8, name: "ContextPayload", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 9, name: "Type", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 10, name: "Task", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 11, name: "OriginalID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 12, name: "StackTrace", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 13, name: "Tags", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
  ]);

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

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

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

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

/**
 * @generated from message api.PlatformLog
 */
export class PlatformLog extends Message<PlatformLog> {
  /**
   * @generated from field: api.EventHeader LastEventHeader = 1;
   */
  LastEventHeader?: EventHeader;

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

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

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.PlatformLog";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "LastEventHeader", kind: "message", T: EventHeader },
    { no: 2, name: "ID", kind: "message", T: EntityID },
    { no: 3, name: "Payload", kind: "message", T: PlatformLogPayload },
  ]);

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

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

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

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

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

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

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

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.PlatformLogCreateRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: RequestProjectHeader },
    { no: 2, name: "ID", kind: "message", T: EntityID },
    { no: 3, name: "Payload", kind: "message", T: PlatformLogPayload },
  ]);

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

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

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

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

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

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

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.PlatformLogCreateResponse";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: ResponseHeader },
    { no: 2, name: "ID", kind: "message", T: EntityID },
  ]);

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

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

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

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

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

  /**
   * Number of maximum result
   *
   * @generated from field: string limitFilter = 4;
   */
  limitFilter = "";

  /**
   * @generated from field: string queryContext = 5;
   */
  queryContext = "";

  /**
   * list of blockFilters structure for Find query, each element (BlockFilter) in the list is an "OR" part of the query, if not empty, simpleFilters (deprecated) & rangeFilters (deprecated) will be ignored
   *
   * @generated from field: repeated api.BlockFilter BlockFilters = 6;
   */
  BlockFilters: BlockFilter[] = [];

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.PlatformLogFindRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: QueryProjectHeader },
    { no: 4, name: "limitFilter", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 5, name: "queryContext", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 6, name: "BlockFilters", kind: "message", T: BlockFilter, repeated: true },
  ]);

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

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

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

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

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

  /**
   * @generated from field: repeated api.PlatformLog Objects = 2;
   */
  Objects: PlatformLog[] = [];

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

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.PlatformLogFindResult";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: ResultHeader },
    { no: 2, name: "Objects", kind: "message", T: PlatformLog, repeated: true },
    { no: 3, name: "queryContext", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

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

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

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

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

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

  /**
   * @generated from field: repeated api.EntityID IDs = 2;
   */
  IDs: EntityID[] = [];

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.PlatformLogGetByIdsRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: QueryProjectHeader },
    { no: 2, name: "IDs", kind: "message", T: EntityID, repeated: true },
  ]);

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

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

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

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

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

  /**
   * @generated from field: repeated api.PlatformLog Objects = 2;
   */
  Objects: PlatformLog[] = [];

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.PlatformLogGetByIdsResult";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: ResultHeader },
    { no: 2, name: "Objects", kind: "message", T: PlatformLog, repeated: true },
  ]);

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

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

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

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

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

  /**
   * @generated from field: repeated api.BlockFilter BlockFilters = 5;
   */
  BlockFilters: BlockFilter[] = [];

  /**
   * MatchField list structure, for FindMatching query
   *
   * @generated from field: repeated api.MatchField MatchFields = 6;
   */
  MatchFields: MatchField[] = [];

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.PlatformLogByMatchRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: QueryProjectHeader },
    { no: 5, name: "BlockFilters", kind: "message", T: BlockFilter, repeated: true },
    { no: 6, name: "MatchFields", kind: "message", T: MatchField, repeated: true },
  ]);

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

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

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

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

/**
 * @generated from message api.PlatformLogByMatchResult
 */
export class PlatformLogByMatchResult extends Message<PlatformLogByMatchResult> {
  /**
   * @generated from field: repeated api.MatchFieldResult MatchResults = 2;
   */
  MatchResults: MatchFieldResult[] = [];

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.PlatformLogByMatchResult";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 2, name: "MatchResults", kind: "message", T: MatchFieldResult, repeated: true },
  ]);

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

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

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

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

