//
//  Generated code. Do not modify.
//  source: metadata.proto
//
// @dart = 3.3

// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names, library_prefixes
// ignore_for_file: non_constant_identifier_names, prefer_final_fields
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import

import 'dart:core' as $core;

import 'package:protobuf/protobuf.dart' as $pb;

import 'metadata.pbenum.dart';
import 'shared.pb.dart' as $3;

export 'package:protobuf/protobuf.dart' show GeneratedMessageGenericExtensions;

export 'metadata.pbenum.dart';

///
/// Aggregation object message
class Metadata extends $pb.GeneratedMessage {
  factory Metadata({
    $3.EventHeader? lastEventHeader,
    $3.EntityID? iD,
    MetadataPayload? payload,
  }) {
    final $result = create();
    if (lastEventHeader != null) {
      $result.lastEventHeader = lastEventHeader;
    }
    if (iD != null) {
      $result.iD = iD;
    }
    if (payload != null) {
      $result.payload = payload;
    }
    return $result;
  }
  Metadata._() : super();
  factory Metadata.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory Metadata.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'Metadata', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.EventHeader>(1, _omitFieldNames ? '' : 'LastEventHeader', protoName: 'LastEventHeader', subBuilder: $3.EventHeader.create)
    ..aOM<$3.EntityID>(2, _omitFieldNames ? '' : 'ID', protoName: 'ID', subBuilder: $3.EntityID.create)
    ..aOM<MetadataPayload>(3, _omitFieldNames ? '' : 'Payload', protoName: 'Payload', subBuilder: MetadataPayload.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
  'Will be removed in next major version')
  Metadata clone() => Metadata()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  Metadata copyWith(void Function(Metadata) updates) => super.copyWith((message) => updates(message as Metadata)) as Metadata;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static Metadata create() => Metadata._();
  Metadata createEmptyInstance() => create();
  static $pb.PbList<Metadata> createRepeated() => $pb.PbList<Metadata>();
  @$core.pragma('dart2js:noInline')
  static Metadata getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Metadata>(create);
  static Metadata? _defaultInstance;

