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

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

import 'dart:core' as $core;

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

import 'restrictions.pbenum.dart';
import 'rules.pb.dart' as $53;
import 'shared.pb.dart' as $3;
import 'shared.pbenum.dart' as $3;

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

export 'restrictions.pbenum.dart';

class Restriction extends $pb.GeneratedMessage {
  factory Restriction({
    $core.String? iD,
    $core.String? projectID,
    RestrictionType? targetType,
    $core.String? name,
    $core.String? description,
    $core.bool? status,
    $core.Iterable<$53.Rule>? rules,
    $core.String? updatedAt,
    $core.String? createdAt,
  }) {
    final $result = create();
    if (iD != null) {
      $result.iD = iD;
    }
    if (projectID != null) {
      $result.projectID = projectID;
    }
    if (targetType != null) {
      $result.targetType = targetType;
    }
    if (name != null) {
      $result.name = name;
    }
    if (description != null) {
      $result.description = description;
    }
    if (status != null) {
      $result.status = status;
    }
    if (rules != null) {
      $result.rules.addAll(rules);
    }
    if (updatedAt != null) {
      $result.updatedAt = updatedAt;
    }
    if (createdAt != null) {
      $result.createdAt = createdAt;
    }
    return $result;
  }
  Restriction._() : super();
  factory Restriction.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory Restriction.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'Restriction', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'ID', protoName: 'ID')
    ..aOS(2, _omitFieldNames ? '' : 'ProjectID', protoName: 'ProjectID')
    ..e<RestrictionType>(3, _omitFieldNames ? '' : 'TargetType', $pb.PbFieldType.OE, protoName: 'TargetType', defaultOrMaker: RestrictionType.RESTRICTION_TYPE_UNKNOWN, valueOf: RestrictionType.valueOf, enumValues: RestrictionType.values)
    ..aOS(4, _omitFieldNames ? '' : 'Name', protoName: 'Name')
    ..aOS(5, _omitFieldNames ? '' : 'Description', protoName: 'Description')
    ..aOB(6, _omitFieldNames ? '' : 'Status', protoName: 'Status')
    ..pc<$53.Rule>(7, _omitFieldNames ? '' : 'Rules', $pb.PbFieldType.PM, protoName: 'Rules', subBuilder: $53.Rule.create)
    ..aOS(8, _omitFieldNames ? '' : 'UpdatedAt', protoName: 'UpdatedAt')
    ..aOS(9, _omitFieldNames ? '' : 'CreatedAt', protoName: 'CreatedAt')
    ..hasRequiredFields = false
  ;

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

  $pb.BuilderInfo get info_ => _i;

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

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

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

  @$pb.TagNumber(3)
  RestrictionType get targetType => $_getN(2);
  @$pb.TagNumber(3)
  set targetType(RestrictionType v) { $_setField(3, v); }
  @$pb.TagNumber(3)
  $core.bool hasTargetType() => $_has(2);
  @$pb.TagNumber(3)
  void clearTargetType() => $_clearField(3);

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

  @$pb.TagNumber(5)
  $core.String get description => $_getSZ(4);
  @$pb.TagNumber(5)
  set description($core.String v) { $_setString(4, v); }
  @$pb.TagNumber(5)
  $core.bool hasDescription() => $_has(4);
  @$pb.TagNumber(5)
  void clearDescription() => $_clearField(5);

  @$pb.TagNumber(6)
  $core.bool get status => $_getBF(5);
  @$pb.TagNumber(6)
  set status($core.bool v) { $_setBool(5, v); }
  @$pb.TagNumber(6)
  $core.bool hasStatus() => $_has(5);
  @$pb.TagNumber(6)
  void clearStatus() => $_clearField(6);

  @$pb.TagNumber(7)
  $pb.PbList<$53.Rule> get rules => $_getList(6);

  @$pb.TagNumber(8)
  $core.String get updatedAt => $_getSZ(7);
  @$pb.TagNumber(8)
  set updatedAt($core.String v) { $_setString(7, v); }
  @$pb.TagNumber(8)
  $core.bool hasUpdatedAt() => $_has(7);
  @$pb.TagNumber(8)
  void clearUpdatedAt() => $_clearField(8);

  @$pb.TagNumber(9)
  $core.String get createdAt => $_getSZ(8);
  @$pb.TagNumber(9)
  set createdAt($core.String v) { $_setString(8, v); }
  @$pb.TagNumber(9)
  $core.bool hasCreatedAt() => $_has(8);
  @$pb.TagNumber(9)
  void clearCreatedAt() => $_clearField(9);
}

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

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'RuleComputeResult', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..e<RuleComputeFormat>(1, _omitFieldNames ? '' : 'Format', $pb.PbFieldType.OE, protoName: 'Format', defaultOrMaker: RuleComputeFormat.RULE_COMPUTE_FORMAT_UNKNOWN, valueOf: RuleComputeFormat.valueOf, enumValues: RuleComputeFormat.values)
    ..aOS(2, _omitFieldNames ? '' : 'Value', protoName: 'Value')
    ..hasRequiredFields = false
  ;

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  RuleComputeFormat get format => $_getN(0);
  @$pb.TagNumber(1)
  set format(RuleComputeFormat v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasFormat() => $_has(0);
  @$pb.TagNumber(1)
  void clearFormat() => $_clearField(1);

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

class RestrictionRule extends $pb.GeneratedMessage {
  factory RestrictionRule({
    $core.String? name,
    $3.EntityType? entity,
    $core.String? description,
    $core.String? definition,
  }) {
    final $result = create();
    if (name != null) {
      $result.name = name;
    }
    if (entity != null) {
      $result.entity = entity;
    }
    if (description != null) {
      $result.description = description;
    }
    if (definition != null) {
      $result.definition = definition;
    }
    return $result;
  }
  RestrictionRule._() : super();
  factory RestrictionRule.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory RestrictionRule.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'RestrictionRule', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'Name', protoName: 'Name')
    ..e<$3.EntityType>(2, _omitFieldNames ? '' : 'Entity', $pb.PbFieldType.OE, protoName: 'Entity', defaultOrMaker: $3.EntityType.ENTITY_TYPE_UNKNOWN, valueOf: $3.EntityType.valueOf, enumValues: $3.EntityType.values)
    ..aOS(3, _omitFieldNames ? '' : 'Description', protoName: 'Description')
    ..aOS(4, _omitFieldNames ? '' : 'Definition', protoName: 'Definition')
    ..hasRequiredFields = false
  ;

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

  $pb.BuilderInfo get info_ => _i;

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

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

  @$pb.TagNumber(2)
  $3.EntityType get entity => $_getN(1);
  @$pb.TagNumber(2)
  set entity($3.EntityType v) { $_setField(2, v); }
  @$pb.TagNumber(2)
  $core.bool hasEntity() => $_has(1);
  @$pb.TagNumber(2)
  void clearEntity() => $_clearField(2);

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

  @$pb.TagNumber(4)
  $core.String get definition => $_getSZ(3);
  @$pb.TagNumber(4)
  set definition($core.String v) { $_setString(3, v); }
  @$pb.TagNumber(4)
  $core.bool hasDefinition() => $_has(3);
  @$pb.TagNumber(4)
  void clearDefinition() => $_clearField(4);
}

