// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: keyapis/vc/v1/keyapis_vc_camera_dictionary_v1.proto

package ru.keyapis.vc.v1;

public final class KeyapisVcV1Proto {
  private KeyapisVcV1Proto() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  public interface CategoryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.Category)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Идентификатор
     * </pre>
     *
     * <code>int32 id = 1;</code>
     * @return The id.
     */
    int getId();

    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @return The title.
     */
    java.lang.String getTitle();
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @return The bytes for title.
     */
    com.google.protobuf.ByteString
        getTitleBytes();

    /**
     * <pre>
     * Тип
     * </pre>
     *
     * <code>string kind = 3;</code>
     * @return The kind.
     */
    java.lang.String getKind();
    /**
     * <pre>
     * Тип
     * </pre>
     *
     * <code>string kind = 3;</code>
     * @return The bytes for kind.
     */
    com.google.protobuf.ByteString
        getKindBytes();
  }
  /**
   * <pre>
   * Категория
   * </pre>
   *
   * Protobuf type {@code keyapis.vc.v1.Category}
   */
  public  static final class Category extends
      com.google.protobuf.GeneratedMessageLite<
          Category, Category.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.vc.v1.Category)
      CategoryOrBuilder {
    private Category() {
      title_ = "";
      kind_ = "";
    }
    public static final int ID_FIELD_NUMBER = 1;
    private int id_;
    /**
     * <pre>
     * Идентификатор
     * </pre>
     *
     * <code>int32 id = 1;</code>
     * @return The id.
     */
    @java.lang.Override
    public int getId() {
      return id_;
    }
    /**
     * <pre>
     * Идентификатор
     * </pre>
     *
     * <code>int32 id = 1;</code>
     * @param value The id to set.
     */
    private void setId(int value) {
      
      id_ = value;
    }
    /**
     * <pre>
     * Идентификатор
     * </pre>
     *
     * <code>int32 id = 1;</code>
     */
    private void clearId() {

      id_ = 0;
    }

    public static final int TITLE_FIELD_NUMBER = 2;
    private java.lang.String title_;
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @return The title.
     */
    @java.lang.Override
    public java.lang.String getTitle() {
      return title_;
    }
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @return The bytes for title.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTitleBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(title_);
    }
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @param value The title to set.
     */
    private void setTitle(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      title_ = value;
    }
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     */
    private void clearTitle() {

      title_ = getDefaultInstance().getTitle();
    }
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @param value The bytes for title to set.
     */
    private void setTitleBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      title_ = value.toStringUtf8();

    }

    public static final int KIND_FIELD_NUMBER = 3;
    private java.lang.String kind_;
    /**
     * <pre>
     * Тип
     * </pre>
     *
     * <code>string kind = 3;</code>
     * @return The kind.
     */
    @java.lang.Override
    public java.lang.String getKind() {
      return kind_;
    }
    /**
     * <pre>
     * Тип
     * </pre>
     *
     * <code>string kind = 3;</code>
     * @return The bytes for kind.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getKindBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(kind_);
    }
    /**
     * <pre>
     * Тип
     * </pre>
     *
     * <code>string kind = 3;</code>
     * @param value The kind to set.
     */
    private void setKind(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      kind_ = value;
    }
    /**
     * <pre>
     * Тип
     * </pre>
     *
     * <code>string kind = 3;</code>
     */
    private void clearKind() {

      kind_ = getDefaultInstance().getKind();
    }
    /**
     * <pre>
     * Тип
     * </pre>
     *
     * <code>string kind = 3;</code>
     * @param value The bytes for kind to set.
     */
    private void setKindBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      kind_ = value.toStringUtf8();

    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Category parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Category parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Category parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Category parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Category parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Category parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Category parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Category parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Category parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Category parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Category parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Category parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.Category prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Категория
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.Category}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.Category, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.Category)
        ru.keyapis.vc.v1.KeyapisVcV1Proto.CategoryOrBuilder {
      // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Идентификатор
       * </pre>
       *
       * <code>int32 id = 1;</code>
       * @return The id.
       */
      @java.lang.Override
      public int getId() {
        return instance.getId();
      }
      /**
       * <pre>
       * Идентификатор
       * </pre>
       *
       * <code>int32 id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(int value) {
        copyOnWrite();
        instance.setId(value);
        return this;
      }
      /**
       * <pre>
       * Идентификатор
       * </pre>
       *
       * <code>int32 id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        copyOnWrite();
        instance.clearId();
        return this;
      }

      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @return The title.
       */
      @java.lang.Override
      public java.lang.String getTitle() {
        return instance.getTitle();
      }
      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @return The bytes for title.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getTitleBytes() {
        return instance.getTitleBytes();
      }
      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @param value The title to set.
       * @return This builder for chaining.
       */
      public Builder setTitle(
          java.lang.String value) {
        copyOnWrite();
        instance.setTitle(value);
        return this;
      }
      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTitle() {
        copyOnWrite();
        instance.clearTitle();
        return this;
      }
      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @param value The bytes for title to set.
       * @return This builder for chaining.
       */
      public Builder setTitleBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTitleBytes(value);
        return this;
      }

      /**
       * <pre>
       * Тип
       * </pre>
       *
       * <code>string kind = 3;</code>
       * @return The kind.
       */
      @java.lang.Override
      public java.lang.String getKind() {
        return instance.getKind();
      }
      /**
       * <pre>
       * Тип
       * </pre>
       *
       * <code>string kind = 3;</code>
       * @return The bytes for kind.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getKindBytes() {
        return instance.getKindBytes();
      }
      /**
       * <pre>
       * Тип
       * </pre>
       *
       * <code>string kind = 3;</code>
       * @param value The kind to set.
       * @return This builder for chaining.
       */
      public Builder setKind(
          java.lang.String value) {
        copyOnWrite();
        instance.setKind(value);
        return this;
      }
      /**
       * <pre>
       * Тип
       * </pre>
       *
       * <code>string kind = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearKind() {
        copyOnWrite();
        instance.clearKind();
        return this;
      }
      /**
       * <pre>
       * Тип
       * </pre>
       *
       * <code>string kind = 3;</code>
       * @param value The bytes for kind to set.
       * @return This builder for chaining.
       */
      public Builder setKindBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setKindBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.Category)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new ru.keyapis.vc.v1.KeyapisVcV1Proto.Category();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "id_",
              "title_",
              "kind_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u0004\u0002\u0208" +
                "\u0003\u0208";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.vc.v1.KeyapisVcV1Proto.Category> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.vc.v1.KeyapisVcV1Proto.Category>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:keyapis.vc.v1.Category)
    private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.Category DEFAULT_INSTANCE;
    static {
      Category defaultInstance = new Category();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Category.class, defaultInstance);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Category getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Category> PARSER;

    public static com.google.protobuf.Parser<Category> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface TariffOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.Tariff)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Идентификатор
     * </pre>
     *
     * <code>int32 id = 1;</code>
     * @return The id.
     */
    int getId();

    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @return The title.
     */
    java.lang.String getTitle();
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @return The bytes for title.
     */
    com.google.protobuf.ByteString
        getTitleBytes();

    /**
     * <pre>
     * Параметр slug
     * </pre>
     *
     * <code>string slug = 3;</code>
     * @return The slug.
     */
    java.lang.String getSlug();
    /**
     * <pre>
     * Параметр slug
     * </pre>
     *
     * <code>string slug = 3;</code>
     * @return The bytes for slug.
     */
    com.google.protobuf.ByteString
        getSlugBytes();

    /**
     * <pre>
     * Тип статуса
     * </pre>
     *
     * <code>string status_kind = 4;</code>
     * @return The statusKind.
     */
    java.lang.String getStatusKind();
    /**
     * <pre>
     * Тип статуса
     * </pre>
     *
     * <code>string status_kind = 4;</code>
     * @return The bytes for statusKind.
     */
    com.google.protobuf.ByteString
        getStatusKindBytes();

    /**
     * <pre>
     * Дата действия от.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp from_at = 5;</code>
     * @return Whether the fromAt field is set.
     */
    boolean hasFromAt();
    /**
     * <pre>
     * Дата действия от.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp from_at = 5;</code>
     * @return The fromAt.
     */
    com.google.protobuf.Timestamp getFromAt();

    /**
     * <pre>
     * Дата действия до.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp to_at = 6;</code>
     * @return Whether the toAt field is set.
     */
    boolean hasToAt();
    /**
     * <pre>
     * Дата действия до.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp to_at = 6;</code>
     * @return The toAt.
     */
    com.google.protobuf.Timestamp getToAt();
  }
  /**
   * <pre>
   * Тариф
   * </pre>
   *
   * Protobuf type {@code keyapis.vc.v1.Tariff}
   */
  public  static final class Tariff extends
      com.google.protobuf.GeneratedMessageLite<
          Tariff, Tariff.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.vc.v1.Tariff)
      TariffOrBuilder {
    private Tariff() {
      title_ = "";
      slug_ = "";
      statusKind_ = "";
    }
    public static final int ID_FIELD_NUMBER = 1;
    private int id_;
    /**
     * <pre>
     * Идентификатор
     * </pre>
     *
     * <code>int32 id = 1;</code>
     * @return The id.
     */
    @java.lang.Override
    public int getId() {
      return id_;
    }
    /**
     * <pre>
     * Идентификатор
     * </pre>
     *
     * <code>int32 id = 1;</code>
     * @param value The id to set.
     */
    private void setId(int value) {
      
      id_ = value;
    }
    /**
     * <pre>
     * Идентификатор
     * </pre>
     *
     * <code>int32 id = 1;</code>
     */
    private void clearId() {

      id_ = 0;
    }

    public static final int TITLE_FIELD_NUMBER = 2;
    private java.lang.String title_;
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @return The title.
     */
    @java.lang.Override
    public java.lang.String getTitle() {
      return title_;
    }
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @return The bytes for title.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTitleBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(title_);
    }
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @param value The title to set.
     */
    private void setTitle(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      title_ = value;
    }
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     */
    private void clearTitle() {

      title_ = getDefaultInstance().getTitle();
    }
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @param value The bytes for title to set.
     */
    private void setTitleBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      title_ = value.toStringUtf8();

    }

    public static final int SLUG_FIELD_NUMBER = 3;
    private java.lang.String slug_;
    /**
     * <pre>
     * Параметр slug
     * </pre>
     *
     * <code>string slug = 3;</code>
     * @return The slug.
     */
    @java.lang.Override
    public java.lang.String getSlug() {
      return slug_;
    }
    /**
     * <pre>
     * Параметр slug
     * </pre>
     *
     * <code>string slug = 3;</code>
     * @return The bytes for slug.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSlugBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(slug_);
    }
    /**
     * <pre>
     * Параметр slug
     * </pre>
     *
     * <code>string slug = 3;</code>
     * @param value The slug to set.
     */
    private void setSlug(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      slug_ = value;
    }
    /**
     * <pre>
     * Параметр slug
     * </pre>
     *
     * <code>string slug = 3;</code>
     */
    private void clearSlug() {

      slug_ = getDefaultInstance().getSlug();
    }
    /**
     * <pre>
     * Параметр slug
     * </pre>
     *
     * <code>string slug = 3;</code>
     * @param value The bytes for slug to set.
     */
    private void setSlugBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      slug_ = value.toStringUtf8();

    }

    public static final int STATUS_KIND_FIELD_NUMBER = 4;
    private java.lang.String statusKind_;
    /**
     * <pre>
     * Тип статуса
     * </pre>
     *
     * <code>string status_kind = 4;</code>
     * @return The statusKind.
     */
    @java.lang.Override
    public java.lang.String getStatusKind() {
      return statusKind_;
    }
    /**
     * <pre>
     * Тип статуса
     * </pre>
     *
     * <code>string status_kind = 4;</code>
     * @return The bytes for statusKind.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getStatusKindBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(statusKind_);
    }
    /**
     * <pre>
     * Тип статуса
     * </pre>
     *
     * <code>string status_kind = 4;</code>
     * @param value The statusKind to set.
     */
    private void setStatusKind(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      statusKind_ = value;
    }
    /**
     * <pre>
     * Тип статуса
     * </pre>
     *
     * <code>string status_kind = 4;</code>
     */
    private void clearStatusKind() {

      statusKind_ = getDefaultInstance().getStatusKind();
    }
    /**
     * <pre>
     * Тип статуса
     * </pre>
     *
     * <code>string status_kind = 4;</code>
     * @param value The bytes for statusKind to set.
     */
    private void setStatusKindBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      statusKind_ = value.toStringUtf8();

    }

    public static final int FROM_AT_FIELD_NUMBER = 5;
    private com.google.protobuf.Timestamp fromAt_;
    /**
     * <pre>
     * Дата действия от.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp from_at = 5;</code>
     */
    @java.lang.Override
    public boolean hasFromAt() {
      return fromAt_ != null;
    }
    /**
     * <pre>
     * Дата действия от.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp from_at = 5;</code>
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getFromAt() {
      return fromAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : fromAt_;
    }
    /**
     * <pre>
     * Дата действия от.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp from_at = 5;</code>
     */
    private void setFromAt(com.google.protobuf.Timestamp value) {
      value.getClass();
  fromAt_ = value;

      }
    /**
     * <pre>
     * Дата действия от.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp from_at = 5;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeFromAt(com.google.protobuf.Timestamp value) {
      value.getClass();
  if (fromAt_ != null &&
          fromAt_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
        fromAt_ =
          com.google.protobuf.Timestamp.newBuilder(fromAt_).mergeFrom(value).buildPartial();
      } else {
        fromAt_ = value;
      }

    }
    /**
     * <pre>
     * Дата действия от.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp from_at = 5;</code>
     */
    private void clearFromAt() {  fromAt_ = null;

    }

    public static final int TO_AT_FIELD_NUMBER = 6;
    private com.google.protobuf.Timestamp toAt_;
    /**
     * <pre>
     * Дата действия до.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp to_at = 6;</code>
     */
    @java.lang.Override
    public boolean hasToAt() {
      return toAt_ != null;
    }
    /**
     * <pre>
     * Дата действия до.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp to_at = 6;</code>
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getToAt() {
      return toAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : toAt_;
    }
    /**
     * <pre>
     * Дата действия до.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp to_at = 6;</code>
     */
    private void setToAt(com.google.protobuf.Timestamp value) {
      value.getClass();
  toAt_ = value;

      }
    /**
     * <pre>
     * Дата действия до.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp to_at = 6;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeToAt(com.google.protobuf.Timestamp value) {
      value.getClass();
  if (toAt_ != null &&
          toAt_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
        toAt_ =
          com.google.protobuf.Timestamp.newBuilder(toAt_).mergeFrom(value).buildPartial();
      } else {
        toAt_ = value;
      }

    }
    /**
     * <pre>
     * Дата действия до.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp to_at = 6;</code>
     */
    private void clearToAt() {  toAt_ = null;

    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Тариф
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.Tariff}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.Tariff)
        ru.keyapis.vc.v1.KeyapisVcV1Proto.TariffOrBuilder {
      // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Идентификатор
       * </pre>
       *
       * <code>int32 id = 1;</code>
       * @return The id.
       */
      @java.lang.Override
      public int getId() {
        return instance.getId();
      }
      /**
       * <pre>
       * Идентификатор
       * </pre>
       *
       * <code>int32 id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(int value) {
        copyOnWrite();
        instance.setId(value);
        return this;
      }
      /**
       * <pre>
       * Идентификатор
       * </pre>
       *
       * <code>int32 id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        copyOnWrite();
        instance.clearId();
        return this;
      }

      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @return The title.
       */
      @java.lang.Override
      public java.lang.String getTitle() {
        return instance.getTitle();
      }
      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @return The bytes for title.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getTitleBytes() {
        return instance.getTitleBytes();
      }
      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @param value The title to set.
       * @return This builder for chaining.
       */
      public Builder setTitle(
          java.lang.String value) {
        copyOnWrite();
        instance.setTitle(value);
        return this;
      }
      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTitle() {
        copyOnWrite();
        instance.clearTitle();
        return this;
      }
      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @param value The bytes for title to set.
       * @return This builder for chaining.
       */
      public Builder setTitleBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTitleBytes(value);
        return this;
      }

      /**
       * <pre>
       * Параметр slug
       * </pre>
       *
       * <code>string slug = 3;</code>
       * @return The slug.
       */
      @java.lang.Override
      public java.lang.String getSlug() {
        return instance.getSlug();
      }
      /**
       * <pre>
       * Параметр slug
       * </pre>
       *
       * <code>string slug = 3;</code>
       * @return The bytes for slug.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getSlugBytes() {
        return instance.getSlugBytes();
      }
      /**
       * <pre>
       * Параметр slug
       * </pre>
       *
       * <code>string slug = 3;</code>
       * @param value The slug to set.
       * @return This builder for chaining.
       */
      public Builder setSlug(
          java.lang.String value) {
        copyOnWrite();
        instance.setSlug(value);
        return this;
      }
      /**
       * <pre>
       * Параметр slug
       * </pre>
       *
       * <code>string slug = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearSlug() {
        copyOnWrite();
        instance.clearSlug();
        return this;
      }
      /**
       * <pre>
       * Параметр slug
       * </pre>
       *
       * <code>string slug = 3;</code>
       * @param value The bytes for slug to set.
       * @return This builder for chaining.
       */
      public Builder setSlugBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setSlugBytes(value);
        return this;
      }

      /**
       * <pre>
       * Тип статуса
       * </pre>
       *
       * <code>string status_kind = 4;</code>
       * @return The statusKind.
       */
      @java.lang.Override
      public java.lang.String getStatusKind() {
        return instance.getStatusKind();
      }
      /**
       * <pre>
       * Тип статуса
       * </pre>
       *
       * <code>string status_kind = 4;</code>
       * @return The bytes for statusKind.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getStatusKindBytes() {
        return instance.getStatusKindBytes();
      }
      /**
       * <pre>
       * Тип статуса
       * </pre>
       *
       * <code>string status_kind = 4;</code>
       * @param value The statusKind to set.
       * @return This builder for chaining.
       */
      public Builder setStatusKind(
          java.lang.String value) {
        copyOnWrite();
        instance.setStatusKind(value);
        return this;
      }
      /**
       * <pre>
       * Тип статуса
       * </pre>
       *
       * <code>string status_kind = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearStatusKind() {
        copyOnWrite();
        instance.clearStatusKind();
        return this;
      }
      /**
       * <pre>
       * Тип статуса
       * </pre>
       *
       * <code>string status_kind = 4;</code>
       * @param value The bytes for statusKind to set.
       * @return This builder for chaining.
       */
      public Builder setStatusKindBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setStatusKindBytes(value);
        return this;
      }

      /**
       * <pre>
       * Дата действия от.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp from_at = 5;</code>
       */
      @java.lang.Override
      public boolean hasFromAt() {
        return instance.hasFromAt();
      }
      /**
       * <pre>
       * Дата действия от.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp from_at = 5;</code>
       */
      @java.lang.Override
      public com.google.protobuf.Timestamp getFromAt() {
        return instance.getFromAt();
      }
      /**
       * <pre>
       * Дата действия от.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp from_at = 5;</code>
       */
      public Builder setFromAt(com.google.protobuf.Timestamp value) {
        copyOnWrite();
        instance.setFromAt(value);
        return this;
        }
      /**
       * <pre>
       * Дата действия от.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp from_at = 5;</code>
       */
      public Builder setFromAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        copyOnWrite();
        instance.setFromAt(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Дата действия от.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp from_at = 5;</code>
       */
      public Builder mergeFromAt(com.google.protobuf.Timestamp value) {
        copyOnWrite();
        instance.mergeFromAt(value);
        return this;
      }
      /**
       * <pre>
       * Дата действия от.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp from_at = 5;</code>
       */
      public Builder clearFromAt() {  copyOnWrite();
        instance.clearFromAt();
        return this;
      }

      /**
       * <pre>
       * Дата действия до.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp to_at = 6;</code>
       */
      @java.lang.Override
      public boolean hasToAt() {
        return instance.hasToAt();
      }
      /**
       * <pre>
       * Дата действия до.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp to_at = 6;</code>
       */
      @java.lang.Override
      public com.google.protobuf.Timestamp getToAt() {
        return instance.getToAt();
      }
      /**
       * <pre>
       * Дата действия до.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp to_at = 6;</code>
       */
      public Builder setToAt(com.google.protobuf.Timestamp value) {
        copyOnWrite();
        instance.setToAt(value);
        return this;
        }
      /**
       * <pre>
       * Дата действия до.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp to_at = 6;</code>
       */
      public Builder setToAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        copyOnWrite();
        instance.setToAt(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Дата действия до.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp to_at = 6;</code>
       */
      public Builder mergeToAt(com.google.protobuf.Timestamp value) {
        copyOnWrite();
        instance.mergeToAt(value);
        return this;
      }
      /**
       * <pre>
       * Дата действия до.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp to_at = 6;</code>
       */
      public Builder clearToAt() {  copyOnWrite();
        instance.clearToAt();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.Tariff)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "id_",
              "title_",
              "slug_",
              "statusKind_",
              "fromAt_",
              "toAt_",
            };
            java.lang.String info =
                "\u0000\u0006\u0000\u0000\u0001\u0006\u0006\u0000\u0000\u0000\u0001\u0004\u0002\u0208" +
                "\u0003\u0208\u0004\u0208\u0005\t\u0006\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:keyapis.vc.v1.Tariff)
    private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff DEFAULT_INSTANCE;
    static {
      Tariff defaultInstance = new Tariff();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Tariff.class, defaultInstance);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Tariff> PARSER;

    public static com.google.protobuf.Parser<Tariff> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface RoleOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.Role)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Идентификатор
     * </pre>
     *
     * <code>int32 id = 1;</code>
     * @return The id.
     */
    int getId();

    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @return The title.
     */
    java.lang.String getTitle();
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @return The bytes for title.
     */
    com.google.protobuf.ByteString
        getTitleBytes();

    /**
     * <pre>
     * Доступы
     * </pre>
     *
     * <code>repeated string permissions = 3;</code>
     * @return A list containing the permissions.
     */
    java.util.List<java.lang.String>
        getPermissionsList();
    /**
     * <pre>
     * Доступы
     * </pre>
     *
     * <code>repeated string permissions = 3;</code>
     * @return The count of permissions.
     */
    int getPermissionsCount();
    /**
     * <pre>
     * Доступы
     * </pre>
     *
     * <code>repeated string permissions = 3;</code>
     * @param index The index of the element to return.
     * @return The permissions at the given index.
     */
    java.lang.String getPermissions(int index);
    /**
     * <pre>
     * Доступы
     * </pre>
     *
     * <code>repeated string permissions = 3;</code>
     * @param index The index of the element to return.
     * @return The permissions at the given index.
     */
    com.google.protobuf.ByteString
        getPermissionsBytes(int index);

    /**
     * <pre>
     * Является ли роль глобальной
     * </pre>
     *
     * <code>bool is_global = 4;</code>
     * @return The isGlobal.
     */
    boolean getIsGlobal();
  }
  /**
   * <pre>
   * Роль
   * </pre>
   *
   * Protobuf type {@code keyapis.vc.v1.Role}
   */
  public  static final class Role extends
      com.google.protobuf.GeneratedMessageLite<
          Role, Role.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.vc.v1.Role)
      RoleOrBuilder {
    private Role() {
      title_ = "";
      permissions_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
    }
    public static final int ID_FIELD_NUMBER = 1;
    private int id_;
    /**
     * <pre>
     * Идентификатор
     * </pre>
     *
     * <code>int32 id = 1;</code>
     * @return The id.
     */
    @java.lang.Override
    public int getId() {
      return id_;
    }
    /**
     * <pre>
     * Идентификатор
     * </pre>
     *
     * <code>int32 id = 1;</code>
     * @param value The id to set.
     */
    private void setId(int value) {
      
      id_ = value;
    }
    /**
     * <pre>
     * Идентификатор
     * </pre>
     *
     * <code>int32 id = 1;</code>
     */
    private void clearId() {

      id_ = 0;
    }

    public static final int TITLE_FIELD_NUMBER = 2;
    private java.lang.String title_;
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @return The title.
     */
    @java.lang.Override
    public java.lang.String getTitle() {
      return title_;
    }
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @return The bytes for title.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTitleBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(title_);
    }
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @param value The title to set.
     */
    private void setTitle(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      title_ = value;
    }
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     */
    private void clearTitle() {

      title_ = getDefaultInstance().getTitle();
    }
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @param value The bytes for title to set.
     */
    private void setTitleBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      title_ = value.toStringUtf8();

    }

    public static final int PERMISSIONS_FIELD_NUMBER = 3;
    private com.google.protobuf.Internal.ProtobufList<java.lang.String> permissions_;
    /**
     * <pre>
     * Доступы
     * </pre>
     *
     * <code>repeated string permissions = 3;</code>
     * @return A list containing the permissions.
     */
    @java.lang.Override
    public java.util.List<java.lang.String> getPermissionsList() {
      return permissions_;
    }
    /**
     * <pre>
     * Доступы
     * </pre>
     *
     * <code>repeated string permissions = 3;</code>
     * @return The count of permissions.
     */
    @java.lang.Override
    public int getPermissionsCount() {
      return permissions_.size();
    }
    /**
     * <pre>
     * Доступы
     * </pre>
     *
     * <code>repeated string permissions = 3;</code>
     * @param index The index of the element to return.
     * @return The permissions at the given index.
     */
    @java.lang.Override
    public java.lang.String getPermissions(int index) {
      return permissions_.get(index);
    }
    /**
     * <pre>
     * Доступы
     * </pre>
     *
     * <code>repeated string permissions = 3;</code>
     * @param index The index of the value to return.
     * @return The bytes of the permissions at the given index.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPermissionsBytes(int index) {
      return com.google.protobuf.ByteString.copyFromUtf8(
          permissions_.get(index));
    }
    private void ensurePermissionsIsMutable() {
      com.google.protobuf.Internal.ProtobufList<java.lang.String> tmp =
          permissions_;  if (!tmp.isModifiable()) {
        permissions_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <pre>
     * Доступы
     * </pre>
     *
     * <code>repeated string permissions = 3;</code>
     * @param index The index to set the value at.
     * @param value The permissions to set.
     */
    private void setPermissions(
        int index, java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  ensurePermissionsIsMutable();
      permissions_.set(index, value);
    }
    /**
     * <pre>
     * Доступы
     * </pre>
     *
     * <code>repeated string permissions = 3;</code>
     * @param value The permissions to add.
     */
    private void addPermissions(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  ensurePermissionsIsMutable();
      permissions_.add(value);
    }
    /**
     * <pre>
     * Доступы
     * </pre>
     *
     * <code>repeated string permissions = 3;</code>
     * @param values The permissions to add.
     */
    private void addAllPermissions(
        java.lang.Iterable<java.lang.String> values) {
      ensurePermissionsIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, permissions_);
    }
    /**
     * <pre>
     * Доступы
     * </pre>
     *
     * <code>repeated string permissions = 3;</code>
     */
    private void clearPermissions() {
      permissions_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
    }
    /**
     * <pre>
     * Доступы
     * </pre>
     *
     * <code>repeated string permissions = 3;</code>
     * @param value The bytes of the permissions to add.
     */
    private void addPermissionsBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      ensurePermissionsIsMutable();
      permissions_.add(value.toStringUtf8());
    }

    public static final int IS_GLOBAL_FIELD_NUMBER = 4;
    private boolean isGlobal_;
    /**
     * <pre>
     * Является ли роль глобальной
     * </pre>
     *
     * <code>bool is_global = 4;</code>
     * @return The isGlobal.
     */
    @java.lang.Override
    public boolean getIsGlobal() {
      return isGlobal_;
    }
    /**
     * <pre>
     * Является ли роль глобальной
     * </pre>
     *
     * <code>bool is_global = 4;</code>
     * @param value The isGlobal to set.
     */
    private void setIsGlobal(boolean value) {
      
      isGlobal_ = value;
    }
    /**
     * <pre>
     * Является ли роль глобальной
     * </pre>
     *
     * <code>bool is_global = 4;</code>
     */
    private void clearIsGlobal() {

      isGlobal_ = false;
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Role parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Role parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Role parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Role parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Role parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Role parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Role parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Role parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Role parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Role parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Role parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Role parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.Role prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Роль
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.Role}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.Role, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.Role)
        ru.keyapis.vc.v1.KeyapisVcV1Proto.RoleOrBuilder {
      // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Идентификатор
       * </pre>
       *
       * <code>int32 id = 1;</code>
       * @return The id.
       */
      @java.lang.Override
      public int getId() {
        return instance.getId();
      }
      /**
       * <pre>
       * Идентификатор
       * </pre>
       *
       * <code>int32 id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(int value) {
        copyOnWrite();
        instance.setId(value);
        return this;
      }
      /**
       * <pre>
       * Идентификатор
       * </pre>
       *
       * <code>int32 id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        copyOnWrite();
        instance.clearId();
        return this;
      }

      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @return The title.
       */
      @java.lang.Override
      public java.lang.String getTitle() {
        return instance.getTitle();
      }
      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @return The bytes for title.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getTitleBytes() {
        return instance.getTitleBytes();
      }
      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @param value The title to set.
       * @return This builder for chaining.
       */
      public Builder setTitle(
          java.lang.String value) {
        copyOnWrite();
        instance.setTitle(value);
        return this;
      }
      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTitle() {
        copyOnWrite();
        instance.clearTitle();
        return this;
      }
      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @param value The bytes for title to set.
       * @return This builder for chaining.
       */
      public Builder setTitleBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTitleBytes(value);
        return this;
      }

      /**
       * <pre>
       * Доступы
       * </pre>
       *
       * <code>repeated string permissions = 3;</code>
       * @return A list containing the permissions.
       */
      @java.lang.Override
      public java.util.List<java.lang.String>
          getPermissionsList() {
        return java.util.Collections.unmodifiableList(
            instance.getPermissionsList());
      }
      /**
       * <pre>
       * Доступы
       * </pre>
       *
       * <code>repeated string permissions = 3;</code>
       * @return The count of permissions.
       */
      @java.lang.Override
      public int getPermissionsCount() {
        return instance.getPermissionsCount();
      }
      /**
       * <pre>
       * Доступы
       * </pre>
       *
       * <code>repeated string permissions = 3;</code>
       * @param index The index of the element to return.
       * @return The permissions at the given index.
       */
      @java.lang.Override
      public java.lang.String getPermissions(int index) {
        return instance.getPermissions(index);
      }
      /**
       * <pre>
       * Доступы
       * </pre>
       *
       * <code>repeated string permissions = 3;</code>
       * @param index The index of the value to return.
       * @return The bytes of the permissions at the given index.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getPermissionsBytes(int index) {
        return instance.getPermissionsBytes(index);
      }
      /**
       * <pre>
       * Доступы
       * </pre>
       *
       * <code>repeated string permissions = 3;</code>
       * @param index The index to set the value at.
       * @param value The permissions to set.
       * @return This builder for chaining.
       */
      public Builder setPermissions(
          int index, java.lang.String value) {
        copyOnWrite();
        instance.setPermissions(index, value);
        return this;
      }
      /**
       * <pre>
       * Доступы
       * </pre>
       *
       * <code>repeated string permissions = 3;</code>
       * @param value The permissions to add.
       * @return This builder for chaining.
       */
      public Builder addPermissions(
          java.lang.String value) {
        copyOnWrite();
        instance.addPermissions(value);
        return this;
      }
      /**
       * <pre>
       * Доступы
       * </pre>
       *
       * <code>repeated string permissions = 3;</code>
       * @param values The permissions to add.
       * @return This builder for chaining.
       */
      public Builder addAllPermissions(
          java.lang.Iterable<java.lang.String> values) {
        copyOnWrite();
        instance.addAllPermissions(values);
        return this;
      }
      /**
       * <pre>
       * Доступы
       * </pre>
       *
       * <code>repeated string permissions = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearPermissions() {
        copyOnWrite();
        instance.clearPermissions();
        return this;
      }
      /**
       * <pre>
       * Доступы
       * </pre>
       *
       * <code>repeated string permissions = 3;</code>
       * @param value The bytes of the permissions to add.
       * @return This builder for chaining.
       */
      public Builder addPermissionsBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.addPermissionsBytes(value);
        return this;
      }

      /**
       * <pre>
       * Является ли роль глобальной
       * </pre>
       *
       * <code>bool is_global = 4;</code>
       * @return The isGlobal.
       */
      @java.lang.Override
      public boolean getIsGlobal() {
        return instance.getIsGlobal();
      }
      /**
       * <pre>
       * Является ли роль глобальной
       * </pre>
       *
       * <code>bool is_global = 4;</code>
       * @param value The isGlobal to set.
       * @return This builder for chaining.
       */
      public Builder setIsGlobal(boolean value) {
        copyOnWrite();
        instance.setIsGlobal(value);
        return this;
      }
      /**
       * <pre>
       * Является ли роль глобальной
       * </pre>
       *
       * <code>bool is_global = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsGlobal() {
        copyOnWrite();
        instance.clearIsGlobal();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.Role)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new ru.keyapis.vc.v1.KeyapisVcV1Proto.Role();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "id_",
              "title_",
              "permissions_",
              "isGlobal_",
            };
            java.lang.String info =
                "\u0000\u0004\u0000\u0000\u0001\u0004\u0004\u0000\u0001\u0000\u0001\u0004\u0002\u0208" +
                "\u0003\u021a\u0004\u0007";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.vc.v1.KeyapisVcV1Proto.Role> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.vc.v1.KeyapisVcV1Proto.Role>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:keyapis.vc.v1.Role)
    private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.Role DEFAULT_INSTANCE;
    static {
      Role defaultInstance = new Role();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Role.class, defaultInstance);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Role getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Role> PARSER;

    public static com.google.protobuf.Parser<Role> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface GetDictionaryCategoriesRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.GetDictionaryCategoriesRequest)
      com.google.protobuf.MessageLiteOrBuilder {
  }
  /**
   * <pre>
   * Запрос на получение справочника категорий
   * </pre>
   *
   * Protobuf type {@code keyapis.vc.v1.GetDictionaryCategoriesRequest}
   */
  public  static final class GetDictionaryCategoriesRequest extends
      com.google.protobuf.GeneratedMessageLite<
          GetDictionaryCategoriesRequest, GetDictionaryCategoriesRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryCategoriesRequest)
      GetDictionaryCategoriesRequestOrBuilder {
    private GetDictionaryCategoriesRequest() {
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Запрос на получение справочника категорий
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.GetDictionaryCategoriesRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryCategoriesRequest)
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequestOrBuilder {
      // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryCategoriesRequest)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = null;java.lang.String info =
                "\u0000\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryCategoriesRequest)
    private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest DEFAULT_INSTANCE;
    static {
      GetDictionaryCategoriesRequest defaultInstance = new GetDictionaryCategoriesRequest();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        GetDictionaryCategoriesRequest.class, defaultInstance);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<GetDictionaryCategoriesRequest> PARSER;

    public static com.google.protobuf.Parser<GetDictionaryCategoriesRequest> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface GetDictionaryCategoriesResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.GetDictionaryCategoriesResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Список категорий
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <pre>
     * Список категорий
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
     * @return The data.
     */
    ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories getData();

    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
     * @return Whether the error field is set.
     */
    boolean hasError();
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
     * @return The error.
     */
    ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error getError();

    public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.TypeCase getTypeCase();
  }
  /**
   * <pre>
   * Ответ на запрос получения справочника категорий
   * </pre>
   *
   * Protobuf type {@code keyapis.vc.v1.GetDictionaryCategoriesResponse}
   */
  public  static final class GetDictionaryCategoriesResponse extends
      com.google.protobuf.GeneratedMessageLite<
          GetDictionaryCategoriesResponse, GetDictionaryCategoriesResponse.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryCategoriesResponse)
      GetDictionaryCategoriesResponseOrBuilder {
    private GetDictionaryCategoriesResponse() {
    }
    public interface CameraCategoriesOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <pre>
       * Категория
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
       */
      java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.Category> 
          getCategoryList();
      /**
       * <pre>
       * Категория
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
       */
      ru.keyapis.vc.v1.KeyapisVcV1Proto.Category getCategory(int index);
      /**
       * <pre>
       * Категория
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
       */
      int getCategoryCount();
    }
    /**
     * <pre>
     * Список категорий
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories}
     */
    public  static final class CameraCategories extends
        com.google.protobuf.GeneratedMessageLite<
            CameraCategories, CameraCategories.Builder> implements
        // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories)
        CameraCategoriesOrBuilder {
      private CameraCategories() {
        category_ = emptyProtobufList();
      }
      public static final int CATEGORY_FIELD_NUMBER = 1;
      private com.google.protobuf.Internal.ProtobufList<ru.keyapis.vc.v1.KeyapisVcV1Proto.Category> category_;
      /**
       * <pre>
       * Категория
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
       */
      @java.lang.Override
      public java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.Category> getCategoryList() {
        return category_;
      }
      /**
       * <pre>
       * Категория
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
       */
      public java.util.List<? extends ru.keyapis.vc.v1.KeyapisVcV1Proto.CategoryOrBuilder> 
          getCategoryOrBuilderList() {
        return category_;
      }
      /**
       * <pre>
       * Категория
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
       */
      @java.lang.Override
      public int getCategoryCount() {
        return category_.size();
      }
      /**
       * <pre>
       * Категория
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.Category getCategory(int index) {
        return category_.get(index);
      }
      /**
       * <pre>
       * Категория
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
       */
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.CategoryOrBuilder getCategoryOrBuilder(
          int index) {
        return category_.get(index);
      }
      private void ensureCategoryIsMutable() {
        com.google.protobuf.Internal.ProtobufList<ru.keyapis.vc.v1.KeyapisVcV1Proto.Category> tmp = category_;
        if (!tmp.isModifiable()) {
          category_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }

      /**
       * <pre>
       * Категория
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
       */
      private void setCategory(
          int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Category value) {
        value.getClass();
  ensureCategoryIsMutable();
        category_.set(index, value);
      }
      /**
       * <pre>
       * Категория
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
       */
      private void addCategory(ru.keyapis.vc.v1.KeyapisVcV1Proto.Category value) {
        value.getClass();
  ensureCategoryIsMutable();
        category_.add(value);
      }
      /**
       * <pre>
       * Категория
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
       */
      private void addCategory(
          int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Category value) {
        value.getClass();
  ensureCategoryIsMutable();
        category_.add(index, value);
      }
      /**
       * <pre>
       * Категория
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
       */
      private void addAllCategory(
          java.lang.Iterable<? extends ru.keyapis.vc.v1.KeyapisVcV1Proto.Category> values) {
        ensureCategoryIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, category_);
      }
      /**
       * <pre>
       * Категория
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
       */
      private void clearCategory() {
        category_ = emptyProtobufList();
      }
      /**
       * <pre>
       * Категория
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
       */
      private void removeCategory(int index) {
        ensureCategoryIsMutable();
        category_.remove(index);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Список категорий
       * </pre>
       *
       * Protobuf type {@code keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories)
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategoriesOrBuilder {
        // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }


        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        @java.lang.Override
        public java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.Category> getCategoryList() {
          return java.util.Collections.unmodifiableList(
              instance.getCategoryList());
        }
        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        @java.lang.Override
        public int getCategoryCount() {
          return instance.getCategoryCount();
        }/**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.Category getCategory(int index) {
          return instance.getCategory(index);
        }
        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        public Builder setCategory(
            int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Category value) {
          copyOnWrite();
          instance.setCategory(index, value);
          return this;
        }
        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        public Builder setCategory(
            int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.Builder builderForValue) {
          copyOnWrite();
          instance.setCategory(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        public Builder addCategory(ru.keyapis.vc.v1.KeyapisVcV1Proto.Category value) {
          copyOnWrite();
          instance.addCategory(value);
          return this;
        }
        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        public Builder addCategory(
            int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Category value) {
          copyOnWrite();
          instance.addCategory(index, value);
          return this;
        }
        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        public Builder addCategory(
            ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.Builder builderForValue) {
          copyOnWrite();
          instance.addCategory(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        public Builder addCategory(
            int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.Builder builderForValue) {
          copyOnWrite();
          instance.addCategory(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        public Builder addAllCategory(
            java.lang.Iterable<? extends ru.keyapis.vc.v1.KeyapisVcV1Proto.Category> values) {
          copyOnWrite();
          instance.addAllCategory(values);
          return this;
        }
        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        public Builder clearCategory() {
          copyOnWrite();
          instance.clearCategory();
          return this;
        }
        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        public Builder removeCategory(int index) {
          copyOnWrite();
          instance.removeCategory(index);
          return this;
        }

        // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories)
      }
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "category_",
                ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.class,
              };
              java.lang.String info =
                  "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0001\u0000\u0001\u001b";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories> parser = PARSER;
            if (parser == null) {
              synchronized (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }


      // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories)
      private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories DEFAULT_INSTANCE;
      static {
        CameraCategories defaultInstance = new CameraCategories();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          CameraCategories.class, defaultInstance);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static volatile com.google.protobuf.Parser<CameraCategories> PARSER;

      public static com.google.protobuf.Parser<CameraCategories> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }

    public interface ErrorOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.GetDictionaryCategoriesResponse.Error)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       * @return Whether the vcDictionaryError field is set.
       */
      boolean hasVcDictionaryError();
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       * @return The vcDictionaryError.
       */
      ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError getVcDictionaryError();

      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.ReasonCase getReasonCase();
    }
    /**
     * <pre>
     * Ошибка запроса
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.GetDictionaryCategoriesResponse.Error}
     */
    public  static final class Error extends
        com.google.protobuf.GeneratedMessageLite<
            Error, Error.Builder> implements
        // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryCategoriesResponse.Error)
        ErrorOrBuilder {
      private Error() {
      }
      private int reasonCase_ = 0;
      private java.lang.Object reason_;
      public enum ReasonCase {
        VC_DICTIONARY_ERROR(1),
        REASON_NOT_SET(0);
        private final int value;
        private ReasonCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static ReasonCase valueOf(int value) {
          return forNumber(value);
        }

        public static ReasonCase forNumber(int value) {
          switch (value) {
            case 1: return VC_DICTIONARY_ERROR;
            case 0: return REASON_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };

      @java.lang.Override
      public ReasonCase
      getReasonCase() {
        return ReasonCase.forNumber(
            reasonCase_);
      }

      private void clearReason() {
        reasonCase_ = 0;
        reason_ = null;
      }

      public static final int VC_DICTIONARY_ERROR_FIELD_NUMBER = 1;
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       */
      @java.lang.Override
      public boolean hasVcDictionaryError() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError getVcDictionaryError() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) reason_;
        }
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.getDefaultInstance();
      }
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       */
      private void setVcDictionaryError(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError value) {
        value.getClass();
  reason_ = value;
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       */
      private void mergeVcDictionaryError(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError value) {
        value.getClass();
  if (reasonCase_ == 1 &&
            reason_ != ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.getDefaultInstance()) {
          reason_ = ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.newBuilder((ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) reason_)
              .mergeFrom(value).buildPartial();
        } else {
          reason_ = value;
        }
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       */
      private void clearVcDictionaryError() {
        if (reasonCase_ == 1) {
          reasonCase_ = 0;
          reason_ = null;
        }
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Ошибка запроса
       * </pre>
       *
       * Protobuf type {@code keyapis.vc.v1.GetDictionaryCategoriesResponse.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryCategoriesResponse.Error)
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.ErrorOrBuilder {
        // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }

        @java.lang.Override
        public ReasonCase
            getReasonCase() {
          return instance.getReasonCase();
        }

        public Builder clearReason() {
          copyOnWrite();
          instance.clearReason();
          return this;
        }


        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        @java.lang.Override
        public boolean hasVcDictionaryError() {
          return instance.hasVcDictionaryError();
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError getVcDictionaryError() {
          return instance.getVcDictionaryError();
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        public Builder setVcDictionaryError(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError value) {
          copyOnWrite();
          instance.setVcDictionaryError(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        public Builder setVcDictionaryError(
            ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Builder builderForValue) {
          copyOnWrite();
          instance.setVcDictionaryError(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        public Builder mergeVcDictionaryError(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError value) {
          copyOnWrite();
          instance.mergeVcDictionaryError(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        public Builder clearVcDictionaryError() {
          copyOnWrite();
          instance.clearVcDictionaryError();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryCategoriesResponse.Error)
      }
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "reason_",
                "reasonCase_",
                ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.class,
              };
              java.lang.String info =
                  "\u0000\u0001\u0001\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001<\u0000";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error> parser = PARSER;
            if (parser == null) {
              synchronized (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }


      // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryCategoriesResponse.Error)
      private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error DEFAULT_INSTANCE;
      static {
        Error defaultInstance = new Error();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Error.class, defaultInstance);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static volatile com.google.protobuf.Parser<Error> PARSER;

      public static com.google.protobuf.Parser<Error> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }

    private int typeCase_ = 0;
    private java.lang.Object type_;
    public enum TypeCase {
      DATA(1),
      ERROR(2),
      TYPE_NOT_SET(0);
      private final int value;
      private TypeCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static TypeCase valueOf(int value) {
        return forNumber(value);
      }

      public static TypeCase forNumber(int value) {
        switch (value) {
          case 1: return DATA;
          case 2: return ERROR;
          case 0: return TYPE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public TypeCase
    getTypeCase() {
      return TypeCase.forNumber(
          typeCase_);
    }

    private void clearType() {
      typeCase_ = 0;
      type_ = null;
    }

    public static final int DATA_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Список категорий
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
     */
    @java.lang.Override
    public boolean hasData() {
      return typeCase_ == 1;
    }
    /**
     * <pre>
     * Список категорий
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories getData() {
      if (typeCase_ == 1) {
         return (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories) type_;
      }
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.getDefaultInstance();
    }
    /**
     * <pre>
     * Список категорий
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
     */
    private void setData(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories value) {
      value.getClass();
  type_ = value;
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Список категорий
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
     */
    private void mergeData(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories value) {
      value.getClass();
  if (typeCase_ == 1 &&
          type_ != ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.getDefaultInstance()) {
        type_ = ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.newBuilder((ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Список категорий
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
     */
    private void clearData() {
      if (typeCase_ == 1) {
        typeCase_ = 0;
        type_ = null;
      }
    }

    public static final int ERROR_FIELD_NUMBER = 2;
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
     */
    @java.lang.Override
    public boolean hasError() {
      return typeCase_ == 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
     */
    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error getError() {
      if (typeCase_ == 2) {
         return (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error) type_;
      }
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.getDefaultInstance();
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
     */
    private void setError(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error value) {
      value.getClass();
  type_ = value;
      typeCase_ = 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
     */
    private void mergeError(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error value) {
      value.getClass();
  if (typeCase_ == 2 &&
          type_ != ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.getDefaultInstance()) {
        type_ = ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.newBuilder((ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
     */
    private void clearError() {
      if (typeCase_ == 2) {
        typeCase_ = 0;
        type_ = null;
      }
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Ответ на запрос получения справочника категорий
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.GetDictionaryCategoriesResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryCategoriesResponse)
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponseOrBuilder {
      // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public TypeCase
          getTypeCase() {
        return instance.getTypeCase();
      }

      public Builder clearType() {
        copyOnWrite();
        instance.clearType();
        return this;
      }


      /**
       * <pre>
       * Список категорий
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
       */
      @java.lang.Override
      public boolean hasData() {
        return instance.hasData();
      }
      /**
       * <pre>
       * Список категорий
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories getData() {
        return instance.getData();
      }
      /**
       * <pre>
       * Список категорий
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
       */
      public Builder setData(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories value) {
        copyOnWrite();
        instance.setData(value);
        return this;
      }
      /**
       * <pre>
       * Список категорий
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
       */
      public Builder setData(
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.Builder builderForValue) {
        copyOnWrite();
        instance.setData(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Список категорий
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
       */
      public Builder mergeData(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories value) {
        copyOnWrite();
        instance.mergeData(value);
        return this;
      }
      /**
       * <pre>
       * Список категорий
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
       */
      public Builder clearData() {
        copyOnWrite();
        instance.clearData();
        return this;
      }

      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
       */
      @java.lang.Override
      public boolean hasError() {
        return instance.hasError();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error getError() {
        return instance.getError();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
       */
      public Builder setError(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error value) {
        copyOnWrite();
        instance.setError(value);
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
       */
      public Builder setError(
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.Builder builderForValue) {
        copyOnWrite();
        instance.setError(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
       */
      public Builder mergeError(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error value) {
        copyOnWrite();
        instance.mergeError(value);
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
       */
      public Builder clearError() {
        copyOnWrite();
        instance.clearError();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryCategoriesResponse)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "type_",
              "typeCase_",
              ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.class,
              ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.class,
            };
            java.lang.String info =
                "\u0000\u0002\u0001\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                "\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryCategoriesResponse)
    private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse DEFAULT_INSTANCE;
    static {
      GetDictionaryCategoriesResponse defaultInstance = new GetDictionaryCategoriesResponse();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        GetDictionaryCategoriesResponse.class, defaultInstance);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<GetDictionaryCategoriesResponse> PARSER;

    public static com.google.protobuf.Parser<GetDictionaryCategoriesResponse> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface GetDictionaryTariffsRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.GetDictionaryTariffsRequest)
      com.google.protobuf.MessageLiteOrBuilder {
  }
  /**
   * <pre>
   * Запрос на получение справочника тарифов
   * </pre>
   *
   * Protobuf type {@code keyapis.vc.v1.GetDictionaryTariffsRequest}
   */
  public  static final class GetDictionaryTariffsRequest extends
      com.google.protobuf.GeneratedMessageLite<
          GetDictionaryTariffsRequest, GetDictionaryTariffsRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryTariffsRequest)
      GetDictionaryTariffsRequestOrBuilder {
    private GetDictionaryTariffsRequest() {
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Запрос на получение справочника тарифов
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.GetDictionaryTariffsRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryTariffsRequest)
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequestOrBuilder {
      // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryTariffsRequest)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = null;java.lang.String info =
                "\u0000\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryTariffsRequest)
    private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest DEFAULT_INSTANCE;
    static {
      GetDictionaryTariffsRequest defaultInstance = new GetDictionaryTariffsRequest();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        GetDictionaryTariffsRequest.class, defaultInstance);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<GetDictionaryTariffsRequest> PARSER;

    public static com.google.protobuf.Parser<GetDictionaryTariffsRequest> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface GetDictionaryTariffsResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.GetDictionaryTariffsResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Список тарифов
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <pre>
     * Список тарифов
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
     * @return The data.
     */
    ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs getData();

    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
     * @return Whether the error field is set.
     */
    boolean hasError();
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
     * @return The error.
     */
    ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error getError();

    public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.TypeCase getTypeCase();
  }
  /**
   * <pre>
   * Ответ на запрос получения справочника тарифов
   * </pre>
   *
   * Protobuf type {@code keyapis.vc.v1.GetDictionaryTariffsResponse}
   */
  public  static final class GetDictionaryTariffsResponse extends
      com.google.protobuf.GeneratedMessageLite<
          GetDictionaryTariffsResponse, GetDictionaryTariffsResponse.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryTariffsResponse)
      GetDictionaryTariffsResponseOrBuilder {
    private GetDictionaryTariffsResponse() {
    }
    public interface CameraTariffsOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <pre>
       * Тариф
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
       */
      java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff> 
          getTariffList();
      /**
       * <pre>
       * Тариф
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
       */
      ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff getTariff(int index);
      /**
       * <pre>
       * Тариф
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
       */
      int getTariffCount();
    }
    /**
     * <pre>
     * Список тарифов
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs}
     */
    public  static final class CameraTariffs extends
        com.google.protobuf.GeneratedMessageLite<
            CameraTariffs, CameraTariffs.Builder> implements
        // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs)
        CameraTariffsOrBuilder {
      private CameraTariffs() {
        tariff_ = emptyProtobufList();
      }
      public static final int TARIFF_FIELD_NUMBER = 1;
      private com.google.protobuf.Internal.ProtobufList<ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff> tariff_;
      /**
       * <pre>
       * Тариф
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
       */
      @java.lang.Override
      public java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff> getTariffList() {
        return tariff_;
      }
      /**
       * <pre>
       * Тариф
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
       */
      public java.util.List<? extends ru.keyapis.vc.v1.KeyapisVcV1Proto.TariffOrBuilder> 
          getTariffOrBuilderList() {
        return tariff_;
      }
      /**
       * <pre>
       * Тариф
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
       */
      @java.lang.Override
      public int getTariffCount() {
        return tariff_.size();
      }
      /**
       * <pre>
       * Тариф
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff getTariff(int index) {
        return tariff_.get(index);
      }
      /**
       * <pre>
       * Тариф
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
       */
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.TariffOrBuilder getTariffOrBuilder(
          int index) {
        return tariff_.get(index);
      }
      private void ensureTariffIsMutable() {
        com.google.protobuf.Internal.ProtobufList<ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff> tmp = tariff_;
        if (!tmp.isModifiable()) {
          tariff_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }

      /**
       * <pre>
       * Тариф
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
       */
      private void setTariff(
          int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff value) {
        value.getClass();
  ensureTariffIsMutable();
        tariff_.set(index, value);
      }
      /**
       * <pre>
       * Тариф
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
       */
      private void addTariff(ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff value) {
        value.getClass();
  ensureTariffIsMutable();
        tariff_.add(value);
      }
      /**
       * <pre>
       * Тариф
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
       */
      private void addTariff(
          int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff value) {
        value.getClass();
  ensureTariffIsMutable();
        tariff_.add(index, value);
      }
      /**
       * <pre>
       * Тариф
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
       */
      private void addAllTariff(
          java.lang.Iterable<? extends ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff> values) {
        ensureTariffIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, tariff_);
      }
      /**
       * <pre>
       * Тариф
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
       */
      private void clearTariff() {
        tariff_ = emptyProtobufList();
      }
      /**
       * <pre>
       * Тариф
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
       */
      private void removeTariff(int index) {
        ensureTariffIsMutable();
        tariff_.remove(index);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Список тарифов
       * </pre>
       *
       * Protobuf type {@code keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs)
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffsOrBuilder {
        // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }


        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        @java.lang.Override
        public java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff> getTariffList() {
          return java.util.Collections.unmodifiableList(
              instance.getTariffList());
        }
        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        @java.lang.Override
        public int getTariffCount() {
          return instance.getTariffCount();
        }/**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff getTariff(int index) {
          return instance.getTariff(index);
        }
        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        public Builder setTariff(
            int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff value) {
          copyOnWrite();
          instance.setTariff(index, value);
          return this;
        }
        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        public Builder setTariff(
            int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.Builder builderForValue) {
          copyOnWrite();
          instance.setTariff(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        public Builder addTariff(ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff value) {
          copyOnWrite();
          instance.addTariff(value);
          return this;
        }
        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        public Builder addTariff(
            int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff value) {
          copyOnWrite();
          instance.addTariff(index, value);
          return this;
        }
        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        public Builder addTariff(
            ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.Builder builderForValue) {
          copyOnWrite();
          instance.addTariff(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        public Builder addTariff(
            int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.Builder builderForValue) {
          copyOnWrite();
          instance.addTariff(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        public Builder addAllTariff(
            java.lang.Iterable<? extends ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff> values) {
          copyOnWrite();
          instance.addAllTariff(values);
          return this;
        }
        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        public Builder clearTariff() {
          copyOnWrite();
          instance.clearTariff();
          return this;
        }
        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        public Builder removeTariff(int index) {
          copyOnWrite();
          instance.removeTariff(index);
          return this;
        }

        // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs)
      }
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "tariff_",
                ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.class,
              };
              java.lang.String info =
                  "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0001\u0000\u0001\u001b";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs> parser = PARSER;
            if (parser == null) {
              synchronized (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }


      // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs)
      private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs DEFAULT_INSTANCE;
      static {
        CameraTariffs defaultInstance = new CameraTariffs();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          CameraTariffs.class, defaultInstance);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static volatile com.google.protobuf.Parser<CameraTariffs> PARSER;

      public static com.google.protobuf.Parser<CameraTariffs> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }

    public interface ErrorOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.GetDictionaryTariffsResponse.Error)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       * @return Whether the vcDictionaryError field is set.
       */
      boolean hasVcDictionaryError();
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       * @return The vcDictionaryError.
       */
      ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError getVcDictionaryError();

      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.ReasonCase getReasonCase();
    }
    /**
     * <pre>
     * Ошибка запроса
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.GetDictionaryTariffsResponse.Error}
     */
    public  static final class Error extends
        com.google.protobuf.GeneratedMessageLite<
            Error, Error.Builder> implements
        // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryTariffsResponse.Error)
        ErrorOrBuilder {
      private Error() {
      }
      private int reasonCase_ = 0;
      private java.lang.Object reason_;
      public enum ReasonCase {
        VC_DICTIONARY_ERROR(1),
        REASON_NOT_SET(0);
        private final int value;
        private ReasonCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static ReasonCase valueOf(int value) {
          return forNumber(value);
        }

        public static ReasonCase forNumber(int value) {
          switch (value) {
            case 1: return VC_DICTIONARY_ERROR;
            case 0: return REASON_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };

      @java.lang.Override
      public ReasonCase
      getReasonCase() {
        return ReasonCase.forNumber(
            reasonCase_);
      }

      private void clearReason() {
        reasonCase_ = 0;
        reason_ = null;
      }

      public static final int VC_DICTIONARY_ERROR_FIELD_NUMBER = 1;
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       */
      @java.lang.Override
      public boolean hasVcDictionaryError() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError getVcDictionaryError() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) reason_;
        }
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.getDefaultInstance();
      }
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       */
      private void setVcDictionaryError(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError value) {
        value.getClass();
  reason_ = value;
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       */
      private void mergeVcDictionaryError(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError value) {
        value.getClass();
  if (reasonCase_ == 1 &&
            reason_ != ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.getDefaultInstance()) {
          reason_ = ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.newBuilder((ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) reason_)
              .mergeFrom(value).buildPartial();
        } else {
          reason_ = value;
        }
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       */
      private void clearVcDictionaryError() {
        if (reasonCase_ == 1) {
          reasonCase_ = 0;
          reason_ = null;
        }
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Ошибка запроса
       * </pre>
       *
       * Protobuf type {@code keyapis.vc.v1.GetDictionaryTariffsResponse.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryTariffsResponse.Error)
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.ErrorOrBuilder {
        // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }

        @java.lang.Override
        public ReasonCase
            getReasonCase() {
          return instance.getReasonCase();
        }

        public Builder clearReason() {
          copyOnWrite();
          instance.clearReason();
          return this;
        }


        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        @java.lang.Override
        public boolean hasVcDictionaryError() {
          return instance.hasVcDictionaryError();
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError getVcDictionaryError() {
          return instance.getVcDictionaryError();
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        public Builder setVcDictionaryError(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError value) {
          copyOnWrite();
          instance.setVcDictionaryError(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        public Builder setVcDictionaryError(
            ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Builder builderForValue) {
          copyOnWrite();
          instance.setVcDictionaryError(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        public Builder mergeVcDictionaryError(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError value) {
          copyOnWrite();
          instance.mergeVcDictionaryError(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        public Builder clearVcDictionaryError() {
          copyOnWrite();
          instance.clearVcDictionaryError();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryTariffsResponse.Error)
      }
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "reason_",
                "reasonCase_",
                ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.class,
              };
              java.lang.String info =
                  "\u0000\u0001\u0001\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001<\u0000";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error> parser = PARSER;
            if (parser == null) {
              synchronized (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }


      // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryTariffsResponse.Error)
      private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error DEFAULT_INSTANCE;
      static {
        Error defaultInstance = new Error();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Error.class, defaultInstance);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static volatile com.google.protobuf.Parser<Error> PARSER;

      public static com.google.protobuf.Parser<Error> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }

    private int typeCase_ = 0;
    private java.lang.Object type_;
    public enum TypeCase {
      DATA(1),
      ERROR(2),
      TYPE_NOT_SET(0);
      private final int value;
      private TypeCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static TypeCase valueOf(int value) {
        return forNumber(value);
      }

      public static TypeCase forNumber(int value) {
        switch (value) {
          case 1: return DATA;
          case 2: return ERROR;
          case 0: return TYPE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public TypeCase
    getTypeCase() {
      return TypeCase.forNumber(
          typeCase_);
    }

    private void clearType() {
      typeCase_ = 0;
      type_ = null;
    }

    public static final int DATA_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Список тарифов
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
     */
    @java.lang.Override
    public boolean hasData() {
      return typeCase_ == 1;
    }
    /**
     * <pre>
     * Список тарифов
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs getData() {
      if (typeCase_ == 1) {
         return (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs) type_;
      }
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.getDefaultInstance();
    }
    /**
     * <pre>
     * Список тарифов
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
     */
    private void setData(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs value) {
      value.getClass();
  type_ = value;
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Список тарифов
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
     */
    private void mergeData(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs value) {
      value.getClass();
  if (typeCase_ == 1 &&
          type_ != ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.getDefaultInstance()) {
        type_ = ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.newBuilder((ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Список тарифов
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
     */
    private void clearData() {
      if (typeCase_ == 1) {
        typeCase_ = 0;
        type_ = null;
      }
    }

    public static final int ERROR_FIELD_NUMBER = 2;
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
     */
    @java.lang.Override
    public boolean hasError() {
      return typeCase_ == 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
     */
    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error getError() {
      if (typeCase_ == 2) {
         return (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error) type_;
      }
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.getDefaultInstance();
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
     */
    private void setError(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error value) {
      value.getClass();
  type_ = value;
      typeCase_ = 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
     */
    private void mergeError(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error value) {
      value.getClass();
  if (typeCase_ == 2 &&
          type_ != ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.getDefaultInstance()) {
        type_ = ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.newBuilder((ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
     */
    private void clearError() {
      if (typeCase_ == 2) {
        typeCase_ = 0;
        type_ = null;
      }
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Ответ на запрос получения справочника тарифов
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.GetDictionaryTariffsResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryTariffsResponse)
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponseOrBuilder {
      // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public TypeCase
          getTypeCase() {
        return instance.getTypeCase();
      }

      public Builder clearType() {
        copyOnWrite();
        instance.clearType();
        return this;
      }


      /**
       * <pre>
       * Список тарифов
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
       */
      @java.lang.Override
      public boolean hasData() {
        return instance.hasData();
      }
      /**
       * <pre>
       * Список тарифов
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs getData() {
        return instance.getData();
      }
      /**
       * <pre>
       * Список тарифов
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
       */
      public Builder setData(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs value) {
        copyOnWrite();
        instance.setData(value);
        return this;
      }
      /**
       * <pre>
       * Список тарифов
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
       */
      public Builder setData(
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.Builder builderForValue) {
        copyOnWrite();
        instance.setData(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Список тарифов
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
       */
      public Builder mergeData(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs value) {
        copyOnWrite();
        instance.mergeData(value);
        return this;
      }
      /**
       * <pre>
       * Список тарифов
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
       */
      public Builder clearData() {
        copyOnWrite();
        instance.clearData();
        return this;
      }

      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
       */
      @java.lang.Override
      public boolean hasError() {
        return instance.hasError();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error getError() {
        return instance.getError();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
       */
      public Builder setError(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error value) {
        copyOnWrite();
        instance.setError(value);
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
       */
      public Builder setError(
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.Builder builderForValue) {
        copyOnWrite();
        instance.setError(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
       */
      public Builder mergeError(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error value) {
        copyOnWrite();
        instance.mergeError(value);
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
       */
      public Builder clearError() {
        copyOnWrite();
        instance.clearError();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryTariffsResponse)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "type_",
              "typeCase_",
              ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.class,
              ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.class,
            };
            java.lang.String info =
                "\u0000\u0002\u0001\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                "\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryTariffsResponse)
    private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse DEFAULT_INSTANCE;
    static {
      GetDictionaryTariffsResponse defaultInstance = new GetDictionaryTariffsResponse();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        GetDictionaryTariffsResponse.class, defaultInstance);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<GetDictionaryTariffsResponse> PARSER;

    public static com.google.protobuf.Parser<GetDictionaryTariffsResponse> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface GetDictionaryRolesRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.GetDictionaryRolesRequest)
      com.google.protobuf.MessageLiteOrBuilder {
  }
  /**
   * <pre>
   * Запрос на получение справочника ролей
   * </pre>
   *
   * Protobuf type {@code keyapis.vc.v1.GetDictionaryRolesRequest}
   */
  public  static final class GetDictionaryRolesRequest extends
      com.google.protobuf.GeneratedMessageLite<
          GetDictionaryRolesRequest, GetDictionaryRolesRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryRolesRequest)
      GetDictionaryRolesRequestOrBuilder {
    private GetDictionaryRolesRequest() {
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Запрос на получение справочника ролей
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.GetDictionaryRolesRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryRolesRequest)
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequestOrBuilder {
      // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryRolesRequest)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = null;java.lang.String info =
                "\u0000\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryRolesRequest)
    private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest DEFAULT_INSTANCE;
    static {
      GetDictionaryRolesRequest defaultInstance = new GetDictionaryRolesRequest();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        GetDictionaryRolesRequest.class, defaultInstance);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<GetDictionaryRolesRequest> PARSER;

    public static com.google.protobuf.Parser<GetDictionaryRolesRequest> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface GetDictionaryRolesResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.GetDictionaryRolesResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Список ролей
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <pre>
     * Список ролей
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
     * @return The data.
     */
    ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles getData();

    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
     * @return Whether the error field is set.
     */
    boolean hasError();
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
     * @return The error.
     */
    ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error getError();

    public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.TypeCase getTypeCase();
  }
  /**
   * <pre>
   * Ответ на запрос получения справочника ролей
   * </pre>
   *
   * Protobuf type {@code keyapis.vc.v1.GetDictionaryRolesResponse}
   */
  public  static final class GetDictionaryRolesResponse extends
      com.google.protobuf.GeneratedMessageLite<
          GetDictionaryRolesResponse, GetDictionaryRolesResponse.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryRolesResponse)
      GetDictionaryRolesResponseOrBuilder {
    private GetDictionaryRolesResponse() {
    }
    public interface RolesOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.GetDictionaryRolesResponse.Roles)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <pre>
       * Роли
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
       */
      java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.Role> 
          getRolesList();
      /**
       * <pre>
       * Роли
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
       */
      ru.keyapis.vc.v1.KeyapisVcV1Proto.Role getRoles(int index);
      /**
       * <pre>
       * Роли
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
       */
      int getRolesCount();
    }
    /**
     * <pre>
     * Список ролей
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.GetDictionaryRolesResponse.Roles}
     */
    public  static final class Roles extends
        com.google.protobuf.GeneratedMessageLite<
            Roles, Roles.Builder> implements
        // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryRolesResponse.Roles)
        RolesOrBuilder {
      private Roles() {
        roles_ = emptyProtobufList();
      }
      public static final int ROLES_FIELD_NUMBER = 1;
      private com.google.protobuf.Internal.ProtobufList<ru.keyapis.vc.v1.KeyapisVcV1Proto.Role> roles_;
      /**
       * <pre>
       * Роли
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
       */
      @java.lang.Override
      public java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.Role> getRolesList() {
        return roles_;
      }
      /**
       * <pre>
       * Роли
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
       */
      public java.util.List<? extends ru.keyapis.vc.v1.KeyapisVcV1Proto.RoleOrBuilder> 
          getRolesOrBuilderList() {
        return roles_;
      }
      /**
       * <pre>
       * Роли
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
       */
      @java.lang.Override
      public int getRolesCount() {
        return roles_.size();
      }
      /**
       * <pre>
       * Роли
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.Role getRoles(int index) {
        return roles_.get(index);
      }
      /**
       * <pre>
       * Роли
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
       */
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.RoleOrBuilder getRolesOrBuilder(
          int index) {
        return roles_.get(index);
      }
      private void ensureRolesIsMutable() {
        com.google.protobuf.Internal.ProtobufList<ru.keyapis.vc.v1.KeyapisVcV1Proto.Role> tmp = roles_;
        if (!tmp.isModifiable()) {
          roles_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }

      /**
       * <pre>
       * Роли
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
       */
      private void setRoles(
          int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Role value) {
        value.getClass();
  ensureRolesIsMutable();
        roles_.set(index, value);
      }
      /**
       * <pre>
       * Роли
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
       */
      private void addRoles(ru.keyapis.vc.v1.KeyapisVcV1Proto.Role value) {
        value.getClass();
  ensureRolesIsMutable();
        roles_.add(value);
      }
      /**
       * <pre>
       * Роли
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
       */
      private void addRoles(
          int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Role value) {
        value.getClass();
  ensureRolesIsMutable();
        roles_.add(index, value);
      }
      /**
       * <pre>
       * Роли
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
       */
      private void addAllRoles(
          java.lang.Iterable<? extends ru.keyapis.vc.v1.KeyapisVcV1Proto.Role> values) {
        ensureRolesIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, roles_);
      }
      /**
       * <pre>
       * Роли
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
       */
      private void clearRoles() {
        roles_ = emptyProtobufList();
      }
      /**
       * <pre>
       * Роли
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
       */
      private void removeRoles(int index) {
        ensureRolesIsMutable();
        roles_.remove(index);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Список ролей
       * </pre>
       *
       * Protobuf type {@code keyapis.vc.v1.GetDictionaryRolesResponse.Roles}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryRolesResponse.Roles)
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.RolesOrBuilder {
        // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }


        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        @java.lang.Override
        public java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.Role> getRolesList() {
          return java.util.Collections.unmodifiableList(
              instance.getRolesList());
        }
        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        @java.lang.Override
        public int getRolesCount() {
          return instance.getRolesCount();
        }/**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.Role getRoles(int index) {
          return instance.getRoles(index);
        }
        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        public Builder setRoles(
            int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Role value) {
          copyOnWrite();
          instance.setRoles(index, value);
          return this;
        }
        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        public Builder setRoles(
            int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.Builder builderForValue) {
          copyOnWrite();
          instance.setRoles(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        public Builder addRoles(ru.keyapis.vc.v1.KeyapisVcV1Proto.Role value) {
          copyOnWrite();
          instance.addRoles(value);
          return this;
        }
        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        public Builder addRoles(
            int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Role value) {
          copyOnWrite();
          instance.addRoles(index, value);
          return this;
        }
        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        public Builder addRoles(
            ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.Builder builderForValue) {
          copyOnWrite();
          instance.addRoles(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        public Builder addRoles(
            int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.Builder builderForValue) {
          copyOnWrite();
          instance.addRoles(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        public Builder addAllRoles(
            java.lang.Iterable<? extends ru.keyapis.vc.v1.KeyapisVcV1Proto.Role> values) {
          copyOnWrite();
          instance.addAllRoles(values);
          return this;
        }
        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        public Builder clearRoles() {
          copyOnWrite();
          instance.clearRoles();
          return this;
        }
        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        public Builder removeRoles(int index) {
          copyOnWrite();
          instance.removeRoles(index);
          return this;
        }

        // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryRolesResponse.Roles)
      }
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "roles_",
                ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.class,
              };
              java.lang.String info =
                  "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0001\u0000\u0001\u001b";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles> parser = PARSER;
            if (parser == null) {
              synchronized (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }


      // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryRolesResponse.Roles)
      private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles DEFAULT_INSTANCE;
      static {
        Roles defaultInstance = new Roles();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Roles.class, defaultInstance);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static volatile com.google.protobuf.Parser<Roles> PARSER;

      public static com.google.protobuf.Parser<Roles> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }

    public interface ErrorOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.GetDictionaryRolesResponse.Error)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       * @return Whether the vcDictionaryError field is set.
       */
      boolean hasVcDictionaryError();
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       * @return The vcDictionaryError.
       */
      ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError getVcDictionaryError();

      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.ReasonCase getReasonCase();
    }
    /**
     * <pre>
     * Ошибка запроса
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.GetDictionaryRolesResponse.Error}
     */
    public  static final class Error extends
        com.google.protobuf.GeneratedMessageLite<
            Error, Error.Builder> implements
        // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryRolesResponse.Error)
        ErrorOrBuilder {
      private Error() {
      }
      private int reasonCase_ = 0;
      private java.lang.Object reason_;
      public enum ReasonCase {
        VC_DICTIONARY_ERROR(1),
        REASON_NOT_SET(0);
        private final int value;
        private ReasonCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static ReasonCase valueOf(int value) {
          return forNumber(value);
        }

        public static ReasonCase forNumber(int value) {
          switch (value) {
            case 1: return VC_DICTIONARY_ERROR;
            case 0: return REASON_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };

      @java.lang.Override
      public ReasonCase
      getReasonCase() {
        return ReasonCase.forNumber(
            reasonCase_);
      }

      private void clearReason() {
        reasonCase_ = 0;
        reason_ = null;
      }

      public static final int VC_DICTIONARY_ERROR_FIELD_NUMBER = 1;
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       */
      @java.lang.Override
      public boolean hasVcDictionaryError() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError getVcDictionaryError() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) reason_;
        }
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.getDefaultInstance();
      }
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       */
      private void setVcDictionaryError(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError value) {
        value.getClass();
  reason_ = value;
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       */
      private void mergeVcDictionaryError(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError value) {
        value.getClass();
  if (reasonCase_ == 1 &&
            reason_ != ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.getDefaultInstance()) {
          reason_ = ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.newBuilder((ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) reason_)
              .mergeFrom(value).buildPartial();
        } else {
          reason_ = value;
        }
        reasonCase_ = 1;
      }
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       */
      private void clearVcDictionaryError() {
        if (reasonCase_ == 1) {
          reasonCase_ = 0;
          reason_ = null;
        }
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Ошибка запроса
       * </pre>
       *
       * Protobuf type {@code keyapis.vc.v1.GetDictionaryRolesResponse.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryRolesResponse.Error)
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.ErrorOrBuilder {
        // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }

        @java.lang.Override
        public ReasonCase
            getReasonCase() {
          return instance.getReasonCase();
        }

        public Builder clearReason() {
          copyOnWrite();
          instance.clearReason();
          return this;
        }


        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        @java.lang.Override
        public boolean hasVcDictionaryError() {
          return instance.hasVcDictionaryError();
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError getVcDictionaryError() {
          return instance.getVcDictionaryError();
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        public Builder setVcDictionaryError(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError value) {
          copyOnWrite();
          instance.setVcDictionaryError(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        public Builder setVcDictionaryError(
            ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Builder builderForValue) {
          copyOnWrite();
          instance.setVcDictionaryError(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        public Builder mergeVcDictionaryError(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError value) {
          copyOnWrite();
          instance.mergeVcDictionaryError(value);
          return this;
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        public Builder clearVcDictionaryError() {
          copyOnWrite();
          instance.clearVcDictionaryError();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryRolesResponse.Error)
      }
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "reason_",
                "reasonCase_",
                ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.class,
              };
              java.lang.String info =
                  "\u0000\u0001\u0001\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001<\u0000";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error> parser = PARSER;
            if (parser == null) {
              synchronized (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }


      // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryRolesResponse.Error)
      private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error DEFAULT_INSTANCE;
      static {
        Error defaultInstance = new Error();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Error.class, defaultInstance);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static volatile com.google.protobuf.Parser<Error> PARSER;

      public static com.google.protobuf.Parser<Error> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }

    private int typeCase_ = 0;
    private java.lang.Object type_;
    public enum TypeCase {
      DATA(1),
      ERROR(2),
      TYPE_NOT_SET(0);
      private final int value;
      private TypeCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static TypeCase valueOf(int value) {
        return forNumber(value);
      }

      public static TypeCase forNumber(int value) {
        switch (value) {
          case 1: return DATA;
          case 2: return ERROR;
          case 0: return TYPE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public TypeCase
    getTypeCase() {
      return TypeCase.forNumber(
          typeCase_);
    }

    private void clearType() {
      typeCase_ = 0;
      type_ = null;
    }

    public static final int DATA_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Список ролей
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
     */
    @java.lang.Override
    public boolean hasData() {
      return typeCase_ == 1;
    }
    /**
     * <pre>
     * Список ролей
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles getData() {
      if (typeCase_ == 1) {
         return (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles) type_;
      }
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.getDefaultInstance();
    }
    /**
     * <pre>
     * Список ролей
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
     */
    private void setData(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles value) {
      value.getClass();
  type_ = value;
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Список ролей
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
     */
    private void mergeData(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles value) {
      value.getClass();
  if (typeCase_ == 1 &&
          type_ != ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.getDefaultInstance()) {
        type_ = ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.newBuilder((ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Список ролей
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
     */
    private void clearData() {
      if (typeCase_ == 1) {
        typeCase_ = 0;
        type_ = null;
      }
    }

    public static final int ERROR_FIELD_NUMBER = 2;
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
     */
    @java.lang.Override
    public boolean hasError() {
      return typeCase_ == 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
     */
    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error getError() {
      if (typeCase_ == 2) {
         return (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error) type_;
      }
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.getDefaultInstance();
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
     */
    private void setError(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error value) {
      value.getClass();
  type_ = value;
      typeCase_ = 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
     */
    private void mergeError(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error value) {
      value.getClass();
  if (typeCase_ == 2 &&
          type_ != ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.getDefaultInstance()) {
        type_ = ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.newBuilder((ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
     */
    private void clearError() {
      if (typeCase_ == 2) {
        typeCase_ = 0;
        type_ = null;
      }
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Ответ на запрос получения справочника ролей
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.GetDictionaryRolesResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryRolesResponse)
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponseOrBuilder {
      // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public TypeCase
          getTypeCase() {
        return instance.getTypeCase();
      }

      public Builder clearType() {
        copyOnWrite();
        instance.clearType();
        return this;
      }


      /**
       * <pre>
       * Список ролей
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
       */
      @java.lang.Override
      public boolean hasData() {
        return instance.hasData();
      }
      /**
       * <pre>
       * Список ролей
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles getData() {
        return instance.getData();
      }
      /**
       * <pre>
       * Список ролей
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
       */
      public Builder setData(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles value) {
        copyOnWrite();
        instance.setData(value);
        return this;
      }
      /**
       * <pre>
       * Список ролей
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
       */
      public Builder setData(
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.Builder builderForValue) {
        copyOnWrite();
        instance.setData(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Список ролей
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
       */
      public Builder mergeData(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles value) {
        copyOnWrite();
        instance.mergeData(value);
        return this;
      }
      /**
       * <pre>
       * Список ролей
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
       */
      public Builder clearData() {
        copyOnWrite();
        instance.clearData();
        return this;
      }

      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
       */
      @java.lang.Override
      public boolean hasError() {
        return instance.hasError();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error getError() {
        return instance.getError();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
       */
      public Builder setError(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error value) {
        copyOnWrite();
        instance.setError(value);
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
       */
      public Builder setError(
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.Builder builderForValue) {
        copyOnWrite();
        instance.setError(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
       */
      public Builder mergeError(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error value) {
        copyOnWrite();
        instance.mergeError(value);
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
       */
      public Builder clearError() {
        copyOnWrite();
        instance.clearError();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryRolesResponse)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "type_",
              "typeCase_",
              ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.class,
              ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.class,
            };
            java.lang.String info =
                "\u0000\u0002\u0001\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                "\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryRolesResponse)
    private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse DEFAULT_INSTANCE;
    static {
      GetDictionaryRolesResponse defaultInstance = new GetDictionaryRolesResponse();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        GetDictionaryRolesResponse.class, defaultInstance);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<GetDictionaryRolesResponse> PARSER;

    public static com.google.protobuf.Parser<GetDictionaryRolesResponse> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface VcDictionaryErrorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.VcDictionaryError)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Сервис
     * </pre>
     *
     * <code>string service = 1;</code>
     * @return The service.
     */
    java.lang.String getService();
    /**
     * <pre>
     * Сервис
     * </pre>
     *
     * <code>string service = 1;</code>
     * @return The bytes for service.
     */
    com.google.protobuf.ByteString
        getServiceBytes();

    /**
     * <pre>
     * Продукт
     * </pre>
     *
     * <code>string product = 2;</code>
     * @return The product.
     */
    java.lang.String getProduct();
    /**
     * <pre>
     * Продукт
     * </pre>
     *
     * <code>string product = 2;</code>
     * @return The bytes for product.
     */
    com.google.protobuf.ByteString
        getProductBytes();

    /**
     * <pre>
     * Сообщение
     * </pre>
     *
     * <code>string message = 3;</code>
     * @return The message.
     */
    java.lang.String getMessage();
    /**
     * <pre>
     * Сообщение
     * </pre>
     *
     * <code>string message = 3;</code>
     * @return The bytes for message.
     */
    com.google.protobuf.ByteString
        getMessageBytes();

    /**
     * <pre>
     * Причины
     * </pre>
     *
     * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
     */
    java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason> 
        getReasonsList();
    /**
     * <pre>
     * Причины
     * </pre>
     *
     * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
     */
    ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason getReasons(int index);
    /**
     * <pre>
     * Причины
     * </pre>
     *
     * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
     */
    int getReasonsCount();
  }
  /**
   * <pre>
   * Ошибка VCfront
   * </pre>
   *
   * Protobuf type {@code keyapis.vc.v1.VcDictionaryError}
   */
  public  static final class VcDictionaryError extends
      com.google.protobuf.GeneratedMessageLite<
          VcDictionaryError, VcDictionaryError.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.vc.v1.VcDictionaryError)
      VcDictionaryErrorOrBuilder {
    private VcDictionaryError() {
      service_ = "";
      product_ = "";
      message_ = "";
      reasons_ = emptyProtobufList();
    }
    public interface ReasonOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.VcDictionaryError.Reason)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <pre>
       * Сообщение
       * </pre>
       *
       * <code>string message = 1;</code>
       * @return The message.
       */
      java.lang.String getMessage();
      /**
       * <pre>
       * Сообщение
       * </pre>
       *
       * <code>string message = 1;</code>
       * @return The bytes for message.
       */
      com.google.protobuf.ByteString
          getMessageBytes();
    }
    /**
     * <pre>
     * Причина
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.VcDictionaryError.Reason}
     */
    public  static final class Reason extends
        com.google.protobuf.GeneratedMessageLite<
            Reason, Reason.Builder> implements
        // @@protoc_insertion_point(message_implements:keyapis.vc.v1.VcDictionaryError.Reason)
        ReasonOrBuilder {
      private Reason() {
        message_ = "";
      }
      public static final int MESSAGE_FIELD_NUMBER = 1;
      private java.lang.String message_;
      /**
       * <pre>
       * Сообщение
       * </pre>
       *
       * <code>string message = 1;</code>
       * @return The message.
       */
      @java.lang.Override
      public java.lang.String getMessage() {
        return message_;
      }
      /**
       * <pre>
       * Сообщение
       * </pre>
       *
       * <code>string message = 1;</code>
       * @return The bytes for message.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getMessageBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(message_);
      }
      /**
       * <pre>
       * Сообщение
       * </pre>
       *
       * <code>string message = 1;</code>
       * @param value The message to set.
       */
      private void setMessage(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
  
        message_ = value;
      }
      /**
       * <pre>
       * Сообщение
       * </pre>
       *
       * <code>string message = 1;</code>
       */
      private void clearMessage() {

        message_ = getDefaultInstance().getMessage();
      }
      /**
       * <pre>
       * Сообщение
       * </pre>
       *
       * <code>string message = 1;</code>
       * @param value The bytes for message to set.
       */
      private void setMessageBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        message_ = value.toStringUtf8();

      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Причина
       * </pre>
       *
       * Protobuf type {@code keyapis.vc.v1.VcDictionaryError.Reason}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.VcDictionaryError.Reason)
          ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.ReasonOrBuilder {
        // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }


        /**
         * <pre>
         * Сообщение
         * </pre>
         *
         * <code>string message = 1;</code>
         * @return The message.
         */
        @java.lang.Override
        public java.lang.String getMessage() {
          return instance.getMessage();
        }
        /**
         * <pre>
         * Сообщение
         * </pre>
         *
         * <code>string message = 1;</code>
         * @return The bytes for message.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getMessageBytes() {
          return instance.getMessageBytes();
        }
        /**
         * <pre>
         * Сообщение
         * </pre>
         *
         * <code>string message = 1;</code>
         * @param value The message to set.
         * @return This builder for chaining.
         */
        public Builder setMessage(
            java.lang.String value) {
          copyOnWrite();
          instance.setMessage(value);
          return this;
        }
        /**
         * <pre>
         * Сообщение
         * </pre>
         *
         * <code>string message = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearMessage() {
          copyOnWrite();
          instance.clearMessage();
          return this;
        }
        /**
         * <pre>
         * Сообщение
         * </pre>
         *
         * <code>string message = 1;</code>
         * @param value The bytes for message to set.
         * @return This builder for chaining.
         */
        public Builder setMessageBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setMessageBytes(value);
          return this;
        }

        // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.VcDictionaryError.Reason)
      }
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "message_",
              };
              java.lang.String info =
                  "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u0208";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason> parser = PARSER;
            if (parser == null) {
              synchronized (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }


      // @@protoc_insertion_point(class_scope:keyapis.vc.v1.VcDictionaryError.Reason)
      private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason DEFAULT_INSTANCE;
      static {
        Reason defaultInstance = new Reason();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Reason.class, defaultInstance);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static volatile com.google.protobuf.Parser<Reason> PARSER;

      public static com.google.protobuf.Parser<Reason> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }

    public static final int SERVICE_FIELD_NUMBER = 1;
    private java.lang.String service_;
    /**
     * <pre>
     * Сервис
     * </pre>
     *
     * <code>string service = 1;</code>
     * @return The service.
     */
    @java.lang.Override
    public java.lang.String getService() {
      return service_;
    }
    /**
     * <pre>
     * Сервис
     * </pre>
     *
     * <code>string service = 1;</code>
     * @return The bytes for service.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getServiceBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(service_);
    }
    /**
     * <pre>
     * Сервис
     * </pre>
     *
     * <code>string service = 1;</code>
     * @param value The service to set.
     */
    private void setService(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      service_ = value;
    }
    /**
     * <pre>
     * Сервис
     * </pre>
     *
     * <code>string service = 1;</code>
     */
    private void clearService() {

      service_ = getDefaultInstance().getService();
    }
    /**
     * <pre>
     * Сервис
     * </pre>
     *
     * <code>string service = 1;</code>
     * @param value The bytes for service to set.
     */
    private void setServiceBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      service_ = value.toStringUtf8();

    }

    public static final int PRODUCT_FIELD_NUMBER = 2;
    private java.lang.String product_;
    /**
     * <pre>
     * Продукт
     * </pre>
     *
     * <code>string product = 2;</code>
     * @return The product.
     */
    @java.lang.Override
    public java.lang.String getProduct() {
      return product_;
    }
    /**
     * <pre>
     * Продукт
     * </pre>
     *
     * <code>string product = 2;</code>
     * @return The bytes for product.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getProductBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(product_);
    }
    /**
     * <pre>
     * Продукт
     * </pre>
     *
     * <code>string product = 2;</code>
     * @param value The product to set.
     */
    private void setProduct(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      product_ = value;
    }
    /**
     * <pre>
     * Продукт
     * </pre>
     *
     * <code>string product = 2;</code>
     */
    private void clearProduct() {

      product_ = getDefaultInstance().getProduct();
    }
    /**
     * <pre>
     * Продукт
     * </pre>
     *
     * <code>string product = 2;</code>
     * @param value The bytes for product to set.
     */
    private void setProductBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      product_ = value.toStringUtf8();

    }

    public static final int MESSAGE_FIELD_NUMBER = 3;
    private java.lang.String message_;
    /**
     * <pre>
     * Сообщение
     * </pre>
     *
     * <code>string message = 3;</code>
     * @return The message.
     */
    @java.lang.Override
    public java.lang.String getMessage() {
      return message_;
    }
    /**
     * <pre>
     * Сообщение
     * </pre>
     *
     * <code>string message = 3;</code>
     * @return The bytes for message.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMessageBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(message_);
    }
    /**
     * <pre>
     * Сообщение
     * </pre>
     *
     * <code>string message = 3;</code>
     * @param value The message to set.
     */
    private void setMessage(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      message_ = value;
    }
    /**
     * <pre>
     * Сообщение
     * </pre>
     *
     * <code>string message = 3;</code>
     */
    private void clearMessage() {

      message_ = getDefaultInstance().getMessage();
    }
    /**
     * <pre>
     * Сообщение
     * </pre>
     *
     * <code>string message = 3;</code>
     * @param value The bytes for message to set.
     */
    private void setMessageBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      message_ = value.toStringUtf8();

    }

    public static final int REASONS_FIELD_NUMBER = 4;
    private com.google.protobuf.Internal.ProtobufList<ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason> reasons_;
    /**
     * <pre>
     * Причины
     * </pre>
     *
     * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
     */
    @java.lang.Override
    public java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason> getReasonsList() {
      return reasons_;
    }
    /**
     * <pre>
     * Причины
     * </pre>
     *
     * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
     */
    public java.util.List<? extends ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.ReasonOrBuilder> 
        getReasonsOrBuilderList() {
      return reasons_;
    }
    /**
     * <pre>
     * Причины
     * </pre>
     *
     * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
     */
    @java.lang.Override
    public int getReasonsCount() {
      return reasons_.size();
    }
    /**
     * <pre>
     * Причины
     * </pre>
     *
     * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
     */
    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason getReasons(int index) {
      return reasons_.get(index);
    }
    /**
     * <pre>
     * Причины
     * </pre>
     *
     * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
     */
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.ReasonOrBuilder getReasonsOrBuilder(
        int index) {
      return reasons_.get(index);
    }
    private void ensureReasonsIsMutable() {
      com.google.protobuf.Internal.ProtobufList<ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason> tmp = reasons_;
      if (!tmp.isModifiable()) {
        reasons_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <pre>
     * Причины
     * </pre>
     *
     * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
     */
    private void setReasons(
        int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason value) {
      value.getClass();
  ensureReasonsIsMutable();
      reasons_.set(index, value);
    }
    /**
     * <pre>
     * Причины
     * </pre>
     *
     * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
     */
    private void addReasons(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason value) {
      value.getClass();
  ensureReasonsIsMutable();
      reasons_.add(value);
    }
    /**
     * <pre>
     * Причины
     * </pre>
     *
     * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
     */
    private void addReasons(
        int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason value) {
      value.getClass();
  ensureReasonsIsMutable();
      reasons_.add(index, value);
    }
    /**
     * <pre>
     * Причины
     * </pre>
     *
     * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
     */
    private void addAllReasons(
        java.lang.Iterable<? extends ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason> values) {
      ensureReasonsIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, reasons_);
    }
    /**
     * <pre>
     * Причины
     * </pre>
     *
     * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
     */
    private void clearReasons() {
      reasons_ = emptyProtobufList();
    }
    /**
     * <pre>
     * Причины
     * </pre>
     *
     * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
     */
    private void removeReasons(int index) {
      ensureReasonsIsMutable();
      reasons_.remove(index);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Ошибка VCfront
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.VcDictionaryError}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.VcDictionaryError)
        ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryErrorOrBuilder {
      // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Сервис
       * </pre>
       *
       * <code>string service = 1;</code>
       * @return The service.
       */
      @java.lang.Override
      public java.lang.String getService() {
        return instance.getService();
      }
      /**
       * <pre>
       * Сервис
       * </pre>
       *
       * <code>string service = 1;</code>
       * @return The bytes for service.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getServiceBytes() {
        return instance.getServiceBytes();
      }
      /**
       * <pre>
       * Сервис
       * </pre>
       *
       * <code>string service = 1;</code>
       * @param value The service to set.
       * @return This builder for chaining.
       */
      public Builder setService(
          java.lang.String value) {
        copyOnWrite();
        instance.setService(value);
        return this;
      }
      /**
       * <pre>
       * Сервис
       * </pre>
       *
       * <code>string service = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearService() {
        copyOnWrite();
        instance.clearService();
        return this;
      }
      /**
       * <pre>
       * Сервис
       * </pre>
       *
       * <code>string service = 1;</code>
       * @param value The bytes for service to set.
       * @return This builder for chaining.
       */
      public Builder setServiceBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setServiceBytes(value);
        return this;
      }

      /**
       * <pre>
       * Продукт
       * </pre>
       *
       * <code>string product = 2;</code>
       * @return The product.
       */
      @java.lang.Override
      public java.lang.String getProduct() {
        return instance.getProduct();
      }
      /**
       * <pre>
       * Продукт
       * </pre>
       *
       * <code>string product = 2;</code>
       * @return The bytes for product.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getProductBytes() {
        return instance.getProductBytes();
      }
      /**
       * <pre>
       * Продукт
       * </pre>
       *
       * <code>string product = 2;</code>
       * @param value The product to set.
       * @return This builder for chaining.
       */
      public Builder setProduct(
          java.lang.String value) {
        copyOnWrite();
        instance.setProduct(value);
        return this;
      }
      /**
       * <pre>
       * Продукт
       * </pre>
       *
       * <code>string product = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearProduct() {
        copyOnWrite();
        instance.clearProduct();
        return this;
      }
      /**
       * <pre>
       * Продукт
       * </pre>
       *
       * <code>string product = 2;</code>
       * @param value The bytes for product to set.
       * @return This builder for chaining.
       */
      public Builder setProductBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setProductBytes(value);
        return this;
      }

      /**
       * <pre>
       * Сообщение
       * </pre>
       *
       * <code>string message = 3;</code>
       * @return The message.
       */
      @java.lang.Override
      public java.lang.String getMessage() {
        return instance.getMessage();
      }
      /**
       * <pre>
       * Сообщение
       * </pre>
       *
       * <code>string message = 3;</code>
       * @return The bytes for message.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getMessageBytes() {
        return instance.getMessageBytes();
      }
      /**
       * <pre>
       * Сообщение
       * </pre>
       *
       * <code>string message = 3;</code>
       * @param value The message to set.
       * @return This builder for chaining.
       */
      public Builder setMessage(
          java.lang.String value) {
        copyOnWrite();
        instance.setMessage(value);
        return this;
      }
      /**
       * <pre>
       * Сообщение
       * </pre>
       *
       * <code>string message = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearMessage() {
        copyOnWrite();
        instance.clearMessage();
        return this;
      }
      /**
       * <pre>
       * Сообщение
       * </pre>
       *
       * <code>string message = 3;</code>
       * @param value The bytes for message to set.
       * @return This builder for chaining.
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setMessageBytes(value);
        return this;
      }

      /**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      @java.lang.Override
      public java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason> getReasonsList() {
        return java.util.Collections.unmodifiableList(
            instance.getReasonsList());
      }
      /**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      @java.lang.Override
      public int getReasonsCount() {
        return instance.getReasonsCount();
      }/**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason getReasons(int index) {
        return instance.getReasons(index);
      }
      /**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      public Builder setReasons(
          int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason value) {
        copyOnWrite();
        instance.setReasons(index, value);
        return this;
      }
      /**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      public Builder setReasons(
          int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.Builder builderForValue) {
        copyOnWrite();
        instance.setReasons(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      public Builder addReasons(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason value) {
        copyOnWrite();
        instance.addReasons(value);
        return this;
      }
      /**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      public Builder addReasons(
          int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason value) {
        copyOnWrite();
        instance.addReasons(index, value);
        return this;
      }
      /**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      public Builder addReasons(
          ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.Builder builderForValue) {
        copyOnWrite();
        instance.addReasons(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      public Builder addReasons(
          int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.Builder builderForValue) {
        copyOnWrite();
        instance.addReasons(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      public Builder addAllReasons(
          java.lang.Iterable<? extends ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason> values) {
        copyOnWrite();
        instance.addAllReasons(values);
        return this;
      }
      /**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      public Builder clearReasons() {
        copyOnWrite();
        instance.clearReasons();
        return this;
      }
      /**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      public Builder removeReasons(int index) {
        copyOnWrite();
        instance.removeReasons(index);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.VcDictionaryError)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "service_",
              "product_",
              "message_",
              "reasons_",
              ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.class,
            };
            java.lang.String info =
                "\u0000\u0004\u0000\u0000\u0001\u0004\u0004\u0000\u0001\u0000\u0001\u0208\u0002\u0208" +
                "\u0003\u0208\u0004\u001b";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError> parser = PARSER;
          if (parser == null) {
            synchronized (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:keyapis.vc.v1.VcDictionaryError)
    private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError DEFAULT_INSTANCE;
    static {
      VcDictionaryError defaultInstance = new VcDictionaryError();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        VcDictionaryError.class, defaultInstance);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<VcDictionaryError> PARSER;

    public static com.google.protobuf.Parser<VcDictionaryError> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}