  @$pb.TagNumber(1)
  $3.EventHeader get lastEventHeader => $_getN(0);
  @$pb.TagNumber(1)
  set lastEventHeader($3.EventHeader v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasLastEventHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearLastEventHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.EventHeader ensureLastEventHeader() => $_ensure(0);

  @$pb.TagNumber(2)
  $3.EntityID get iD => $_getN(1);
  @$pb.TagNumber(2)
  set iD($3.EntityID v) { $_setField(2, v); }
  @$pb.TagNumber(2)
  $core.bool hasID() => $_has(1);
  @$pb.TagNumber(2)
  void clearID() => $_clearField(2);
  @$pb.TagNumber(2)
  $3.EntityID ensureID() => $_ensure(1);

  @$pb.TagNumber(3)
  MetadataPayload get payload => $_getN(2);
  @$pb.TagNumber(3)
  set payload(MetadataPayload v) { $_setField(3, v); }
  @$pb.TagNumber(3)
  $core.bool hasPayload() => $_has(2);
  @$pb.TagNumber(3)
  void clearPayload() => $_clearField(3);
  @$pb.TagNumber(3)
  MetadataPayload ensurePayload() => $_ensure(2);
}

class MetadataPayload extends $pb.GeneratedMessage {
  factory MetadataPayload({
    $core.bool? isSegmentationKey,
    $core.String? domain,
    $core.String? entity,
    $core.String? parent,
    $core.String? name,
    $core.String? type,
    $core.bool? isMandatory,
    $core.String? regularExpression,
    MetadataType? typology,
    $core.Iterable<$core.String>? enumeration,
    MetadataStatusStruct? status,
    MetadataDisplayType? showOnCreation,
  }) {
    final $result = create();
    if (isSegmentationKey != null) {
      $result.isSegmentationKey = isSegmentationKey;
    }
    if (domain != null) {
      $result.domain = domain;
    }
    if (entity != null) {
      $result.entity = entity;
    }
    if (parent != null) {
      $result.parent = parent;
    }
    if (name != null) {
      $result.name = name;
    }
    if (type != null) {
      $result.type = type;
    }
    if (isMandatory != null) {
      $result.isMandatory = isMandatory;
    }
    if (regularExpression != null) {
      $result.regularExpression = regularExpression;
    }
    if (typology != null) {
      $result.typology = typology;
    }
    if (enumeration != null) {
      $result.enumeration.addAll(enumeration);
    }
    if (status != null) {
      $result.status = status;
    }
    if (showOnCreation != null) {
      $result.showOnCreation = showOnCreation;
    }
    return $result;
  }
  MetadataPayload._() : super();
  factory MetadataPayload.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory MetadataPayload.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'MetadataPayload', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOB(2, _omitFieldNames ? '' : 'IsSegmentationKey', protoName: 'IsSegmentationKey')
    ..aOS(3, _omitFieldNames ? '' : 'Domain', protoName: 'Domain')
    ..aOS(4, _omitFieldNames ? '' : 'Entity', protoName: 'Entity')
    ..aOS(5, _omitFieldNames ? '' : 'Parent', protoName: 'Parent')
    ..aOS(6, _omitFieldNames ? '' : 'Name', protoName: 'Name')
    ..aOS(7, _omitFieldNames ? '' : 'Type', protoName: 'Type')
    ..aOB(8, _omitFieldNames ? '' : 'IsMandatory', protoName: 'IsMandatory')
    ..aOS(10, _omitFieldNames ? '' : 'RegularExpression', protoName: 'RegularExpression')
    ..e<MetadataType>(11, _omitFieldNames ? '' : 'Typology', $pb.PbFieldType.OE, protoName: 'Typology', defaultOrMaker: MetadataType.TYPE_UNKNOWN, valueOf: MetadataType.valueOf, enumValues: MetadataType.values)
    ..pPS(12, _omitFieldNames ? '' : 'Enumeration', protoName: 'Enumeration')
    ..aOM<MetadataStatusStruct>(13, _omitFieldNames ? '' : 'Status', protoName: 'Status', subBuilder: MetadataStatusStruct.create)
    ..e<MetadataDisplayType>(14, _omitFieldNames ? '' : 'ShowOnCreation', $pb.PbFieldType.OE, protoName: 'ShowOnCreation', defaultOrMaker: MetadataDisplayType.DISPLAY_UNKNOWN, valueOf: MetadataDisplayType.valueOf, enumValues: MetadataDisplayType.values)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
  'Will be removed in next major version')
  MetadataPayload clone() => MetadataPayload()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  MetadataPayload copyWith(void Function(MetadataPayload) updates) => super.copyWith((message) => updates(message as MetadataPayload)) as MetadataPayload;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static MetadataPayload create() => MetadataPayload._();
  MetadataPayload createEmptyInstance() => create();
  static $pb.PbList<MetadataPayload> createRepeated() => $pb.PbList<MetadataPayload>();
  @$core.pragma('dart2js:noInline')
  static MetadataPayload getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<MetadataPayload>(create);
  static MetadataPayload? _defaultInstance;

  /// The segmentation keys are used to complete the segmentation criteria of the project stock. They also apply to order lines and stock movements
  @$pb.TagNumber(2)
  $core.bool get isSegmentationKey => $_getBF(0);
  @$pb.TagNumber(2)
  set isSegmentationKey($core.bool v) { $_setBool(0, v); }
  @$pb.TagNumber(2)
  $core.bool hasIsSegmentationKey() => $_has(0);
  @$pb.TagNumber(2)
  void clearIsSegmentationKey() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.String get domain => $_getSZ(1);
  @$pb.TagNumber(3)
  set domain($core.String v) { $_setString(1, v); }
  @$pb.TagNumber(3)
  $core.bool hasDomain() => $_has(1);
  @$pb.TagNumber(3)
  void clearDomain() => $_clearField(3);

  /// Entity where the metadata will be created. It can be \"executionflow\", \"handlingunit\", \"item\", \"order\", \"stock\"
  @$pb.TagNumber(4)
  $core.String get entity => $_getSZ(2);
  @$pb.TagNumber(4)
  set entity($core.String v) { $_setString(2, v); }
  @$pb.TagNumber(4)
  $core.bool hasEntity() => $_has(2);
  @$pb.TagNumber(4)
  void clearEntity() => $_clearField(4);

  /// Where the metadata is located, either \"Payload.Metadata\" or \"Payload.Goods.SegmentationKeys\"
  @$pb.TagNumber(5)
  $core.String get parent => $_getSZ(3);
  @$pb.TagNumber(5)
  set parent($core.String v) { $_setString(3, v); }
  @$pb.TagNumber(5)
  $core.bool hasParent() => $_has(3);
  @$pb.TagNumber(5)
  void clearParent() => $_clearField(5);

  @$pb.TagNumber(6)
  $core.String get name => $_getSZ(4);
  @$pb.TagNumber(6)
  set name($core.String v) { $_setString(4, v); }
  @$pb.TagNumber(6)
  $core.bool hasName() => $_has(4);
  @$pb.TagNumber(6)
  void clearName() => $_clearField(6);