/// Create
class CreateRestrictionRequest extends $pb.GeneratedMessage {
  factory CreateRestrictionRequest({
    $3.RequestProjectHeader? header,
    RestrictionType? targetType,
    $core.String? name,
    $core.String? description,
    $core.Iterable<RestrictionRule>? rules,
  }) {
    final $result = create();
    if (header != null) {
      $result.header = header;
    }
    if (targetType != null) {
      $result.targetType = targetType;
    }
    if (name != null) {
      $result.name = name;
    }
    if (description != null) {
      $result.description = description;
    }
    if (rules != null) {
      $result.rules.addAll(rules);
    }
    return $result;
  }
  CreateRestrictionRequest._() : super();
  factory CreateRestrictionRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory CreateRestrictionRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'CreateRestrictionRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..e<RestrictionType>(2, _omitFieldNames ? '' : 'TargetType', $pb.PbFieldType.OE, protoName: 'TargetType', defaultOrMaker: RestrictionType.RESTRICTION_TYPE_UNKNOWN, valueOf: RestrictionType.valueOf, enumValues: RestrictionType.values)
    ..aOS(3, _omitFieldNames ? '' : 'Name', protoName: 'Name')
    ..aOS(4, _omitFieldNames ? '' : 'Description', protoName: 'Description')
    ..pc<RestrictionRule>(5, _omitFieldNames ? '' : 'Rules', $pb.PbFieldType.PM, protoName: 'Rules', subBuilder: RestrictionRule.create)
    ..hasRequiredFields = false
  ;

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader v) { $_setField(1, v); }
  @$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)
  RestrictionType get targetType => $_getN(1);
  @$pb.TagNumber(2)
  set targetType(RestrictionType v) { $_setField(2, v); }
  @$pb.TagNumber(2)
  $core.bool hasTargetType() => $_has(1);
  @$pb.TagNumber(2)
  void clearTargetType() => $_clearField(2);

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

  @$pb.TagNumber(4)
  $core.String get description => $_getSZ(3);
  @$pb.TagNumber(4)
  set description($core.String v) { $_setString(3, v); }
  @$pb.TagNumber(4)
  $core.bool hasDescription() => $_has(3);
  @$pb.TagNumber(4)
  void clearDescription() => $_clearField(4);

  @$pb.TagNumber(5)
  $pb.PbList<RestrictionRule> get rules => $_getList(4);
}

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

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

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  Restriction get restriction => $_getN(0);
  @$pb.TagNumber(1)
  set restriction(Restriction v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasRestriction() => $_has(0);
  @$pb.TagNumber(1)
  void clearRestriction() => $_clearField(1);
  @$pb.TagNumber(1)
  Restriction ensureRestriction() => $_ensure(0);
}

