// This is a generated file - do not edit.
//
// Generated from site.proto.

// @dart = 3.3

// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names
// ignore_for_file: curly_braces_in_flow_control_structures
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
// ignore_for_file: non_constant_identifier_names

import 'dart:core' as $core;

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

import 'metadatadef.pb.dart' as $4;
import 'repositoryShared.pb.dart' as $1;
import 'shared.pb.dart' as $3;
import 'slotbooking.pb.dart' as $2;

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

/// Message defining the structure of a Site.
class Site extends $pb.GeneratedMessage {
  factory Site({
    $core.String? iD,
    $core.String? name,
    $core.String? organisationID,
    $core.bool? active,
    $core.String? photoURI,
    $1.Address? address,
    $core.Iterable<$core.String>? phones,
    $core.String? fax,
    $core.Iterable<$2.Segmentation>? segmentations,
    $core.Iterable<$2.ProjectAuthorisation>? authorisations,
    $core.Iterable<$2.Unit>? units,
    $core.Iterable<$2.OpeningRule>? openingRules,
    $core.Iterable<$2.DurationRule>? durationRules,
    $core.Iterable<$2.CapacityRule>? capacityRules,
    $2.Instruction? instruction,
    $core.Iterable<$2.Document>? instructionDocuments,
    $core.int? roundedPeriodInMinutes,
    $core.String? timeZone,
    $core.Iterable<$core.String>? emails,
    $core.String? defaultSiteLanguageISO6391,
    $core.String? prefixAppointmentID,
    StandAloneConf? standAloneConf,
  }) {
    final result = create();
    if (iD != null) result.iD = iD;
    if (name != null) result.name = name;
    if (organisationID != null) result.organisationID = organisationID;
    if (active != null) result.active = active;
    if (photoURI != null) result.photoURI = photoURI;
    if (address != null) result.address = address;
    if (phones != null) result.phones.addAll(phones);
    if (fax != null) result.fax = fax;
    if (segmentations != null) result.segmentations.addAll(segmentations);
    if (authorisations != null) result.authorisations.addAll(authorisations);
    if (units != null) result.units.addAll(units);
    if (openingRules != null) result.openingRules.addAll(openingRules);
    if (durationRules != null) result.durationRules.addAll(durationRules);
    if (capacityRules != null) result.capacityRules.addAll(capacityRules);
    if (instruction != null) result.instruction = instruction;
    if (instructionDocuments != null) result.instructionDocuments.addAll(instructionDocuments);
    if (roundedPeriodInMinutes != null) result.roundedPeriodInMinutes = roundedPeriodInMinutes;
    if (timeZone != null) result.timeZone = timeZone;
    if (emails != null) result.emails.addAll(emails);
    if (defaultSiteLanguageISO6391 != null) result.defaultSiteLanguageISO6391 = defaultSiteLanguageISO6391;
    if (prefixAppointmentID != null) result.prefixAppointmentID = prefixAppointmentID;
    if (standAloneConf != null) result.standAloneConf = standAloneConf;
    return result;
  }

  Site._();