  /// Type attached to the metadata, can be anything such as string, bool, enum...
  @$pb.TagNumber(7)
  $core.String get type => $_getSZ(5);
  @$pb.TagNumber(7)
  set type($core.String v) { $_setString(5, v); }
  @$pb.TagNumber(7)
  $core.bool hasType() => $_has(5);
  @$pb.TagNumber(7)
  void clearType() => $_clearField(7);

  @$pb.TagNumber(8)
  $core.bool get isMandatory => $_getBF(6);
  @$pb.TagNumber(8)
  set isMandatory($core.bool v) { $_setBool(6, v); }
  @$pb.TagNumber(8)
  $core.bool hasIsMandatory() => $_has(6);
  @$pb.TagNumber(8)
  void clearIsMandatory() => $_clearField(8);

  @$pb.TagNumber(10)
  $core.String get regularExpression => $_getSZ(7);
  @$pb.TagNumber(10)
  set regularExpression($core.String v) { $_setString(7, v); }
  @$pb.TagNumber(10)
  $core.bool hasRegularExpression() => $_has(7);
  @$pb.TagNumber(10)
  void clearRegularExpression() => $_clearField(10);

  @$pb.TagNumber(11)
  MetadataType get typology => $_getN(8);
  @$pb.TagNumber(11)
  set typology(MetadataType v) { $_setField(11, v); }
  @$pb.TagNumber(11)
  $core.bool hasTypology() => $_has(8);
  @$pb.TagNumber(11)
  void clearTypology() => $_clearField(11);

  /// Customizable enumeration
  @$pb.TagNumber(12)
  $pb.PbList<$core.String> get enumeration => $_getList(9);

  @$pb.TagNumber(13)
  MetadataStatusStruct get status => $_getN(10);
  @$pb.TagNumber(13)
  set status(MetadataStatusStruct v) { $_setField(13, v); }
  @$pb.TagNumber(13)
  $core.bool hasStatus() => $_has(10);
  @$pb.TagNumber(13)
  void clearStatus() => $_clearField(13);
  @$pb.TagNumber(13)
  MetadataStatusStruct ensureStatus() => $_ensure(10);

  @$pb.TagNumber(14)
  MetadataDisplayType get showOnCreation => $_getN(11);
  @$pb.TagNumber(14)
  set showOnCreation(MetadataDisplayType v) { $_setField(14, v); }
  @$pb.TagNumber(14)
  $core.bool hasShowOnCreation() => $_has(11);
  @$pb.TagNumber(14)
  void clearShowOnCreation() => $_clearField(14);
}

///
/// 	Metadata entity status structure
class MetadataStatus extends $pb.GeneratedMessage {
  factory MetadataStatus({
    MetadataStatusCode? statusCode,
    $core.String? date,
    $3.DateTime? actualDate,
  }) {
    final $result = create();
    if (statusCode != null) {
      $result.statusCode = statusCode;
    }
    if (date != null) {
      $result.date = date;
    }
    if (actualDate != null) {
      $result.actualDate = actualDate;
    }
    return $result;
  }
  MetadataStatus._() : super();
  factory MetadataStatus.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory MetadataStatus.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'MetadataStatus', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..e<MetadataStatusCode>(1, _omitFieldNames ? '' : 'StatusCode', $pb.PbFieldType.OE, protoName: 'StatusCode', defaultOrMaker: MetadataStatusCode.METADATA_0000_UNKNOWN, valueOf: MetadataStatusCode.valueOf, enumValues: MetadataStatusCode.values)
    ..aOS(2, _omitFieldNames ? '' : 'Date', protoName: 'Date')
    ..aOM<$3.DateTime>(3, _omitFieldNames ? '' : 'ActualDate', protoName: 'ActualDate', subBuilder: $3.DateTime.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
  'Will be removed in next major version')
  MetadataStatus clone() => MetadataStatus()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  MetadataStatus copyWith(void Function(MetadataStatus) updates) => super.copyWith((message) => updates(message as MetadataStatus)) as MetadataStatus;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static MetadataStatus create() => MetadataStatus._();
  MetadataStatus createEmptyInstance() => create();
  static $pb.PbList<MetadataStatus> createRepeated() => $pb.PbList<MetadataStatus>();
  @$core.pragma('dart2js:noInline')
  static MetadataStatus getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<MetadataStatus>(create);
  static MetadataStatus? _defaultInstance;