/// Update
class UpdateRestrictionRequest extends $pb.GeneratedMessage {
  factory UpdateRestrictionRequest({
    $3.RequestProjectHeader? header,
    $core.String? restrictionID,
    $core.String? name,
    $core.String? description,
    $core.Iterable<RestrictionRule>? rules,
  }) {
    final $result = create();
    if (header != null) {
      $result.header = header;
    }
    if (restrictionID != null) {
      $result.restrictionID = restrictionID;
    }
    if (name != null) {
      $result.name = name;
    }
    if (description != null) {
      $result.description = description;
    }
    if (rules != null) {
      $result.rules.addAll(rules);
    }
    return $result;
  }
  UpdateRestrictionRequest._() : super();
  factory UpdateRestrictionRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory UpdateRestrictionRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'UpdateRestrictionRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..aOS(2, _omitFieldNames ? '' : 'RestrictionID', protoName: 'RestrictionID')
    ..aOS(3, _omitFieldNames ? '' : 'Name', protoName: 'Name')
    ..aOS(4, _omitFieldNames ? '' : 'Description', protoName: 'Description')
    ..pc<RestrictionRule>(5, _omitFieldNames ? '' : 'Rules', $pb.PbFieldType.PM, protoName: 'Rules', subBuilder: RestrictionRule.create)
    ..hasRequiredFields = false
  ;

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader v) { $_setField(1, v); }
  @$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 restrictionID => $_getSZ(1);
  @$pb.TagNumber(2)
  set restrictionID($core.String v) { $_setString(1, v); }
  @$pb.TagNumber(2)
  $core.bool hasRestrictionID() => $_has(1);
  @$pb.TagNumber(2)
  void clearRestrictionID() => $_clearField(2);

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

  @$pb.TagNumber(4)
  $core.String get description => $_getSZ(3);
  @$pb.TagNumber(4)
  set description($core.String v) { $_setString(3, v); }
  @$pb.TagNumber(4)
  $core.bool hasDescription() => $_has(3);
  @$pb.TagNumber(4)
  void clearDescription() => $_clearField(4);

  @$pb.TagNumber(5)
  $pb.PbList<RestrictionRule> get rules => $_getList(4);
}

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

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

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  Restriction get restriction => $_getN(0);
  @$pb.TagNumber(1)
  set restriction(Restriction v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasRestriction() => $_has(0);
  @$pb.TagNumber(1)
  void clearRestriction() => $_clearField(1);
  @$pb.TagNumber(1)
  Restriction ensureRestriction() => $_ensure(0);
}