  factory Site.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory Site.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'Site', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'ID', protoName: 'ID')
    ..aOS(2, _omitFieldNames ? '' : 'Name', protoName: 'Name')
    ..aOS(3, _omitFieldNames ? '' : 'OrganisationID', protoName: 'OrganisationID')
    ..aOB(4, _omitFieldNames ? '' : 'Active', protoName: 'Active')
    ..aOS(5, _omitFieldNames ? '' : 'PhotoURI', protoName: 'PhotoURI')
    ..aOM<$1.Address>(6, _omitFieldNames ? '' : 'Address', protoName: 'Address', subBuilder: $1.Address.create)
    ..pPS(7, _omitFieldNames ? '' : 'Phones', protoName: 'Phones')
    ..aOS(8, _omitFieldNames ? '' : 'Fax', protoName: 'Fax')
    ..pc<$2.Segmentation>(9, _omitFieldNames ? '' : 'Segmentations', $pb.PbFieldType.PM, protoName: 'Segmentations', subBuilder: $2.Segmentation.create)
    ..pc<$2.ProjectAuthorisation>(10, _omitFieldNames ? '' : 'Authorisations', $pb.PbFieldType.PM, protoName: 'Authorisations', subBuilder: $2.ProjectAuthorisation.create)
    ..pc<$2.Unit>(11, _omitFieldNames ? '' : 'Units', $pb.PbFieldType.PM, protoName: 'Units', subBuilder: $2.Unit.create)
    ..pc<$2.OpeningRule>(12, _omitFieldNames ? '' : 'OpeningRules', $pb.PbFieldType.PM, protoName: 'OpeningRules', subBuilder: $2.OpeningRule.create)
    ..pc<$2.DurationRule>(13, _omitFieldNames ? '' : 'DurationRules', $pb.PbFieldType.PM, protoName: 'DurationRules', subBuilder: $2.DurationRule.create)
    ..pc<$2.CapacityRule>(14, _omitFieldNames ? '' : 'CapacityRules', $pb.PbFieldType.PM, protoName: 'CapacityRules', subBuilder: $2.CapacityRule.create)
    ..aOM<$2.Instruction>(15, _omitFieldNames ? '' : 'Instruction', protoName: 'Instruction', subBuilder: $2.Instruction.create)
    ..pc<$2.Document>(16, _omitFieldNames ? '' : 'InstructionDocuments', $pb.PbFieldType.PM, protoName: 'InstructionDocuments', subBuilder: $2.Document.create)
    ..a<$core.int>(18, _omitFieldNames ? '' : 'RoundedPeriodInMinutes', $pb.PbFieldType.OU3, protoName: 'RoundedPeriodInMinutes')
    ..aOS(19, _omitFieldNames ? '' : 'TimeZone', protoName: 'TimeZone')
    ..pPS(20, _omitFieldNames ? '' : 'Emails', protoName: 'Emails')
    ..aOS(21, _omitFieldNames ? '' : 'DefaultSiteLanguageISO6391', protoName: 'DefaultSiteLanguageISO6391')
    ..aOS(23, _omitFieldNames ? '' : 'PrefixAppointmentID', protoName: 'PrefixAppointmentID')
    ..aOM<StandAloneConf>(24, _omitFieldNames ? '' : 'StandAloneConf', protoName: 'StandAloneConf', subBuilder: StandAloneConf.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  Site clone() => Site()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  Site copyWith(void Function(Site) updates) => super.copyWith((message) => updates(message as Site)) as Site;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $core.String get iD => $_getSZ(0);
  @$pb.TagNumber(1)
  set iD($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasID() => $_has(0);
  @$pb.TagNumber(1)
  void clearID() => $_clearField(1);

  /// Name of the Site
  @$pb.TagNumber(2)
  $core.String get name => $_getSZ(1);
  @$pb.TagNumber(2)
  set name($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasName() => $_has(1);
  @$pb.TagNumber(2)
  void clearName() => $_clearField(2);

  /// Identifier for the organisation associated with the site.
  @$pb.TagNumber(3)
  $core.String get organisationID => $_getSZ(2);
  @$pb.TagNumber(3)
  set organisationID($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasOrganisationID() => $_has(2);
  @$pb.TagNumber(3)
  void clearOrganisationID() => $_clearField(3);

  @$pb.TagNumber(4)
  $core.bool get active => $_getBF(3);
  @$pb.TagNumber(4)
  set active($core.bool value) => $_setBool(3, value);
  @$pb.TagNumber(4)
  $core.bool hasActive() => $_has(3);
  @$pb.TagNumber(4)
  void clearActive() => $_clearField(4);

  @$pb.TagNumber(5)
  $core.String get photoURI => $_getSZ(4);
  @$pb.TagNumber(5)
  set photoURI($core.String value) => $_setString(4, value);
  @$pb.TagNumber(5)
  $core.bool hasPhotoURI() => $_has(4);
  @$pb.TagNumber(5)
  void clearPhotoURI() => $_clearField(5);

  @$pb.TagNumber(6)
  $1.Address get address => $_getN(5);
  @$pb.TagNumber(6)
  set address($1.Address value) => $_setField(6, value);
  @$pb.TagNumber(6)
  $core.bool hasAddress() => $_has(5);
  @$pb.TagNumber(6)
  void clearAddress() => $_clearField(6);
  @$pb.TagNumber(6)
  $1.Address ensureAddress() => $_ensure(5);

  @$pb.TagNumber(7)
  $pb.PbList<$core.String> get phones => $_getList(6);

  @$pb.TagNumber(8)
  $core.String get fax => $_getSZ(7);
  @$pb.TagNumber(8)
  set fax($core.String value) => $_setString(7, value);
  @$pb.TagNumber(8)
  $core.bool hasFax() => $_has(7);
  @$pb.TagNumber(8)
  void clearFax() => $_clearField(8);

  /// List of Segmentations that segment the logistic site.
  @$pb.TagNumber(9)
  $pb.PbList<$2.Segmentation> get segmentations => $_getList(8);

  /// List of allowed project and the constraints (interval time in which they can book an appointment) they are associated with.
  @$pb.TagNumber(10)
  $pb.PbList<$2.ProjectAuthorisation> get authorisations => $_getList(9);

  /// List of containment units which will be used to estimate the needed time to load or unload.
  @$pb.TagNumber(11)
  $pb.PbList<$2.Unit> get units => $_getList(10);

  /// Definition of the opening rules. 2 opening rule definitions cannot overlap.
  @$pb.TagNumber(12)
  $pb.PbList<$2.OpeningRule> get openingRules => $_getList(11);

  /// Definition of the booking slot duration rules.
  @$pb.TagNumber(13)
  $pb.PbList<$2.DurationRule> get durationRules => $_getList(12);

  /// Definition of the capacity rules. 2 capacity rule can overlap and the more constraining one will be applied.
  @$pb.TagNumber(14)
  $pb.PbList<$2.CapacityRule> get capacityRules => $_getList(13);

  @$pb.TagNumber(15)
  $2.Instruction get instruction => $_getN(14);
  @$pb.TagNumber(15)
  set instruction($2.Instruction value) => $_setField(15, value);
  @$pb.TagNumber(15)
  $core.bool hasInstruction() => $_has(14);
  @$pb.TagNumber(15)
  void clearInstruction() => $_clearField(15);
  @$pb.TagNumber(15)
  $2.Instruction ensureInstruction() => $_ensure(14);

  /// Set of instruction document, listing necessary equipment and such
  @$pb.TagNumber(16)
  $pb.PbList<$2.Document> get instructionDocuments => $_getList(15);

  /// Defines the rounded value to define booking period
  @$pb.TagNumber(18)
  $core.int get roundedPeriodInMinutes => $_getIZ(16);
  @$pb.TagNumber(18)
  set roundedPeriodInMinutes($core.int value) => $_setUnsignedInt32(16, value);
  @$pb.TagNumber(18)
  $core.bool hasRoundedPeriodInMinutes() => $_has(16);
  @$pb.TagNumber(18)
  void clearRoundedPeriodInMinutes() => $_clearField(18);

  /// Site Time zone
  @$pb.TagNumber(19)
  $core.String get timeZone => $_getSZ(17);
  @$pb.TagNumber(19)
  set timeZone($core.String value) => $_setString(17, value);
  @$pb.TagNumber(19)
  $core.bool hasTimeZone() => $_has(17);
  @$pb.TagNumber(19)
  void clearTimeZone() => $_clearField(19);

  /// Must be a valid email address
  @$pb.TagNumber(20)
  $pb.PbList<$core.String> get emails => $_getList(18);

  /// Set the fallback language in case of missing translation
  @$pb.TagNumber(21)
  $core.String get defaultSiteLanguageISO6391 => $_getSZ(19);
  @$pb.TagNumber(21)
  set defaultSiteLanguageISO6391($core.String value) => $_setString(19, value);
  @$pb.TagNumber(21)
  $core.bool hasDefaultSiteLanguageISO6391() => $_has(19);
  @$pb.TagNumber(21)
  void clearDefaultSiteLanguageISO6391() => $_clearField(21);

  @$pb.TagNumber(23)
  $core.String get prefixAppointmentID => $_getSZ(20);
  @$pb.TagNumber(23)
  set prefixAppointmentID($core.String value) => $_setString(20, value);
  @$pb.TagNumber(23)
  $core.bool hasPrefixAppointmentID() => $_has(20);
  @$pb.TagNumber(23)
  void clearPrefixAppointmentID() => $_clearField(23);

  /// standAlone mode configuration
  @$pb.TagNumber(24)
  StandAloneConf get standAloneConf => $_getN(21);
  @$pb.TagNumber(24)
  set standAloneConf(StandAloneConf value) => $_setField(24, value);
  @$pb.TagNumber(24)
  $core.bool hasStandAloneConf() => $_has(21);
  @$pb.TagNumber(24)
  void clearStandAloneConf() => $_clearField(24);
  @$pb.TagNumber(24)
  StandAloneConf ensureStandAloneConf() => $_ensure(21);
}

/// Create
class CreateSettingsRequest extends $pb.GeneratedMessage {
  factory CreateSettingsRequest({
    $core.String? organisationID,
    $core.String? siteID,
    $core.String? siteName,
    $core.String? email,
  }) {
    final result = create();
    if (organisationID != null) result.organisationID = organisationID;
    if (siteID != null) result.siteID = siteID;
    if (siteName != null) result.siteName = siteName;
    if (email != null) result.email = email;
    return result;
  }

  CreateSettingsRequest._();

  factory CreateSettingsRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory CreateSettingsRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'CreateSettingsRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'OrganisationID', protoName: 'OrganisationID')
    ..aOS(2, _omitFieldNames ? '' : 'SiteID', protoName: 'SiteID')
    ..aOS(3, _omitFieldNames ? '' : 'SiteName', protoName: 'SiteName')
    ..aOS(4, _omitFieldNames ? '' : 'Email', protoName: 'Email')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CreateSettingsRequest clone() => CreateSettingsRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CreateSettingsRequest copyWith(void Function(CreateSettingsRequest) updates) => super.copyWith((message) => updates(message as CreateSettingsRequest)) as CreateSettingsRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  /// Identifier of the organisation
  @$pb.TagNumber(1)
  $core.String get organisationID => $_getSZ(0);
  @$pb.TagNumber(1)
  set organisationID($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasOrganisationID() => $_has(0);
  @$pb.TagNumber(1)
  void clearOrganisationID() => $_clearField(1);

  /// Identifier of the new Site
  @$pb.TagNumber(2)
  $core.String get siteID => $_getSZ(1);
  @$pb.TagNumber(2)
  set siteID($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasSiteID() => $_has(1);
  @$pb.TagNumber(2)
  void clearSiteID() => $_clearField(2);

  /// Name of the new Site, modifiable after creation
  @$pb.TagNumber(3)
  $core.String get siteName => $_getSZ(2);
  @$pb.TagNumber(3)
  set siteName($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasSiteName() => $_has(2);
  @$pb.TagNumber(3)
  void clearSiteName() => $_clearField(3);

  /// Must be a valid email address from a user know to the platform
  @$pb.TagNumber(4)
  $core.String get email => $_getSZ(3);
  @$pb.TagNumber(4)
  set email($core.String value) => $_setString(3, value);
  @$pb.TagNumber(4)
  $core.bool hasEmail() => $_has(3);
  @$pb.TagNumber(4)
  void clearEmail() => $_clearField(4);
}

class CreateSettingsResponse extends $pb.GeneratedMessage {
  factory CreateSettingsResponse({
    Site? site,
  }) {
    final result = create();
    if (site != null) result.site = site;
    return result;
  }

  CreateSettingsResponse._();

  factory CreateSettingsResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory CreateSettingsResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

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

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CreateSettingsResponse clone() => CreateSettingsResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CreateSettingsResponse copyWith(void Function(CreateSettingsResponse) updates) => super.copyWith((message) => updates(message as CreateSettingsResponse)) as CreateSettingsResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  Site get site => $_getN(0);
  @$pb.TagNumber(1)
  set site(Site value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasSite() => $_has(0);
  @$pb.TagNumber(1)
  void clearSite() => $_clearField(1);
  @$pb.TagNumber(1)
  Site ensureSite() => $_ensure(0);
}

/// Get
class GetSettingsRequest extends $pb.GeneratedMessage {
  factory GetSettingsRequest({
    $3.RequestProjectHeader? header,
  }) {
    final result = create();
    if (header != null) result.header = header;
    return result;
  }

  GetSettingsRequest._();

  factory GetSettingsRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory GetSettingsRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'GetSettingsRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetSettingsRequest clone() => GetSettingsRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetSettingsRequest copyWith(void Function(GetSettingsRequest) updates) => super.copyWith((message) => updates(message as GetSettingsRequest)) as GetSettingsRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.RequestProjectHeader ensureHeader() => $_ensure(0);
}

/// List
class ListSettingsRequest extends $pb.GeneratedMessage {
  factory ListSettingsRequest() => create();

  ListSettingsRequest._();

  factory ListSettingsRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory ListSettingsRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ListSettingsRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ListSettingsRequest clone() => ListSettingsRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ListSettingsRequest copyWith(void Function(ListSettingsRequest) updates) => super.copyWith((message) => updates(message as ListSettingsRequest)) as ListSettingsRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

class GetSettingsResponse extends $pb.GeneratedMessage {
  factory GetSettingsResponse({
    Site? site,
  }) {
    final result = create();
    if (site != null) result.site = site;
    return result;
  }

  GetSettingsResponse._();

  factory GetSettingsResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory GetSettingsResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

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

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetSettingsResponse clone() => GetSettingsResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetSettingsResponse copyWith(void Function(GetSettingsResponse) updates) => super.copyWith((message) => updates(message as GetSettingsResponse)) as GetSettingsResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  Site get site => $_getN(0);
  @$pb.TagNumber(1)
  set site(Site value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasSite() => $_has(0);
  @$pb.TagNumber(1)
  void clearSite() => $_clearField(1);
  @$pb.TagNumber(1)
  Site ensureSite() => $_ensure(0);
}

class FilterSite extends $pb.GeneratedMessage {
  factory FilterSite({
    $core.String? label,
    $core.String? phone,
    $core.String? address,
    $core.String? mail,
    $core.String? city,
    $core.int? limit,
  }) {
    final result = create();
    if (label != null) result.label = label;
    if (phone != null) result.phone = phone;
    if (address != null) result.address = address;
    if (mail != null) result.mail = mail;
    if (city != null) result.city = city;
    if (limit != null) result.limit = limit;
    return result;
  }

  FilterSite._();

  factory FilterSite.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory FilterSite.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'FilterSite', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'Label', protoName: 'Label')
    ..aOS(2, _omitFieldNames ? '' : 'Phone', protoName: 'Phone')
    ..aOS(3, _omitFieldNames ? '' : 'Address', protoName: 'Address')
    ..aOS(4, _omitFieldNames ? '' : 'Mail', protoName: 'Mail')
    ..aOS(5, _omitFieldNames ? '' : 'City', protoName: 'City')
    ..a<$core.int>(6, _omitFieldNames ? '' : 'Limit', $pb.PbFieldType.O3, protoName: 'Limit')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  FilterSite clone() => FilterSite()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  FilterSite copyWith(void Function(FilterSite) updates) => super.copyWith((message) => updates(message as FilterSite)) as FilterSite;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $core.String get label => $_getSZ(0);
  @$pb.TagNumber(1)
  set label($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasLabel() => $_has(0);
  @$pb.TagNumber(1)
  void clearLabel() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get phone => $_getSZ(1);
  @$pb.TagNumber(2)
  set phone($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasPhone() => $_has(1);
  @$pb.TagNumber(2)
  void clearPhone() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.String get address => $_getSZ(2);
  @$pb.TagNumber(3)
  set address($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasAddress() => $_has(2);
  @$pb.TagNumber(3)
  void clearAddress() => $_clearField(3);

  @$pb.TagNumber(4)
  $core.String get mail => $_getSZ(3);
  @$pb.TagNumber(4)
  set mail($core.String value) => $_setString(3, value);
  @$pb.TagNumber(4)
  $core.bool hasMail() => $_has(3);
  @$pb.TagNumber(4)
  void clearMail() => $_clearField(4);

  @$pb.TagNumber(5)
  $core.String get city => $_getSZ(4);
  @$pb.TagNumber(5)
  set city($core.String value) => $_setString(4, value);
  @$pb.TagNumber(5)
  $core.bool hasCity() => $_has(4);
  @$pb.TagNumber(5)
  void clearCity() => $_clearField(5);

  @$pb.TagNumber(6)
  $core.int get limit => $_getIZ(5);
  @$pb.TagNumber(6)
  set limit($core.int value) => $_setSignedInt32(5, value);
  @$pb.TagNumber(6)
  $core.bool hasLimit() => $_has(5);
  @$pb.TagNumber(6)
  void clearLimit() => $_clearField(6);
}

class ListSettingsResponse extends $pb.GeneratedMessage {
  factory ListSettingsResponse({
    $core.Iterable<Site>? sites,
  }) {
    final result = create();
    if (sites != null) result.sites.addAll(sites);
    return result;
  }

  ListSettingsResponse._();

  factory ListSettingsResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory ListSettingsResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ListSettingsResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..pc<Site>(1, _omitFieldNames ? '' : 'Sites', $pb.PbFieldType.PM, protoName: 'Sites', subBuilder: Site.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ListSettingsResponse clone() => ListSettingsResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ListSettingsResponse copyWith(void Function(ListSettingsResponse) updates) => super.copyWith((message) => updates(message as ListSettingsResponse)) as ListSettingsResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $pb.PbList<Site> get sites => $_getList(0);
}

/// Update
class UpdateSettingsRequest extends $pb.GeneratedMessage {
  factory UpdateSettingsRequest({
    $3.RequestProjectHeader? header,
    $core.String? name,
    $core.bool? active,
    $1.Address? address,
    $core.Iterable<$core.String>? phones,
    $core.String? fax,
  @$core.Deprecated('This field is deprecated.')
    $core.Iterable<$2.Segmentation>? segmentations,
    $core.Iterable<$2.ProjectAuthorisation>? authorisations,
  @$core.Deprecated('This field is deprecated.')
    $core.Iterable<$2.Unit>? units,
    $core.Iterable<$2.OpeningRule>? openingRules,
    $core.Iterable<$2.DurationRule>? durationRules,
    $core.Iterable<$2.CapacityRule>? capacityRules,
    $2.Instruction? instruction,
    $core.int? roundedPeriodInMinutes,
    $core.String? timeZone,
    $core.Iterable<$core.String>? emails,
    $core.String? defaultSiteLanguageISO6391,
    $core.String? prefixAppointmentID,
    StandAloneConf? standAloneConf,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (name != null) result.name = name;
    if (active != null) result.active = active;
    if (address != null) result.address = address;
    if (phones != null) result.phones.addAll(phones);
    if (fax != null) result.fax = fax;
    if (segmentations != null) result.segmentations.addAll(segmentations);
    if (authorisations != null) result.authorisations.addAll(authorisations);
    if (units != null) result.units.addAll(units);
    if (openingRules != null) result.openingRules.addAll(openingRules);
    if (durationRules != null) result.durationRules.addAll(durationRules);
    if (capacityRules != null) result.capacityRules.addAll(capacityRules);
    if (instruction != null) result.instruction = instruction;
    if (roundedPeriodInMinutes != null) result.roundedPeriodInMinutes = roundedPeriodInMinutes;
    if (timeZone != null) result.timeZone = timeZone;
    if (emails != null) result.emails.addAll(emails);
    if (defaultSiteLanguageISO6391 != null) result.defaultSiteLanguageISO6391 = defaultSiteLanguageISO6391;
    if (prefixAppointmentID != null) result.prefixAppointmentID = prefixAppointmentID;
    if (standAloneConf != null) result.standAloneConf = standAloneConf;
    return result;
  }

  UpdateSettingsRequest._();

  factory UpdateSettingsRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory UpdateSettingsRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'UpdateSettingsRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..aOS(3, _omitFieldNames ? '' : 'Name', protoName: 'Name')
    ..aOB(4, _omitFieldNames ? '' : 'Active', protoName: 'Active')
    ..aOM<$1.Address>(6, _omitFieldNames ? '' : 'Address', protoName: 'Address', subBuilder: $1.Address.create)
    ..pPS(7, _omitFieldNames ? '' : 'Phones', protoName: 'Phones')
    ..aOS(8, _omitFieldNames ? '' : 'Fax', protoName: 'Fax')
    ..pc<$2.Segmentation>(9, _omitFieldNames ? '' : 'Segmentations', $pb.PbFieldType.PM, protoName: 'Segmentations', subBuilder: $2.Segmentation.create)
    ..pc<$2.ProjectAuthorisation>(10, _omitFieldNames ? '' : 'Authorisations', $pb.PbFieldType.PM, protoName: 'Authorisations', subBuilder: $2.ProjectAuthorisation.create)
    ..pc<$2.Unit>(11, _omitFieldNames ? '' : 'Units', $pb.PbFieldType.PM, protoName: 'Units', subBuilder: $2.Unit.create)
    ..pc<$2.OpeningRule>(12, _omitFieldNames ? '' : 'OpeningRules', $pb.PbFieldType.PM, protoName: 'OpeningRules', subBuilder: $2.OpeningRule.create)
    ..pc<$2.DurationRule>(13, _omitFieldNames ? '' : 'DurationRules', $pb.PbFieldType.PM, protoName: 'DurationRules', subBuilder: $2.DurationRule.create)
    ..pc<$2.CapacityRule>(14, _omitFieldNames ? '' : 'CapacityRules', $pb.PbFieldType.PM, protoName: 'CapacityRules', subBuilder: $2.CapacityRule.create)
    ..aOM<$2.Instruction>(15, _omitFieldNames ? '' : 'Instruction', protoName: 'Instruction', subBuilder: $2.Instruction.create)
    ..a<$core.int>(18, _omitFieldNames ? '' : 'RoundedPeriodInMinutes', $pb.PbFieldType.OU3, protoName: 'RoundedPeriodInMinutes')
    ..aOS(19, _omitFieldNames ? '' : 'TimeZone', protoName: 'TimeZone')
    ..pPS(20, _omitFieldNames ? '' : 'Emails', protoName: 'Emails')
    ..aOS(21, _omitFieldNames ? '' : 'DefaultSiteLanguageISO6391', protoName: 'DefaultSiteLanguageISO6391')
    ..aOS(22, _omitFieldNames ? '' : 'PrefixAppointmentID', protoName: 'PrefixAppointmentID')
    ..aOM<StandAloneConf>(23, _omitFieldNames ? '' : 'StandAloneConf', protoName: 'StandAloneConf', subBuilder: StandAloneConf.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  UpdateSettingsRequest clone() => UpdateSettingsRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  UpdateSettingsRequest copyWith(void Function(UpdateSettingsRequest) updates) => super.copyWith((message) => updates(message as UpdateSettingsRequest)) as UpdateSettingsRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.RequestProjectHeader ensureHeader() => $_ensure(0);

  /// Name of the Site
  @$pb.TagNumber(3)
  $core.String get name => $_getSZ(1);
  @$pb.TagNumber(3)
  set name($core.String value) => $_setString(1, value);
  @$pb.TagNumber(3)
  $core.bool hasName() => $_has(1);
  @$pb.TagNumber(3)
  void clearName() => $_clearField(3);

  @$pb.TagNumber(4)
  $core.bool get active => $_getBF(2);
  @$pb.TagNumber(4)
  set active($core.bool value) => $_setBool(2, value);
  @$pb.TagNumber(4)
  $core.bool hasActive() => $_has(2);
  @$pb.TagNumber(4)
  void clearActive() => $_clearField(4);

  @$pb.TagNumber(6)
  $1.Address get address => $_getN(3);
  @$pb.TagNumber(6)
  set address($1.Address value) => $_setField(6, value);
  @$pb.TagNumber(6)
  $core.bool hasAddress() => $_has(3);
  @$pb.TagNumber(6)
  void clearAddress() => $_clearField(6);
  @$pb.TagNumber(6)
  $1.Address ensureAddress() => $_ensure(3);

  @$pb.TagNumber(7)
  $pb.PbList<$core.String> get phones => $_getList(4);

  @$pb.TagNumber(8)
  $core.String get fax => $_getSZ(5);
  @$pb.TagNumber(8)
  set fax($core.String value) => $_setString(5, value);
  @$pb.TagNumber(8)
  $core.bool hasFax() => $_has(5);
  @$pb.TagNumber(8)
  void clearFax() => $_clearField(8);

  /// List of Segmentations that segment the logistic site.
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(9)
  $pb.PbList<$2.Segmentation> get segmentations => $_getList(6);

  /// List of allowed project and the constraints (interval time in which they can book an appointment) they are associated with.
  @$pb.TagNumber(10)
  $pb.PbList<$2.ProjectAuthorisation> get authorisations => $_getList(7);

  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(11)
  $pb.PbList<$2.Unit> get units => $_getList(8);

  /// Definition of the opening rules. 2 opening rule definitions cannot overlap.
  @$pb.TagNumber(12)
  $pb.PbList<$2.OpeningRule> get openingRules => $_getList(9);

  /// Definition of the booking slot duration rules.
  @$pb.TagNumber(13)
  $pb.PbList<$2.DurationRule> get durationRules => $_getList(10);

  /// Definition of the capacity rules. 2 capacity rule can overlap and the more constraining one will be applied.
  @$pb.TagNumber(14)
  $pb.PbList<$2.CapacityRule> get capacityRules => $_getList(11);

  @$pb.TagNumber(15)
  $2.Instruction get instruction => $_getN(12);
  @$pb.TagNumber(15)
  set instruction($2.Instruction value) => $_setField(15, value);
  @$pb.TagNumber(15)
  $core.bool hasInstruction() => $_has(12);
  @$pb.TagNumber(15)
  void clearInstruction() => $_clearField(15);
  @$pb.TagNumber(15)
  $2.Instruction ensureInstruction() => $_ensure(12);

  /// Defines the rounded value of periods in minutes, must be greater than 0.
  @$pb.TagNumber(18)
  $core.int get roundedPeriodInMinutes => $_getIZ(13);
  @$pb.TagNumber(18)
  set roundedPeriodInMinutes($core.int value) => $_setUnsignedInt32(13, value);
  @$pb.TagNumber(18)
  $core.bool hasRoundedPeriodInMinutes() => $_has(13);
  @$pb.TagNumber(18)
  void clearRoundedPeriodInMinutes() => $_clearField(18);

  /// Add Site Time zone
  @$pb.TagNumber(19)
  $core.String get timeZone => $_getSZ(14);
  @$pb.TagNumber(19)
  set timeZone($core.String value) => $_setString(14, value);
  @$pb.TagNumber(19)
  $core.bool hasTimeZone() => $_has(14);
  @$pb.TagNumber(19)
  void clearTimeZone() => $_clearField(19);

  /// Must be a valid email address
  @$pb.TagNumber(20)
  $pb.PbList<$core.String> get emails => $_getList(15);

  /// set the fallback language in case of missing translation
  @$pb.TagNumber(21)
  $core.String get defaultSiteLanguageISO6391 => $_getSZ(16);
  @$pb.TagNumber(21)
  set defaultSiteLanguageISO6391($core.String value) => $_setString(16, value);
  @$pb.TagNumber(21)
  $core.bool hasDefaultSiteLanguageISO6391() => $_has(16);
  @$pb.TagNumber(21)
  void clearDefaultSiteLanguageISO6391() => $_clearField(21);

  @$pb.TagNumber(22)
  $core.String get prefixAppointmentID => $_getSZ(17);
  @$pb.TagNumber(22)
  set prefixAppointmentID($core.String value) => $_setString(17, value);
  @$pb.TagNumber(22)
  $core.bool hasPrefixAppointmentID() => $_has(17);
  @$pb.TagNumber(22)
  void clearPrefixAppointmentID() => $_clearField(22);

  /// standAlone mode configuration
  @$pb.TagNumber(23)
  StandAloneConf get standAloneConf => $_getN(18);
  @$pb.TagNumber(23)
  set standAloneConf(StandAloneConf value) => $_setField(23, value);
  @$pb.TagNumber(23)
  $core.bool hasStandAloneConf() => $_has(18);
  @$pb.TagNumber(23)
  void clearStandAloneConf() => $_clearField(23);
  @$pb.TagNumber(23)
  StandAloneConf ensureStandAloneConf() => $_ensure(18);
}

class UpdateSettingsResponse extends $pb.GeneratedMessage {
  factory UpdateSettingsResponse({
    Site? site,
  }) {
    final result = create();
    if (site != null) result.site = site;
    return result;
  }

  UpdateSettingsResponse._();

  factory UpdateSettingsResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory UpdateSettingsResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

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

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  UpdateSettingsResponse clone() => UpdateSettingsResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  UpdateSettingsResponse copyWith(void Function(UpdateSettingsResponse) updates) => super.copyWith((message) => updates(message as UpdateSettingsResponse)) as UpdateSettingsResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  Site get site => $_getN(0);
  @$pb.TagNumber(1)
  set site(Site value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasSite() => $_has(0);
  @$pb.TagNumber(1)
  void clearSite() => $_clearField(1);
  @$pb.TagNumber(1)
  Site ensureSite() => $_ensure(0);
}

/// Upload photo
class UploadPhotoRequest extends $pb.GeneratedMessage {
  factory UploadPhotoRequest({
    $3.RequestProjectHeader? header,
    $3.FileDataRequest? file,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (file != null) result.file = file;
    return result;
  }

  UploadPhotoRequest._();

  factory UploadPhotoRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory UploadPhotoRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'UploadPhotoRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..aOM<$3.FileDataRequest>(2, _omitFieldNames ? '' : 'File', protoName: 'File', subBuilder: $3.FileDataRequest.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  UploadPhotoRequest clone() => UploadPhotoRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  UploadPhotoRequest copyWith(void Function(UploadPhotoRequest) updates) => super.copyWith((message) => updates(message as UploadPhotoRequest)) as UploadPhotoRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.RequestProjectHeader ensureHeader() => $_ensure(0);

  @$pb.TagNumber(2)
  $3.FileDataRequest get file => $_getN(1);
  @$pb.TagNumber(2)
  set file($3.FileDataRequest value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasFile() => $_has(1);
  @$pb.TagNumber(2)
  void clearFile() => $_clearField(2);
  @$pb.TagNumber(2)
  $3.FileDataRequest ensureFile() => $_ensure(1);
}

class UploadPhotoResponse extends $pb.GeneratedMessage {
  factory UploadPhotoResponse({
    $core.String? uRI,
  }) {
    final result = create();
    if (uRI != null) result.uRI = uRI;
    return result;
  }

  UploadPhotoResponse._();

  factory UploadPhotoResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory UploadPhotoResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'UploadPhotoResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'URI', protoName: 'URI')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  UploadPhotoResponse clone() => UploadPhotoResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  UploadPhotoResponse copyWith(void Function(UploadPhotoResponse) updates) => super.copyWith((message) => updates(message as UploadPhotoResponse)) as UploadPhotoResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $core.String get uRI => $_getSZ(0);
  @$pb.TagNumber(1)
  set uRI($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasURI() => $_has(0);
  @$pb.TagNumber(1)
  void clearURI() => $_clearField(1);
}

/// Delete photo
class DeletePhotoRequest extends $pb.GeneratedMessage {
  factory DeletePhotoRequest({
    $3.RequestProjectHeader? header,
  }) {
    final result = create();
    if (header != null) result.header = header;
    return result;
  }

  DeletePhotoRequest._();

  factory DeletePhotoRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory DeletePhotoRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'DeletePhotoRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  DeletePhotoRequest clone() => DeletePhotoRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  DeletePhotoRequest copyWith(void Function(DeletePhotoRequest) updates) => super.copyWith((message) => updates(message as DeletePhotoRequest)) as DeletePhotoRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.RequestProjectHeader ensureHeader() => $_ensure(0);
}

class DeletePhotoResponse extends $pb.GeneratedMessage {
  factory DeletePhotoResponse() => create();

  DeletePhotoResponse._();

  factory DeletePhotoResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory DeletePhotoResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'DeletePhotoResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  DeletePhotoResponse clone() => DeletePhotoResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  DeletePhotoResponse copyWith(void Function(DeletePhotoResponse) updates) => super.copyWith((message) => updates(message as DeletePhotoResponse)) as DeletePhotoResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

/// Upload document
class UploadInstructionDocumentRequest extends $pb.GeneratedMessage {
  factory UploadInstructionDocumentRequest({
    $3.RequestProjectHeader? header,
    $3.FileDataRequest? file,
    $core.String? docID,
    $core.String? languageCodeISO6391,
    $core.String? name,
    $core.bool? ackRequired,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (file != null) result.file = file;
    if (docID != null) result.docID = docID;
    if (languageCodeISO6391 != null) result.languageCodeISO6391 = languageCodeISO6391;
    if (name != null) result.name = name;
    if (ackRequired != null) result.ackRequired = ackRequired;
    return result;
  }

  UploadInstructionDocumentRequest._();

  factory UploadInstructionDocumentRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory UploadInstructionDocumentRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'UploadInstructionDocumentRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..aOM<$3.FileDataRequest>(2, _omitFieldNames ? '' : 'File', protoName: 'File', subBuilder: $3.FileDataRequest.create)
    ..aOS(3, _omitFieldNames ? '' : 'DocID', protoName: 'DocID')
    ..aOS(4, _omitFieldNames ? '' : 'LanguageCodeISO6391', protoName: 'LanguageCodeISO6391')
    ..aOS(5, _omitFieldNames ? '' : 'Name', protoName: 'Name')
    ..aOB(6, _omitFieldNames ? '' : 'AckRequired', protoName: 'AckRequired')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  UploadInstructionDocumentRequest clone() => UploadInstructionDocumentRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  UploadInstructionDocumentRequest copyWith(void Function(UploadInstructionDocumentRequest) updates) => super.copyWith((message) => updates(message as UploadInstructionDocumentRequest)) as UploadInstructionDocumentRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.RequestProjectHeader ensureHeader() => $_ensure(0);

  @$pb.TagNumber(2)
  $3.FileDataRequest get file => $_getN(1);
  @$pb.TagNumber(2)
  set file($3.FileDataRequest value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasFile() => $_has(1);
  @$pb.TagNumber(2)
  void clearFile() => $_clearField(2);
  @$pb.TagNumber(2)
  $3.FileDataRequest ensureFile() => $_ensure(1);

  @$pb.TagNumber(3)
  $core.String get docID => $_getSZ(2);
  @$pb.TagNumber(3)
  set docID($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasDocID() => $_has(2);
  @$pb.TagNumber(3)
  void clearDocID() => $_clearField(3);

  @$pb.TagNumber(4)
  $core.String get languageCodeISO6391 => $_getSZ(3);
  @$pb.TagNumber(4)
  set languageCodeISO6391($core.String value) => $_setString(3, value);
  @$pb.TagNumber(4)
  $core.bool hasLanguageCodeISO6391() => $_has(3);
  @$pb.TagNumber(4)
  void clearLanguageCodeISO6391() => $_clearField(4);

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

  @$pb.TagNumber(6)
  $core.bool get ackRequired => $_getBF(5);
  @$pb.TagNumber(6)
  set ackRequired($core.bool value) => $_setBool(5, value);
  @$pb.TagNumber(6)
  $core.bool hasAckRequired() => $_has(5);
  @$pb.TagNumber(6)
  void clearAckRequired() => $_clearField(6);
}

class UploadInstructionDocumentResponse extends $pb.GeneratedMessage {
  factory UploadInstructionDocumentResponse({
    $core.String? uRI,
  }) {
    final result = create();
    if (uRI != null) result.uRI = uRI;
    return result;
  }

  UploadInstructionDocumentResponse._();

  factory UploadInstructionDocumentResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory UploadInstructionDocumentResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'UploadInstructionDocumentResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'URI', protoName: 'URI')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  UploadInstructionDocumentResponse clone() => UploadInstructionDocumentResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  UploadInstructionDocumentResponse copyWith(void Function(UploadInstructionDocumentResponse) updates) => super.copyWith((message) => updates(message as UploadInstructionDocumentResponse)) as UploadInstructionDocumentResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $core.String get uRI => $_getSZ(0);
  @$pb.TagNumber(1)
  set uRI($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasURI() => $_has(0);
  @$pb.TagNumber(1)
  void clearURI() => $_clearField(1);
}

/// Delete document
class DeleteInstructionDocumentRequest extends $pb.GeneratedMessage {
  factory DeleteInstructionDocumentRequest({
    $3.RequestProjectHeader? header,
    $core.String? docID,
    $core.String? languageCodeISO6391,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (docID != null) result.docID = docID;
    if (languageCodeISO6391 != null) result.languageCodeISO6391 = languageCodeISO6391;
    return result;
  }

  DeleteInstructionDocumentRequest._();

  factory DeleteInstructionDocumentRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory DeleteInstructionDocumentRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'DeleteInstructionDocumentRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..aOS(2, _omitFieldNames ? '' : 'DocID', protoName: 'DocID')
    ..aOS(3, _omitFieldNames ? '' : 'LanguageCodeISO6391', protoName: 'LanguageCodeISO6391')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  DeleteInstructionDocumentRequest clone() => DeleteInstructionDocumentRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  DeleteInstructionDocumentRequest copyWith(void Function(DeleteInstructionDocumentRequest) updates) => super.copyWith((message) => updates(message as DeleteInstructionDocumentRequest)) as DeleteInstructionDocumentRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.RequestProjectHeader ensureHeader() => $_ensure(0);

  @$pb.TagNumber(2)
  $core.String get docID => $_getSZ(1);
  @$pb.TagNumber(2)
  set docID($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasDocID() => $_has(1);
  @$pb.TagNumber(2)
  void clearDocID() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.String get languageCodeISO6391 => $_getSZ(2);
  @$pb.TagNumber(3)
  set languageCodeISO6391($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasLanguageCodeISO6391() => $_has(2);
  @$pb.TagNumber(3)
  void clearLanguageCodeISO6391() => $_clearField(3);
}

class DeleteInstructionDocumentResponse extends $pb.GeneratedMessage {
  factory DeleteInstructionDocumentResponse() => create();

  DeleteInstructionDocumentResponse._();

  factory DeleteInstructionDocumentResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory DeleteInstructionDocumentResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'DeleteInstructionDocumentResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  DeleteInstructionDocumentResponse clone() => DeleteInstructionDocumentResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  DeleteInstructionDocumentResponse copyWith(void Function(DeleteInstructionDocumentResponse) updates) => super.copyWith((message) => updates(message as DeleteInstructionDocumentResponse)) as DeleteInstructionDocumentResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

/// GetAvailableSlots
class GetAvailableSlotsRequest extends $pb.GeneratedMessage {
  factory GetAvailableSlotsRequest({
    $3.RequestProjectHeader? header,
    $3.AppointmentType? appointmentType,
    $core.Iterable<$2.Commission>? commissions,
    $core.Iterable<$2.SegmentationSelection>? segmentationSelections,
    $core.String? startDate,
    $core.String? endDate,
    $core.Iterable<$core.String>? skippedAppointmentIDs,
    $core.String? actorID,
    $core.Iterable<$3.MetadataElement>? carrierInformation,
    $core.Iterable<$3.MetadataElement>? metaData,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (appointmentType != null) result.appointmentType = appointmentType;
    if (commissions != null) result.commissions.addAll(commissions);
    if (segmentationSelections != null) result.segmentationSelections.addAll(segmentationSelections);
    if (startDate != null) result.startDate = startDate;
    if (endDate != null) result.endDate = endDate;
    if (skippedAppointmentIDs != null) result.skippedAppointmentIDs.addAll(skippedAppointmentIDs);
    if (actorID != null) result.actorID = actorID;
    if (carrierInformation != null) result.carrierInformation.addAll(carrierInformation);
    if (metaData != null) result.metaData.addAll(metaData);
    return result;
  }

  GetAvailableSlotsRequest._();

  factory GetAvailableSlotsRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory GetAvailableSlotsRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'GetAvailableSlotsRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..e<$3.AppointmentType>(2, _omitFieldNames ? '' : 'AppointmentType', $pb.PbFieldType.OE, protoName: 'AppointmentType', defaultOrMaker: $3.AppointmentType.APPOINTMENT_TYPE_UNKNOWN, valueOf: $3.AppointmentType.valueOf, enumValues: $3.AppointmentType.values)
    ..pc<$2.Commission>(3, _omitFieldNames ? '' : 'Commissions', $pb.PbFieldType.PM, protoName: 'Commissions', subBuilder: $2.Commission.create)
    ..pc<$2.SegmentationSelection>(4, _omitFieldNames ? '' : 'SegmentationSelections', $pb.PbFieldType.PM, protoName: 'SegmentationSelections', subBuilder: $2.SegmentationSelection.create)
    ..aOS(5, _omitFieldNames ? '' : 'StartDate', protoName: 'StartDate')
    ..aOS(6, _omitFieldNames ? '' : 'EndDate', protoName: 'EndDate')
    ..pPS(7, _omitFieldNames ? '' : 'SkippedAppointmentIDs', protoName: 'SkippedAppointmentIDs')
    ..aOS(8, _omitFieldNames ? '' : 'ActorID', protoName: 'ActorID')
    ..pc<$3.MetadataElement>(9, _omitFieldNames ? '' : 'CarrierInformation', $pb.PbFieldType.PM, protoName: 'CarrierInformation', subBuilder: $3.MetadataElement.create)
    ..pc<$3.MetadataElement>(10, _omitFieldNames ? '' : 'MetaData', $pb.PbFieldType.PM, protoName: 'MetaData', subBuilder: $3.MetadataElement.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetAvailableSlotsRequest clone() => GetAvailableSlotsRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetAvailableSlotsRequest copyWith(void Function(GetAvailableSlotsRequest) updates) => super.copyWith((message) => updates(message as GetAvailableSlotsRequest)) as GetAvailableSlotsRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.RequestProjectHeader ensureHeader() => $_ensure(0);

  /// Type of appointment : Loading / Unloading / Both
  @$pb.TagNumber(2)
  $3.AppointmentType get appointmentType => $_getN(1);
  @$pb.TagNumber(2)
  set appointmentType($3.AppointmentType value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasAppointmentType() => $_has(1);
  @$pb.TagNumber(2)
  void clearAppointmentType() => $_clearField(2);

  /// List of the orders and projects for which the appointment is made, with the quantities
  @$pb.TagNumber(3)
  $pb.PbList<$2.Commission> get commissions => $_getList(2);

  /// Set of segmentation constraining the slot booking
  @$pb.TagNumber(4)
  $pb.PbList<$2.SegmentationSelection> get segmentationSelections => $_getList(3);

  @$pb.TagNumber(5)
  $core.String get startDate => $_getSZ(4);
  @$pb.TagNumber(5)
  set startDate($core.String value) => $_setString(4, value);
  @$pb.TagNumber(5)
  $core.bool hasStartDate() => $_has(4);
  @$pb.TagNumber(5)
  void clearStartDate() => $_clearField(5);

  @$pb.TagNumber(6)
  $core.String get endDate => $_getSZ(5);
  @$pb.TagNumber(6)
  set endDate($core.String value) => $_setString(5, value);
  @$pb.TagNumber(6)
  $core.bool hasEndDate() => $_has(5);
  @$pb.TagNumber(6)
  void clearEndDate() => $_clearField(6);

  /// Optional, needed to skip counting those appointments in the capacity rules
  @$pb.TagNumber(7)
  $pb.PbList<$core.String> get skippedAppointmentIDs => $_getList(6);

  @$pb.TagNumber(8)
  $core.String get actorID => $_getSZ(7);
  @$pb.TagNumber(8)
  set actorID($core.String value) => $_setString(7, value);
  @$pb.TagNumber(8)
  $core.bool hasActorID() => $_has(7);
  @$pb.TagNumber(8)
  void clearActorID() => $_clearField(8);

  /// Carrier information metadata
  @$pb.TagNumber(9)
  $pb.PbList<$3.MetadataElement> get carrierInformation => $_getList(8);

  @$pb.TagNumber(10)
  $pb.PbList<$3.MetadataElement> get metaData => $_getList(9);
}

class GetAvailableSlotsResponse extends $pb.GeneratedMessage {
  factory GetAvailableSlotsResponse({
    $core.Iterable<$2.SlotGroup>? slotGroups,
    $fixnum.Int64? estimatedNeededDurationInMinutes,
  }) {
    final result = create();
    if (slotGroups != null) result.slotGroups.addAll(slotGroups);
    if (estimatedNeededDurationInMinutes != null) result.estimatedNeededDurationInMinutes = estimatedNeededDurationInMinutes;
    return result;
  }

  GetAvailableSlotsResponse._();

  factory GetAvailableSlotsResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory GetAvailableSlotsResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'GetAvailableSlotsResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..pc<$2.SlotGroup>(1, _omitFieldNames ? '' : 'SlotGroups', $pb.PbFieldType.PM, protoName: 'SlotGroups', subBuilder: $2.SlotGroup.create)
    ..a<$fixnum.Int64>(2, _omitFieldNames ? '' : 'EstimatedNeededDurationInMinutes', $pb.PbFieldType.OU6, protoName: 'EstimatedNeededDurationInMinutes', defaultOrMaker: $fixnum.Int64.ZERO)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetAvailableSlotsResponse clone() => GetAvailableSlotsResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetAvailableSlotsResponse copyWith(void Function(GetAvailableSlotsResponse) updates) => super.copyWith((message) => updates(message as GetAvailableSlotsResponse)) as GetAvailableSlotsResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $pb.PbList<$2.SlotGroup> get slotGroups => $_getList(0);

  @$pb.TagNumber(2)
  $fixnum.Int64 get estimatedNeededDurationInMinutes => $_getI64(1);
  @$pb.TagNumber(2)
  set estimatedNeededDurationInMinutes($fixnum.Int64 value) => $_setInt64(1, value);
  @$pb.TagNumber(2)
  $core.bool hasEstimatedNeededDurationInMinutes() => $_has(1);
  @$pb.TagNumber(2)
  void clearEstimatedNeededDurationInMinutes() => $_clearField(2);
}

class GetAllSlotsResponse extends $pb.GeneratedMessage {
  factory GetAllSlotsResponse({
    $core.Iterable<$2.SlotGroupAndReason>? slotGroupAndReasons,
    $fixnum.Int64? estimatedNeededDurationInMinutes,
  }) {
    final result = create();
    if (slotGroupAndReasons != null) result.slotGroupAndReasons.addAll(slotGroupAndReasons);
    if (estimatedNeededDurationInMinutes != null) result.estimatedNeededDurationInMinutes = estimatedNeededDurationInMinutes;
    return result;
  }

  GetAllSlotsResponse._();

  factory GetAllSlotsResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory GetAllSlotsResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'GetAllSlotsResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..pc<$2.SlotGroupAndReason>(1, _omitFieldNames ? '' : 'SlotGroupAndReasons', $pb.PbFieldType.PM, protoName: 'SlotGroupAndReasons', subBuilder: $2.SlotGroupAndReason.create)
    ..a<$fixnum.Int64>(2, _omitFieldNames ? '' : 'EstimatedNeededDurationInMinutes', $pb.PbFieldType.OU6, protoName: 'EstimatedNeededDurationInMinutes', defaultOrMaker: $fixnum.Int64.ZERO)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetAllSlotsResponse clone() => GetAllSlotsResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetAllSlotsResponse copyWith(void Function(GetAllSlotsResponse) updates) => super.copyWith((message) => updates(message as GetAllSlotsResponse)) as GetAllSlotsResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $pb.PbList<$2.SlotGroupAndReason> get slotGroupAndReasons => $_getList(0);

  @$pb.TagNumber(2)
  $fixnum.Int64 get estimatedNeededDurationInMinutes => $_getI64(1);
  @$pb.TagNumber(2)
  set estimatedNeededDurationInMinutes($fixnum.Int64 value) => $_setInt64(1, value);
  @$pb.TagNumber(2)
  $core.bool hasEstimatedNeededDurationInMinutes() => $_has(1);
  @$pb.TagNumber(2)
  void clearEstimatedNeededDurationInMinutes() => $_clearField(2);
}

/// CheckAppointmentCommission
class CheckAppointmentCommissionRequest extends $pb.GeneratedMessage {
  factory CheckAppointmentCommissionRequest({
    $3.RequestProjectHeader? header,
    $3.AppointmentType? appointmentType,
  @$core.Deprecated('This field is deprecated.')
    $2.Commission? commission,
  @$core.Deprecated('This field is deprecated.')
    $core.String? actorID,
    $2.AppointmentCommission? appointmentCommission,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (appointmentType != null) result.appointmentType = appointmentType;
    if (commission != null) result.commission = commission;
    if (actorID != null) result.actorID = actorID;
    if (appointmentCommission != null) result.appointmentCommission = appointmentCommission;
    return result;
  }

  CheckAppointmentCommissionRequest._();

  factory CheckAppointmentCommissionRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory CheckAppointmentCommissionRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'CheckAppointmentCommissionRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..e<$3.AppointmentType>(2, _omitFieldNames ? '' : 'AppointmentType', $pb.PbFieldType.OE, protoName: 'AppointmentType', defaultOrMaker: $3.AppointmentType.APPOINTMENT_TYPE_UNKNOWN, valueOf: $3.AppointmentType.valueOf, enumValues: $3.AppointmentType.values)
    ..aOM<$2.Commission>(3, _omitFieldNames ? '' : 'Commission', protoName: 'Commission', subBuilder: $2.Commission.create)
    ..aOS(4, _omitFieldNames ? '' : 'ActorID', protoName: 'ActorID')
    ..aOM<$2.AppointmentCommission>(5, _omitFieldNames ? '' : 'AppointmentCommission', protoName: 'AppointmentCommission', subBuilder: $2.AppointmentCommission.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CheckAppointmentCommissionRequest clone() => CheckAppointmentCommissionRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CheckAppointmentCommissionRequest copyWith(void Function(CheckAppointmentCommissionRequest) updates) => super.copyWith((message) => updates(message as CheckAppointmentCommissionRequest)) as CheckAppointmentCommissionRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.RequestProjectHeader ensureHeader() => $_ensure(0);

  /// Type of appointment : Loading / Unloading / Both
  @$pb.TagNumber(2)
  $3.AppointmentType get appointmentType => $_getN(1);
  @$pb.TagNumber(2)
  set appointmentType($3.AppointmentType value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasAppointmentType() => $_has(1);
  @$pb.TagNumber(2)
  void clearAppointmentType() => $_clearField(2);

  /// Definition of the commission to check
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(3)
  $2.Commission get commission => $_getN(2);
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(3)
  set commission($2.Commission value) => $_setField(3, value);
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(3)
  $core.bool hasCommission() => $_has(2);
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(3)
  void clearCommission() => $_clearField(3);
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(3)
  $2.Commission ensureCommission() => $_ensure(2);

  /// actor with which the siteID/project-depositID will be processed
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(4)
  $core.String get actorID => $_getSZ(3);
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(4)
  set actorID($core.String value) => $_setString(3, value);
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(4)
  $core.bool hasActorID() => $_has(3);
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(4)
  void clearActorID() => $_clearField(4);

  /// Definition of the commission to check
  @$pb.TagNumber(5)
  $2.AppointmentCommission get appointmentCommission => $_getN(4);
  @$pb.TagNumber(5)
  set appointmentCommission($2.AppointmentCommission value) => $_setField(5, value);
  @$pb.TagNumber(5)
  $core.bool hasAppointmentCommission() => $_has(4);
  @$pb.TagNumber(5)
  void clearAppointmentCommission() => $_clearField(5);
  @$pb.TagNumber(5)
  $2.AppointmentCommission ensureAppointmentCommission() => $_ensure(4);
}

class PossibleExecutionFlow extends $pb.GeneratedMessage {
  factory PossibleExecutionFlow({
    $core.String? refID,
    $3.DateTime? requestedDeliveryDateTime,
  }) {
    final result = create();
    if (refID != null) result.refID = refID;
    if (requestedDeliveryDateTime != null) result.requestedDeliveryDateTime = requestedDeliveryDateTime;
    return result;
  }

  PossibleExecutionFlow._();

  factory PossibleExecutionFlow.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory PossibleExecutionFlow.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

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

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  PossibleExecutionFlow clone() => PossibleExecutionFlow()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  PossibleExecutionFlow copyWith(void Function(PossibleExecutionFlow) updates) => super.copyWith((message) => updates(message as PossibleExecutionFlow)) as PossibleExecutionFlow;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $core.String get refID => $_getSZ(0);
  @$pb.TagNumber(1)
  set refID($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasRefID() => $_has(0);
  @$pb.TagNumber(1)
  void clearRefID() => $_clearField(1);

  @$pb.TagNumber(2)
  $3.DateTime get requestedDeliveryDateTime => $_getN(1);
  @$pb.TagNumber(2)
  set requestedDeliveryDateTime($3.DateTime value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasRequestedDeliveryDateTime() => $_has(1);
  @$pb.TagNumber(2)
  void clearRequestedDeliveryDateTime() => $_clearField(2);
  @$pb.TagNumber(2)
  $3.DateTime ensureRequestedDeliveryDateTime() => $_ensure(1);
}

class CheckAppointmentCommissionResponse extends $pb.GeneratedMessage {
  factory CheckAppointmentCommissionResponse({
    $3.ResponseHeader? header,
    $core.Iterable<PossibleExecutionFlow>? possibleExecutionFlows,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (possibleExecutionFlows != null) result.possibleExecutionFlows.addAll(possibleExecutionFlows);
    return result;
  }

  CheckAppointmentCommissionResponse._();

  factory CheckAppointmentCommissionResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory CheckAppointmentCommissionResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'CheckAppointmentCommissionResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.ResponseHeader>(2, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.ResponseHeader.create)
    ..pc<PossibleExecutionFlow>(3, _omitFieldNames ? '' : 'PossibleExecutionFlows', $pb.PbFieldType.PM, protoName: 'PossibleExecutionFlows', subBuilder: PossibleExecutionFlow.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CheckAppointmentCommissionResponse clone() => CheckAppointmentCommissionResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CheckAppointmentCommissionResponse copyWith(void Function(CheckAppointmentCommissionResponse) updates) => super.copyWith((message) => updates(message as CheckAppointmentCommissionResponse)) as CheckAppointmentCommissionResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(2)
  $3.ResponseHeader get header => $_getN(0);
  @$pb.TagNumber(2)
  set header($3.ResponseHeader value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(2)
  void clearHeader() => $_clearField(2);
  @$pb.TagNumber(2)
  $3.ResponseHeader ensureHeader() => $_ensure(0);

  @$pb.TagNumber(3)
  $pb.PbList<PossibleExecutionFlow> get possibleExecutionFlows => $_getList(1);
}

class StandAloneConf extends $pb.GeneratedMessage {
  factory StandAloneConf({
    $core.bool? isStandAlone,
    $core.bool? isBookingLoadingEnabledForUnknownUsers,
    $core.bool? isBookingUnloadingEnabledForUnknownUsers,
  }) {
    final result = create();
    if (isStandAlone != null) result.isStandAlone = isStandAlone;
    if (isBookingLoadingEnabledForUnknownUsers != null) result.isBookingLoadingEnabledForUnknownUsers = isBookingLoadingEnabledForUnknownUsers;
    if (isBookingUnloadingEnabledForUnknownUsers != null) result.isBookingUnloadingEnabledForUnknownUsers = isBookingUnloadingEnabledForUnknownUsers;
    return result;
  }

  StandAloneConf._();

  factory StandAloneConf.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory StandAloneConf.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'StandAloneConf', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOB(1, _omitFieldNames ? '' : 'IsStandAlone', protoName: 'IsStandAlone')
    ..aOB(2, _omitFieldNames ? '' : 'IsBookingLoadingEnabledForUnknownUsers', protoName: 'IsBookingLoadingEnabledForUnknownUsers')
    ..aOB(3, _omitFieldNames ? '' : 'IsBookingUnloadingEnabledForUnknownUsers', protoName: 'IsBookingUnloadingEnabledForUnknownUsers')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  StandAloneConf clone() => StandAloneConf()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  StandAloneConf copyWith(void Function(StandAloneConf) updates) => super.copyWith((message) => updates(message as StandAloneConf)) as StandAloneConf;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  /// Set the standAlone mode, if true the site is not linked to any project and the booking will only be possible without order reference. In that case, the segmentation will be defined only at site level and not at project level.
  @$pb.TagNumber(1)
  $core.bool get isStandAlone => $_getBF(0);
  @$pb.TagNumber(1)
  set isStandAlone($core.bool value) => $_setBool(0, value);
  @$pb.TagNumber(1)
  $core.bool hasIsStandAlone() => $_has(0);
  @$pb.TagNumber(1)
  void clearIsStandAlone() => $_clearField(1);

  /// Only available in standAlone mode. Set the booking possibility for unknown users, if true the booking will be possible for users not known by the platform.
  @$pb.TagNumber(2)
  $core.bool get isBookingLoadingEnabledForUnknownUsers => $_getBF(1);
  @$pb.TagNumber(2)
  set isBookingLoadingEnabledForUnknownUsers($core.bool value) => $_setBool(1, value);
  @$pb.TagNumber(2)
  $core.bool hasIsBookingLoadingEnabledForUnknownUsers() => $_has(1);
  @$pb.TagNumber(2)
  void clearIsBookingLoadingEnabledForUnknownUsers() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.bool get isBookingUnloadingEnabledForUnknownUsers => $_getBF(2);
  @$pb.TagNumber(3)
  set isBookingUnloadingEnabledForUnknownUsers($core.bool value) => $_setBool(2, value);
  @$pb.TagNumber(3)
  $core.bool hasIsBookingUnloadingEnabledForUnknownUsers() => $_has(2);
  @$pb.TagNumber(3)
  void clearIsBookingUnloadingEnabledForUnknownUsers() => $_clearField(3);
}

/// BookAppointment
class BookAppointmentRequest extends $pb.GeneratedMessage {
  factory BookAppointmentRequest({
    $3.RequestProjectHeader? header,
    $3.AppointmentType? appointmentType,
    $core.Iterable<$2.Commission>? commissions,
    $core.Iterable<$2.SegmentationSelection>? segmentationSelections,
    $core.Iterable<$2.Slot>? slots,
    $core.Iterable<$core.String>? emails,
    $core.String? appointmentID,
    $core.bool? instructionAck,
    $core.String? actorID,
    $core.Iterable<$3.MetadataElement>? carrierInformation,
    $core.Iterable<$3.MetadataElement>? metaData,
    $core.String? reason,
    $core.String? timeZone,
    $core.Iterable<$3.CustomField>? customFields,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (appointmentType != null) result.appointmentType = appointmentType;
    if (commissions != null) result.commissions.addAll(commissions);
    if (segmentationSelections != null) result.segmentationSelections.addAll(segmentationSelections);
    if (slots != null) result.slots.addAll(slots);
    if (emails != null) result.emails.addAll(emails);
    if (appointmentID != null) result.appointmentID = appointmentID;
    if (instructionAck != null) result.instructionAck = instructionAck;
    if (actorID != null) result.actorID = actorID;
    if (carrierInformation != null) result.carrierInformation.addAll(carrierInformation);
    if (metaData != null) result.metaData.addAll(metaData);
    if (reason != null) result.reason = reason;
    if (timeZone != null) result.timeZone = timeZone;
    if (customFields != null) result.customFields.addAll(customFields);
    return result;
  }

  BookAppointmentRequest._();

  factory BookAppointmentRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory BookAppointmentRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'BookAppointmentRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..e<$3.AppointmentType>(2, _omitFieldNames ? '' : 'AppointmentType', $pb.PbFieldType.OE, protoName: 'AppointmentType', defaultOrMaker: $3.AppointmentType.APPOINTMENT_TYPE_UNKNOWN, valueOf: $3.AppointmentType.valueOf, enumValues: $3.AppointmentType.values)
    ..pc<$2.Commission>(3, _omitFieldNames ? '' : 'Commissions', $pb.PbFieldType.PM, protoName: 'Commissions', subBuilder: $2.Commission.create)
    ..pc<$2.SegmentationSelection>(4, _omitFieldNames ? '' : 'SegmentationSelections', $pb.PbFieldType.PM, protoName: 'SegmentationSelections', subBuilder: $2.SegmentationSelection.create)
    ..pc<$2.Slot>(6, _omitFieldNames ? '' : 'Slots', $pb.PbFieldType.PM, protoName: 'Slots', subBuilder: $2.Slot.create)
    ..pPS(8, _omitFieldNames ? '' : 'Emails', protoName: 'Emails')
    ..aOS(11, _omitFieldNames ? '' : 'AppointmentID', protoName: 'AppointmentID')
    ..aOB(12, _omitFieldNames ? '' : 'InstructionAck', protoName: 'InstructionAck')
    ..aOS(13, _omitFieldNames ? '' : 'ActorID', protoName: 'ActorID')
    ..pc<$3.MetadataElement>(14, _omitFieldNames ? '' : 'CarrierInformation', $pb.PbFieldType.PM, protoName: 'CarrierInformation', subBuilder: $3.MetadataElement.create)
    ..pc<$3.MetadataElement>(15, _omitFieldNames ? '' : 'MetaData', $pb.PbFieldType.PM, protoName: 'MetaData', subBuilder: $3.MetadataElement.create)
    ..aOS(16, _omitFieldNames ? '' : 'Reason', protoName: 'Reason')
    ..aOS(17, _omitFieldNames ? '' : 'TimeZone', protoName: 'TimeZone')
    ..pc<$3.CustomField>(18, _omitFieldNames ? '' : 'CustomFields', $pb.PbFieldType.PM, protoName: 'CustomFields', subBuilder: $3.CustomField.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  BookAppointmentRequest clone() => BookAppointmentRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  BookAppointmentRequest copyWith(void Function(BookAppointmentRequest) updates) => super.copyWith((message) => updates(message as BookAppointmentRequest)) as BookAppointmentRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.RequestProjectHeader ensureHeader() => $_ensure(0);

  /// Type of appointment : Loading / Unloading / Both
  @$pb.TagNumber(2)
  $3.AppointmentType get appointmentType => $_getN(1);
  @$pb.TagNumber(2)
  set appointmentType($3.AppointmentType value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasAppointmentType() => $_has(1);
  @$pb.TagNumber(2)
  void clearAppointmentType() => $_clearField(2);

  /// List of the orders and projects for which the appointment is made, with the quantities
  @$pb.TagNumber(3)
  $pb.PbList<$2.Commission> get commissions => $_getList(2);

  /// Set of segmentation constraining the slot booking
  @$pb.TagNumber(4)
  $pb.PbList<$2.SegmentationSelection> get segmentationSelections => $_getList(3);

  /// The slot to book for the appointment
  @$pb.TagNumber(6)
  $pb.PbList<$2.Slot> get slots => $_getList(4);

  /// TODO Need to add a structure to store platform user identifiers which can act on this appointment ?
  /// User mails being notified on this appointment
  @$pb.TagNumber(8)
  $pb.PbList<$core.String> get emails => $_getList(5);

  /// The appointment ID, usually generated using siteCounterServices
  @$pb.TagNumber(11)
  $core.String get appointmentID => $_getSZ(6);
  @$pb.TagNumber(11)
  set appointmentID($core.String value) => $_setString(6, value);
  @$pb.TagNumber(11)
  $core.bool hasAppointmentID() => $_has(6);
  @$pb.TagNumber(11)
  void clearAppointmentID() => $_clearField(11);

  /// Acknowledgment of the site instructions
  @$pb.TagNumber(12)
  $core.bool get instructionAck => $_getBF(7);
  @$pb.TagNumber(12)
  set instructionAck($core.bool value) => $_setBool(7, value);
  @$pb.TagNumber(12)
  $core.bool hasInstructionAck() => $_has(7);
  @$pb.TagNumber(12)
  void clearInstructionAck() => $_clearField(12);

  @$pb.TagNumber(13)
  $core.String get actorID => $_getSZ(8);
  @$pb.TagNumber(13)
  set actorID($core.String value) => $_setString(8, value);
  @$pb.TagNumber(13)
  $core.bool hasActorID() => $_has(8);
  @$pb.TagNumber(13)
  void clearActorID() => $_clearField(13);

  /// Carrier information metadata definition
  @$pb.TagNumber(14)
  $pb.PbList<$3.MetadataElement> get carrierInformation => $_getList(9);

  @$pb.TagNumber(15)
  $pb.PbList<$3.MetadataElement> get metaData => $_getList(10);

  @$pb.TagNumber(16)
  $core.String get reason => $_getSZ(11);
  @$pb.TagNumber(16)
  set reason($core.String value) => $_setString(11, value);
  @$pb.TagNumber(16)
  $core.bool hasReason() => $_has(11);
  @$pb.TagNumber(16)
  void clearReason() => $_clearField(16);

  /// time zone, useful only if a WMS send a message
  @$pb.TagNumber(17)
  $core.String get timeZone => $_getSZ(12);
  @$pb.TagNumber(17)
  set timeZone($core.String value) => $_setString(12, value);
  @$pb.TagNumber(17)
  $core.bool hasTimeZone() => $_has(12);
  @$pb.TagNumber(17)
  void clearTimeZone() => $_clearField(17);

  @$pb.TagNumber(18)
  $pb.PbList<$3.CustomField> get customFields => $_getList(13);
}

class GetBookingContextRequest extends $pb.GeneratedMessage {
  factory GetBookingContextRequest({
    $3.RequestProjectHeader? header,
  }) {
    final result = create();
    if (header != null) result.header = header;
    return result;
  }

  GetBookingContextRequest._();

  factory GetBookingContextRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory GetBookingContextRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'GetBookingContextRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetBookingContextRequest clone() => GetBookingContextRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetBookingContextRequest copyWith(void Function(GetBookingContextRequest) updates) => super.copyWith((message) => updates(message as GetBookingContextRequest)) as GetBookingContextRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.RequestProjectHeader ensureHeader() => $_ensure(0);
}

class GetBookingContextResponse extends $pb.GeneratedMessage {
  factory GetBookingContextResponse({
    $core.Iterable<ActorBookingContext>? actorBookingContexts,
  }) {
    final result = create();
    if (actorBookingContexts != null) result.actorBookingContexts.addAll(actorBookingContexts);
    return result;
  }

  GetBookingContextResponse._();

  factory GetBookingContextResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory GetBookingContextResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'GetBookingContextResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..pc<ActorBookingContext>(5, _omitFieldNames ? '' : 'ActorBookingContexts', $pb.PbFieldType.PM, protoName: 'ActorBookingContexts', subBuilder: ActorBookingContext.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetBookingContextResponse clone() => GetBookingContextResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetBookingContextResponse copyWith(void Function(GetBookingContextResponse) updates) => super.copyWith((message) => updates(message as GetBookingContextResponse)) as GetBookingContextResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(5)
  $pb.PbList<ActorBookingContext> get actorBookingContexts => $_getList(0);
}

class ActorBookingContext extends $pb.GeneratedMessage {
  factory ActorBookingContext({
    $core.String? actorID,
    $core.Iterable<$core.String>? unitIDs,
    $core.Iterable<$4.PrjMetadata>? carrierInformation,
    $core.Iterable<$4.PrjMetadata>? metaData,
    $2.Instruction? instruction,
    $core.Iterable<$2.Document>? instructionDocuments,
    $core.Iterable<SegmentationsByType>? segmentationsByTypes,
    $core.String? siteID,
    $core.String? projectID,
  }) {
    final result = create();
    if (actorID != null) result.actorID = actorID;
    if (unitIDs != null) result.unitIDs.addAll(unitIDs);
    if (carrierInformation != null) result.carrierInformation.addAll(carrierInformation);
    if (metaData != null) result.metaData.addAll(metaData);
    if (instruction != null) result.instruction = instruction;
    if (instructionDocuments != null) result.instructionDocuments.addAll(instructionDocuments);
    if (segmentationsByTypes != null) result.segmentationsByTypes.addAll(segmentationsByTypes);
    if (siteID != null) result.siteID = siteID;
    if (projectID != null) result.projectID = projectID;
    return result;
  }

  ActorBookingContext._();

  factory ActorBookingContext.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory ActorBookingContext.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ActorBookingContext', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'ActorID', protoName: 'ActorID')
    ..pPS(2, _omitFieldNames ? '' : 'UnitIDs', protoName: 'UnitIDs')
    ..pc<$4.PrjMetadata>(3, _omitFieldNames ? '' : 'CarrierInformation', $pb.PbFieldType.PM, protoName: 'CarrierInformation', subBuilder: $4.PrjMetadata.create)
    ..pc<$4.PrjMetadata>(4, _omitFieldNames ? '' : 'MetaData', $pb.PbFieldType.PM, protoName: 'MetaData', subBuilder: $4.PrjMetadata.create)
    ..aOM<$2.Instruction>(5, _omitFieldNames ? '' : 'Instruction', protoName: 'Instruction', subBuilder: $2.Instruction.create)
    ..pc<$2.Document>(6, _omitFieldNames ? '' : 'InstructionDocuments', $pb.PbFieldType.PM, protoName: 'InstructionDocuments', subBuilder: $2.Document.create)
    ..pc<SegmentationsByType>(7, _omitFieldNames ? '' : 'SegmentationsByTypes', $pb.PbFieldType.PM, protoName: 'SegmentationsByTypes', subBuilder: SegmentationsByType.create)
    ..aOS(8, _omitFieldNames ? '' : 'SiteID', protoName: 'SiteID')
    ..aOS(9, _omitFieldNames ? '' : 'ProjectID', protoName: 'ProjectID')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ActorBookingContext clone() => ActorBookingContext()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ActorBookingContext copyWith(void Function(ActorBookingContext) updates) => super.copyWith((message) => updates(message as ActorBookingContext)) as ActorBookingContext;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $core.String get actorID => $_getSZ(0);
  @$pb.TagNumber(1)
  set actorID($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasActorID() => $_has(0);
  @$pb.TagNumber(1)
  void clearActorID() => $_clearField(1);

  @$pb.TagNumber(2)
  $pb.PbList<$core.String> get unitIDs => $_getList(1);

  @$pb.TagNumber(3)
  $pb.PbList<$4.PrjMetadata> get carrierInformation => $_getList(2);

  @$pb.TagNumber(4)
  $pb.PbList<$4.PrjMetadata> get metaData => $_getList(3);

  @$pb.TagNumber(5)
  $2.Instruction get instruction => $_getN(4);
  @$pb.TagNumber(5)
  set instruction($2.Instruction value) => $_setField(5, value);
  @$pb.TagNumber(5)
  $core.bool hasInstruction() => $_has(4);
  @$pb.TagNumber(5)
  void clearInstruction() => $_clearField(5);
  @$pb.TagNumber(5)
  $2.Instruction ensureInstruction() => $_ensure(4);

  @$pb.TagNumber(6)
  $pb.PbList<$2.Document> get instructionDocuments => $_getList(5);

  @$pb.TagNumber(7)
  $pb.PbList<SegmentationsByType> get segmentationsByTypes => $_getList(6);

  @$pb.TagNumber(8)
  $core.String get siteID => $_getSZ(7);
  @$pb.TagNumber(8)
  set siteID($core.String value) => $_setString(7, value);
  @$pb.TagNumber(8)
  $core.bool hasSiteID() => $_has(7);
  @$pb.TagNumber(8)
  void clearSiteID() => $_clearField(8);

  @$pb.TagNumber(9)
  $core.String get projectID => $_getSZ(8);
  @$pb.TagNumber(9)
  set projectID($core.String value) => $_setString(8, value);
  @$pb.TagNumber(9)
  $core.bool hasProjectID() => $_has(8);
  @$pb.TagNumber(9)
  void clearProjectID() => $_clearField(9);
}

class SegmentationsByType extends $pb.GeneratedMessage {
  factory SegmentationsByType({
    $3.AppointmentType? appointmentType,
    $core.Iterable<$2.SegmentationFilter>? segmentations,
  }) {
    final result = create();
    if (appointmentType != null) result.appointmentType = appointmentType;
    if (segmentations != null) result.segmentations.addAll(segmentations);
    return result;
  }

  SegmentationsByType._();

  factory SegmentationsByType.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory SegmentationsByType.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'SegmentationsByType', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..e<$3.AppointmentType>(1, _omitFieldNames ? '' : 'AppointmentType', $pb.PbFieldType.OE, protoName: 'AppointmentType', defaultOrMaker: $3.AppointmentType.APPOINTMENT_TYPE_UNKNOWN, valueOf: $3.AppointmentType.valueOf, enumValues: $3.AppointmentType.values)
    ..pc<$2.SegmentationFilter>(2, _omitFieldNames ? '' : 'Segmentations', $pb.PbFieldType.PM, protoName: 'Segmentations', subBuilder: $2.SegmentationFilter.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  SegmentationsByType clone() => SegmentationsByType()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  SegmentationsByType copyWith(void Function(SegmentationsByType) updates) => super.copyWith((message) => updates(message as SegmentationsByType)) as SegmentationsByType;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.AppointmentType get appointmentType => $_getN(0);
  @$pb.TagNumber(1)
  set appointmentType($3.AppointmentType value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasAppointmentType() => $_has(0);
  @$pb.TagNumber(1)
  void clearAppointmentType() => $_clearField(1);

  @$pb.TagNumber(2)
  $pb.PbList<$2.SegmentationFilter> get segmentations => $_getList(1);
}

class BookAppointmentResponse extends $pb.GeneratedMessage {
  factory BookAppointmentResponse({
    $core.String? appointmentID,
    $3.ResponseHeader? header,
  }) {
    final result = create();
    if (appointmentID != null) result.appointmentID = appointmentID;
    if (header != null) result.header = header;
    return result;
  }

  BookAppointmentResponse._();

  factory BookAppointmentResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory BookAppointmentResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

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

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  BookAppointmentResponse clone() => BookAppointmentResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  BookAppointmentResponse copyWith(void Function(BookAppointmentResponse) updates) => super.copyWith((message) => updates(message as BookAppointmentResponse)) as BookAppointmentResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $core.String get appointmentID => $_getSZ(0);
  @$pb.TagNumber(1)
  set appointmentID($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasAppointmentID() => $_has(0);
  @$pb.TagNumber(1)
  void clearAppointmentID() => $_clearField(1);

  @$pb.TagNumber(2)
  $3.ResponseHeader get header => $_getN(1);
  @$pb.TagNumber(2)
  set header($3.ResponseHeader value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasHeader() => $_has(1);
  @$pb.TagNumber(2)
  void clearHeader() => $_clearField(2);
  @$pb.TagNumber(2)
  $3.ResponseHeader ensureHeader() => $_ensure(1);
}

/// CancelAppointment
class CancelAppointmentRequest extends $pb.GeneratedMessage {
  factory CancelAppointmentRequest({
    $3.RequestProjectHeader? header,
    $core.String? appointmentID,
    $core.String? actorID,
    $core.Iterable<$3.CustomField>? customFields,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (appointmentID != null) result.appointmentID = appointmentID;
    if (actorID != null) result.actorID = actorID;
    if (customFields != null) result.customFields.addAll(customFields);
    return result;
  }

  CancelAppointmentRequest._();

  factory CancelAppointmentRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory CancelAppointmentRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'CancelAppointmentRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..aOS(2, _omitFieldNames ? '' : 'AppointmentID', protoName: 'AppointmentID')
    ..aOS(3, _omitFieldNames ? '' : 'ActorID', protoName: 'ActorID')
    ..pc<$3.CustomField>(4, _omitFieldNames ? '' : 'CustomFields', $pb.PbFieldType.PM, protoName: 'CustomFields', subBuilder: $3.CustomField.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CancelAppointmentRequest clone() => CancelAppointmentRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CancelAppointmentRequest copyWith(void Function(CancelAppointmentRequest) updates) => super.copyWith((message) => updates(message as CancelAppointmentRequest)) as CancelAppointmentRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.RequestProjectHeader ensureHeader() => $_ensure(0);

  @$pb.TagNumber(2)
  $core.String get appointmentID => $_getSZ(1);
  @$pb.TagNumber(2)
  set appointmentID($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasAppointmentID() => $_has(1);
  @$pb.TagNumber(2)
  void clearAppointmentID() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.String get actorID => $_getSZ(2);
  @$pb.TagNumber(3)
  set actorID($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasActorID() => $_has(2);
  @$pb.TagNumber(3)
  void clearActorID() => $_clearField(3);

  @$pb.TagNumber(4)
  $pb.PbList<$3.CustomField> get customFields => $_getList(3);
}

class CancelAppointmentResponse extends $pb.GeneratedMessage {
  factory CancelAppointmentResponse({
    $core.String? appointmentID,
    $3.ResponseHeader? header,
  }) {
    final result = create();
    if (appointmentID != null) result.appointmentID = appointmentID;
    if (header != null) result.header = header;
    return result;
  }

  CancelAppointmentResponse._();

  factory CancelAppointmentResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory CancelAppointmentResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

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

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CancelAppointmentResponse clone() => CancelAppointmentResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CancelAppointmentResponse copyWith(void Function(CancelAppointmentResponse) updates) => super.copyWith((message) => updates(message as CancelAppointmentResponse)) as CancelAppointmentResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $core.String get appointmentID => $_getSZ(0);
  @$pb.TagNumber(1)
  set appointmentID($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasAppointmentID() => $_has(0);
  @$pb.TagNumber(1)
  void clearAppointmentID() => $_clearField(1);

  @$pb.TagNumber(2)
  $3.ResponseHeader get header => $_getN(1);
  @$pb.TagNumber(2)
  set header($3.ResponseHeader value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasHeader() => $_has(1);
  @$pb.TagNumber(2)
  void clearHeader() => $_clearField(2);
  @$pb.TagNumber(2)
  $3.ResponseHeader ensureHeader() => $_ensure(1);
}

class RescheduleAppointmentRequest extends $pb.GeneratedMessage {
  factory RescheduleAppointmentRequest({
    $3.RequestProjectHeader? header,
    $core.String? appointmentID,
    $core.Iterable<$2.Slot>? slots,
    $core.String? actorID,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (appointmentID != null) result.appointmentID = appointmentID;
    if (slots != null) result.slots.addAll(slots);
    if (actorID != null) result.actorID = actorID;
    return result;
  }

  RescheduleAppointmentRequest._();

  factory RescheduleAppointmentRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory RescheduleAppointmentRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'RescheduleAppointmentRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..aOS(2, _omitFieldNames ? '' : 'AppointmentID', protoName: 'AppointmentID')
    ..pc<$2.Slot>(3, _omitFieldNames ? '' : 'Slots', $pb.PbFieldType.PM, protoName: 'Slots', subBuilder: $2.Slot.create)
    ..aOS(4, _omitFieldNames ? '' : 'ActorID', protoName: 'ActorID')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  RescheduleAppointmentRequest clone() => RescheduleAppointmentRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  RescheduleAppointmentRequest copyWith(void Function(RescheduleAppointmentRequest) updates) => super.copyWith((message) => updates(message as RescheduleAppointmentRequest)) as RescheduleAppointmentRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.RequestProjectHeader ensureHeader() => $_ensure(0);

  @$pb.TagNumber(2)
  $core.String get appointmentID => $_getSZ(1);
  @$pb.TagNumber(2)
  set appointmentID($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasAppointmentID() => $_has(1);
  @$pb.TagNumber(2)
  void clearAppointmentID() => $_clearField(2);

  /// The slots to book for the appointment
  @$pb.TagNumber(3)
  $pb.PbList<$2.Slot> get slots => $_getList(2);

  @$pb.TagNumber(4)
  $core.String get actorID => $_getSZ(3);
  @$pb.TagNumber(4)
  set actorID($core.String value) => $_setString(3, value);
  @$pb.TagNumber(4)
  $core.bool hasActorID() => $_has(3);
  @$pb.TagNumber(4)
  void clearActorID() => $_clearField(4);
}

class UpdateAppointmentRequest extends $pb.GeneratedMessage {
  factory UpdateAppointmentRequest({
    $3.RequestProjectHeader? header,
    $core.String? appointmentID,
    $core.Iterable<$2.Slot>? slots,
    $core.Iterable<$2.Commission>? commissions,
    $core.String? actorID,
    $core.Iterable<$core.String>? emails,
    $core.String? reason,
    $core.String? timeZone,
    $core.Iterable<$3.CustomField>? customFields,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (appointmentID != null) result.appointmentID = appointmentID;
    if (slots != null) result.slots.addAll(slots);
    if (commissions != null) result.commissions.addAll(commissions);
    if (actorID != null) result.actorID = actorID;
    if (emails != null) result.emails.addAll(emails);
    if (reason != null) result.reason = reason;
    if (timeZone != null) result.timeZone = timeZone;
    if (customFields != null) result.customFields.addAll(customFields);
    return result;
  }

  UpdateAppointmentRequest._();

  factory UpdateAppointmentRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory UpdateAppointmentRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'UpdateAppointmentRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..aOS(2, _omitFieldNames ? '' : 'AppointmentID', protoName: 'AppointmentID')
    ..pc<$2.Slot>(3, _omitFieldNames ? '' : 'Slots', $pb.PbFieldType.PM, protoName: 'Slots', subBuilder: $2.Slot.create)
    ..pc<$2.Commission>(4, _omitFieldNames ? '' : 'Commissions', $pb.PbFieldType.PM, protoName: 'Commissions', subBuilder: $2.Commission.create)
    ..aOS(5, _omitFieldNames ? '' : 'ActorID', protoName: 'ActorID')
    ..pPS(6, _omitFieldNames ? '' : 'Emails', protoName: 'Emails')
    ..aOS(7, _omitFieldNames ? '' : 'Reason', protoName: 'Reason')
    ..aOS(8, _omitFieldNames ? '' : 'TimeZone', protoName: 'TimeZone')
    ..pc<$3.CustomField>(9, _omitFieldNames ? '' : 'CustomFields', $pb.PbFieldType.PM, protoName: 'CustomFields', subBuilder: $3.CustomField.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  UpdateAppointmentRequest clone() => UpdateAppointmentRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  UpdateAppointmentRequest copyWith(void Function(UpdateAppointmentRequest) updates) => super.copyWith((message) => updates(message as UpdateAppointmentRequest)) as UpdateAppointmentRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.RequestProjectHeader ensureHeader() => $_ensure(0);

  @$pb.TagNumber(2)
  $core.String get appointmentID => $_getSZ(1);
  @$pb.TagNumber(2)
  set appointmentID($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasAppointmentID() => $_has(1);
  @$pb.TagNumber(2)
  void clearAppointmentID() => $_clearField(2);

  /// The slots to book for the appointment
  @$pb.TagNumber(3)
  $pb.PbList<$2.Slot> get slots => $_getList(2);

  /// The new Commissions for the appointment
  @$pb.TagNumber(4)
  $pb.PbList<$2.Commission> get commissions => $_getList(3);

  @$pb.TagNumber(5)
  $core.String get actorID => $_getSZ(4);
  @$pb.TagNumber(5)
  set actorID($core.String value) => $_setString(4, value);
  @$pb.TagNumber(5)
  $core.bool hasActorID() => $_has(4);
  @$pb.TagNumber(5)
  void clearActorID() => $_clearField(5);

  @$pb.TagNumber(6)
  $pb.PbList<$core.String> get emails => $_getList(5);

  /// In case of no reference, The Reason for which the appointment has no commissions
  @$pb.TagNumber(7)
  $core.String get reason => $_getSZ(6);
  @$pb.TagNumber(7)
  set reason($core.String value) => $_setString(6, value);
  @$pb.TagNumber(7)
  $core.bool hasReason() => $_has(6);
  @$pb.TagNumber(7)
  void clearReason() => $_clearField(7);

  /// time zone, useful only if a WMS send a message
  @$pb.TagNumber(8)
  $core.String get timeZone => $_getSZ(7);
  @$pb.TagNumber(8)
  set timeZone($core.String value) => $_setString(7, value);
  @$pb.TagNumber(8)
  $core.bool hasTimeZone() => $_has(7);
  @$pb.TagNumber(8)
  void clearTimeZone() => $_clearField(8);

  @$pb.TagNumber(9)
  $pb.PbList<$3.CustomField> get customFields => $_getList(8);
}

class WMSUpdateAppointmentRequest extends $pb.GeneratedMessage {
  factory WMSUpdateAppointmentRequest({
    $3.RequestProjectHeader? header,
    $core.String? appointmentID,
    $core.Iterable<$2.Slot>? slots,
    $core.Iterable<$2.WMSCommission>? commissions,
    $core.String? actorID,
    $core.String? reason,
    $core.String? timeZone,
    $core.Iterable<$3.CustomField>? customFields,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (appointmentID != null) result.appointmentID = appointmentID;
    if (slots != null) result.slots.addAll(slots);
    if (commissions != null) result.commissions.addAll(commissions);
    if (actorID != null) result.actorID = actorID;
    if (reason != null) result.reason = reason;
    if (timeZone != null) result.timeZone = timeZone;
    if (customFields != null) result.customFields.addAll(customFields);
    return result;
  }

  WMSUpdateAppointmentRequest._();

  factory WMSUpdateAppointmentRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory WMSUpdateAppointmentRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'WMSUpdateAppointmentRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..aOS(2, _omitFieldNames ? '' : 'AppointmentID', protoName: 'AppointmentID')
    ..pc<$2.Slot>(3, _omitFieldNames ? '' : 'Slots', $pb.PbFieldType.PM, protoName: 'Slots', subBuilder: $2.Slot.create)
    ..pc<$2.WMSCommission>(4, _omitFieldNames ? '' : 'Commissions', $pb.PbFieldType.PM, protoName: 'Commissions', subBuilder: $2.WMSCommission.create)
    ..aOS(5, _omitFieldNames ? '' : 'ActorID', protoName: 'ActorID')
    ..aOS(7, _omitFieldNames ? '' : 'Reason', protoName: 'Reason')
    ..aOS(8, _omitFieldNames ? '' : 'TimeZone', protoName: 'TimeZone')
    ..pc<$3.CustomField>(9, _omitFieldNames ? '' : 'CustomFields', $pb.PbFieldType.PM, protoName: 'CustomFields', subBuilder: $3.CustomField.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  WMSUpdateAppointmentRequest clone() => WMSUpdateAppointmentRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  WMSUpdateAppointmentRequest copyWith(void Function(WMSUpdateAppointmentRequest) updates) => super.copyWith((message) => updates(message as WMSUpdateAppointmentRequest)) as WMSUpdateAppointmentRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.RequestProjectHeader ensureHeader() => $_ensure(0);

  @$pb.TagNumber(2)
  $core.String get appointmentID => $_getSZ(1);
  @$pb.TagNumber(2)
  set appointmentID($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasAppointmentID() => $_has(1);
  @$pb.TagNumber(2)
  void clearAppointmentID() => $_clearField(2);

  /// The slots to book for the appointment
  @$pb.TagNumber(3)
  $pb.PbList<$2.Slot> get slots => $_getList(2);

  /// The new Commissions for the appointment
  @$pb.TagNumber(4)
  $pb.PbList<$2.WMSCommission> get commissions => $_getList(3);

  @$pb.TagNumber(5)
  $core.String get actorID => $_getSZ(4);
  @$pb.TagNumber(5)
  set actorID($core.String value) => $_setString(4, value);
  @$pb.TagNumber(5)
  $core.bool hasActorID() => $_has(4);
  @$pb.TagNumber(5)
  void clearActorID() => $_clearField(5);

  /// In case of no reference, The Reason for which the appointment has no commissions
  @$pb.TagNumber(7)
  $core.String get reason => $_getSZ(5);
  @$pb.TagNumber(7)
  set reason($core.String value) => $_setString(5, value);
  @$pb.TagNumber(7)
  $core.bool hasReason() => $_has(5);
  @$pb.TagNumber(7)
  void clearReason() => $_clearField(7);

  /// time zone, useful only if a WMS send a message
  @$pb.TagNumber(8)
  $core.String get timeZone => $_getSZ(6);
  @$pb.TagNumber(8)
  set timeZone($core.String value) => $_setString(6, value);
  @$pb.TagNumber(8)
  $core.bool hasTimeZone() => $_has(6);
  @$pb.TagNumber(8)
  void clearTimeZone() => $_clearField(8);

  @$pb.TagNumber(9)
  $pb.PbList<$3.CustomField> get customFields => $_getList(7);
}

class DeleteSettingsRequest extends $pb.GeneratedMessage {
  factory DeleteSettingsRequest({
    $core.String? siteID,
  }) {
    final result = create();
    if (siteID != null) result.siteID = siteID;
    return result;
  }

  DeleteSettingsRequest._();

  factory DeleteSettingsRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory DeleteSettingsRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'DeleteSettingsRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'SiteID', protoName: 'SiteID')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  DeleteSettingsRequest clone() => DeleteSettingsRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  DeleteSettingsRequest copyWith(void Function(DeleteSettingsRequest) updates) => super.copyWith((message) => updates(message as DeleteSettingsRequest)) as DeleteSettingsRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $core.String get siteID => $_getSZ(0);
  @$pb.TagNumber(1)
  set siteID($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasSiteID() => $_has(0);
  @$pb.TagNumber(1)
  void clearSiteID() => $_clearField(1);
}

class DeleteSettingsResult extends $pb.GeneratedMessage {
  factory DeleteSettingsResult() => create();

  DeleteSettingsResult._();

  factory DeleteSettingsResult.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory DeleteSettingsResult.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'DeleteSettingsResult', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  DeleteSettingsResult clone() => DeleteSettingsResult()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  DeleteSettingsResult copyWith(void Function(DeleteSettingsResult) updates) => super.copyWith((message) => updates(message as DeleteSettingsResult)) as DeleteSettingsResult;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

/// ResolveSite
class ResolveSiteRequest extends $pb.GeneratedMessage {
  factory ResolveSiteRequest({
    $core.String? projectID,
    $core.String? actorID,
  }) {
    final result = create();
    if (projectID != null) result.projectID = projectID;
    if (actorID != null) result.actorID = actorID;
    return result;
  }

  ResolveSiteRequest._();

  factory ResolveSiteRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory ResolveSiteRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ResolveSiteRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'ProjectID', protoName: 'ProjectID')
    ..aOS(2, _omitFieldNames ? '' : 'ActorID', protoName: 'ActorID')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ResolveSiteRequest clone() => ResolveSiteRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ResolveSiteRequest copyWith(void Function(ResolveSiteRequest) updates) => super.copyWith((message) => updates(message as ResolveSiteRequest)) as ResolveSiteRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $core.String get projectID => $_getSZ(0);
  @$pb.TagNumber(1)
  set projectID($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasProjectID() => $_has(0);
  @$pb.TagNumber(1)
  void clearProjectID() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get actorID => $_getSZ(1);
  @$pb.TagNumber(2)
  set actorID($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasActorID() => $_has(1);
  @$pb.TagNumber(2)
  void clearActorID() => $_clearField(2);
}

class ResolveSiteResponse extends $pb.GeneratedMessage {
  factory ResolveSiteResponse({
    Site? site,
  }) {
    final result = create();
    if (site != null) result.site = site;
    return result;
  }

  ResolveSiteResponse._();

  factory ResolveSiteResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory ResolveSiteResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

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

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ResolveSiteResponse clone() => ResolveSiteResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ResolveSiteResponse copyWith(void Function(ResolveSiteResponse) updates) => super.copyWith((message) => updates(message as ResolveSiteResponse)) as ResolveSiteResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  Site get site => $_getN(0);
  @$pb.TagNumber(1)
  set site(Site value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasSite() => $_has(0);
  @$pb.TagNumber(1)
  void clearSite() => $_clearField(1);
  @$pb.TagNumber(1)
  Site ensureSite() => $_ensure(0);
}

/// Authorisation
class ProjectAuthorisationWithValue extends $pb.GeneratedMessage {
  factory ProjectAuthorisationWithValue({
    $core.String? projectID,
    ProjectConstraintWithValue? unloadingConstraint,
    ProjectConstraintWithValue? loadingConstraint,
  }) {
    final result = create();
    if (projectID != null) result.projectID = projectID;
    if (unloadingConstraint != null) result.unloadingConstraint = unloadingConstraint;
    if (loadingConstraint != null) result.loadingConstraint = loadingConstraint;
    return result;
  }

  ProjectAuthorisationWithValue._();

  factory ProjectAuthorisationWithValue.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory ProjectAuthorisationWithValue.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ProjectAuthorisationWithValue', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'ProjectID', protoName: 'ProjectID')
    ..aOM<ProjectConstraintWithValue>(2, _omitFieldNames ? '' : 'UnloadingConstraint', protoName: 'UnloadingConstraint', subBuilder: ProjectConstraintWithValue.create)
    ..aOM<ProjectConstraintWithValue>(3, _omitFieldNames ? '' : 'LoadingConstraint', protoName: 'LoadingConstraint', subBuilder: ProjectConstraintWithValue.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ProjectAuthorisationWithValue clone() => ProjectAuthorisationWithValue()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ProjectAuthorisationWithValue copyWith(void Function(ProjectAuthorisationWithValue) updates) => super.copyWith((message) => updates(message as ProjectAuthorisationWithValue)) as ProjectAuthorisationWithValue;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  /// Identifier of the project.
  @$pb.TagNumber(1)
  $core.String get projectID => $_getSZ(0);
  @$pb.TagNumber(1)
  set projectID($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasProjectID() => $_has(0);
  @$pb.TagNumber(1)
  void clearProjectID() => $_clearField(1);

  /// Constraints applied for unloading appointment.
  @$pb.TagNumber(2)
  ProjectConstraintWithValue get unloadingConstraint => $_getN(1);
  @$pb.TagNumber(2)
  set unloadingConstraint(ProjectConstraintWithValue value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasUnloadingConstraint() => $_has(1);
  @$pb.TagNumber(2)
  void clearUnloadingConstraint() => $_clearField(2);
  @$pb.TagNumber(2)
  ProjectConstraintWithValue ensureUnloadingConstraint() => $_ensure(1);

  /// Constraints applied for Loading appointment.
  @$pb.TagNumber(3)
  ProjectConstraintWithValue get loadingConstraint => $_getN(2);
  @$pb.TagNumber(3)
  set loadingConstraint(ProjectConstraintWithValue value) => $_setField(3, value);
  @$pb.TagNumber(3)
  $core.bool hasLoadingConstraint() => $_has(2);
  @$pb.TagNumber(3)
  void clearLoadingConstraint() => $_clearField(3);
  @$pb.TagNumber(3)
  ProjectConstraintWithValue ensureLoadingConstraint() => $_ensure(2);
}

class ProjectConstraintWithValue extends $pb.GeneratedMessage {
  factory ProjectConstraintWithValue({
    $core.Iterable<$2.Segmentation>? segmentationFilters,
    $3.Period? minNoticePeriod,
    $3.Period? maxBookingPeriod,
  }) {
    final result = create();
    if (segmentationFilters != null) result.segmentationFilters.addAll(segmentationFilters);
    if (minNoticePeriod != null) result.minNoticePeriod = minNoticePeriod;
    if (maxBookingPeriod != null) result.maxBookingPeriod = maxBookingPeriod;
    return result;
  }

  ProjectConstraintWithValue._();

  factory ProjectConstraintWithValue.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory ProjectConstraintWithValue.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ProjectConstraintWithValue', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..pc<$2.Segmentation>(1, _omitFieldNames ? '' : 'SegmentationFilters', $pb.PbFieldType.PM, protoName: 'SegmentationFilters', subBuilder: $2.Segmentation.create)
    ..aOM<$3.Period>(2, _omitFieldNames ? '' : 'MinNoticePeriod', protoName: 'MinNoticePeriod', subBuilder: $3.Period.create)
    ..aOM<$3.Period>(3, _omitFieldNames ? '' : 'MaxBookingPeriod', protoName: 'MaxBookingPeriod', subBuilder: $3.Period.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ProjectConstraintWithValue clone() => ProjectConstraintWithValue()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ProjectConstraintWithValue copyWith(void Function(ProjectConstraintWithValue) updates) => super.copyWith((message) => updates(message as ProjectConstraintWithValue)) as ProjectConstraintWithValue;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  /// Specific Segmentation constraints applicable for the project.
  @$pb.TagNumber(1)
  $pb.PbList<$2.Segmentation> get segmentationFilters => $_getList(0);

  /// Minimal notice delay to book or cancel an appointment.
  @$pb.TagNumber(2)
  $3.Period get minNoticePeriod => $_getN(1);
  @$pb.TagNumber(2)
  set minNoticePeriod($3.Period value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasMinNoticePeriod() => $_has(1);
  @$pb.TagNumber(2)
  void clearMinNoticePeriod() => $_clearField(2);
  @$pb.TagNumber(2)
  $3.Period ensureMinNoticePeriod() => $_ensure(1);

  /// Maximal delay to book an appointment.
  @$pb.TagNumber(3)
  $3.Period get maxBookingPeriod => $_getN(2);
  @$pb.TagNumber(3)
  set maxBookingPeriod($3.Period value) => $_setField(3, value);
  @$pb.TagNumber(3)
  $core.bool hasMaxBookingPeriod() => $_has(2);
  @$pb.TagNumber(3)
  void clearMaxBookingPeriod() => $_clearField(3);
  @$pb.TagNumber(3)
  $3.Period ensureMaxBookingPeriod() => $_ensure(2);
}

class SegmentationsSetting extends $pb.GeneratedMessage {
  factory SegmentationsSetting({
    ProjectAuthorisationWithValue? authorisation,
    $core.String? name,
    $core.String? projectID,
  }) {
    final result = create();
    if (authorisation != null) result.authorisation = authorisation;
    if (name != null) result.name = name;
    if (projectID != null) result.projectID = projectID;
    return result;
  }

  SegmentationsSetting._();

  factory SegmentationsSetting.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory SegmentationsSetting.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'SegmentationsSetting', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<ProjectAuthorisationWithValue>(1, _omitFieldNames ? '' : 'Authorisation', protoName: 'Authorisation', subBuilder: ProjectAuthorisationWithValue.create)
    ..aOS(2, _omitFieldNames ? '' : 'Name', protoName: 'Name')
    ..aOS(3, _omitFieldNames ? '' : 'ProjectID', protoName: 'ProjectID')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  SegmentationsSetting clone() => SegmentationsSetting()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  SegmentationsSetting copyWith(void Function(SegmentationsSetting) updates) => super.copyWith((message) => updates(message as SegmentationsSetting)) as SegmentationsSetting;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  ProjectAuthorisationWithValue get authorisation => $_getN(0);
  @$pb.TagNumber(1)
  set authorisation(ProjectAuthorisationWithValue value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasAuthorisation() => $_has(0);
  @$pb.TagNumber(1)
  void clearAuthorisation() => $_clearField(1);
  @$pb.TagNumber(1)
  ProjectAuthorisationWithValue ensureAuthorisation() => $_ensure(0);

  @$pb.TagNumber(2)
  $core.String get name => $_getSZ(1);
  @$pb.TagNumber(2)
  set name($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasName() => $_has(1);
  @$pb.TagNumber(2)
  void clearName() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.String get projectID => $_getSZ(2);
  @$pb.TagNumber(3)
  set projectID($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasProjectID() => $_has(2);
  @$pb.TagNumber(3)
  void clearProjectID() => $_clearField(3);
}

class ListOfSitesPerOrganisation extends $pb.GeneratedMessage {
  factory ListOfSitesPerOrganisation({
    $core.String? organisationID,
    $core.Iterable<SegmentationsSetting>? segmentationsSettings,
  }) {
    final result = create();
    if (organisationID != null) result.organisationID = organisationID;
    if (segmentationsSettings != null) result.segmentationsSettings.addAll(segmentationsSettings);
    return result;
  }

  ListOfSitesPerOrganisation._();

  factory ListOfSitesPerOrganisation.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory ListOfSitesPerOrganisation.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ListOfSitesPerOrganisation', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'OrganisationID', protoName: 'OrganisationID')
    ..pc<SegmentationsSetting>(2, _omitFieldNames ? '' : 'SegmentationsSettings', $pb.PbFieldType.PM, protoName: 'SegmentationsSettings', subBuilder: SegmentationsSetting.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ListOfSitesPerOrganisation clone() => ListOfSitesPerOrganisation()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ListOfSitesPerOrganisation copyWith(void Function(ListOfSitesPerOrganisation) updates) => super.copyWith((message) => updates(message as ListOfSitesPerOrganisation)) as ListOfSitesPerOrganisation;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $core.String get organisationID => $_getSZ(0);
  @$pb.TagNumber(1)
  set organisationID($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasOrganisationID() => $_has(0);
  @$pb.TagNumber(1)
  void clearOrganisationID() => $_clearField(1);

  @$pb.TagNumber(2)
  $pb.PbList<SegmentationsSetting> get segmentationsSettings => $_getList(1);
}

@$core.Deprecated('This message is deprecated')
class ListSitesAuthorizedForBookingRequest extends $pb.GeneratedMessage {
  factory ListSitesAuthorizedForBookingRequest({
    $3.RequestProjectHeader? header,
  }) {
    final result = create();
    if (header != null) result.header = header;
    return result;
  }

  ListSitesAuthorizedForBookingRequest._();

  factory ListSitesAuthorizedForBookingRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory ListSitesAuthorizedForBookingRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ListSitesAuthorizedForBookingRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ListSitesAuthorizedForBookingRequest clone() => ListSitesAuthorizedForBookingRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ListSitesAuthorizedForBookingRequest copyWith(void Function(ListSitesAuthorizedForBookingRequest) updates) => super.copyWith((message) => updates(message as ListSitesAuthorizedForBookingRequest)) as ListSitesAuthorizedForBookingRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.RequestProjectHeader ensureHeader() => $_ensure(0);
}

@$core.Deprecated('This message is deprecated')
class ListSitesAuthorizedForBookingResponse extends $pb.GeneratedMessage {
  factory ListSitesAuthorizedForBookingResponse({
    $core.Iterable<ListOfSitesPerOrganisation>? listOfSitesPerOrganisations,
  }) {
    final result = create();
    if (listOfSitesPerOrganisations != null) result.listOfSitesPerOrganisations.addAll(listOfSitesPerOrganisations);
    return result;
  }

  ListSitesAuthorizedForBookingResponse._();

  factory ListSitesAuthorizedForBookingResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory ListSitesAuthorizedForBookingResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ListSitesAuthorizedForBookingResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..pc<ListOfSitesPerOrganisation>(1, _omitFieldNames ? '' : 'ListOfSitesPerOrganisations', $pb.PbFieldType.PM, protoName: 'ListOfSitesPerOrganisations', subBuilder: ListOfSitesPerOrganisation.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ListSitesAuthorizedForBookingResponse clone() => ListSitesAuthorizedForBookingResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ListSitesAuthorizedForBookingResponse copyWith(void Function(ListSitesAuthorizedForBookingResponse) updates) => super.copyWith((message) => updates(message as ListSitesAuthorizedForBookingResponse)) as ListSitesAuthorizedForBookingResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $pb.PbList<ListOfSitesPerOrganisation> get listOfSitesPerOrganisations => $_getList(0);
}

class SiteDescription extends $pb.GeneratedMessage {
  factory SiteDescription({
    $core.String? organisationID,
    $core.String? siteID,
    $core.String? siteName,
  }) {
    final result = create();
    if (organisationID != null) result.organisationID = organisationID;
    if (siteID != null) result.siteID = siteID;
    if (siteName != null) result.siteName = siteName;
    return result;
  }

  SiteDescription._();

  factory SiteDescription.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory SiteDescription.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'SiteDescription', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'OrganisationID', protoName: 'OrganisationID')
    ..aOS(2, _omitFieldNames ? '' : 'SiteID', protoName: 'SiteID')
    ..aOS(3, _omitFieldNames ? '' : 'SiteName', protoName: 'SiteName')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  SiteDescription clone() => SiteDescription()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  SiteDescription copyWith(void Function(SiteDescription) updates) => super.copyWith((message) => updates(message as SiteDescription)) as SiteDescription;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $core.String get organisationID => $_getSZ(0);
  @$pb.TagNumber(1)
  set organisationID($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasOrganisationID() => $_has(0);
  @$pb.TagNumber(1)
  void clearOrganisationID() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get siteID => $_getSZ(1);
  @$pb.TagNumber(2)
  set siteID($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasSiteID() => $_has(1);
  @$pb.TagNumber(2)
  void clearSiteID() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.String get siteName => $_getSZ(2);
  @$pb.TagNumber(3)
  set siteName($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasSiteName() => $_has(2);
  @$pb.TagNumber(3)
  void clearSiteName() => $_clearField(3);
}

class ListAllowedSitesRequest extends $pb.GeneratedMessage {
  factory ListAllowedSitesRequest({
    $3.RequestProjectHeader? header,
  }) {
    final result = create();
    if (header != null) result.header = header;
    return result;
  }

  ListAllowedSitesRequest._();

  factory ListAllowedSitesRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory ListAllowedSitesRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ListAllowedSitesRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ListAllowedSitesRequest clone() => ListAllowedSitesRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ListAllowedSitesRequest copyWith(void Function(ListAllowedSitesRequest) updates) => super.copyWith((message) => updates(message as ListAllowedSitesRequest)) as ListAllowedSitesRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.RequestProjectHeader ensureHeader() => $_ensure(0);
}

class ListAllowedSitesResponse extends $pb.GeneratedMessage {
  factory ListAllowedSitesResponse({
    $core.Iterable<SiteDescription>? sitesAllowed,
  }) {
    final result = create();
    if (sitesAllowed != null) result.sitesAllowed.addAll(sitesAllowed);
    return result;
  }

  ListAllowedSitesResponse._();

  factory ListAllowedSitesResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory ListAllowedSitesResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ListAllowedSitesResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..pc<SiteDescription>(1, _omitFieldNames ? '' : 'SitesAllowed', $pb.PbFieldType.PM, protoName: 'SitesAllowed', subBuilder: SiteDescription.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ListAllowedSitesResponse clone() => ListAllowedSitesResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  ListAllowedSitesResponse copyWith(void Function(ListAllowedSitesResponse) updates) => super.copyWith((message) => updates(message as ListAllowedSitesResponse)) as ListAllowedSitesResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $pb.PbList<SiteDescription> get sitesAllowed => $_getList(0);
}

class GetActorAuthorisationRequest extends $pb.GeneratedMessage {
  factory GetActorAuthorisationRequest({
    $3.RequestProjectHeader? header,
    $core.String? siteID,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (siteID != null) result.siteID = siteID;
    return result;
  }

  GetActorAuthorisationRequest._();

  factory GetActorAuthorisationRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory GetActorAuthorisationRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

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

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetActorAuthorisationRequest clone() => GetActorAuthorisationRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetActorAuthorisationRequest copyWith(void Function(GetActorAuthorisationRequest) updates) => super.copyWith((message) => updates(message as GetActorAuthorisationRequest)) as GetActorAuthorisationRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.RequestProjectHeader ensureHeader() => $_ensure(0);

  @$pb.TagNumber(2)
  $core.String get siteID => $_getSZ(1);
  @$pb.TagNumber(2)
  set siteID($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasSiteID() => $_has(1);
  @$pb.TagNumber(2)
  void clearSiteID() => $_clearField(2);
}

class GetActorAuthorisationResponse extends $pb.GeneratedMessage {
  factory GetActorAuthorisationResponse({
    ProjectAuthorisationWithValue? authorisation,
  }) {
    final result = create();
    if (authorisation != null) result.authorisation = authorisation;
    return result;
  }

  GetActorAuthorisationResponse._();

  factory GetActorAuthorisationResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory GetActorAuthorisationResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'GetActorAuthorisationResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<ProjectAuthorisationWithValue>(2, _omitFieldNames ? '' : 'Authorisation', protoName: 'Authorisation', subBuilder: ProjectAuthorisationWithValue.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetActorAuthorisationResponse clone() => GetActorAuthorisationResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetActorAuthorisationResponse copyWith(void Function(GetActorAuthorisationResponse) updates) => super.copyWith((message) => updates(message as GetActorAuthorisationResponse)) as GetActorAuthorisationResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  /// ProjectAuthorisation Authorisation = 1;
  @$pb.TagNumber(2)
  ProjectAuthorisationWithValue get authorisation => $_getN(0);
  @$pb.TagNumber(2)
  set authorisation(ProjectAuthorisationWithValue value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasAuthorisation() => $_has(0);
  @$pb.TagNumber(2)
  void clearAuthorisation() => $_clearField(2);
  @$pb.TagNumber(2)
  ProjectAuthorisationWithValue ensureAuthorisation() => $_ensure(0);
}

class GetBasicSettingsRequest extends $pb.GeneratedMessage {
  factory GetBasicSettingsRequest({
    $3.RequestProjectHeader? header,
  @$core.Deprecated('This field is deprecated.')
    $core.String? actorID,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (actorID != null) result.actorID = actorID;
    return result;
  }

  GetBasicSettingsRequest._();

  factory GetBasicSettingsRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory GetBasicSettingsRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

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

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetBasicSettingsRequest clone() => GetBasicSettingsRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetBasicSettingsRequest copyWith(void Function(GetBasicSettingsRequest) updates) => super.copyWith((message) => updates(message as GetBasicSettingsRequest)) as GetBasicSettingsRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.RequestProjectHeader ensureHeader() => $_ensure(0);

  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(2)
  $core.String get actorID => $_getSZ(1);
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(2)
  set actorID($core.String value) => $_setString(1, value);
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(2)
  $core.bool hasActorID() => $_has(1);
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(2)
  void clearActorID() => $_clearField(2);
}

class GetBasicSettingsResponse extends $pb.GeneratedMessage {
  factory GetBasicSettingsResponse({
    $core.String? name,
    $core.bool? active,
    $1.Address? address,
    $core.Iterable<$core.String>? phones,
    $core.String? fax,
    $core.Iterable<$core.String>? emails,
    $core.String? iD,
    $core.String? photoURI,
    $core.String? prefixAppointmentID,
  }) {
    final result = create();
    if (name != null) result.name = name;
    if (active != null) result.active = active;
    if (address != null) result.address = address;
    if (phones != null) result.phones.addAll(phones);
    if (fax != null) result.fax = fax;
    if (emails != null) result.emails.addAll(emails);
    if (iD != null) result.iD = iD;
    if (photoURI != null) result.photoURI = photoURI;
    if (prefixAppointmentID != null) result.prefixAppointmentID = prefixAppointmentID;
    return result;
  }

  GetBasicSettingsResponse._();

  factory GetBasicSettingsResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory GetBasicSettingsResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'GetBasicSettingsResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'Name', protoName: 'Name')
    ..aOB(2, _omitFieldNames ? '' : 'Active', protoName: 'Active')
    ..aOM<$1.Address>(3, _omitFieldNames ? '' : 'Address', protoName: 'Address', subBuilder: $1.Address.create)
    ..pPS(4, _omitFieldNames ? '' : 'Phones', protoName: 'Phones')
    ..aOS(5, _omitFieldNames ? '' : 'Fax', protoName: 'Fax')
    ..pPS(6, _omitFieldNames ? '' : 'Emails', protoName: 'Emails')
    ..aOS(7, _omitFieldNames ? '' : 'ID', protoName: 'ID')
    ..aOS(8, _omitFieldNames ? '' : 'PhotoURI', protoName: 'PhotoURI')
    ..aOS(9, _omitFieldNames ? '' : 'PrefixAppointmentID', protoName: 'PrefixAppointmentID')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetBasicSettingsResponse clone() => GetBasicSettingsResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetBasicSettingsResponse copyWith(void Function(GetBasicSettingsResponse) updates) => super.copyWith((message) => updates(message as GetBasicSettingsResponse)) as GetBasicSettingsResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  /// Name of the Site
  @$pb.TagNumber(1)
  $core.String get name => $_getSZ(0);
  @$pb.TagNumber(1)
  set name($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasName() => $_has(0);
  @$pb.TagNumber(1)
  void clearName() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.bool get active => $_getBF(1);
  @$pb.TagNumber(2)
  set active($core.bool value) => $_setBool(1, value);
  @$pb.TagNumber(2)
  $core.bool hasActive() => $_has(1);
  @$pb.TagNumber(2)
  void clearActive() => $_clearField(2);

  @$pb.TagNumber(3)
  $1.Address get address => $_getN(2);
  @$pb.TagNumber(3)
  set address($1.Address value) => $_setField(3, value);
  @$pb.TagNumber(3)
  $core.bool hasAddress() => $_has(2);
  @$pb.TagNumber(3)
  void clearAddress() => $_clearField(3);
  @$pb.TagNumber(3)
  $1.Address ensureAddress() => $_ensure(2);

  @$pb.TagNumber(4)
  $pb.PbList<$core.String> get phones => $_getList(3);

  @$pb.TagNumber(5)
  $core.String get fax => $_getSZ(4);
  @$pb.TagNumber(5)
  set fax($core.String value) => $_setString(4, value);
  @$pb.TagNumber(5)
  $core.bool hasFax() => $_has(4);
  @$pb.TagNumber(5)
  void clearFax() => $_clearField(5);

  @$pb.TagNumber(6)
  $pb.PbList<$core.String> get emails => $_getList(5);

  @$pb.TagNumber(7)
  $core.String get iD => $_getSZ(6);
  @$pb.TagNumber(7)
  set iD($core.String value) => $_setString(6, value);
  @$pb.TagNumber(7)
  $core.bool hasID() => $_has(6);
  @$pb.TagNumber(7)
  void clearID() => $_clearField(7);

  @$pb.TagNumber(8)
  $core.String get photoURI => $_getSZ(7);
  @$pb.TagNumber(8)
  set photoURI($core.String value) => $_setString(7, value);
  @$pb.TagNumber(8)
  $core.bool hasPhotoURI() => $_has(7);
  @$pb.TagNumber(8)
  void clearPhotoURI() => $_clearField(8);

  @$pb.TagNumber(9)
  $core.String get prefixAppointmentID => $_getSZ(8);
  @$pb.TagNumber(9)
  set prefixAppointmentID($core.String value) => $_setString(8, value);
  @$pb.TagNumber(9)
  $core.bool hasPrefixAppointmentID() => $_has(8);
  @$pb.TagNumber(9)
  void clearPrefixAppointmentID() => $_clearField(9);
}

class GetUnitsRequest extends $pb.GeneratedMessage {
  factory GetUnitsRequest({
    $3.RequestProjectHeader? header,
  @$core.Deprecated('This field is deprecated.')
    $core.String? actorID,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (actorID != null) result.actorID = actorID;
    return result;
  }

  GetUnitsRequest._();

  factory GetUnitsRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory GetUnitsRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

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

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetUnitsRequest clone() => GetUnitsRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetUnitsRequest copyWith(void Function(GetUnitsRequest) updates) => super.copyWith((message) => updates(message as GetUnitsRequest)) as GetUnitsRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.RequestProjectHeader ensureHeader() => $_ensure(0);

  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(2)
  $core.String get actorID => $_getSZ(1);
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(2)
  set actorID($core.String value) => $_setString(1, value);
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(2)
  $core.bool hasActorID() => $_has(1);
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(2)
  void clearActorID() => $_clearField(2);
}

class GetUnitsResponse extends $pb.GeneratedMessage {
  factory GetUnitsResponse({
    $core.Iterable<$2.Unit>? units,
  }) {
    final result = create();
    if (units != null) result.units.addAll(units);
    return result;
  }

  GetUnitsResponse._();

  factory GetUnitsResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory GetUnitsResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'GetUnitsResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..pc<$2.Unit>(1, _omitFieldNames ? '' : 'Units', $pb.PbFieldType.PM, protoName: 'Units', subBuilder: $2.Unit.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetUnitsResponse clone() => GetUnitsResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetUnitsResponse copyWith(void Function(GetUnitsResponse) updates) => super.copyWith((message) => updates(message as GetUnitsResponse)) as GetUnitsResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $pb.PbList<$2.Unit> get units => $_getList(0);
}

class GetBookingSegmentationsRequest extends $pb.GeneratedMessage {
  factory GetBookingSegmentationsRequest({
    $3.RequestProjectHeader? header,
  @$core.Deprecated('This field is deprecated.')
    $core.String? actorID,
    $3.AppointmentType? appointmentType,
  @$core.Deprecated('This field is deprecated.')
    $core.Iterable<$2.Commission>? commissions,
    $2.AppointmentContent? loading,
    $2.AppointmentContent? unloading,
  }) {
    final result = create();
    if (header != null) result.header = header;
    if (actorID != null) result.actorID = actorID;
    if (appointmentType != null) result.appointmentType = appointmentType;
    if (commissions != null) result.commissions.addAll(commissions);
    if (loading != null) result.loading = loading;
    if (unloading != null) result.unloading = unloading;
    return result;
  }

  GetBookingSegmentationsRequest._();

  factory GetBookingSegmentationsRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory GetBookingSegmentationsRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'GetBookingSegmentationsRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..aOS(2, _omitFieldNames ? '' : 'ActorID', protoName: 'ActorID')
    ..e<$3.AppointmentType>(3, _omitFieldNames ? '' : 'AppointmentType', $pb.PbFieldType.OE, protoName: 'AppointmentType', defaultOrMaker: $3.AppointmentType.APPOINTMENT_TYPE_UNKNOWN, valueOf: $3.AppointmentType.valueOf, enumValues: $3.AppointmentType.values)
    ..pc<$2.Commission>(4, _omitFieldNames ? '' : 'Commissions', $pb.PbFieldType.PM, protoName: 'Commissions', subBuilder: $2.Commission.create)
    ..aOM<$2.AppointmentContent>(5, _omitFieldNames ? '' : 'Loading', protoName: 'Loading', subBuilder: $2.AppointmentContent.create)
    ..aOM<$2.AppointmentContent>(6, _omitFieldNames ? '' : 'Unloading', protoName: 'Unloading', subBuilder: $2.AppointmentContent.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetBookingSegmentationsRequest clone() => GetBookingSegmentationsRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetBookingSegmentationsRequest copyWith(void Function(GetBookingSegmentationsRequest) updates) => super.copyWith((message) => updates(message as GetBookingSegmentationsRequest)) as GetBookingSegmentationsRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasHeader() => $_has(0);
  @$pb.TagNumber(1)
  void clearHeader() => $_clearField(1);
  @$pb.TagNumber(1)
  $3.RequestProjectHeader ensureHeader() => $_ensure(0);

  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(2)
  $core.String get actorID => $_getSZ(1);
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(2)
  set actorID($core.String value) => $_setString(1, value);
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(2)
  $core.bool hasActorID() => $_has(1);
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(2)
  void clearActorID() => $_clearField(2);

  @$pb.TagNumber(3)
  $3.AppointmentType get appointmentType => $_getN(2);
  @$pb.TagNumber(3)
  set appointmentType($3.AppointmentType value) => $_setField(3, value);
  @$pb.TagNumber(3)
  $core.bool hasAppointmentType() => $_has(2);
  @$pb.TagNumber(3)
  void clearAppointmentType() => $_clearField(3);

  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(4)
  $pb.PbList<$2.Commission> get commissions => $_getList(3);

  @$pb.TagNumber(5)
  $2.AppointmentContent get loading => $_getN(4);
  @$pb.TagNumber(5)
  set loading($2.AppointmentContent value) => $_setField(5, value);
  @$pb.TagNumber(5)
  $core.bool hasLoading() => $_has(4);
  @$pb.TagNumber(5)
  void clearLoading() => $_clearField(5);
  @$pb.TagNumber(5)
  $2.AppointmentContent ensureLoading() => $_ensure(4);

  @$pb.TagNumber(6)
  $2.AppointmentContent get unloading => $_getN(5);
  @$pb.TagNumber(6)
  set unloading($2.AppointmentContent value) => $_setField(6, value);
  @$pb.TagNumber(6)
  $core.bool hasUnloading() => $_has(5);
  @$pb.TagNumber(6)
  void clearUnloading() => $_clearField(6);
  @$pb.TagNumber(6)
  $2.AppointmentContent ensureUnloading() => $_ensure(5);
}

class GetBookingSegmentationsResponse extends $pb.GeneratedMessage {
  factory GetBookingSegmentationsResponse({
  @$core.Deprecated('This field is deprecated.')
    $core.Iterable<$2.Segmentation>? segmentationChoices,
    $core.Iterable<$4.PrjMetadata>? segmentationKeys,
  }) {
    final result = create();
    if (segmentationChoices != null) result.segmentationChoices.addAll(segmentationChoices);
    if (segmentationKeys != null) result.segmentationKeys.addAll(segmentationKeys);
    return result;
  }

  GetBookingSegmentationsResponse._();

  factory GetBookingSegmentationsResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory GetBookingSegmentationsResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'GetBookingSegmentationsResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..pc<$2.Segmentation>(1, _omitFieldNames ? '' : 'SegmentationChoices', $pb.PbFieldType.PM, protoName: 'SegmentationChoices', subBuilder: $2.Segmentation.create)
    ..pc<$4.PrjMetadata>(2, _omitFieldNames ? '' : 'SegmentationKeys', $pb.PbFieldType.PM, protoName: 'SegmentationKeys', subBuilder: $4.PrjMetadata.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetBookingSegmentationsResponse clone() => GetBookingSegmentationsResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetBookingSegmentationsResponse copyWith(void Function(GetBookingSegmentationsResponse) updates) => super.copyWith((message) => updates(message as GetBookingSegmentationsResponse)) as GetBookingSegmentationsResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  /// Name of the Site
  @$core.Deprecated('This field is deprecated.')
  @$pb.TagNumber(1)
  $pb.PbList<$2.Segmentation> get segmentationChoices => $_getList(0);

  @$pb.TagNumber(2)
  $pb.PbList<$4.PrjMetadata> get segmentationKeys => $_getList(1);
}

class GetMyBookingContextRequest extends $pb.GeneratedMessage {
  factory GetMyBookingContextRequest() => create();

  GetMyBookingContextRequest._();

  factory GetMyBookingContextRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory GetMyBookingContextRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'GetMyBookingContextRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetMyBookingContextRequest clone() => GetMyBookingContextRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetMyBookingContextRequest copyWith(void Function(GetMyBookingContextRequest) updates) => super.copyWith((message) => updates(message as GetMyBookingContextRequest)) as GetMyBookingContextRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

class GetMyBookingContextResponse extends $pb.GeneratedMessage {
  factory GetMyBookingContextResponse({
    $core.Iterable<SiteBookingContext>? siteBookingContexts,
    $core.Iterable<SiteBookingContext>? siteViewingContexts,
  }) {
    final result = create();
    if (siteBookingContexts != null) result.siteBookingContexts.addAll(siteBookingContexts);
    if (siteViewingContexts != null) result.siteViewingContexts.addAll(siteViewingContexts);
    return result;
  }

  GetMyBookingContextResponse._();

  factory GetMyBookingContextResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory GetMyBookingContextResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'GetMyBookingContextResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..pc<SiteBookingContext>(1, _omitFieldNames ? '' : 'SiteBookingContexts', $pb.PbFieldType.PM, protoName: 'SiteBookingContexts', subBuilder: SiteBookingContext.create)
    ..pc<SiteBookingContext>(2, _omitFieldNames ? '' : 'SiteViewingContexts', $pb.PbFieldType.PM, protoName: 'SiteViewingContexts', subBuilder: SiteBookingContext.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetMyBookingContextResponse clone() => GetMyBookingContextResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  GetMyBookingContextResponse copyWith(void Function(GetMyBookingContextResponse) updates) => super.copyWith((message) => updates(message as GetMyBookingContextResponse)) as GetMyBookingContextResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $pb.PbList<SiteBookingContext> get siteBookingContexts => $_getList(0);

  @$pb.TagNumber(2)
  $pb.PbList<SiteBookingContext> get siteViewingContexts => $_getList(1);
}

class SiteBookingContext extends $pb.GeneratedMessage {
  factory SiteBookingContext({
    $core.String? siteID,
    $core.Iterable<SiteProjectBookingContext>? byProjects,
    $core.String? name,
    $1.Address? address,
    $core.Iterable<$core.String>? phones,
    $core.String? fax,
    $core.Iterable<$core.String>? emails,
    $core.String? photoURI,
    $core.String? prefixAppointmentID,
    $core.int? roundedPeriodInMinutes,
    $core.String? languageCode,
    $core.bool? isSiteStandAlone,
  }) {
    final result = create();
    if (siteID != null) result.siteID = siteID;
    if (byProjects != null) result.byProjects.addAll(byProjects);
    if (name != null) result.name = name;
    if (address != null) result.address = address;
    if (phones != null) result.phones.addAll(phones);
    if (fax != null) result.fax = fax;
    if (emails != null) result.emails.addAll(emails);
    if (photoURI != null) result.photoURI = photoURI;
    if (prefixAppointmentID != null) result.prefixAppointmentID = prefixAppointmentID;
    if (roundedPeriodInMinutes != null) result.roundedPeriodInMinutes = roundedPeriodInMinutes;
    if (languageCode != null) result.languageCode = languageCode;
    if (isSiteStandAlone != null) result.isSiteStandAlone = isSiteStandAlone;
    return result;
  }

  SiteBookingContext._();

  factory SiteBookingContext.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory SiteBookingContext.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'SiteBookingContext', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'SiteID', protoName: 'SiteID')
    ..pc<SiteProjectBookingContext>(2, _omitFieldNames ? '' : 'ByProjects', $pb.PbFieldType.PM, protoName: 'ByProjects', subBuilder: SiteProjectBookingContext.create)
    ..aOS(3, _omitFieldNames ? '' : 'Name', protoName: 'Name')
    ..aOM<$1.Address>(4, _omitFieldNames ? '' : 'Address', protoName: 'Address', subBuilder: $1.Address.create)
    ..pPS(5, _omitFieldNames ? '' : 'Phones', protoName: 'Phones')
    ..aOS(6, _omitFieldNames ? '' : 'Fax', protoName: 'Fax')
    ..pPS(7, _omitFieldNames ? '' : 'Emails', protoName: 'Emails')
    ..aOS(8, _omitFieldNames ? '' : 'PhotoURI', protoName: 'PhotoURI')
    ..aOS(9, _omitFieldNames ? '' : 'PrefixAppointmentID', protoName: 'PrefixAppointmentID')
    ..a<$core.int>(10, _omitFieldNames ? '' : 'RoundedPeriodInMinutes', $pb.PbFieldType.OU3, protoName: 'RoundedPeriodInMinutes')
    ..aOS(11, _omitFieldNames ? '' : 'LanguageCode', protoName: 'LanguageCode')
    ..aOB(12, _omitFieldNames ? '' : 'IsSiteStandAlone', protoName: 'IsSiteStandAlone')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  SiteBookingContext clone() => SiteBookingContext()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  SiteBookingContext copyWith(void Function(SiteBookingContext) updates) => super.copyWith((message) => updates(message as SiteBookingContext)) as SiteBookingContext;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $core.String get siteID => $_getSZ(0);
  @$pb.TagNumber(1)
  set siteID($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasSiteID() => $_has(0);
  @$pb.TagNumber(1)
  void clearSiteID() => $_clearField(1);

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

  /// Name of the Site
  @$pb.TagNumber(3)
  $core.String get name => $_getSZ(2);
  @$pb.TagNumber(3)
  set name($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasName() => $_has(2);
  @$pb.TagNumber(3)
  void clearName() => $_clearField(3);

  @$pb.TagNumber(4)
  $1.Address get address => $_getN(3);
  @$pb.TagNumber(4)
  set address($1.Address value) => $_setField(4, value);
  @$pb.TagNumber(4)
  $core.bool hasAddress() => $_has(3);
  @$pb.TagNumber(4)
  void clearAddress() => $_clearField(4);
  @$pb.TagNumber(4)
  $1.Address ensureAddress() => $_ensure(3);

  @$pb.TagNumber(5)
  $pb.PbList<$core.String> get phones => $_getList(4);

  @$pb.TagNumber(6)
  $core.String get fax => $_getSZ(5);
  @$pb.TagNumber(6)
  set fax($core.String value) => $_setString(5, value);
  @$pb.TagNumber(6)
  $core.bool hasFax() => $_has(5);
  @$pb.TagNumber(6)
  void clearFax() => $_clearField(6);

  @$pb.TagNumber(7)
  $pb.PbList<$core.String> get emails => $_getList(6);

  @$pb.TagNumber(8)
  $core.String get photoURI => $_getSZ(7);
  @$pb.TagNumber(8)
  set photoURI($core.String value) => $_setString(7, value);
  @$pb.TagNumber(8)
  $core.bool hasPhotoURI() => $_has(7);
  @$pb.TagNumber(8)
  void clearPhotoURI() => $_clearField(8);

  @$pb.TagNumber(9)
  $core.String get prefixAppointmentID => $_getSZ(8);
  @$pb.TagNumber(9)
  set prefixAppointmentID($core.String value) => $_setString(8, value);
  @$pb.TagNumber(9)
  $core.bool hasPrefixAppointmentID() => $_has(8);
  @$pb.TagNumber(9)
  void clearPrefixAppointmentID() => $_clearField(9);

  @$pb.TagNumber(10)
  $core.int get roundedPeriodInMinutes => $_getIZ(9);
  @$pb.TagNumber(10)
  set roundedPeriodInMinutes($core.int value) => $_setUnsignedInt32(9, value);
  @$pb.TagNumber(10)
  $core.bool hasRoundedPeriodInMinutes() => $_has(9);
  @$pb.TagNumber(10)
  void clearRoundedPeriodInMinutes() => $_clearField(10);

  @$pb.TagNumber(11)
  $core.String get languageCode => $_getSZ(10);
  @$pb.TagNumber(11)
  set languageCode($core.String value) => $_setString(10, value);
  @$pb.TagNumber(11)
  $core.bool hasLanguageCode() => $_has(10);
  @$pb.TagNumber(11)
  void clearLanguageCode() => $_clearField(11);

  @$pb.TagNumber(12)
  $core.bool get isSiteStandAlone => $_getBF(11);
  @$pb.TagNumber(12)
  set isSiteStandAlone($core.bool value) => $_setBool(11, value);
  @$pb.TagNumber(12)
  $core.bool hasIsSiteStandAlone() => $_has(11);
  @$pb.TagNumber(12)
  void clearIsSiteStandAlone() => $_clearField(12);
}

class SiteProjectBookingContext extends $pb.GeneratedMessage {
  factory SiteProjectBookingContext({
    $core.String? projectID,
    $core.Iterable<SiteProjectAptTypeBookingContext>? byAppointmentTypes,
    $core.String? projectName,
  }) {
    final result = create();
    if (projectID != null) result.projectID = projectID;
    if (byAppointmentTypes != null) result.byAppointmentTypes.addAll(byAppointmentTypes);
    if (projectName != null) result.projectName = projectName;
    return result;
  }

  SiteProjectBookingContext._();

  factory SiteProjectBookingContext.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory SiteProjectBookingContext.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'SiteProjectBookingContext', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'ProjectID', protoName: 'ProjectID')
    ..pc<SiteProjectAptTypeBookingContext>(2, _omitFieldNames ? '' : 'ByAppointmentTypes', $pb.PbFieldType.PM, protoName: 'ByAppointmentTypes', subBuilder: SiteProjectAptTypeBookingContext.create)
    ..aOS(3, _omitFieldNames ? '' : 'ProjectName', protoName: 'ProjectName')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  SiteProjectBookingContext clone() => SiteProjectBookingContext()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  SiteProjectBookingContext copyWith(void Function(SiteProjectBookingContext) updates) => super.copyWith((message) => updates(message as SiteProjectBookingContext)) as SiteProjectBookingContext;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $core.String get projectID => $_getSZ(0);
  @$pb.TagNumber(1)
  set projectID($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasProjectID() => $_has(0);
  @$pb.TagNumber(1)
  void clearProjectID() => $_clearField(1);

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

  @$pb.TagNumber(3)
  $core.String get projectName => $_getSZ(2);
  @$pb.TagNumber(3)
  set projectName($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasProjectName() => $_has(2);
  @$pb.TagNumber(3)
  void clearProjectName() => $_clearField(3);
}

class SiteProjectAptTypeBookingContext extends $pb.GeneratedMessage {
  factory SiteProjectAptTypeBookingContext({
    $3.AppointmentType? appointmentType,
    $core.Iterable<SiteProjectAptTypeBookingActorsContext>? actors,
  }) {
    final result = create();
    if (appointmentType != null) result.appointmentType = appointmentType;
    if (actors != null) result.actors.addAll(actors);
    return result;
  }

  SiteProjectAptTypeBookingContext._();

  factory SiteProjectAptTypeBookingContext.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory SiteProjectAptTypeBookingContext.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'SiteProjectAptTypeBookingContext', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..e<$3.AppointmentType>(1, _omitFieldNames ? '' : 'AppointmentType', $pb.PbFieldType.OE, protoName: 'AppointmentType', defaultOrMaker: $3.AppointmentType.APPOINTMENT_TYPE_UNKNOWN, valueOf: $3.AppointmentType.valueOf, enumValues: $3.AppointmentType.values)
    ..pc<SiteProjectAptTypeBookingActorsContext>(2, _omitFieldNames ? '' : 'Actors', $pb.PbFieldType.PM, protoName: 'Actors', subBuilder: SiteProjectAptTypeBookingActorsContext.create)
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  SiteProjectAptTypeBookingContext clone() => SiteProjectAptTypeBookingContext()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  SiteProjectAptTypeBookingContext copyWith(void Function(SiteProjectAptTypeBookingContext) updates) => super.copyWith((message) => updates(message as SiteProjectAptTypeBookingContext)) as SiteProjectAptTypeBookingContext;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.AppointmentType get appointmentType => $_getN(0);
  @$pb.TagNumber(1)
  set appointmentType($3.AppointmentType value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasAppointmentType() => $_has(0);
  @$pb.TagNumber(1)
  void clearAppointmentType() => $_clearField(1);

  @$pb.TagNumber(2)
  $pb.PbList<SiteProjectAptTypeBookingActorsContext> get actors => $_getList(1);
}

class SiteProjectAptTypeBookingActorsContext extends $pb.GeneratedMessage {
  factory SiteProjectAptTypeBookingActorsContext({
    $2.CommandIdentifierEntry? commandIdentifierEntry,
    $core.String? actorID,
    $core.String? actorName,
  }) {
    final result = create();
    if (commandIdentifierEntry != null) result.commandIdentifierEntry = commandIdentifierEntry;
    if (actorID != null) result.actorID = actorID;
    if (actorName != null) result.actorName = actorName;
    return result;
  }

  SiteProjectAptTypeBookingActorsContext._();

  factory SiteProjectAptTypeBookingActorsContext.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory SiteProjectAptTypeBookingActorsContext.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'SiteProjectAptTypeBookingActorsContext', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..e<$2.CommandIdentifierEntry>(1, _omitFieldNames ? '' : 'CommandIdentifierEntry', $pb.PbFieldType.OE, protoName: 'CommandIdentifierEntry', defaultOrMaker: $2.CommandIdentifierEntry.CommandIdentifierEntry_MandatoryExceptForAllowedUsers, valueOf: $2.CommandIdentifierEntry.valueOf, enumValues: $2.CommandIdentifierEntry.values)
    ..aOS(2, _omitFieldNames ? '' : 'ActorID', protoName: 'ActorID')
    ..aOS(3, _omitFieldNames ? '' : 'ActorName', protoName: 'ActorName')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  SiteProjectAptTypeBookingActorsContext clone() => SiteProjectAptTypeBookingActorsContext()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  SiteProjectAptTypeBookingActorsContext copyWith(void Function(SiteProjectAptTypeBookingActorsContext) updates) => super.copyWith((message) => updates(message as SiteProjectAptTypeBookingActorsContext)) as SiteProjectAptTypeBookingActorsContext;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $2.CommandIdentifierEntry get commandIdentifierEntry => $_getN(0);
  @$pb.TagNumber(1)
  set commandIdentifierEntry($2.CommandIdentifierEntry value) => $_setField(1, value);
  @$pb.TagNumber(1)
  $core.bool hasCommandIdentifierEntry() => $_has(0);
  @$pb.TagNumber(1)
  void clearCommandIdentifierEntry() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get actorID => $_getSZ(1);
  @$pb.TagNumber(2)
  set actorID($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasActorID() => $_has(1);
  @$pb.TagNumber(2)
  void clearActorID() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.String get actorName => $_getSZ(2);
  @$pb.TagNumber(3)
  set actorName($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasActorName() => $_has(2);
  @$pb.TagNumber(3)
  void clearActorName() => $_clearField(3);
}

/// User should only set either (ActorID & ProjectID) OR SiteID alone.
/// Validation: exactly one of the two options must be provided:
///   - Option 1: both ProjectID and ActorID must be set (non-empty)
///   - Option 2: SiteID must be set (non-empty)
/// If both options are provided, SiteID will be used preferentially.
class InitBookerProfileRequest extends $pb.GeneratedMessage {
  factory InitBookerProfileRequest({
    $core.String? projectID,
    $core.String? actorID,
    $core.String? siteID,
  }) {
    final result = create();
    if (projectID != null) result.projectID = projectID;
    if (actorID != null) result.actorID = actorID;
    if (siteID != null) result.siteID = siteID;
    return result;
  }

  InitBookerProfileRequest._();

  factory InitBookerProfileRequest.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory InitBookerProfileRequest.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'InitBookerProfileRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'ProjectID', protoName: 'ProjectID')
    ..aOS(2, _omitFieldNames ? '' : 'ActorID', protoName: 'ActorID')
    ..aOS(3, _omitFieldNames ? '' : 'SiteID', protoName: 'SiteID')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  InitBookerProfileRequest clone() => InitBookerProfileRequest()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  InitBookerProfileRequest copyWith(void Function(InitBookerProfileRequest) updates) => super.copyWith((message) => updates(message as InitBookerProfileRequest)) as InitBookerProfileRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $core.String get projectID => $_getSZ(0);
  @$pb.TagNumber(1)
  set projectID($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasProjectID() => $_has(0);
  @$pb.TagNumber(1)
  void clearProjectID() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get actorID => $_getSZ(1);
  @$pb.TagNumber(2)
  set actorID($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasActorID() => $_has(1);
  @$pb.TagNumber(2)
  void clearActorID() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.String get siteID => $_getSZ(2);
  @$pb.TagNumber(3)
  set siteID($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasSiteID() => $_has(2);
  @$pb.TagNumber(3)
  void clearSiteID() => $_clearField(3);
}

class InitBookerProfileResponse extends $pb.GeneratedMessage {
  factory InitBookerProfileResponse({
    $core.String? organisationID,
    $core.String? siteID,
  }) {
    final result = create();
    if (organisationID != null) result.organisationID = organisationID;
    if (siteID != null) result.siteID = siteID;
    return result;
  }

  InitBookerProfileResponse._();

  factory InitBookerProfileResponse.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory InitBookerProfileResponse.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'InitBookerProfileResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'OrganisationID', protoName: 'OrganisationID')
    ..aOS(2, _omitFieldNames ? '' : 'SiteID', protoName: 'SiteID')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  InitBookerProfileResponse clone() => InitBookerProfileResponse()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  InitBookerProfileResponse copyWith(void Function(InitBookerProfileResponse) updates) => super.copyWith((message) => updates(message as InitBookerProfileResponse)) as InitBookerProfileResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $core.String get organisationID => $_getSZ(0);
  @$pb.TagNumber(1)
  set organisationID($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasOrganisationID() => $_has(0);
  @$pb.TagNumber(1)
  void clearOrganisationID() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get siteID => $_getSZ(1);
  @$pb.TagNumber(2)
  set siteID($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasSiteID() => $_has(1);
  @$pb.TagNumber(2)
  void clearSiteID() => $_clearField(2);
}


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