  @$pb.TagNumber(1)
  MetadataStatusCode get statusCode => $_getN(0);
  @$pb.TagNumber(1)
  set statusCode(MetadataStatusCode v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasStatusCode() => $_has(0);
  @$pb.TagNumber(1)
  void clearStatusCode() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get date => $_getSZ(1);
  @$pb.TagNumber(2)
  set date($core.String v) { $_setString(1, v); }
  @$pb.TagNumber(2)
  $core.bool hasDate() => $_has(1);
  @$pb.TagNumber(2)
  void clearDate() => $_clearField(2);

  /// Status effective date. Set by the event's RefDate that triggered the status change.
  @$pb.TagNumber(3)
  $3.DateTime get actualDate => $_getN(2);
  @$pb.TagNumber(3)
  set actualDate($3.DateTime v) { $_setField(3, v); }
  @$pb.TagNumber(3)
  $core.bool hasActualDate() => $_has(2);
  @$pb.TagNumber(3)
  void clearActualDate() => $_clearField(3);
  @$pb.TagNumber(3)
  $3.DateTime ensureActualDate() => $_ensure(2);
}

///
/// 	MetadataStatusStruct statuses structure
class MetadataStatusStruct extends $pb.GeneratedMessage {
  factory MetadataStatusStruct({
    MetadataStatus? current,
    $core.Iterable<MetadataStatus>? history,
    $core.String? creationDate,
  }) {
    final $result = create();
    if (current != null) {
      $result.current = current;
    }
    if (history != null) {
      $result.history.addAll(history);
    }
    if (creationDate != null) {
      $result.creationDate = creationDate;
    }
    return $result;
  }
  MetadataStatusStruct._() : super();
  factory MetadataStatusStruct.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory MetadataStatusStruct.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'MetadataStatusStruct', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<MetadataStatus>(1, _omitFieldNames ? '' : 'Current', protoName: 'Current', subBuilder: MetadataStatus.create)
    ..pc<MetadataStatus>(2, _omitFieldNames ? '' : 'History', $pb.PbFieldType.PM, protoName: 'History', subBuilder: MetadataStatus.create)
    ..aOS(3, _omitFieldNames ? '' : 'CreationDate', protoName: 'CreationDate')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
  'Will be removed in next major version')
  MetadataStatusStruct clone() => MetadataStatusStruct()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  MetadataStatusStruct copyWith(void Function(MetadataStatusStruct) updates) => super.copyWith((message) => updates(message as MetadataStatusStruct)) as MetadataStatusStruct;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static MetadataStatusStruct create() => MetadataStatusStruct._();
  MetadataStatusStruct createEmptyInstance() => create();
  static $pb.PbList<MetadataStatusStruct> createRepeated() => $pb.PbList<MetadataStatusStruct>();
  @$core.pragma('dart2js:noInline')
  static MetadataStatusStruct getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<MetadataStatusStruct>(create);
  static MetadataStatusStruct? _defaultInstance;

  @$pb.TagNumber(1)
  MetadataStatus get current => $_getN(0);
  @$pb.TagNumber(1)
  set current(MetadataStatus v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasCurrent() => $_has(0);
  @$pb.TagNumber(1)
  void clearCurrent() => $_clearField(1);
  @$pb.TagNumber(1)
  MetadataStatus ensureCurrent() => $_ensure(0);

  @$pb.TagNumber(2)
  $pb.PbList<MetadataStatus> get history => $_getList(1);

  @$pb.TagNumber(3)
  $core.String get creationDate => $_getSZ(2);
  @$pb.TagNumber(3)
  set creationDate($core.String v) { $_setString(2, v); }
  @$pb.TagNumber(3)
  $core.bool hasCreationDate() => $_has(2);
  @$pb.TagNumber(3)
  void clearCreationDate() => $_clearField(3);
}

class MetadataTriplet extends $pb.GeneratedMessage {
  factory MetadataTriplet({
    Metadata? current,
    Metadata? previous,
    Metadata? lastEvent,
  }) {
    final $result = create();
    if (current != null) {
      $result.current = current;
    }
    if (previous != null) {
      $result.previous = previous;
    }
    if (lastEvent != null) {
      $result.lastEvent = lastEvent;
    }
    return $result;
  }
  MetadataTriplet._() : super();
  factory MetadataTriplet.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory MetadataTriplet.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'MetadataTriplet', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<Metadata>(1, _omitFieldNames ? '' : 'Current', protoName: 'Current', subBuilder: Metadata.create)
    ..aOM<Metadata>(2, _omitFieldNames ? '' : 'Previous', protoName: 'Previous', subBuilder: Metadata.create)
    ..aOM<Metadata>(3, _omitFieldNames ? '' : 'LastEvent', protoName: 'LastEvent', subBuilder: Metadata.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
  'Will be removed in next major version')
  MetadataTriplet clone() => MetadataTriplet()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  MetadataTriplet copyWith(void Function(MetadataTriplet) updates) => super.copyWith((message) => updates(message as MetadataTriplet)) as MetadataTriplet;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static MetadataTriplet create() => MetadataTriplet._();
  MetadataTriplet createEmptyInstance() => create();
  static $pb.PbList<MetadataTriplet> createRepeated() => $pb.PbList<MetadataTriplet>();
  @$core.pragma('dart2js:noInline')
  static MetadataTriplet getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<MetadataTriplet>(create);
  static MetadataTriplet? _defaultInstance;