/// Get
class GetRestrictionRequest extends $pb.GeneratedMessage {
  factory GetRestrictionRequest({
    $3.RequestProjectHeader? header,
    $core.String? restrictionID,
  }) {
    final $result = create();
    if (header != null) {
      $result.header = header;
    }
    if (restrictionID != null) {
      $result.restrictionID = restrictionID;
    }
    return $result;
  }
  GetRestrictionRequest._() : super();
  factory GetRestrictionRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory GetRestrictionRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

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

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader v) { $_setField(1, v); }
  @$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 restrictionID => $_getSZ(1);
  @$pb.TagNumber(2)
  set restrictionID($core.String v) { $_setString(1, v); }
  @$pb.TagNumber(2)
  $core.bool hasRestrictionID() => $_has(1);
  @$pb.TagNumber(2)
  void clearRestrictionID() => $_clearField(2);
}

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

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

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  Restriction get restriction => $_getN(0);
  @$pb.TagNumber(1)
  set restriction(Restriction v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasRestriction() => $_has(0);
  @$pb.TagNumber(1)
  void clearRestriction() => $_clearField(1);
  @$pb.TagNumber(1)
  Restriction ensureRestriction() => $_ensure(0);
}

/// List
class ListRestrictionsRequest extends $pb.GeneratedMessage {
  factory ListRestrictionsRequest({
    $3.RequestProjectHeader? header,
    RestrictionType? targetType,
  }) {
    final $result = create();
    if (header != null) {
      $result.header = header;
    }
    if (targetType != null) {
      $result.targetType = targetType;
    }
    return $result;
  }
  ListRestrictionsRequest._() : super();
  factory ListRestrictionsRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory ListRestrictionsRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ListRestrictionsRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..e<RestrictionType>(2, _omitFieldNames ? '' : 'TargetType', $pb.PbFieldType.OE, protoName: 'TargetType', defaultOrMaker: RestrictionType.RESTRICTION_TYPE_UNKNOWN, valueOf: RestrictionType.valueOf, enumValues: RestrictionType.values)
    ..hasRequiredFields = false
  ;

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader v) { $_setField(1, v); }
  @$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)
  RestrictionType get targetType => $_getN(1);
  @$pb.TagNumber(2)
  set targetType(RestrictionType v) { $_setField(2, v); }
  @$pb.TagNumber(2)
  $core.bool hasTargetType() => $_has(1);
  @$pb.TagNumber(2)
  void clearTargetType() => $_clearField(2);
}

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

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

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

  $pb.BuilderInfo get info_ => _i;

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

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

/// Delete
class DeleteRestrictionRequest extends $pb.GeneratedMessage {
  factory DeleteRestrictionRequest({
    $3.RequestProjectHeader? header,
    $core.String? restrictionID,
  }) {
    final $result = create();
    if (header != null) {
      $result.header = header;
    }
    if (restrictionID != null) {
      $result.restrictionID = restrictionID;
    }
    return $result;
  }
  DeleteRestrictionRequest._() : super();
  factory DeleteRestrictionRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory DeleteRestrictionRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

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

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader v) { $_setField(1, v); }
  @$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 restrictionID => $_getSZ(1);
  @$pb.TagNumber(2)
  set restrictionID($core.String v) { $_setString(1, v); }
  @$pb.TagNumber(2)
  $core.bool hasRestrictionID() => $_has(1);
  @$pb.TagNumber(2)
  void clearRestrictionID() => $_clearField(2);
}

class DeleteRestrictionResponse extends $pb.GeneratedMessage {
  factory DeleteRestrictionResponse() => create();
  DeleteRestrictionResponse._() : super();
  factory DeleteRestrictionResponse.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory DeleteRestrictionResponse.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

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

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

  $pb.BuilderInfo get info_ => _i;

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

/// Enable
class EnableRestrictionRequest extends $pb.GeneratedMessage {
  factory EnableRestrictionRequest({
    $3.RequestProjectHeader? header,
    $core.String? restrictionID,
  }) {
    final $result = create();
    if (header != null) {
      $result.header = header;
    }
    if (restrictionID != null) {
      $result.restrictionID = restrictionID;
    }
    return $result;
  }
  EnableRestrictionRequest._() : super();
  factory EnableRestrictionRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory EnableRestrictionRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

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

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader v) { $_setField(1, v); }
  @$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 restrictionID => $_getSZ(1);
  @$pb.TagNumber(2)
  set restrictionID($core.String v) { $_setString(1, v); }
  @$pb.TagNumber(2)
  $core.bool hasRestrictionID() => $_has(1);
  @$pb.TagNumber(2)
  void clearRestrictionID() => $_clearField(2);
}

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

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

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  Restriction get restriction => $_getN(0);
  @$pb.TagNumber(1)
  set restriction(Restriction v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasRestriction() => $_has(0);
  @$pb.TagNumber(1)
  void clearRestriction() => $_clearField(1);
  @$pb.TagNumber(1)
  Restriction ensureRestriction() => $_ensure(0);
}

/// Disable
class DisableRestrictionRequest extends $pb.GeneratedMessage {
  factory DisableRestrictionRequest({
    $3.RequestProjectHeader? header,
    $core.String? restrictionID,
  }) {
    final $result = create();
    if (header != null) {
      $result.header = header;
    }
    if (restrictionID != null) {
      $result.restrictionID = restrictionID;
    }
    return $result;
  }
  DisableRestrictionRequest._() : super();
  factory DisableRestrictionRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory DisableRestrictionRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

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

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader v) { $_setField(1, v); }
  @$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 restrictionID => $_getSZ(1);
  @$pb.TagNumber(2)
  set restrictionID($core.String v) { $_setString(1, v); }
  @$pb.TagNumber(2)
  $core.bool hasRestrictionID() => $_has(1);
  @$pb.TagNumber(2)
  void clearRestrictionID() => $_clearField(2);
}

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

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

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  Restriction get restriction => $_getN(0);
  @$pb.TagNumber(1)
  set restriction(Restriction v) { $_setField(1, v); }
  @$pb.TagNumber(1)
  $core.bool hasRestriction() => $_has(0);
  @$pb.TagNumber(1)
  void clearRestriction() => $_clearField(1);
  @$pb.TagNumber(1)
  Restriction ensureRestriction() => $_ensure(0);
}

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

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

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

  $pb.BuilderInfo get info_ => _i;

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

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

class DeleteForProjectRestrictionResponse extends $pb.GeneratedMessage {
  factory DeleteForProjectRestrictionResponse() => create();
  DeleteForProjectRestrictionResponse._() : super();
  factory DeleteForProjectRestrictionResponse.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory DeleteForProjectRestrictionResponse.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

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

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

  $pb.BuilderInfo get info_ => _i;

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

/// GetRulesJSONTree
class GetRulesJSONTreeRequest extends $pb.GeneratedMessage {
  factory GetRulesJSONTreeRequest({
    $3.RequestProjectHeader? header,
    $core.String? restrictionID,
  }) {
    final $result = create();
    if (header != null) {
      $result.header = header;
    }
    if (restrictionID != null) {
      $result.restrictionID = restrictionID;
    }
    return $result;
  }
  GetRulesJSONTreeRequest._() : super();
  factory GetRulesJSONTreeRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory GetRulesJSONTreeRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

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

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader v) { $_setField(1, v); }
  @$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 restrictionID => $_getSZ(1);
  @$pb.TagNumber(2)
  set restrictionID($core.String v) { $_setString(1, v); }
  @$pb.TagNumber(2)
  $core.bool hasRestrictionID() => $_has(1);
  @$pb.TagNumber(2)
  void clearRestrictionID() => $_clearField(2);
}

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

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

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

  $pb.BuilderInfo get info_ => _i;

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

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

/// GetRulesJSONTree
class GetRuleJSONTreeRequest extends $pb.GeneratedMessage {
  factory GetRuleJSONTreeRequest({
    $3.RequestProjectHeader? header,
    $core.String? restrictionID,
    $core.String? name,
    $3.EntityType? entity,
  }) {
    final $result = create();
    if (header != null) {
      $result.header = header;
    }
    if (restrictionID != null) {
      $result.restrictionID = restrictionID;
    }
    if (name != null) {
      $result.name = name;
    }
    if (entity != null) {
      $result.entity = entity;
    }
    return $result;
  }
  GetRuleJSONTreeRequest._() : super();
  factory GetRuleJSONTreeRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory GetRuleJSONTreeRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'GetRuleJSONTreeRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..aOS(2, _omitFieldNames ? '' : 'RestrictionID', protoName: 'RestrictionID')
    ..aOS(3, _omitFieldNames ? '' : 'Name', protoName: 'Name')
    ..e<$3.EntityType>(4, _omitFieldNames ? '' : 'Entity', $pb.PbFieldType.OE, protoName: 'Entity', defaultOrMaker: $3.EntityType.ENTITY_TYPE_UNKNOWN, valueOf: $3.EntityType.valueOf, enumValues: $3.EntityType.values)
    ..hasRequiredFields = false
  ;

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader v) { $_setField(1, v); }
  @$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 restrictionID => $_getSZ(1);
  @$pb.TagNumber(2)
  set restrictionID($core.String v) { $_setString(1, v); }
  @$pb.TagNumber(2)
  $core.bool hasRestrictionID() => $_has(1);
  @$pb.TagNumber(2)
  void clearRestrictionID() => $_clearField(2);

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

  @$pb.TagNumber(4)
  $3.EntityType get entity => $_getN(3);
  @$pb.TagNumber(4)
  set entity($3.EntityType v) { $_setField(4, v); }
  @$pb.TagNumber(4)
  $core.bool hasEntity() => $_has(3);
  @$pb.TagNumber(4)
  void clearEntity() => $_clearField(4);
}

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

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

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

  $pb.BuilderInfo get info_ => _i;

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

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