  @$pb.TagNumber(1)
  Metadata get current => $_getN(0);
  @$pb.TagNumber(1)
  set current(Metadata v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasCurrent() => $_has(0);
  @$pb.TagNumber(1)
  void clearCurrent() => $_clearField(1);
  @$pb.TagNumber(1)
  Metadata ensureCurrent() => $_ensure(0);

  @$pb.TagNumber(2)
  Metadata get previous => $_getN(1);
  @$pb.TagNumber(2)
  set previous(Metadata v) { $_setField(2, v); }
  @$pb.TagNumber(2)
  $core.bool hasPrevious() => $_has(1);
  @$pb.TagNumber(2)
  void clearPrevious() => $_clearField(2);
  @$pb.TagNumber(2)
  Metadata ensurePrevious() => $_ensure(1);

  @$pb.TagNumber(3)
  Metadata get lastEvent => $_getN(2);
  @$pb.TagNumber(3)
  set lastEvent(Metadata v) { $_setField(3, v); }
  @$pb.TagNumber(3)
  $core.bool hasLastEvent() => $_has(2);
  @$pb.TagNumber(3)
  void clearLastEvent() => $_clearField(3);
  @$pb.TagNumber(3)
  Metadata ensureLastEvent() => $_ensure(2);
}

class MetadatasToApply extends $pb.GeneratedMessage {
  factory MetadatasToApply({
    $core.String? parent,
    Metadata? metadata,
  }) {
    final $result = create();
    if (parent != null) {
      $result.parent = parent;
    }
    if (metadata != null) {
      $result.metadata = metadata;
    }
    return $result;
  }
  MetadatasToApply._() : super();
  factory MetadatasToApply.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory MetadatasToApply.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'MetadatasToApply', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'Parent', protoName: 'Parent')
    ..aOM<Metadata>(2, _omitFieldNames ? '' : 'Metadata', protoName: 'Metadata', subBuilder: Metadata.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
  'Will be removed in next major version')
  MetadatasToApply clone() => MetadatasToApply()..mergeFromMessage(this);
  @$core.Deprecated(
  'Using this can add significant overhead to your binary. '
  'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
  'Will be removed in next major version')
  MetadatasToApply copyWith(void Function(MetadatasToApply) updates) => super.copyWith((message) => updates(message as MetadatasToApply)) as MetadatasToApply;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static MetadatasToApply create() => MetadatasToApply._();
  MetadatasToApply createEmptyInstance() => create();
  static $pb.PbList<MetadatasToApply> createRepeated() => $pb.PbList<MetadatasToApply>();
  @$core.pragma('dart2js:noInline')
  static MetadatasToApply getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<MetadatasToApply>(create);
  static MetadatasToApply? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get parent => $_getSZ(0);
  @$pb.TagNumber(1)
  set parent($core.String v) { $_setString(0, v); }
  @$pb.TagNumber(1)
  $core.bool hasParent() => $_has(0);
  @$pb.TagNumber(1)
  void clearParent() => $_clearField(1);

  @$pb.TagNumber(2)
  Metadata get metadata => $_getN(1);
  @$pb.TagNumber(2)
  set metadata(Metadata v) { $_setField(2, v); }
  @$pb.TagNumber(2)
  $core.bool hasMetadata() => $_has(1);
  @$pb.TagNumber(2)
  void clearMetadata() => $_clearField(2);
  @$pb.TagNumber(2)
  Metadata ensureMetadata() => $_ensure(1);
}


const _omitFieldNames = $core.bool.fromEnvironment('protobuf.omit_field_names');
const _omitMessageNames = $core.bool.fromEnvironment('protobuf.omit_message_names');