/// Compute
class ComputeRuleRequest extends $pb.GeneratedMessage {
  factory ComputeRuleRequest({
    $3.RequestProjectHeader? header,
    $3.EntityType? entity,
    $core.String? userID,
    $core.Iterable<RuleComputeFormat>? outputFormats,
  }) {
    final $result = create();
    if (header != null) {
      $result.header = header;
    }
    if (entity != null) {
      $result.entity = entity;
    }
    if (userID != null) {
      $result.userID = userID;
    }
    if (outputFormats != null) {
      $result.outputFormats.addAll(outputFormats);
    }
    return $result;
  }
  ComputeRuleRequest._() : super();
  factory ComputeRuleRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory ComputeRuleRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ComputeRuleRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'api'), createEmptyInstance: create)
    ..aOM<$3.RequestProjectHeader>(1, _omitFieldNames ? '' : 'Header', protoName: 'Header', subBuilder: $3.RequestProjectHeader.create)
    ..e<$3.EntityType>(2, _omitFieldNames ? '' : 'Entity', $pb.PbFieldType.OE, protoName: 'Entity', defaultOrMaker: $3.EntityType.ENTITY_TYPE_UNKNOWN, valueOf: $3.EntityType.valueOf, enumValues: $3.EntityType.values)
    ..aOS(3, _omitFieldNames ? '' : 'UserID', protoName: 'UserID')
    ..pc<RuleComputeFormat>(4, _omitFieldNames ? '' : 'OutputFormats', $pb.PbFieldType.KE, protoName: 'OutputFormats', valueOf: RuleComputeFormat.valueOf, enumValues: RuleComputeFormat.values, defaultEnumValue: RuleComputeFormat.RULE_COMPUTE_FORMAT_UNKNOWN)
    ..hasRequiredFields = false
  ;

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader v) { $_setField(1, v); }
  @$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.EntityType get entity => $_getN(1);
  @$pb.TagNumber(2)
  set entity($3.EntityType v) { $_setField(2, v); }
  @$pb.TagNumber(2)
  $core.bool hasEntity() => $_has(1);
  @$pb.TagNumber(2)
  void clearEntity() => $_clearField(2);

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

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

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

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

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

  $pb.BuilderInfo get info_ => _i;

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

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

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

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

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

  $pb.BuilderInfo get info_ => _i;

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

  @$pb.TagNumber(1)
  $3.RequestProjectHeader get header => $_getN(0);
  @$pb.TagNumber(1)
  set header($3.RequestProjectHeader v) { $_setField(1, v); }
  @$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)
  RestrictionRule get rule => $_getN(1);
  @$pb.TagNumber(2)
  set rule(RestrictionRule v) { $_setField(2, v); }
  @$pb.TagNumber(2)
  $core.bool hasRule() => $_has(1);
  @$pb.TagNumber(2)
  void clearRule() => $_clearField(2);
  @$pb.TagNumber(2)
  RestrictionRule ensureRule() => $_ensure(1);
}

class ValidateRestrictionRuleResponse extends $pb.GeneratedMessage {
  factory ValidateRestrictionRuleResponse() => create();
  ValidateRestrictionRuleResponse._() : super();
  factory ValidateRestrictionRuleResponse.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
  factory ValidateRestrictionRuleResponse.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);

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

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

  $pb.BuilderInfo get info_ => _i;

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


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