// 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 static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface CategoryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.Category)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <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.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.vc.v1.Category)
      CategoryOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Category.newBuilder() to construct.
    private Category(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Category() {
      title_ = "";
      kind_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Category();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_Category_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_Category_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 1;
    private int id_ = 0;
    /**
     * <pre>
     * Идентификатор
     * </pre>
     *
     * <code>int32 id = 1;</code>
     * @return The id.
     */
    @java.lang.Override
    public int getId() {
      return id_;
    }

    public static final int TITLE_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object title_ = "";
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @return The title.
     */
    @java.lang.Override
    public java.lang.String getTitle() {
      java.lang.Object ref = title_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        title_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @return The bytes for title.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTitleBytes() {
      java.lang.Object ref = title_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        title_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int KIND_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object kind_ = "";
    /**
     * <pre>
     * Тип
     * </pre>
     *
     * <code>string kind = 3;</code>
     * @return The kind.
     */
    @java.lang.Override
    public java.lang.String getKind() {
      java.lang.Object ref = kind_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        kind_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Тип
     * </pre>
     *
     * <code>string kind = 3;</code>
     * @return The bytes for kind.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getKindBytes() {
      java.lang.Object ref = kind_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        kind_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (id_ != 0) {
        output.writeInt32(1, id_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, title_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kind_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, kind_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (id_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, id_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, title_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kind_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, kind_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.Category)) {
        return super.equals(obj);
      }
      ru.keyapis.vc.v1.KeyapisVcV1Proto.Category other = (ru.keyapis.vc.v1.KeyapisVcV1Proto.Category) obj;

      if (getId()
          != other.getId()) return false;
      if (!getTitle()
          .equals(other.getTitle())) return false;
      if (!getKind()
          .equals(other.getKind())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + getId();
      hash = (37 * hash) + TITLE_FIELD_NUMBER;
      hash = (53 * hash) + getTitle().hashCode();
      hash = (37 * hash) + KIND_FIELD_NUMBER;
      hash = (53 * hash) + getKind().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Category parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Category parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Category parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Category parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Category parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Category parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Category parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Category parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.Category prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Категория
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.Category}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.Category)
        ru.keyapis.vc.v1.KeyapisVcV1Proto.CategoryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_Category_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_Category_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.Builder.class);
      }

      // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        id_ = 0;
        title_ = "";
        kind_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_Category_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.Category getDefaultInstanceForType() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.Category build() {
        ru.keyapis.vc.v1.KeyapisVcV1Proto.Category result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.Category buildPartial() {
        ru.keyapis.vc.v1.KeyapisVcV1Proto.Category result = new ru.keyapis.vc.v1.KeyapisVcV1Proto.Category(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.vc.v1.KeyapisVcV1Proto.Category result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.id_ = id_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.title_ = title_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.kind_ = kind_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.Category) {
          return mergeFrom((ru.keyapis.vc.v1.KeyapisVcV1Proto.Category)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.vc.v1.KeyapisVcV1Proto.Category other) {
        if (other == ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.getDefaultInstance()) return this;
        if (other.getId() != 0) {
          setId(other.getId());
        }
        if (!other.getTitle().isEmpty()) {
          title_ = other.title_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getKind().isEmpty()) {
          kind_ = other.kind_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                id_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                title_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                kind_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      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.
       * @return This builder for chaining.
       */
      public Builder setId(int value) {

        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор
       * </pre>
       *
       * <code>int32 id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object title_ = "";
      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @return The title.
       */
      public java.lang.String getTitle() {
        java.lang.Object ref = title_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          title_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @return The bytes for title.
       */
      public com.google.protobuf.ByteString
          getTitleBytes() {
        java.lang.Object ref = title_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          title_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <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) {
        if (value == null) { throw new NullPointerException(); }
        title_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTitle() {
        title_ = getDefaultInstance().getTitle();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        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) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        title_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object kind_ = "";
      /**
       * <pre>
       * Тип
       * </pre>
       *
       * <code>string kind = 3;</code>
       * @return The kind.
       */
      public java.lang.String getKind() {
        java.lang.Object ref = kind_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          kind_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Тип
       * </pre>
       *
       * <code>string kind = 3;</code>
       * @return The bytes for kind.
       */
      public com.google.protobuf.ByteString
          getKindBytes() {
        java.lang.Object ref = kind_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          kind_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <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) {
        if (value == null) { throw new NullPointerException(); }
        kind_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Тип
       * </pre>
       *
       * <code>string kind = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearKind() {
        kind_ = getDefaultInstance().getKind();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        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) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        kind_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.Category)
    }

    // @@protoc_insertion_point(class_scope:keyapis.vc.v1.Category)
    private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.Category DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.vc.v1.KeyapisVcV1Proto.Category();
    }

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

    private static final com.google.protobuf.Parser<Category>
        PARSER = new com.google.protobuf.AbstractParser<Category>() {
      @java.lang.Override
      public Category parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

    @java.lang.Override
    public com.google.protobuf.Parser<Category> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.Category getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <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 from_at = 5;</code>
     */
    com.google.protobuf.TimestampOrBuilder getFromAtOrBuilder();

    /**
     * <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>
     * Дата действия до.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp to_at = 6;</code>
     */
    com.google.protobuf.TimestampOrBuilder getToAtOrBuilder();
  }
  /**
   * <pre>
   * Тариф
   * </pre>
   *
   * Protobuf type {@code keyapis.vc.v1.Tariff}
   */
  public static final class Tariff extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.vc.v1.Tariff)
      TariffOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Tariff.newBuilder() to construct.
    private Tariff(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Tariff() {
      title_ = "";
      slug_ = "";
      statusKind_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Tariff();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_Tariff_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_Tariff_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 1;
    private int id_ = 0;
    /**
     * <pre>
     * Идентификатор
     * </pre>
     *
     * <code>int32 id = 1;</code>
     * @return The id.
     */
    @java.lang.Override
    public int getId() {
      return id_;
    }

    public static final int TITLE_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object title_ = "";
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @return The title.
     */
    @java.lang.Override
    public java.lang.String getTitle() {
      java.lang.Object ref = title_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        title_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @return The bytes for title.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTitleBytes() {
      java.lang.Object ref = title_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        title_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SLUG_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object slug_ = "";
    /**
     * <pre>
     * Параметр slug
     * </pre>
     *
     * <code>string slug = 3;</code>
     * @return The slug.
     */
    @java.lang.Override
    public java.lang.String getSlug() {
      java.lang.Object ref = slug_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        slug_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Параметр slug
     * </pre>
     *
     * <code>string slug = 3;</code>
     * @return The bytes for slug.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSlugBytes() {
      java.lang.Object ref = slug_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        slug_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STATUS_KIND_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object statusKind_ = "";
    /**
     * <pre>
     * Тип статуса
     * </pre>
     *
     * <code>string status_kind = 4;</code>
     * @return The statusKind.
     */
    @java.lang.Override
    public java.lang.String getStatusKind() {
      java.lang.Object ref = statusKind_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        statusKind_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Тип статуса
     * </pre>
     *
     * <code>string status_kind = 4;</code>
     * @return The bytes for statusKind.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getStatusKindBytes() {
      java.lang.Object ref = statusKind_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        statusKind_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    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>
     * @return Whether the fromAt field is set.
     */
    @java.lang.Override
    public boolean hasFromAt() {
      return fromAt_ != null;
    }
    /**
     * <pre>
     * Дата действия от.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp from_at = 5;</code>
     * @return The fromAt.
     */
    @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>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getFromAtOrBuilder() {
      return fromAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : fromAt_;
    }

    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>
     * @return Whether the toAt field is set.
     */
    @java.lang.Override
    public boolean hasToAt() {
      return toAt_ != null;
    }
    /**
     * <pre>
     * Дата действия до.
     * # Тип: DateTime
     * </pre>
     *
     * <code>.google.protobuf.Timestamp to_at = 6;</code>
     * @return The toAt.
     */
    @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>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getToAtOrBuilder() {
      return toAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : toAt_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (id_ != 0) {
        output.writeInt32(1, id_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, title_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(slug_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, slug_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(statusKind_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, statusKind_);
      }
      if (fromAt_ != null) {
        output.writeMessage(5, getFromAt());
      }
      if (toAt_ != null) {
        output.writeMessage(6, getToAt());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (id_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, id_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, title_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(slug_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, slug_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(statusKind_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, statusKind_);
      }
      if (fromAt_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getFromAt());
      }
      if (toAt_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getToAt());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff)) {
        return super.equals(obj);
      }
      ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff other = (ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff) obj;

      if (getId()
          != other.getId()) return false;
      if (!getTitle()
          .equals(other.getTitle())) return false;
      if (!getSlug()
          .equals(other.getSlug())) return false;
      if (!getStatusKind()
          .equals(other.getStatusKind())) return false;
      if (hasFromAt() != other.hasFromAt()) return false;
      if (hasFromAt()) {
        if (!getFromAt()
            .equals(other.getFromAt())) return false;
      }
      if (hasToAt() != other.hasToAt()) return false;
      if (hasToAt()) {
        if (!getToAt()
            .equals(other.getToAt())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + getId();
      hash = (37 * hash) + TITLE_FIELD_NUMBER;
      hash = (53 * hash) + getTitle().hashCode();
      hash = (37 * hash) + SLUG_FIELD_NUMBER;
      hash = (53 * hash) + getSlug().hashCode();
      hash = (37 * hash) + STATUS_KIND_FIELD_NUMBER;
      hash = (53 * hash) + getStatusKind().hashCode();
      if (hasFromAt()) {
        hash = (37 * hash) + FROM_AT_FIELD_NUMBER;
        hash = (53 * hash) + getFromAt().hashCode();
      }
      if (hasToAt()) {
        hash = (37 * hash) + TO_AT_FIELD_NUMBER;
        hash = (53 * hash) + getToAt().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Тариф
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.Tariff}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.Tariff)
        ru.keyapis.vc.v1.KeyapisVcV1Proto.TariffOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_Tariff_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_Tariff_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.Builder.class);
      }

      // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        id_ = 0;
        title_ = "";
        slug_ = "";
        statusKind_ = "";
        fromAt_ = null;
        if (fromAtBuilder_ != null) {
          fromAtBuilder_.dispose();
          fromAtBuilder_ = null;
        }
        toAt_ = null;
        if (toAtBuilder_ != null) {
          toAtBuilder_.dispose();
          toAtBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_Tariff_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff getDefaultInstanceForType() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff build() {
        ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff buildPartial() {
        ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff result = new ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.id_ = id_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.title_ = title_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.slug_ = slug_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.statusKind_ = statusKind_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.fromAt_ = fromAtBuilder_ == null
              ? fromAt_
              : fromAtBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.toAt_ = toAtBuilder_ == null
              ? toAt_
              : toAtBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff) {
          return mergeFrom((ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff other) {
        if (other == ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.getDefaultInstance()) return this;
        if (other.getId() != 0) {
          setId(other.getId());
        }
        if (!other.getTitle().isEmpty()) {
          title_ = other.title_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getSlug().isEmpty()) {
          slug_ = other.slug_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.getStatusKind().isEmpty()) {
          statusKind_ = other.statusKind_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (other.hasFromAt()) {
          mergeFromAt(other.getFromAt());
        }
        if (other.hasToAt()) {
          mergeToAt(other.getToAt());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                id_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                title_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                slug_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                statusKind_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                input.readMessage(
                    getFromAtFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 50: {
                input.readMessage(
                    getToAtFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      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.
       * @return This builder for chaining.
       */
      public Builder setId(int value) {

        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор
       * </pre>
       *
       * <code>int32 id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object title_ = "";
      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @return The title.
       */
      public java.lang.String getTitle() {
        java.lang.Object ref = title_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          title_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @return The bytes for title.
       */
      public com.google.protobuf.ByteString
          getTitleBytes() {
        java.lang.Object ref = title_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          title_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <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) {
        if (value == null) { throw new NullPointerException(); }
        title_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTitle() {
        title_ = getDefaultInstance().getTitle();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        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) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        title_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object slug_ = "";
      /**
       * <pre>
       * Параметр slug
       * </pre>
       *
       * <code>string slug = 3;</code>
       * @return The slug.
       */
      public java.lang.String getSlug() {
        java.lang.Object ref = slug_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          slug_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Параметр slug
       * </pre>
       *
       * <code>string slug = 3;</code>
       * @return The bytes for slug.
       */
      public com.google.protobuf.ByteString
          getSlugBytes() {
        java.lang.Object ref = slug_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          slug_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <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) {
        if (value == null) { throw new NullPointerException(); }
        slug_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Параметр slug
       * </pre>
       *
       * <code>string slug = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearSlug() {
        slug_ = getDefaultInstance().getSlug();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        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) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        slug_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object statusKind_ = "";
      /**
       * <pre>
       * Тип статуса
       * </pre>
       *
       * <code>string status_kind = 4;</code>
       * @return The statusKind.
       */
      public java.lang.String getStatusKind() {
        java.lang.Object ref = statusKind_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          statusKind_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Тип статуса
       * </pre>
       *
       * <code>string status_kind = 4;</code>
       * @return The bytes for statusKind.
       */
      public com.google.protobuf.ByteString
          getStatusKindBytes() {
        java.lang.Object ref = statusKind_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          statusKind_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <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) {
        if (value == null) { throw new NullPointerException(); }
        statusKind_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Тип статуса
       * </pre>
       *
       * <code>string status_kind = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearStatusKind() {
        statusKind_ = getDefaultInstance().getStatusKind();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        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) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        statusKind_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp fromAt_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> fromAtBuilder_;
      /**
       * <pre>
       * Дата действия от.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp from_at = 5;</code>
       * @return Whether the fromAt field is set.
       */
      public boolean hasFromAt() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * Дата действия от.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp from_at = 5;</code>
       * @return The fromAt.
       */
      public com.google.protobuf.Timestamp getFromAt() {
        if (fromAtBuilder_ == null) {
          return fromAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : fromAt_;
        } else {
          return fromAtBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Дата действия от.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp from_at = 5;</code>
       */
      public Builder setFromAt(com.google.protobuf.Timestamp value) {
        if (fromAtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          fromAt_ = value;
        } else {
          fromAtBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата действия от.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp from_at = 5;</code>
       */
      public Builder setFromAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (fromAtBuilder_ == null) {
          fromAt_ = builderForValue.build();
        } else {
          fromAtBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата действия от.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp from_at = 5;</code>
       */
      public Builder mergeFromAt(com.google.protobuf.Timestamp value) {
        if (fromAtBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0) &&
            fromAt_ != null &&
            fromAt_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getFromAtBuilder().mergeFrom(value);
          } else {
            fromAt_ = value;
          }
        } else {
          fromAtBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата действия от.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp from_at = 5;</code>
       */
      public Builder clearFromAt() {
        bitField0_ = (bitField0_ & ~0x00000010);
        fromAt_ = null;
        if (fromAtBuilder_ != null) {
          fromAtBuilder_.dispose();
          fromAtBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата действия от.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp from_at = 5;</code>
       */
      public com.google.protobuf.Timestamp.Builder getFromAtBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getFromAtFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Дата действия от.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp from_at = 5;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getFromAtOrBuilder() {
        if (fromAtBuilder_ != null) {
          return fromAtBuilder_.getMessageOrBuilder();
        } else {
          return fromAt_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : fromAt_;
        }
      }
      /**
       * <pre>
       * Дата действия от.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp from_at = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          getFromAtFieldBuilder() {
        if (fromAtBuilder_ == null) {
          fromAtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getFromAt(),
                  getParentForChildren(),
                  isClean());
          fromAt_ = null;
        }
        return fromAtBuilder_;
      }

      private com.google.protobuf.Timestamp toAt_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> toAtBuilder_;
      /**
       * <pre>
       * Дата действия до.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp to_at = 6;</code>
       * @return Whether the toAt field is set.
       */
      public boolean hasToAt() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * Дата действия до.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp to_at = 6;</code>
       * @return The toAt.
       */
      public com.google.protobuf.Timestamp getToAt() {
        if (toAtBuilder_ == null) {
          return toAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : toAt_;
        } else {
          return toAtBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Дата действия до.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp to_at = 6;</code>
       */
      public Builder setToAt(com.google.protobuf.Timestamp value) {
        if (toAtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          toAt_ = value;
        } else {
          toAtBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата действия до.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp to_at = 6;</code>
       */
      public Builder setToAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (toAtBuilder_ == null) {
          toAt_ = builderForValue.build();
        } else {
          toAtBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата действия до.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp to_at = 6;</code>
       */
      public Builder mergeToAt(com.google.protobuf.Timestamp value) {
        if (toAtBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0) &&
            toAt_ != null &&
            toAt_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getToAtBuilder().mergeFrom(value);
          } else {
            toAt_ = value;
          }
        } else {
          toAtBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата действия до.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp to_at = 6;</code>
       */
      public Builder clearToAt() {
        bitField0_ = (bitField0_ & ~0x00000020);
        toAt_ = null;
        if (toAtBuilder_ != null) {
          toAtBuilder_.dispose();
          toAtBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Дата действия до.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp to_at = 6;</code>
       */
      public com.google.protobuf.Timestamp.Builder getToAtBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getToAtFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Дата действия до.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp to_at = 6;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getToAtOrBuilder() {
        if (toAtBuilder_ != null) {
          return toAtBuilder_.getMessageOrBuilder();
        } else {
          return toAt_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : toAt_;
        }
      }
      /**
       * <pre>
       * Дата действия до.
       * # Тип: DateTime
       * </pre>
       *
       * <code>.google.protobuf.Timestamp to_at = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          getToAtFieldBuilder() {
        if (toAtBuilder_ == null) {
          toAtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getToAt(),
                  getParentForChildren(),
                  isClean());
          toAt_ = null;
        }
        return toAtBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.Tariff)
    }

    // @@protoc_insertion_point(class_scope:keyapis.vc.v1.Tariff)
    private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff();
    }

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

    private static final com.google.protobuf.Parser<Tariff>
        PARSER = new com.google.protobuf.AbstractParser<Tariff>() {
      @java.lang.Override
      public Tariff parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

    @java.lang.Override
    public com.google.protobuf.Parser<Tariff> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <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 value to return.
     * @return The bytes of 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.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.vc.v1.Role)
      RoleOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Role.newBuilder() to construct.
    private Role(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Role() {
      title_ = "";
      permissions_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Role();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_Role_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_Role_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 1;
    private int id_ = 0;
    /**
     * <pre>
     * Идентификатор
     * </pre>
     *
     * <code>int32 id = 1;</code>
     * @return The id.
     */
    @java.lang.Override
    public int getId() {
      return id_;
    }

    public static final int TITLE_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object title_ = "";
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @return The title.
     */
    @java.lang.Override
    public java.lang.String getTitle() {
      java.lang.Object ref = title_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        title_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Наименование
     * </pre>
     *
     * <code>string title = 2;</code>
     * @return The bytes for title.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTitleBytes() {
      java.lang.Object ref = title_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        title_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PERMISSIONS_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList permissions_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * <pre>
     * Доступы
     * </pre>
     *
     * <code>repeated string permissions = 3;</code>
     * @return A list containing the permissions.
     */
    public com.google.protobuf.ProtocolStringList
        getPermissionsList() {
      return permissions_;
    }
    /**
     * <pre>
     * Доступы
     * </pre>
     *
     * <code>repeated string permissions = 3;</code>
     * @return The count of permissions.
     */
    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.
     */
    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.
     */
    public com.google.protobuf.ByteString
        getPermissionsBytes(int index) {
      return permissions_.getByteString(index);
    }

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

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (id_ != 0) {
        output.writeInt32(1, id_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, title_);
      }
      for (int i = 0; i < permissions_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, permissions_.getRaw(i));
      }
      if (isGlobal_ != false) {
        output.writeBool(4, isGlobal_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (id_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, id_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, title_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < permissions_.size(); i++) {
          dataSize += computeStringSizeNoTag(permissions_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getPermissionsList().size();
      }
      if (isGlobal_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, isGlobal_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.Role)) {
        return super.equals(obj);
      }
      ru.keyapis.vc.v1.KeyapisVcV1Proto.Role other = (ru.keyapis.vc.v1.KeyapisVcV1Proto.Role) obj;

      if (getId()
          != other.getId()) return false;
      if (!getTitle()
          .equals(other.getTitle())) return false;
      if (!getPermissionsList()
          .equals(other.getPermissionsList())) return false;
      if (getIsGlobal()
          != other.getIsGlobal()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + getId();
      hash = (37 * hash) + TITLE_FIELD_NUMBER;
      hash = (53 * hash) + getTitle().hashCode();
      if (getPermissionsCount() > 0) {
        hash = (37 * hash) + PERMISSIONS_FIELD_NUMBER;
        hash = (53 * hash) + getPermissionsList().hashCode();
      }
      hash = (37 * hash) + IS_GLOBAL_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsGlobal());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Role parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Role parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Role parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Role parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Role parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Role parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Role parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.Role parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.Role prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Роль
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.Role}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.Role)
        ru.keyapis.vc.v1.KeyapisVcV1Proto.RoleOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_Role_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_Role_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.Builder.class);
      }

      // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        id_ = 0;
        title_ = "";
        permissions_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        isGlobal_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_Role_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.Role getDefaultInstanceForType() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.Role build() {
        ru.keyapis.vc.v1.KeyapisVcV1Proto.Role result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.Role buildPartial() {
        ru.keyapis.vc.v1.KeyapisVcV1Proto.Role result = new ru.keyapis.vc.v1.KeyapisVcV1Proto.Role(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.vc.v1.KeyapisVcV1Proto.Role result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.id_ = id_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.title_ = title_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          permissions_.makeImmutable();
          result.permissions_ = permissions_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.isGlobal_ = isGlobal_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.Role) {
          return mergeFrom((ru.keyapis.vc.v1.KeyapisVcV1Proto.Role)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.vc.v1.KeyapisVcV1Proto.Role other) {
        if (other == ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.getDefaultInstance()) return this;
        if (other.getId() != 0) {
          setId(other.getId());
        }
        if (!other.getTitle().isEmpty()) {
          title_ = other.title_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.permissions_.isEmpty()) {
          if (permissions_.isEmpty()) {
            permissions_ = other.permissions_;
            bitField0_ |= 0x00000004;
          } else {
            ensurePermissionsIsMutable();
            permissions_.addAll(other.permissions_);
          }
          onChanged();
        }
        if (other.getIsGlobal() != false) {
          setIsGlobal(other.getIsGlobal());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                id_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                title_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                java.lang.String s = input.readStringRequireUtf8();
                ensurePermissionsIsMutable();
                permissions_.add(s);
                break;
              } // case 26
              case 32: {
                isGlobal_ = input.readBool();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      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.
       * @return This builder for chaining.
       */
      public Builder setId(int value) {

        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Идентификатор
       * </pre>
       *
       * <code>int32 id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object title_ = "";
      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @return The title.
       */
      public java.lang.String getTitle() {
        java.lang.Object ref = title_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          title_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @return The bytes for title.
       */
      public com.google.protobuf.ByteString
          getTitleBytes() {
        java.lang.Object ref = title_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          title_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <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) {
        if (value == null) { throw new NullPointerException(); }
        title_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Наименование
       * </pre>
       *
       * <code>string title = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTitle() {
        title_ = getDefaultInstance().getTitle();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        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) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        title_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList permissions_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensurePermissionsIsMutable() {
        if (!permissions_.isModifiable()) {
          permissions_ = new com.google.protobuf.LazyStringArrayList(permissions_);
        }
        bitField0_ |= 0x00000004;
      }
      /**
       * <pre>
       * Доступы
       * </pre>
       *
       * <code>repeated string permissions = 3;</code>
       * @return A list containing the permissions.
       */
      public com.google.protobuf.ProtocolStringList
          getPermissionsList() {
        permissions_.makeImmutable();
        return permissions_;
      }
      /**
       * <pre>
       * Доступы
       * </pre>
       *
       * <code>repeated string permissions = 3;</code>
       * @return The count of permissions.
       */
      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.
       */
      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.
       */
      public com.google.protobuf.ByteString
          getPermissionsBytes(int index) {
        return permissions_.getByteString(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) {
        if (value == null) { throw new NullPointerException(); }
        ensurePermissionsIsMutable();
        permissions_.set(index, value);
        bitField0_ |= 0x00000004;
        onChanged();
        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) {
        if (value == null) { throw new NullPointerException(); }
        ensurePermissionsIsMutable();
        permissions_.add(value);
        bitField0_ |= 0x00000004;
        onChanged();
        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) {
        ensurePermissionsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, permissions_);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Доступы
       * </pre>
       *
       * <code>repeated string permissions = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearPermissions() {
        permissions_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);;
        onChanged();
        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) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ensurePermissionsIsMutable();
        permissions_.add(value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      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.
       * @return This builder for chaining.
       */
      public Builder setIsGlobal(boolean value) {

        isGlobal_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Является ли роль глобальной
       * </pre>
       *
       * <code>bool is_global = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsGlobal() {
        bitField0_ = (bitField0_ & ~0x00000008);
        isGlobal_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.Role)
    }

    // @@protoc_insertion_point(class_scope:keyapis.vc.v1.Role)
    private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.Role DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.vc.v1.KeyapisVcV1Proto.Role();
    }

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

    private static final com.google.protobuf.Parser<Role>
        PARSER = new com.google.protobuf.AbstractParser<Role>() {
      @java.lang.Override
      public Role parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

    @java.lang.Override
    public com.google.protobuf.Parser<Role> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.Role getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GetDictionaryCategoriesRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.GetDictionaryCategoriesRequest)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   * Запрос на получение справочника категорий
   * </pre>
   *
   * Protobuf type {@code keyapis.vc.v1.GetDictionaryCategoriesRequest}
   */
  public static final class GetDictionaryCategoriesRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryCategoriesRequest)
      GetDictionaryCategoriesRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GetDictionaryCategoriesRequest.newBuilder() to construct.
    private GetDictionaryCategoriesRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GetDictionaryCategoriesRequest() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GetDictionaryCategoriesRequest();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryCategoriesRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryCategoriesRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest.Builder.class);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest)) {
        return super.equals(obj);
      }
      ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest other = (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Запрос на получение справочника категорий
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.GetDictionaryCategoriesRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryCategoriesRequest)
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryCategoriesRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryCategoriesRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest.Builder.class);
      }

      // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryCategoriesRequest_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest getDefaultInstanceForType() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest build() {
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest buildPartial() {
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest result = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest) {
          return mergeFrom((ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest other) {
        if (other == ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryCategoriesRequest)
    }

    // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryCategoriesRequest)
    private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest();
    }

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

    private static final com.google.protobuf.Parser<GetDictionaryCategoriesRequest>
        PARSER = new com.google.protobuf.AbstractParser<GetDictionaryCategoriesRequest>() {
      @java.lang.Override
      public GetDictionaryCategoriesRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

    @java.lang.Override
    public com.google.protobuf.Parser<GetDictionaryCategoriesRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <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.CameraCategories data = 1;</code>
     */
    ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategoriesOrBuilder getDataOrBuilder();

    /**
     * <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();
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
     */
    ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.ErrorOrBuilder getErrorOrBuilder();

    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.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryCategoriesResponse)
      GetDictionaryCategoriesResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GetDictionaryCategoriesResponse.newBuilder() to construct.
    private GetDictionaryCategoriesResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GetDictionaryCategoriesResponse() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GetDictionaryCategoriesResponse();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Builder.class);
    }

    public interface CameraCategoriesOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <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>
       *
       * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
       */
      java.util.List<? extends ru.keyapis.vc.v1.KeyapisVcV1Proto.CategoryOrBuilder> 
          getCategoryOrBuilderList();
      /**
       * <pre>
       * Категория
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
       */
      ru.keyapis.vc.v1.KeyapisVcV1Proto.CategoryOrBuilder getCategoryOrBuilder(
          int index);
    }
    /**
     * <pre>
     * Список категорий
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories}
     */
    public static final class CameraCategories extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories)
        CameraCategoriesOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use CameraCategories.newBuilder() to construct.
      private CameraCategories(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private CameraCategories() {
        category_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new CameraCategories();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_CameraCategories_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_CameraCategories_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.Builder.class);
      }

      public static final int CATEGORY_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private java.util.List<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>
       */
      @java.lang.Override
      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>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.CategoryOrBuilder getCategoryOrBuilder(
          int index) {
        return category_.get(index);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        for (int i = 0; i < category_.size(); i++) {
          output.writeMessage(1, category_.get(i));
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        for (int i = 0; i < category_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, category_.get(i));
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories)) {
          return super.equals(obj);
        }
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories other = (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories) obj;

        if (!getCategoryList()
            .equals(other.getCategoryList())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getCategoryCount() > 0) {
          hash = (37 * hash) + CATEGORY_FIELD_NUMBER;
          hash = (53 * hash) + getCategoryList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, 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.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, 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.GeneratedMessageV3
            .parseWithIOException(PARSER, 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.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Список категорий
       * </pre>
       *
       * Protobuf type {@code keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories)
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategoriesOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_CameraCategories_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_CameraCategories_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.Builder.class);
        }

        // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          if (categoryBuilder_ == null) {
            category_ = java.util.Collections.emptyList();
          } else {
            category_ = null;
            categoryBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_CameraCategories_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories getDefaultInstanceForType() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories build() {
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories buildPartial() {
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories result = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories(this);
          buildPartialRepeatedFields(result);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartialRepeatedFields(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories result) {
          if (categoryBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              category_ = java.util.Collections.unmodifiableList(category_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.category_ = category_;
          } else {
            result.category_ = categoryBuilder_.build();
          }
        }

        private void buildPartial0(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories result) {
          int from_bitField0_ = bitField0_;
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories) {
            return mergeFrom((ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories other) {
          if (other == ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.getDefaultInstance()) return this;
          if (categoryBuilder_ == null) {
            if (!other.category_.isEmpty()) {
              if (category_.isEmpty()) {
                category_ = other.category_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureCategoryIsMutable();
                category_.addAll(other.category_);
              }
              onChanged();
            }
          } else {
            if (!other.category_.isEmpty()) {
              if (categoryBuilder_.isEmpty()) {
                categoryBuilder_.dispose();
                categoryBuilder_ = null;
                category_ = other.category_;
                bitField0_ = (bitField0_ & ~0x00000001);
                categoryBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getCategoryFieldBuilder() : null;
              } else {
                categoryBuilder_.addAllMessages(other.category_);
              }
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  ru.keyapis.vc.v1.KeyapisVcV1Proto.Category m =
                      input.readMessage(
                          ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.parser(),
                          extensionRegistry);
                  if (categoryBuilder_ == null) {
                    ensureCategoryIsMutable();
                    category_.add(m);
                  } else {
                    categoryBuilder_.addMessage(m);
                  }
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.Category> category_ =
          java.util.Collections.emptyList();
        private void ensureCategoryIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            category_ = new java.util.ArrayList<ru.keyapis.vc.v1.KeyapisVcV1Proto.Category>(category_);
            bitField0_ |= 0x00000001;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            ru.keyapis.vc.v1.KeyapisVcV1Proto.Category, ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.CategoryOrBuilder> categoryBuilder_;

        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        public java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.Category> getCategoryList() {
          if (categoryBuilder_ == null) {
            return java.util.Collections.unmodifiableList(category_);
          } else {
            return categoryBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        public int getCategoryCount() {
          if (categoryBuilder_ == null) {
            return category_.size();
          } else {
            return categoryBuilder_.getCount();
          }
        }
        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.Category getCategory(int index) {
          if (categoryBuilder_ == null) {
            return category_.get(index);
          } else {
            return categoryBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        public Builder setCategory(
            int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Category value) {
          if (categoryBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureCategoryIsMutable();
            category_.set(index, value);
            onChanged();
          } else {
            categoryBuilder_.setMessage(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) {
          if (categoryBuilder_ == null) {
            ensureCategoryIsMutable();
            category_.set(index, builderForValue.build());
            onChanged();
          } else {
            categoryBuilder_.setMessage(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) {
          if (categoryBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureCategoryIsMutable();
            category_.add(value);
            onChanged();
          } else {
            categoryBuilder_.addMessage(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) {
          if (categoryBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureCategoryIsMutable();
            category_.add(index, value);
            onChanged();
          } else {
            categoryBuilder_.addMessage(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) {
          if (categoryBuilder_ == null) {
            ensureCategoryIsMutable();
            category_.add(builderForValue.build());
            onChanged();
          } else {
            categoryBuilder_.addMessage(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) {
          if (categoryBuilder_ == null) {
            ensureCategoryIsMutable();
            category_.add(index, builderForValue.build());
            onChanged();
          } else {
            categoryBuilder_.addMessage(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) {
          if (categoryBuilder_ == null) {
            ensureCategoryIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, category_);
            onChanged();
          } else {
            categoryBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        public Builder clearCategory() {
          if (categoryBuilder_ == null) {
            category_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            categoryBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        public Builder removeCategory(int index) {
          if (categoryBuilder_ == null) {
            ensureCategoryIsMutable();
            category_.remove(index);
            onChanged();
          } else {
            categoryBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.Builder getCategoryBuilder(
            int index) {
          return getCategoryFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.CategoryOrBuilder getCategoryOrBuilder(
            int index) {
          if (categoryBuilder_ == null) {
            return category_.get(index);  } else {
            return categoryBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        public java.util.List<? extends ru.keyapis.vc.v1.KeyapisVcV1Proto.CategoryOrBuilder> 
             getCategoryOrBuilderList() {
          if (categoryBuilder_ != null) {
            return categoryBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(category_);
          }
        }
        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.Builder addCategoryBuilder() {
          return getCategoryFieldBuilder().addBuilder(
              ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.getDefaultInstance());
        }
        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.Builder addCategoryBuilder(
            int index) {
          return getCategoryFieldBuilder().addBuilder(
              index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.getDefaultInstance());
        }
        /**
         * <pre>
         * Категория
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Category category = 1;</code>
         */
        public java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.Builder> 
             getCategoryBuilderList() {
          return getCategoryFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            ru.keyapis.vc.v1.KeyapisVcV1Proto.Category, ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.CategoryOrBuilder> 
            getCategoryFieldBuilder() {
          if (categoryBuilder_ == null) {
            categoryBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                ru.keyapis.vc.v1.KeyapisVcV1Proto.Category, ru.keyapis.vc.v1.KeyapisVcV1Proto.Category.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.CategoryOrBuilder>(
                    category_,
                    ((bitField0_ & 0x00000001) != 0),
                    getParentForChildren(),
                    isClean());
            category_ = null;
          }
          return categoryBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories)
      }

      // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories)
      private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories();
      }

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

      private static final com.google.protobuf.Parser<CameraCategories>
          PARSER = new com.google.protobuf.AbstractParser<CameraCategories>() {
        @java.lang.Override
        public CameraCategories parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

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

      @java.lang.Override
      public com.google.protobuf.Parser<CameraCategories> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <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();
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       */
      ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryErrorOrBuilder getVcDictionaryErrorOrBuilder();

      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.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryCategoriesResponse.Error)
        ErrorOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Error.newBuilder() to construct.
      private Error(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Error() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Error();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_Error_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_Error_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.Builder.class);
      }

      private int reasonCase_ = 0;
      @SuppressWarnings("serial")
      private java.lang.Object reason_;
      public enum ReasonCase
          implements com.google.protobuf.Internal.EnumLite,
              com.google.protobuf.AbstractMessage.InternalOneOfEnum {
        VC_DICTIONARY_ERROR(1),
        REASON_NOT_SET(0);
        private final int value;
        private ReasonCase(int value) {
          this.value = value;
        }
        /**
         * @param value The number of the enum to look for.
         * @return The enum associated with the given number.
         * @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;
        }
      };

      public ReasonCase
      getReasonCase() {
        return ReasonCase.forNumber(
            reasonCase_);
      }

      public static final int VC_DICTIONARY_ERROR_FIELD_NUMBER = 1;
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       * @return Whether the vcDictionaryError field is set.
       */
      @java.lang.Override
      public boolean hasVcDictionaryError() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       * @return The vcDictionaryError.
       */
      @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>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryErrorOrBuilder getVcDictionaryErrorOrBuilder() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) reason_;
        }
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.getDefaultInstance();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (reasonCase_ == 1) {
          output.writeMessage(1, (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) reason_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (reasonCase_ == 1) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) reason_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error)) {
          return super.equals(obj);
        }
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error other = (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error) obj;

        if (!getReasonCase().equals(other.getReasonCase())) return false;
        switch (reasonCase_) {
          case 1:
            if (!getVcDictionaryError()
                .equals(other.getVcDictionaryError())) return false;
            break;
          case 0:
          default:
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        switch (reasonCase_) {
          case 1:
            hash = (37 * hash) + VC_DICTIONARY_ERROR_FIELD_NUMBER;
            hash = (53 * hash) + getVcDictionaryError().hashCode();
            break;
          case 0:
          default:
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, 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.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, 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.GeneratedMessageV3
            .parseWithIOException(PARSER, 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.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Ошибка запроса
       * </pre>
       *
       * Protobuf type {@code keyapis.vc.v1.GetDictionaryCategoriesResponse.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryCategoriesResponse.Error)
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.ErrorOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_Error_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_Error_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.Builder.class);
        }

        // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          if (vcDictionaryErrorBuilder_ != null) {
            vcDictionaryErrorBuilder_.clear();
          }
          reasonCase_ = 0;
          reason_ = null;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_Error_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error getDefaultInstanceForType() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error build() {
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error buildPartial() {
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error result = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          buildPartialOneofs(result);
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error result) {
          int from_bitField0_ = bitField0_;
        }

        private void buildPartialOneofs(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error result) {
          result.reasonCase_ = reasonCase_;
          result.reason_ = this.reason_;
          if (reasonCase_ == 1 &&
              vcDictionaryErrorBuilder_ != null) {
            result.reason_ = vcDictionaryErrorBuilder_.build();
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error) {
            return mergeFrom((ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error other) {
          if (other == ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.getDefaultInstance()) return this;
          switch (other.getReasonCase()) {
            case VC_DICTIONARY_ERROR: {
              mergeVcDictionaryError(other.getVcDictionaryError());
              break;
            }
            case REASON_NOT_SET: {
              break;
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getVcDictionaryErrorFieldBuilder().getBuilder(),
                      extensionRegistry);
                  reasonCase_ = 1;
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int reasonCase_ = 0;
        private java.lang.Object reason_;
        public ReasonCase
            getReasonCase() {
          return ReasonCase.forNumber(
              reasonCase_);
        }

        public Builder clearReason() {
          reasonCase_ = 0;
          reason_ = null;
          onChanged();
          return this;
        }

        private int bitField0_;

        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryErrorOrBuilder> vcDictionaryErrorBuilder_;
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         * @return Whether the vcDictionaryError field is set.
         */
        @java.lang.Override
        public boolean hasVcDictionaryError() {
          return reasonCase_ == 1;
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         * @return The vcDictionaryError.
         */
        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError getVcDictionaryError() {
          if (vcDictionaryErrorBuilder_ == null) {
            if (reasonCase_ == 1) {
              return (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) reason_;
            }
            return ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.getDefaultInstance();
          } else {
            if (reasonCase_ == 1) {
              return vcDictionaryErrorBuilder_.getMessage();
            }
            return ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        public Builder setVcDictionaryError(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError value) {
          if (vcDictionaryErrorBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            reason_ = value;
            onChanged();
          } else {
            vcDictionaryErrorBuilder_.setMessage(value);
          }
          reasonCase_ = 1;
          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) {
          if (vcDictionaryErrorBuilder_ == null) {
            reason_ = builderForValue.build();
            onChanged();
          } else {
            vcDictionaryErrorBuilder_.setMessage(builderForValue.build());
          }
          reasonCase_ = 1;
          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) {
          if (vcDictionaryErrorBuilder_ == null) {
            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;
            }
            onChanged();
          } else {
            if (reasonCase_ == 1) {
              vcDictionaryErrorBuilder_.mergeFrom(value);
            } else {
              vcDictionaryErrorBuilder_.setMessage(value);
            }
          }
          reasonCase_ = 1;
          return this;
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        public Builder clearVcDictionaryError() {
          if (vcDictionaryErrorBuilder_ == null) {
            if (reasonCase_ == 1) {
              reasonCase_ = 0;
              reason_ = null;
              onChanged();
            }
          } else {
            if (reasonCase_ == 1) {
              reasonCase_ = 0;
              reason_ = null;
            }
            vcDictionaryErrorBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Builder getVcDictionaryErrorBuilder() {
          return getVcDictionaryErrorFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryErrorOrBuilder getVcDictionaryErrorOrBuilder() {
          if ((reasonCase_ == 1) && (vcDictionaryErrorBuilder_ != null)) {
            return vcDictionaryErrorBuilder_.getMessageOrBuilder();
          } else {
            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 com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryErrorOrBuilder> 
            getVcDictionaryErrorFieldBuilder() {
          if (vcDictionaryErrorBuilder_ == null) {
            if (!(reasonCase_ == 1)) {
              reason_ = ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.getDefaultInstance();
            }
            vcDictionaryErrorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryErrorOrBuilder>(
                    (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) reason_,
                    getParentForChildren(),
                    isClean());
            reason_ = null;
          }
          reasonCase_ = 1;
          onChanged();
          return vcDictionaryErrorBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryCategoriesResponse.Error)
      }

      // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryCategoriesResponse.Error)
      private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error();
      }

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

      private static final com.google.protobuf.Parser<Error>
          PARSER = new com.google.protobuf.AbstractParser<Error>() {
        @java.lang.Override
        public Error parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

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

      @java.lang.Override
      public com.google.protobuf.Parser<Error> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int typeCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object type_;
    public enum TypeCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      DATA(1),
      ERROR(2),
      TYPE_NOT_SET(0);
      private final int value;
      private TypeCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @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;
      }
    };

    public TypeCase
    getTypeCase() {
      return TypeCase.forNumber(
          typeCase_);
    }

    public static final int DATA_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Список категорий
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
     * @return Whether the data field is set.
     */
    @java.lang.Override
    public boolean hasData() {
      return typeCase_ == 1;
    }
    /**
     * <pre>
     * Список категорий
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
     * @return The data.
     */
    @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>
     */
    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategoriesOrBuilder getDataOrBuilder() {
      if (typeCase_ == 1) {
         return (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories) type_;
      }
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.getDefaultInstance();
    }

    public static final int ERROR_FIELD_NUMBER = 2;
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
     * @return Whether the error field is set.
     */
    @java.lang.Override
    public boolean hasError() {
      return typeCase_ == 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
     * @return The error.
     */
    @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>
     */
    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.ErrorOrBuilder getErrorOrBuilder() {
      if (typeCase_ == 2) {
         return (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error) type_;
      }
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (typeCase_ == 1) {
        output.writeMessage(1, (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories) type_);
      }
      if (typeCase_ == 2) {
        output.writeMessage(2, (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error) type_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (typeCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories) type_);
      }
      if (typeCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error) type_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse)) {
        return super.equals(obj);
      }
      ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse other = (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse) obj;

      if (!getTypeCase().equals(other.getTypeCase())) return false;
      switch (typeCase_) {
        case 1:
          if (!getData()
              .equals(other.getData())) return false;
          break;
        case 2:
          if (!getError()
              .equals(other.getError())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      switch (typeCase_) {
        case 1:
          hash = (37 * hash) + DATA_FIELD_NUMBER;
          hash = (53 * hash) + getData().hashCode();
          break;
        case 2:
          hash = (37 * hash) + ERROR_FIELD_NUMBER;
          hash = (53 * hash) + getError().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Ответ на запрос получения справочника категорий
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.GetDictionaryCategoriesResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryCategoriesResponse)
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Builder.class);
      }

      // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (dataBuilder_ != null) {
          dataBuilder_.clear();
        }
        if (errorBuilder_ != null) {
          errorBuilder_.clear();
        }
        typeCase_ = 0;
        type_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse getDefaultInstanceForType() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse build() {
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse buildPartial() {
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse result = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse result) {
        int from_bitField0_ = bitField0_;
      }

      private void buildPartialOneofs(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse result) {
        result.typeCase_ = typeCase_;
        result.type_ = this.type_;
        if (typeCase_ == 1 &&
            dataBuilder_ != null) {
          result.type_ = dataBuilder_.build();
        }
        if (typeCase_ == 2 &&
            errorBuilder_ != null) {
          result.type_ = errorBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse) {
          return mergeFrom((ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse other) {
        if (other == ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.getDefaultInstance()) return this;
        switch (other.getTypeCase()) {
          case DATA: {
            mergeData(other.getData());
            break;
          }
          case ERROR: {
            mergeError(other.getError());
            break;
          }
          case TYPE_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getDataFieldBuilder().getBuilder(),
                    extensionRegistry);
                typeCase_ = 1;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getErrorFieldBuilder().getBuilder(),
                    extensionRegistry);
                typeCase_ = 2;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int typeCase_ = 0;
      private java.lang.Object type_;
      public TypeCase
          getTypeCase() {
        return TypeCase.forNumber(
            typeCase_);
      }

      public Builder clearType() {
        typeCase_ = 0;
        type_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategoriesOrBuilder> dataBuilder_;
      /**
       * <pre>
       * Список категорий
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
       * @return Whether the data field is set.
       */
      @java.lang.Override
      public boolean hasData() {
        return typeCase_ == 1;
      }
      /**
       * <pre>
       * Список категорий
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
       * @return The data.
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories getData() {
        if (dataBuilder_ == null) {
          if (typeCase_ == 1) {
            return (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories) type_;
          }
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.getDefaultInstance();
        } else {
          if (typeCase_ == 1) {
            return dataBuilder_.getMessage();
          }
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Список категорий
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
       */
      public Builder setData(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories value) {
        if (dataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          type_ = value;
          onChanged();
        } else {
          dataBuilder_.setMessage(value);
        }
        typeCase_ = 1;
        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) {
        if (dataBuilder_ == null) {
          type_ = builderForValue.build();
          onChanged();
        } else {
          dataBuilder_.setMessage(builderForValue.build());
        }
        typeCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Список категорий
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
       */
      public Builder mergeData(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories value) {
        if (dataBuilder_ == null) {
          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;
          }
          onChanged();
        } else {
          if (typeCase_ == 1) {
            dataBuilder_.mergeFrom(value);
          } else {
            dataBuilder_.setMessage(value);
          }
        }
        typeCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Список категорий
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
       */
      public Builder clearData() {
        if (dataBuilder_ == null) {
          if (typeCase_ == 1) {
            typeCase_ = 0;
            type_ = null;
            onChanged();
          }
        } else {
          if (typeCase_ == 1) {
            typeCase_ = 0;
            type_ = null;
          }
          dataBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Список категорий
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
       */
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.Builder getDataBuilder() {
        return getDataFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Список категорий
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.CameraCategories data = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategoriesOrBuilder getDataOrBuilder() {
        if ((typeCase_ == 1) && (dataBuilder_ != null)) {
          return dataBuilder_.getMessageOrBuilder();
        } else {
          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 com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategoriesOrBuilder> 
          getDataFieldBuilder() {
        if (dataBuilder_ == null) {
          if (!(typeCase_ == 1)) {
            type_ = ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.getDefaultInstance();
          }
          dataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategoriesOrBuilder>(
                  (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.CameraCategories) type_,
                  getParentForChildren(),
                  isClean());
          type_ = null;
        }
        typeCase_ = 1;
        onChanged();
        return dataBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.ErrorOrBuilder> errorBuilder_;
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
       * @return Whether the error field is set.
       */
      @java.lang.Override
      public boolean hasError() {
        return typeCase_ == 2;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
       * @return The error.
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error getError() {
        if (errorBuilder_ == null) {
          if (typeCase_ == 2) {
            return (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error) type_;
          }
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.getDefaultInstance();
        } else {
          if (typeCase_ == 2) {
            return errorBuilder_.getMessage();
          }
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
       */
      public Builder setError(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error value) {
        if (errorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          type_ = value;
          onChanged();
        } else {
          errorBuilder_.setMessage(value);
        }
        typeCase_ = 2;
        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) {
        if (errorBuilder_ == null) {
          type_ = builderForValue.build();
          onChanged();
        } else {
          errorBuilder_.setMessage(builderForValue.build());
        }
        typeCase_ = 2;
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
       */
      public Builder mergeError(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error value) {
        if (errorBuilder_ == null) {
          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;
          }
          onChanged();
        } else {
          if (typeCase_ == 2) {
            errorBuilder_.mergeFrom(value);
          } else {
            errorBuilder_.setMessage(value);
          }
        }
        typeCase_ = 2;
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
       */
      public Builder clearError() {
        if (errorBuilder_ == null) {
          if (typeCase_ == 2) {
            typeCase_ = 0;
            type_ = null;
            onChanged();
          }
        } else {
          if (typeCase_ == 2) {
            typeCase_ = 0;
            type_ = null;
          }
          errorBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
       */
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.Builder getErrorBuilder() {
        return getErrorFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryCategoriesResponse.Error error = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.ErrorOrBuilder getErrorOrBuilder() {
        if ((typeCase_ == 2) && (errorBuilder_ != null)) {
          return errorBuilder_.getMessageOrBuilder();
        } else {
          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 com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.ErrorOrBuilder> 
          getErrorFieldBuilder() {
        if (errorBuilder_ == null) {
          if (!(typeCase_ == 2)) {
            type_ = ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.getDefaultInstance();
          }
          errorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.ErrorOrBuilder>(
                  (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse.Error) type_,
                  getParentForChildren(),
                  isClean());
          type_ = null;
        }
        typeCase_ = 2;
        onChanged();
        return errorBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryCategoriesResponse)
    }

    // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryCategoriesResponse)
    private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse();
    }

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

    private static final com.google.protobuf.Parser<GetDictionaryCategoriesResponse>
        PARSER = new com.google.protobuf.AbstractParser<GetDictionaryCategoriesResponse>() {
      @java.lang.Override
      public GetDictionaryCategoriesResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

    @java.lang.Override
    public com.google.protobuf.Parser<GetDictionaryCategoriesResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryCategoriesResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GetDictionaryTariffsRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.GetDictionaryTariffsRequest)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   * Запрос на получение справочника тарифов
   * </pre>
   *
   * Protobuf type {@code keyapis.vc.v1.GetDictionaryTariffsRequest}
   */
  public static final class GetDictionaryTariffsRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryTariffsRequest)
      GetDictionaryTariffsRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GetDictionaryTariffsRequest.newBuilder() to construct.
    private GetDictionaryTariffsRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GetDictionaryTariffsRequest() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GetDictionaryTariffsRequest();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryTariffsRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryTariffsRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest.Builder.class);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest)) {
        return super.equals(obj);
      }
      ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest other = (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Запрос на получение справочника тарифов
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.GetDictionaryTariffsRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryTariffsRequest)
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryTariffsRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryTariffsRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest.Builder.class);
      }

      // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryTariffsRequest_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest getDefaultInstanceForType() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest build() {
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest buildPartial() {
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest result = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest) {
          return mergeFrom((ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest other) {
        if (other == ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryTariffsRequest)
    }

    // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryTariffsRequest)
    private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest();
    }

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

    private static final com.google.protobuf.Parser<GetDictionaryTariffsRequest>
        PARSER = new com.google.protobuf.AbstractParser<GetDictionaryTariffsRequest>() {
      @java.lang.Override
      public GetDictionaryTariffsRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

    @java.lang.Override
    public com.google.protobuf.Parser<GetDictionaryTariffsRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <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.CameraTariffs data = 1;</code>
     */
    ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffsOrBuilder getDataOrBuilder();

    /**
     * <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();
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
     */
    ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.ErrorOrBuilder getErrorOrBuilder();

    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.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryTariffsResponse)
      GetDictionaryTariffsResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GetDictionaryTariffsResponse.newBuilder() to construct.
    private GetDictionaryTariffsResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GetDictionaryTariffsResponse() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GetDictionaryTariffsResponse();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Builder.class);
    }

    public interface CameraTariffsOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <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>
       *
       * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
       */
      java.util.List<? extends ru.keyapis.vc.v1.KeyapisVcV1Proto.TariffOrBuilder> 
          getTariffOrBuilderList();
      /**
       * <pre>
       * Тариф
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
       */
      ru.keyapis.vc.v1.KeyapisVcV1Proto.TariffOrBuilder getTariffOrBuilder(
          int index);
    }
    /**
     * <pre>
     * Список тарифов
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs}
     */
    public static final class CameraTariffs extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs)
        CameraTariffsOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use CameraTariffs.newBuilder() to construct.
      private CameraTariffs(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private CameraTariffs() {
        tariff_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new CameraTariffs();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_CameraTariffs_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_CameraTariffs_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.Builder.class);
      }

      public static final int TARIFF_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private java.util.List<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>
       */
      @java.lang.Override
      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>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.TariffOrBuilder getTariffOrBuilder(
          int index) {
        return tariff_.get(index);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        for (int i = 0; i < tariff_.size(); i++) {
          output.writeMessage(1, tariff_.get(i));
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        for (int i = 0; i < tariff_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, tariff_.get(i));
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs)) {
          return super.equals(obj);
        }
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs other = (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs) obj;

        if (!getTariffList()
            .equals(other.getTariffList())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getTariffCount() > 0) {
          hash = (37 * hash) + TARIFF_FIELD_NUMBER;
          hash = (53 * hash) + getTariffList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, 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.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, 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.GeneratedMessageV3
            .parseWithIOException(PARSER, 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.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Список тарифов
       * </pre>
       *
       * Protobuf type {@code keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs)
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffsOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_CameraTariffs_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_CameraTariffs_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.Builder.class);
        }

        // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          if (tariffBuilder_ == null) {
            tariff_ = java.util.Collections.emptyList();
          } else {
            tariff_ = null;
            tariffBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_CameraTariffs_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs getDefaultInstanceForType() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs build() {
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs buildPartial() {
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs result = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs(this);
          buildPartialRepeatedFields(result);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartialRepeatedFields(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs result) {
          if (tariffBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              tariff_ = java.util.Collections.unmodifiableList(tariff_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.tariff_ = tariff_;
          } else {
            result.tariff_ = tariffBuilder_.build();
          }
        }

        private void buildPartial0(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs result) {
          int from_bitField0_ = bitField0_;
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs) {
            return mergeFrom((ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs other) {
          if (other == ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.getDefaultInstance()) return this;
          if (tariffBuilder_ == null) {
            if (!other.tariff_.isEmpty()) {
              if (tariff_.isEmpty()) {
                tariff_ = other.tariff_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureTariffIsMutable();
                tariff_.addAll(other.tariff_);
              }
              onChanged();
            }
          } else {
            if (!other.tariff_.isEmpty()) {
              if (tariffBuilder_.isEmpty()) {
                tariffBuilder_.dispose();
                tariffBuilder_ = null;
                tariff_ = other.tariff_;
                bitField0_ = (bitField0_ & ~0x00000001);
                tariffBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getTariffFieldBuilder() : null;
              } else {
                tariffBuilder_.addAllMessages(other.tariff_);
              }
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff m =
                      input.readMessage(
                          ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.parser(),
                          extensionRegistry);
                  if (tariffBuilder_ == null) {
                    ensureTariffIsMutable();
                    tariff_.add(m);
                  } else {
                    tariffBuilder_.addMessage(m);
                  }
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff> tariff_ =
          java.util.Collections.emptyList();
        private void ensureTariffIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            tariff_ = new java.util.ArrayList<ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff>(tariff_);
            bitField0_ |= 0x00000001;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff, ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.TariffOrBuilder> tariffBuilder_;

        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        public java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff> getTariffList() {
          if (tariffBuilder_ == null) {
            return java.util.Collections.unmodifiableList(tariff_);
          } else {
            return tariffBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        public int getTariffCount() {
          if (tariffBuilder_ == null) {
            return tariff_.size();
          } else {
            return tariffBuilder_.getCount();
          }
        }
        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff getTariff(int index) {
          if (tariffBuilder_ == null) {
            return tariff_.get(index);
          } else {
            return tariffBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        public Builder setTariff(
            int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff value) {
          if (tariffBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureTariffIsMutable();
            tariff_.set(index, value);
            onChanged();
          } else {
            tariffBuilder_.setMessage(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) {
          if (tariffBuilder_ == null) {
            ensureTariffIsMutable();
            tariff_.set(index, builderForValue.build());
            onChanged();
          } else {
            tariffBuilder_.setMessage(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) {
          if (tariffBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureTariffIsMutable();
            tariff_.add(value);
            onChanged();
          } else {
            tariffBuilder_.addMessage(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) {
          if (tariffBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureTariffIsMutable();
            tariff_.add(index, value);
            onChanged();
          } else {
            tariffBuilder_.addMessage(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) {
          if (tariffBuilder_ == null) {
            ensureTariffIsMutable();
            tariff_.add(builderForValue.build());
            onChanged();
          } else {
            tariffBuilder_.addMessage(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) {
          if (tariffBuilder_ == null) {
            ensureTariffIsMutable();
            tariff_.add(index, builderForValue.build());
            onChanged();
          } else {
            tariffBuilder_.addMessage(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) {
          if (tariffBuilder_ == null) {
            ensureTariffIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, tariff_);
            onChanged();
          } else {
            tariffBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        public Builder clearTariff() {
          if (tariffBuilder_ == null) {
            tariff_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            tariffBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        public Builder removeTariff(int index) {
          if (tariffBuilder_ == null) {
            ensureTariffIsMutable();
            tariff_.remove(index);
            onChanged();
          } else {
            tariffBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.Builder getTariffBuilder(
            int index) {
          return getTariffFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.TariffOrBuilder getTariffOrBuilder(
            int index) {
          if (tariffBuilder_ == null) {
            return tariff_.get(index);  } else {
            return tariffBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        public java.util.List<? extends ru.keyapis.vc.v1.KeyapisVcV1Proto.TariffOrBuilder> 
             getTariffOrBuilderList() {
          if (tariffBuilder_ != null) {
            return tariffBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(tariff_);
          }
        }
        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.Builder addTariffBuilder() {
          return getTariffFieldBuilder().addBuilder(
              ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.getDefaultInstance());
        }
        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.Builder addTariffBuilder(
            int index) {
          return getTariffFieldBuilder().addBuilder(
              index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.getDefaultInstance());
        }
        /**
         * <pre>
         * Тариф
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Tariff tariff = 1;</code>
         */
        public java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.Builder> 
             getTariffBuilderList() {
          return getTariffFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff, ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.TariffOrBuilder> 
            getTariffFieldBuilder() {
          if (tariffBuilder_ == null) {
            tariffBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff, ru.keyapis.vc.v1.KeyapisVcV1Proto.Tariff.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.TariffOrBuilder>(
                    tariff_,
                    ((bitField0_ & 0x00000001) != 0),
                    getParentForChildren(),
                    isClean());
            tariff_ = null;
          }
          return tariffBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs)
      }

      // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs)
      private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs();
      }

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

      private static final com.google.protobuf.Parser<CameraTariffs>
          PARSER = new com.google.protobuf.AbstractParser<CameraTariffs>() {
        @java.lang.Override
        public CameraTariffs parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

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

      @java.lang.Override
      public com.google.protobuf.Parser<CameraTariffs> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <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();
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       */
      ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryErrorOrBuilder getVcDictionaryErrorOrBuilder();

      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.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryTariffsResponse.Error)
        ErrorOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Error.newBuilder() to construct.
      private Error(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Error() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Error();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_Error_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_Error_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.Builder.class);
      }

      private int reasonCase_ = 0;
      @SuppressWarnings("serial")
      private java.lang.Object reason_;
      public enum ReasonCase
          implements com.google.protobuf.Internal.EnumLite,
              com.google.protobuf.AbstractMessage.InternalOneOfEnum {
        VC_DICTIONARY_ERROR(1),
        REASON_NOT_SET(0);
        private final int value;
        private ReasonCase(int value) {
          this.value = value;
        }
        /**
         * @param value The number of the enum to look for.
         * @return The enum associated with the given number.
         * @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;
        }
      };

      public ReasonCase
      getReasonCase() {
        return ReasonCase.forNumber(
            reasonCase_);
      }

      public static final int VC_DICTIONARY_ERROR_FIELD_NUMBER = 1;
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       * @return Whether the vcDictionaryError field is set.
       */
      @java.lang.Override
      public boolean hasVcDictionaryError() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       * @return The vcDictionaryError.
       */
      @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>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryErrorOrBuilder getVcDictionaryErrorOrBuilder() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) reason_;
        }
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.getDefaultInstance();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (reasonCase_ == 1) {
          output.writeMessage(1, (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) reason_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (reasonCase_ == 1) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) reason_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error)) {
          return super.equals(obj);
        }
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error other = (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error) obj;

        if (!getReasonCase().equals(other.getReasonCase())) return false;
        switch (reasonCase_) {
          case 1:
            if (!getVcDictionaryError()
                .equals(other.getVcDictionaryError())) return false;
            break;
          case 0:
          default:
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        switch (reasonCase_) {
          case 1:
            hash = (37 * hash) + VC_DICTIONARY_ERROR_FIELD_NUMBER;
            hash = (53 * hash) + getVcDictionaryError().hashCode();
            break;
          case 0:
          default:
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, 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.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, 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.GeneratedMessageV3
            .parseWithIOException(PARSER, 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.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Ошибка запроса
       * </pre>
       *
       * Protobuf type {@code keyapis.vc.v1.GetDictionaryTariffsResponse.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryTariffsResponse.Error)
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.ErrorOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_Error_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_Error_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.Builder.class);
        }

        // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          if (vcDictionaryErrorBuilder_ != null) {
            vcDictionaryErrorBuilder_.clear();
          }
          reasonCase_ = 0;
          reason_ = null;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_Error_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error getDefaultInstanceForType() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error build() {
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error buildPartial() {
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error result = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          buildPartialOneofs(result);
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error result) {
          int from_bitField0_ = bitField0_;
        }

        private void buildPartialOneofs(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error result) {
          result.reasonCase_ = reasonCase_;
          result.reason_ = this.reason_;
          if (reasonCase_ == 1 &&
              vcDictionaryErrorBuilder_ != null) {
            result.reason_ = vcDictionaryErrorBuilder_.build();
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error) {
            return mergeFrom((ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error other) {
          if (other == ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.getDefaultInstance()) return this;
          switch (other.getReasonCase()) {
            case VC_DICTIONARY_ERROR: {
              mergeVcDictionaryError(other.getVcDictionaryError());
              break;
            }
            case REASON_NOT_SET: {
              break;
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getVcDictionaryErrorFieldBuilder().getBuilder(),
                      extensionRegistry);
                  reasonCase_ = 1;
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int reasonCase_ = 0;
        private java.lang.Object reason_;
        public ReasonCase
            getReasonCase() {
          return ReasonCase.forNumber(
              reasonCase_);
        }

        public Builder clearReason() {
          reasonCase_ = 0;
          reason_ = null;
          onChanged();
          return this;
        }

        private int bitField0_;

        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryErrorOrBuilder> vcDictionaryErrorBuilder_;
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         * @return Whether the vcDictionaryError field is set.
         */
        @java.lang.Override
        public boolean hasVcDictionaryError() {
          return reasonCase_ == 1;
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         * @return The vcDictionaryError.
         */
        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError getVcDictionaryError() {
          if (vcDictionaryErrorBuilder_ == null) {
            if (reasonCase_ == 1) {
              return (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) reason_;
            }
            return ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.getDefaultInstance();
          } else {
            if (reasonCase_ == 1) {
              return vcDictionaryErrorBuilder_.getMessage();
            }
            return ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        public Builder setVcDictionaryError(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError value) {
          if (vcDictionaryErrorBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            reason_ = value;
            onChanged();
          } else {
            vcDictionaryErrorBuilder_.setMessage(value);
          }
          reasonCase_ = 1;
          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) {
          if (vcDictionaryErrorBuilder_ == null) {
            reason_ = builderForValue.build();
            onChanged();
          } else {
            vcDictionaryErrorBuilder_.setMessage(builderForValue.build());
          }
          reasonCase_ = 1;
          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) {
          if (vcDictionaryErrorBuilder_ == null) {
            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;
            }
            onChanged();
          } else {
            if (reasonCase_ == 1) {
              vcDictionaryErrorBuilder_.mergeFrom(value);
            } else {
              vcDictionaryErrorBuilder_.setMessage(value);
            }
          }
          reasonCase_ = 1;
          return this;
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        public Builder clearVcDictionaryError() {
          if (vcDictionaryErrorBuilder_ == null) {
            if (reasonCase_ == 1) {
              reasonCase_ = 0;
              reason_ = null;
              onChanged();
            }
          } else {
            if (reasonCase_ == 1) {
              reasonCase_ = 0;
              reason_ = null;
            }
            vcDictionaryErrorBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Builder getVcDictionaryErrorBuilder() {
          return getVcDictionaryErrorFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryErrorOrBuilder getVcDictionaryErrorOrBuilder() {
          if ((reasonCase_ == 1) && (vcDictionaryErrorBuilder_ != null)) {
            return vcDictionaryErrorBuilder_.getMessageOrBuilder();
          } else {
            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 com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryErrorOrBuilder> 
            getVcDictionaryErrorFieldBuilder() {
          if (vcDictionaryErrorBuilder_ == null) {
            if (!(reasonCase_ == 1)) {
              reason_ = ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.getDefaultInstance();
            }
            vcDictionaryErrorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryErrorOrBuilder>(
                    (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) reason_,
                    getParentForChildren(),
                    isClean());
            reason_ = null;
          }
          reasonCase_ = 1;
          onChanged();
          return vcDictionaryErrorBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryTariffsResponse.Error)
      }

      // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryTariffsResponse.Error)
      private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error();
      }

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

      private static final com.google.protobuf.Parser<Error>
          PARSER = new com.google.protobuf.AbstractParser<Error>() {
        @java.lang.Override
        public Error parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

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

      @java.lang.Override
      public com.google.protobuf.Parser<Error> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int typeCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object type_;
    public enum TypeCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      DATA(1),
      ERROR(2),
      TYPE_NOT_SET(0);
      private final int value;
      private TypeCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @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;
      }
    };

    public TypeCase
    getTypeCase() {
      return TypeCase.forNumber(
          typeCase_);
    }

    public static final int DATA_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Список тарифов
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
     * @return Whether the data field is set.
     */
    @java.lang.Override
    public boolean hasData() {
      return typeCase_ == 1;
    }
    /**
     * <pre>
     * Список тарифов
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
     * @return The data.
     */
    @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>
     */
    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffsOrBuilder getDataOrBuilder() {
      if (typeCase_ == 1) {
         return (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs) type_;
      }
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.getDefaultInstance();
    }

    public static final int ERROR_FIELD_NUMBER = 2;
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
     * @return Whether the error field is set.
     */
    @java.lang.Override
    public boolean hasError() {
      return typeCase_ == 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
     * @return The error.
     */
    @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>
     */
    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.ErrorOrBuilder getErrorOrBuilder() {
      if (typeCase_ == 2) {
         return (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error) type_;
      }
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (typeCase_ == 1) {
        output.writeMessage(1, (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs) type_);
      }
      if (typeCase_ == 2) {
        output.writeMessage(2, (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error) type_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (typeCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs) type_);
      }
      if (typeCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error) type_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse)) {
        return super.equals(obj);
      }
      ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse other = (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse) obj;

      if (!getTypeCase().equals(other.getTypeCase())) return false;
      switch (typeCase_) {
        case 1:
          if (!getData()
              .equals(other.getData())) return false;
          break;
        case 2:
          if (!getError()
              .equals(other.getError())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      switch (typeCase_) {
        case 1:
          hash = (37 * hash) + DATA_FIELD_NUMBER;
          hash = (53 * hash) + getData().hashCode();
          break;
        case 2:
          hash = (37 * hash) + ERROR_FIELD_NUMBER;
          hash = (53 * hash) + getError().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Ответ на запрос получения справочника тарифов
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.GetDictionaryTariffsResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryTariffsResponse)
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Builder.class);
      }

      // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (dataBuilder_ != null) {
          dataBuilder_.clear();
        }
        if (errorBuilder_ != null) {
          errorBuilder_.clear();
        }
        typeCase_ = 0;
        type_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse getDefaultInstanceForType() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse build() {
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse buildPartial() {
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse result = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse result) {
        int from_bitField0_ = bitField0_;
      }

      private void buildPartialOneofs(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse result) {
        result.typeCase_ = typeCase_;
        result.type_ = this.type_;
        if (typeCase_ == 1 &&
            dataBuilder_ != null) {
          result.type_ = dataBuilder_.build();
        }
        if (typeCase_ == 2 &&
            errorBuilder_ != null) {
          result.type_ = errorBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse) {
          return mergeFrom((ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse other) {
        if (other == ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.getDefaultInstance()) return this;
        switch (other.getTypeCase()) {
          case DATA: {
            mergeData(other.getData());
            break;
          }
          case ERROR: {
            mergeError(other.getError());
            break;
          }
          case TYPE_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getDataFieldBuilder().getBuilder(),
                    extensionRegistry);
                typeCase_ = 1;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getErrorFieldBuilder().getBuilder(),
                    extensionRegistry);
                typeCase_ = 2;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int typeCase_ = 0;
      private java.lang.Object type_;
      public TypeCase
          getTypeCase() {
        return TypeCase.forNumber(
            typeCase_);
      }

      public Builder clearType() {
        typeCase_ = 0;
        type_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffsOrBuilder> dataBuilder_;
      /**
       * <pre>
       * Список тарифов
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
       * @return Whether the data field is set.
       */
      @java.lang.Override
      public boolean hasData() {
        return typeCase_ == 1;
      }
      /**
       * <pre>
       * Список тарифов
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
       * @return The data.
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs getData() {
        if (dataBuilder_ == null) {
          if (typeCase_ == 1) {
            return (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs) type_;
          }
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.getDefaultInstance();
        } else {
          if (typeCase_ == 1) {
            return dataBuilder_.getMessage();
          }
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Список тарифов
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
       */
      public Builder setData(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs value) {
        if (dataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          type_ = value;
          onChanged();
        } else {
          dataBuilder_.setMessage(value);
        }
        typeCase_ = 1;
        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) {
        if (dataBuilder_ == null) {
          type_ = builderForValue.build();
          onChanged();
        } else {
          dataBuilder_.setMessage(builderForValue.build());
        }
        typeCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Список тарифов
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
       */
      public Builder mergeData(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs value) {
        if (dataBuilder_ == null) {
          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;
          }
          onChanged();
        } else {
          if (typeCase_ == 1) {
            dataBuilder_.mergeFrom(value);
          } else {
            dataBuilder_.setMessage(value);
          }
        }
        typeCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Список тарифов
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
       */
      public Builder clearData() {
        if (dataBuilder_ == null) {
          if (typeCase_ == 1) {
            typeCase_ = 0;
            type_ = null;
            onChanged();
          }
        } else {
          if (typeCase_ == 1) {
            typeCase_ = 0;
            type_ = null;
          }
          dataBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Список тарифов
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
       */
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.Builder getDataBuilder() {
        return getDataFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Список тарифов
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.CameraTariffs data = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffsOrBuilder getDataOrBuilder() {
        if ((typeCase_ == 1) && (dataBuilder_ != null)) {
          return dataBuilder_.getMessageOrBuilder();
        } else {
          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 com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffsOrBuilder> 
          getDataFieldBuilder() {
        if (dataBuilder_ == null) {
          if (!(typeCase_ == 1)) {
            type_ = ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.getDefaultInstance();
          }
          dataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffsOrBuilder>(
                  (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.CameraTariffs) type_,
                  getParentForChildren(),
                  isClean());
          type_ = null;
        }
        typeCase_ = 1;
        onChanged();
        return dataBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.ErrorOrBuilder> errorBuilder_;
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
       * @return Whether the error field is set.
       */
      @java.lang.Override
      public boolean hasError() {
        return typeCase_ == 2;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
       * @return The error.
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error getError() {
        if (errorBuilder_ == null) {
          if (typeCase_ == 2) {
            return (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error) type_;
          }
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.getDefaultInstance();
        } else {
          if (typeCase_ == 2) {
            return errorBuilder_.getMessage();
          }
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
       */
      public Builder setError(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error value) {
        if (errorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          type_ = value;
          onChanged();
        } else {
          errorBuilder_.setMessage(value);
        }
        typeCase_ = 2;
        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) {
        if (errorBuilder_ == null) {
          type_ = builderForValue.build();
          onChanged();
        } else {
          errorBuilder_.setMessage(builderForValue.build());
        }
        typeCase_ = 2;
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
       */
      public Builder mergeError(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error value) {
        if (errorBuilder_ == null) {
          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;
          }
          onChanged();
        } else {
          if (typeCase_ == 2) {
            errorBuilder_.mergeFrom(value);
          } else {
            errorBuilder_.setMessage(value);
          }
        }
        typeCase_ = 2;
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
       */
      public Builder clearError() {
        if (errorBuilder_ == null) {
          if (typeCase_ == 2) {
            typeCase_ = 0;
            type_ = null;
            onChanged();
          }
        } else {
          if (typeCase_ == 2) {
            typeCase_ = 0;
            type_ = null;
          }
          errorBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
       */
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.Builder getErrorBuilder() {
        return getErrorFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryTariffsResponse.Error error = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.ErrorOrBuilder getErrorOrBuilder() {
        if ((typeCase_ == 2) && (errorBuilder_ != null)) {
          return errorBuilder_.getMessageOrBuilder();
        } else {
          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 com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.ErrorOrBuilder> 
          getErrorFieldBuilder() {
        if (errorBuilder_ == null) {
          if (!(typeCase_ == 2)) {
            type_ = ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.getDefaultInstance();
          }
          errorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.ErrorOrBuilder>(
                  (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse.Error) type_,
                  getParentForChildren(),
                  isClean());
          type_ = null;
        }
        typeCase_ = 2;
        onChanged();
        return errorBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryTariffsResponse)
    }

    // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryTariffsResponse)
    private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse();
    }

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

    private static final com.google.protobuf.Parser<GetDictionaryTariffsResponse>
        PARSER = new com.google.protobuf.AbstractParser<GetDictionaryTariffsResponse>() {
      @java.lang.Override
      public GetDictionaryTariffsResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

    @java.lang.Override
    public com.google.protobuf.Parser<GetDictionaryTariffsResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryTariffsResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GetDictionaryRolesRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.GetDictionaryRolesRequest)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   * Запрос на получение справочника ролей
   * </pre>
   *
   * Protobuf type {@code keyapis.vc.v1.GetDictionaryRolesRequest}
   */
  public static final class GetDictionaryRolesRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryRolesRequest)
      GetDictionaryRolesRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GetDictionaryRolesRequest.newBuilder() to construct.
    private GetDictionaryRolesRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GetDictionaryRolesRequest() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GetDictionaryRolesRequest();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryRolesRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryRolesRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest.Builder.class);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest)) {
        return super.equals(obj);
      }
      ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest other = (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Запрос на получение справочника ролей
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.GetDictionaryRolesRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryRolesRequest)
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryRolesRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryRolesRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest.Builder.class);
      }

      // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryRolesRequest_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest getDefaultInstanceForType() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest build() {
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest buildPartial() {
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest result = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest) {
          return mergeFrom((ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest other) {
        if (other == ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryRolesRequest)
    }

    // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryRolesRequest)
    private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest();
    }

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

    private static final com.google.protobuf.Parser<GetDictionaryRolesRequest>
        PARSER = new com.google.protobuf.AbstractParser<GetDictionaryRolesRequest>() {
      @java.lang.Override
      public GetDictionaryRolesRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

    @java.lang.Override
    public com.google.protobuf.Parser<GetDictionaryRolesRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <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.Roles data = 1;</code>
     */
    ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.RolesOrBuilder getDataOrBuilder();

    /**
     * <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();
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
     */
    ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.ErrorOrBuilder getErrorOrBuilder();

    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.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryRolesResponse)
      GetDictionaryRolesResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GetDictionaryRolesResponse.newBuilder() to construct.
    private GetDictionaryRolesResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GetDictionaryRolesResponse() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GetDictionaryRolesResponse();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Builder.class);
    }

    public interface RolesOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.GetDictionaryRolesResponse.Roles)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <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>
       *
       * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
       */
      java.util.List<? extends ru.keyapis.vc.v1.KeyapisVcV1Proto.RoleOrBuilder> 
          getRolesOrBuilderList();
      /**
       * <pre>
       * Роли
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
       */
      ru.keyapis.vc.v1.KeyapisVcV1Proto.RoleOrBuilder getRolesOrBuilder(
          int index);
    }
    /**
     * <pre>
     * Список ролей
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.GetDictionaryRolesResponse.Roles}
     */
    public static final class Roles extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryRolesResponse.Roles)
        RolesOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Roles.newBuilder() to construct.
      private Roles(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Roles() {
        roles_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Roles();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_Roles_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_Roles_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.Builder.class);
      }

      public static final int ROLES_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private java.util.List<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>
       */
      @java.lang.Override
      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>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.RoleOrBuilder getRolesOrBuilder(
          int index) {
        return roles_.get(index);
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        for (int i = 0; i < roles_.size(); i++) {
          output.writeMessage(1, roles_.get(i));
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        for (int i = 0; i < roles_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, roles_.get(i));
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles)) {
          return super.equals(obj);
        }
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles other = (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles) obj;

        if (!getRolesList()
            .equals(other.getRolesList())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getRolesCount() > 0) {
          hash = (37 * hash) + ROLES_FIELD_NUMBER;
          hash = (53 * hash) + getRolesList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, 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.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, 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.GeneratedMessageV3
            .parseWithIOException(PARSER, 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.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Список ролей
       * </pre>
       *
       * Protobuf type {@code keyapis.vc.v1.GetDictionaryRolesResponse.Roles}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryRolesResponse.Roles)
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.RolesOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_Roles_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_Roles_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.Builder.class);
        }

        // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          if (rolesBuilder_ == null) {
            roles_ = java.util.Collections.emptyList();
          } else {
            roles_ = null;
            rolesBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_Roles_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles getDefaultInstanceForType() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles build() {
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles buildPartial() {
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles result = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles(this);
          buildPartialRepeatedFields(result);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartialRepeatedFields(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles result) {
          if (rolesBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              roles_ = java.util.Collections.unmodifiableList(roles_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.roles_ = roles_;
          } else {
            result.roles_ = rolesBuilder_.build();
          }
        }

        private void buildPartial0(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles result) {
          int from_bitField0_ = bitField0_;
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles) {
            return mergeFrom((ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles other) {
          if (other == ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.getDefaultInstance()) return this;
          if (rolesBuilder_ == null) {
            if (!other.roles_.isEmpty()) {
              if (roles_.isEmpty()) {
                roles_ = other.roles_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureRolesIsMutable();
                roles_.addAll(other.roles_);
              }
              onChanged();
            }
          } else {
            if (!other.roles_.isEmpty()) {
              if (rolesBuilder_.isEmpty()) {
                rolesBuilder_.dispose();
                rolesBuilder_ = null;
                roles_ = other.roles_;
                bitField0_ = (bitField0_ & ~0x00000001);
                rolesBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getRolesFieldBuilder() : null;
              } else {
                rolesBuilder_.addAllMessages(other.roles_);
              }
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  ru.keyapis.vc.v1.KeyapisVcV1Proto.Role m =
                      input.readMessage(
                          ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.parser(),
                          extensionRegistry);
                  if (rolesBuilder_ == null) {
                    ensureRolesIsMutable();
                    roles_.add(m);
                  } else {
                    rolesBuilder_.addMessage(m);
                  }
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.Role> roles_ =
          java.util.Collections.emptyList();
        private void ensureRolesIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            roles_ = new java.util.ArrayList<ru.keyapis.vc.v1.KeyapisVcV1Proto.Role>(roles_);
            bitField0_ |= 0x00000001;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            ru.keyapis.vc.v1.KeyapisVcV1Proto.Role, ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.RoleOrBuilder> rolesBuilder_;

        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        public java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.Role> getRolesList() {
          if (rolesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(roles_);
          } else {
            return rolesBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        public int getRolesCount() {
          if (rolesBuilder_ == null) {
            return roles_.size();
          } else {
            return rolesBuilder_.getCount();
          }
        }
        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.Role getRoles(int index) {
          if (rolesBuilder_ == null) {
            return roles_.get(index);
          } else {
            return rolesBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        public Builder setRoles(
            int index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Role value) {
          if (rolesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureRolesIsMutable();
            roles_.set(index, value);
            onChanged();
          } else {
            rolesBuilder_.setMessage(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) {
          if (rolesBuilder_ == null) {
            ensureRolesIsMutable();
            roles_.set(index, builderForValue.build());
            onChanged();
          } else {
            rolesBuilder_.setMessage(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) {
          if (rolesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureRolesIsMutable();
            roles_.add(value);
            onChanged();
          } else {
            rolesBuilder_.addMessage(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) {
          if (rolesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureRolesIsMutable();
            roles_.add(index, value);
            onChanged();
          } else {
            rolesBuilder_.addMessage(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) {
          if (rolesBuilder_ == null) {
            ensureRolesIsMutable();
            roles_.add(builderForValue.build());
            onChanged();
          } else {
            rolesBuilder_.addMessage(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) {
          if (rolesBuilder_ == null) {
            ensureRolesIsMutable();
            roles_.add(index, builderForValue.build());
            onChanged();
          } else {
            rolesBuilder_.addMessage(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) {
          if (rolesBuilder_ == null) {
            ensureRolesIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, roles_);
            onChanged();
          } else {
            rolesBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        public Builder clearRoles() {
          if (rolesBuilder_ == null) {
            roles_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            rolesBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        public Builder removeRoles(int index) {
          if (rolesBuilder_ == null) {
            ensureRolesIsMutable();
            roles_.remove(index);
            onChanged();
          } else {
            rolesBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.Builder getRolesBuilder(
            int index) {
          return getRolesFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.RoleOrBuilder getRolesOrBuilder(
            int index) {
          if (rolesBuilder_ == null) {
            return roles_.get(index);  } else {
            return rolesBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        public java.util.List<? extends ru.keyapis.vc.v1.KeyapisVcV1Proto.RoleOrBuilder> 
             getRolesOrBuilderList() {
          if (rolesBuilder_ != null) {
            return rolesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(roles_);
          }
        }
        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.Builder addRolesBuilder() {
          return getRolesFieldBuilder().addBuilder(
              ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.getDefaultInstance());
        }
        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.Builder addRolesBuilder(
            int index) {
          return getRolesFieldBuilder().addBuilder(
              index, ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.getDefaultInstance());
        }
        /**
         * <pre>
         * Роли
         * </pre>
         *
         * <code>repeated .keyapis.vc.v1.Role roles = 1;</code>
         */
        public java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.Builder> 
             getRolesBuilderList() {
          return getRolesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            ru.keyapis.vc.v1.KeyapisVcV1Proto.Role, ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.RoleOrBuilder> 
            getRolesFieldBuilder() {
          if (rolesBuilder_ == null) {
            rolesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                ru.keyapis.vc.v1.KeyapisVcV1Proto.Role, ru.keyapis.vc.v1.KeyapisVcV1Proto.Role.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.RoleOrBuilder>(
                    roles_,
                    ((bitField0_ & 0x00000001) != 0),
                    getParentForChildren(),
                    isClean());
            roles_ = null;
          }
          return rolesBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryRolesResponse.Roles)
      }

      // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryRolesResponse.Roles)
      private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles();
      }

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

      private static final com.google.protobuf.Parser<Roles>
          PARSER = new com.google.protobuf.AbstractParser<Roles>() {
        @java.lang.Override
        public Roles parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

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

      @java.lang.Override
      public com.google.protobuf.Parser<Roles> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

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

      /**
       * <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();
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       */
      ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryErrorOrBuilder getVcDictionaryErrorOrBuilder();

      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.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.vc.v1.GetDictionaryRolesResponse.Error)
        ErrorOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Error.newBuilder() to construct.
      private Error(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Error() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Error();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_Error_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_Error_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.Builder.class);
      }

      private int reasonCase_ = 0;
      @SuppressWarnings("serial")
      private java.lang.Object reason_;
      public enum ReasonCase
          implements com.google.protobuf.Internal.EnumLite,
              com.google.protobuf.AbstractMessage.InternalOneOfEnum {
        VC_DICTIONARY_ERROR(1),
        REASON_NOT_SET(0);
        private final int value;
        private ReasonCase(int value) {
          this.value = value;
        }
        /**
         * @param value The number of the enum to look for.
         * @return The enum associated with the given number.
         * @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;
        }
      };

      public ReasonCase
      getReasonCase() {
        return ReasonCase.forNumber(
            reasonCase_);
      }

      public static final int VC_DICTIONARY_ERROR_FIELD_NUMBER = 1;
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       * @return Whether the vcDictionaryError field is set.
       */
      @java.lang.Override
      public boolean hasVcDictionaryError() {
        return reasonCase_ == 1;
      }
      /**
       * <pre>
       * Ошибка VCfront
       * </pre>
       *
       * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
       * @return The vcDictionaryError.
       */
      @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>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryErrorOrBuilder getVcDictionaryErrorOrBuilder() {
        if (reasonCase_ == 1) {
           return (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) reason_;
        }
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.getDefaultInstance();
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (reasonCase_ == 1) {
          output.writeMessage(1, (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) reason_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (reasonCase_ == 1) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) reason_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error)) {
          return super.equals(obj);
        }
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error other = (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error) obj;

        if (!getReasonCase().equals(other.getReasonCase())) return false;
        switch (reasonCase_) {
          case 1:
            if (!getVcDictionaryError()
                .equals(other.getVcDictionaryError())) return false;
            break;
          case 0:
          default:
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        switch (reasonCase_) {
          case 1:
            hash = (37 * hash) + VC_DICTIONARY_ERROR_FIELD_NUMBER;
            hash = (53 * hash) + getVcDictionaryError().hashCode();
            break;
          case 0:
          default:
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, 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.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, 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.GeneratedMessageV3
            .parseWithIOException(PARSER, 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.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Ошибка запроса
       * </pre>
       *
       * Protobuf type {@code keyapis.vc.v1.GetDictionaryRolesResponse.Error}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryRolesResponse.Error)
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.ErrorOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_Error_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_Error_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.Builder.class);
        }

        // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          if (vcDictionaryErrorBuilder_ != null) {
            vcDictionaryErrorBuilder_.clear();
          }
          reasonCase_ = 0;
          reason_ = null;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_Error_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error getDefaultInstanceForType() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error build() {
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error buildPartial() {
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error result = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          buildPartialOneofs(result);
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error result) {
          int from_bitField0_ = bitField0_;
        }

        private void buildPartialOneofs(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error result) {
          result.reasonCase_ = reasonCase_;
          result.reason_ = this.reason_;
          if (reasonCase_ == 1 &&
              vcDictionaryErrorBuilder_ != null) {
            result.reason_ = vcDictionaryErrorBuilder_.build();
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error) {
            return mergeFrom((ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error other) {
          if (other == ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.getDefaultInstance()) return this;
          switch (other.getReasonCase()) {
            case VC_DICTIONARY_ERROR: {
              mergeVcDictionaryError(other.getVcDictionaryError());
              break;
            }
            case REASON_NOT_SET: {
              break;
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getVcDictionaryErrorFieldBuilder().getBuilder(),
                      extensionRegistry);
                  reasonCase_ = 1;
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int reasonCase_ = 0;
        private java.lang.Object reason_;
        public ReasonCase
            getReasonCase() {
          return ReasonCase.forNumber(
              reasonCase_);
        }

        public Builder clearReason() {
          reasonCase_ = 0;
          reason_ = null;
          onChanged();
          return this;
        }

        private int bitField0_;

        private com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryErrorOrBuilder> vcDictionaryErrorBuilder_;
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         * @return Whether the vcDictionaryError field is set.
         */
        @java.lang.Override
        public boolean hasVcDictionaryError() {
          return reasonCase_ == 1;
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         * @return The vcDictionaryError.
         */
        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError getVcDictionaryError() {
          if (vcDictionaryErrorBuilder_ == null) {
            if (reasonCase_ == 1) {
              return (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) reason_;
            }
            return ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.getDefaultInstance();
          } else {
            if (reasonCase_ == 1) {
              return vcDictionaryErrorBuilder_.getMessage();
            }
            return ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.getDefaultInstance();
          }
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        public Builder setVcDictionaryError(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError value) {
          if (vcDictionaryErrorBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            reason_ = value;
            onChanged();
          } else {
            vcDictionaryErrorBuilder_.setMessage(value);
          }
          reasonCase_ = 1;
          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) {
          if (vcDictionaryErrorBuilder_ == null) {
            reason_ = builderForValue.build();
            onChanged();
          } else {
            vcDictionaryErrorBuilder_.setMessage(builderForValue.build());
          }
          reasonCase_ = 1;
          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) {
          if (vcDictionaryErrorBuilder_ == null) {
            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;
            }
            onChanged();
          } else {
            if (reasonCase_ == 1) {
              vcDictionaryErrorBuilder_.mergeFrom(value);
            } else {
              vcDictionaryErrorBuilder_.setMessage(value);
            }
          }
          reasonCase_ = 1;
          return this;
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        public Builder clearVcDictionaryError() {
          if (vcDictionaryErrorBuilder_ == null) {
            if (reasonCase_ == 1) {
              reasonCase_ = 0;
              reason_ = null;
              onChanged();
            }
          } else {
            if (reasonCase_ == 1) {
              reasonCase_ = 0;
              reason_ = null;
            }
            vcDictionaryErrorBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Builder getVcDictionaryErrorBuilder() {
          return getVcDictionaryErrorFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * Ошибка VCfront
         * </pre>
         *
         * <code>.keyapis.vc.v1.VcDictionaryError vc_dictionary_error = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryErrorOrBuilder getVcDictionaryErrorOrBuilder() {
          if ((reasonCase_ == 1) && (vcDictionaryErrorBuilder_ != null)) {
            return vcDictionaryErrorBuilder_.getMessageOrBuilder();
          } else {
            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 com.google.protobuf.SingleFieldBuilderV3<
            ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryErrorOrBuilder> 
            getVcDictionaryErrorFieldBuilder() {
          if (vcDictionaryErrorBuilder_ == null) {
            if (!(reasonCase_ == 1)) {
              reason_ = ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.getDefaultInstance();
            }
            vcDictionaryErrorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryErrorOrBuilder>(
                    (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) reason_,
                    getParentForChildren(),
                    isClean());
            reason_ = null;
          }
          reasonCase_ = 1;
          onChanged();
          return vcDictionaryErrorBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryRolesResponse.Error)
      }

      // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryRolesResponse.Error)
      private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error();
      }

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

      private static final com.google.protobuf.Parser<Error>
          PARSER = new com.google.protobuf.AbstractParser<Error>() {
        @java.lang.Override
        public Error parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

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

      @java.lang.Override
      public com.google.protobuf.Parser<Error> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int typeCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object type_;
    public enum TypeCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      DATA(1),
      ERROR(2),
      TYPE_NOT_SET(0);
      private final int value;
      private TypeCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @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;
      }
    };

    public TypeCase
    getTypeCase() {
      return TypeCase.forNumber(
          typeCase_);
    }

    public static final int DATA_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Список ролей
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
     * @return Whether the data field is set.
     */
    @java.lang.Override
    public boolean hasData() {
      return typeCase_ == 1;
    }
    /**
     * <pre>
     * Список ролей
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
     * @return The data.
     */
    @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>
     */
    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.RolesOrBuilder getDataOrBuilder() {
      if (typeCase_ == 1) {
         return (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles) type_;
      }
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.getDefaultInstance();
    }

    public static final int ERROR_FIELD_NUMBER = 2;
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
     * @return Whether the error field is set.
     */
    @java.lang.Override
    public boolean hasError() {
      return typeCase_ == 2;
    }
    /**
     * <pre>
     * Ошибка
     * </pre>
     *
     * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
     * @return The error.
     */
    @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>
     */
    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.ErrorOrBuilder getErrorOrBuilder() {
      if (typeCase_ == 2) {
         return (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error) type_;
      }
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (typeCase_ == 1) {
        output.writeMessage(1, (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles) type_);
      }
      if (typeCase_ == 2) {
        output.writeMessage(2, (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error) type_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (typeCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles) type_);
      }
      if (typeCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error) type_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse)) {
        return super.equals(obj);
      }
      ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse other = (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse) obj;

      if (!getTypeCase().equals(other.getTypeCase())) return false;
      switch (typeCase_) {
        case 1:
          if (!getData()
              .equals(other.getData())) return false;
          break;
        case 2:
          if (!getError()
              .equals(other.getError())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      switch (typeCase_) {
        case 1:
          hash = (37 * hash) + DATA_FIELD_NUMBER;
          hash = (53 * hash) + getData().hashCode();
          break;
        case 2:
          hash = (37 * hash) + ERROR_FIELD_NUMBER;
          hash = (53 * hash) + getError().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Ответ на запрос получения справочника ролей
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.GetDictionaryRolesResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.GetDictionaryRolesResponse)
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Builder.class);
      }

      // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (dataBuilder_ != null) {
          dataBuilder_.clear();
        }
        if (errorBuilder_ != null) {
          errorBuilder_.clear();
        }
        typeCase_ = 0;
        type_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse getDefaultInstanceForType() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse build() {
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse buildPartial() {
        ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse result = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse result) {
        int from_bitField0_ = bitField0_;
      }

      private void buildPartialOneofs(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse result) {
        result.typeCase_ = typeCase_;
        result.type_ = this.type_;
        if (typeCase_ == 1 &&
            dataBuilder_ != null) {
          result.type_ = dataBuilder_.build();
        }
        if (typeCase_ == 2 &&
            errorBuilder_ != null) {
          result.type_ = errorBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse) {
          return mergeFrom((ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse other) {
        if (other == ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.getDefaultInstance()) return this;
        switch (other.getTypeCase()) {
          case DATA: {
            mergeData(other.getData());
            break;
          }
          case ERROR: {
            mergeError(other.getError());
            break;
          }
          case TYPE_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getDataFieldBuilder().getBuilder(),
                    extensionRegistry);
                typeCase_ = 1;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getErrorFieldBuilder().getBuilder(),
                    extensionRegistry);
                typeCase_ = 2;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int typeCase_ = 0;
      private java.lang.Object type_;
      public TypeCase
          getTypeCase() {
        return TypeCase.forNumber(
            typeCase_);
      }

      public Builder clearType() {
        typeCase_ = 0;
        type_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.RolesOrBuilder> dataBuilder_;
      /**
       * <pre>
       * Список ролей
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
       * @return Whether the data field is set.
       */
      @java.lang.Override
      public boolean hasData() {
        return typeCase_ == 1;
      }
      /**
       * <pre>
       * Список ролей
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
       * @return The data.
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles getData() {
        if (dataBuilder_ == null) {
          if (typeCase_ == 1) {
            return (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles) type_;
          }
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.getDefaultInstance();
        } else {
          if (typeCase_ == 1) {
            return dataBuilder_.getMessage();
          }
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Список ролей
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
       */
      public Builder setData(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles value) {
        if (dataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          type_ = value;
          onChanged();
        } else {
          dataBuilder_.setMessage(value);
        }
        typeCase_ = 1;
        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) {
        if (dataBuilder_ == null) {
          type_ = builderForValue.build();
          onChanged();
        } else {
          dataBuilder_.setMessage(builderForValue.build());
        }
        typeCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Список ролей
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
       */
      public Builder mergeData(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles value) {
        if (dataBuilder_ == null) {
          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;
          }
          onChanged();
        } else {
          if (typeCase_ == 1) {
            dataBuilder_.mergeFrom(value);
          } else {
            dataBuilder_.setMessage(value);
          }
        }
        typeCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Список ролей
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
       */
      public Builder clearData() {
        if (dataBuilder_ == null) {
          if (typeCase_ == 1) {
            typeCase_ = 0;
            type_ = null;
            onChanged();
          }
        } else {
          if (typeCase_ == 1) {
            typeCase_ = 0;
            type_ = null;
          }
          dataBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Список ролей
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
       */
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.Builder getDataBuilder() {
        return getDataFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Список ролей
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Roles data = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.RolesOrBuilder getDataOrBuilder() {
        if ((typeCase_ == 1) && (dataBuilder_ != null)) {
          return dataBuilder_.getMessageOrBuilder();
        } else {
          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 com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.RolesOrBuilder> 
          getDataFieldBuilder() {
        if (dataBuilder_ == null) {
          if (!(typeCase_ == 1)) {
            type_ = ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.getDefaultInstance();
          }
          dataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.RolesOrBuilder>(
                  (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Roles) type_,
                  getParentForChildren(),
                  isClean());
          type_ = null;
        }
        typeCase_ = 1;
        onChanged();
        return dataBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.ErrorOrBuilder> errorBuilder_;
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
       * @return Whether the error field is set.
       */
      @java.lang.Override
      public boolean hasError() {
        return typeCase_ == 2;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
       * @return The error.
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error getError() {
        if (errorBuilder_ == null) {
          if (typeCase_ == 2) {
            return (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error) type_;
          }
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.getDefaultInstance();
        } else {
          if (typeCase_ == 2) {
            return errorBuilder_.getMessage();
          }
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
       */
      public Builder setError(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error value) {
        if (errorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          type_ = value;
          onChanged();
        } else {
          errorBuilder_.setMessage(value);
        }
        typeCase_ = 2;
        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) {
        if (errorBuilder_ == null) {
          type_ = builderForValue.build();
          onChanged();
        } else {
          errorBuilder_.setMessage(builderForValue.build());
        }
        typeCase_ = 2;
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
       */
      public Builder mergeError(ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error value) {
        if (errorBuilder_ == null) {
          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;
          }
          onChanged();
        } else {
          if (typeCase_ == 2) {
            errorBuilder_.mergeFrom(value);
          } else {
            errorBuilder_.setMessage(value);
          }
        }
        typeCase_ = 2;
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
       */
      public Builder clearError() {
        if (errorBuilder_ == null) {
          if (typeCase_ == 2) {
            typeCase_ = 0;
            type_ = null;
            onChanged();
          }
        } else {
          if (typeCase_ == 2) {
            typeCase_ = 0;
            type_ = null;
          }
          errorBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
       */
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.Builder getErrorBuilder() {
        return getErrorFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.vc.v1.GetDictionaryRolesResponse.Error error = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.ErrorOrBuilder getErrorOrBuilder() {
        if ((typeCase_ == 2) && (errorBuilder_ != null)) {
          return errorBuilder_.getMessageOrBuilder();
        } else {
          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 com.google.protobuf.SingleFieldBuilderV3<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.ErrorOrBuilder> 
          getErrorFieldBuilder() {
        if (errorBuilder_ == null) {
          if (!(typeCase_ == 2)) {
            type_ = ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.getDefaultInstance();
          }
          errorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.ErrorOrBuilder>(
                  (ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse.Error) type_,
                  getParentForChildren(),
                  isClean());
          type_ = null;
        }
        typeCase_ = 2;
        onChanged();
        return errorBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.GetDictionaryRolesResponse)
    }

    // @@protoc_insertion_point(class_scope:keyapis.vc.v1.GetDictionaryRolesResponse)
    private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse();
    }

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

    private static final com.google.protobuf.Parser<GetDictionaryRolesResponse>
        PARSER = new com.google.protobuf.AbstractParser<GetDictionaryRolesResponse>() {
      @java.lang.Override
      public GetDictionaryRolesResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

    @java.lang.Override
    public com.google.protobuf.Parser<GetDictionaryRolesResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.GetDictionaryRolesResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <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>
     * Причины
     * </pre>
     *
     * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
     */
    java.util.List<? extends ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.ReasonOrBuilder> 
        getReasonsOrBuilderList();
    /**
     * <pre>
     * Причины
     * </pre>
     *
     * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
     */
    ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.ReasonOrBuilder getReasonsOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Ошибка VCfront
   * </pre>
   *
   * Protobuf type {@code keyapis.vc.v1.VcDictionaryError}
   */
  public static final class VcDictionaryError extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:keyapis.vc.v1.VcDictionaryError)
      VcDictionaryErrorOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use VcDictionaryError.newBuilder() to construct.
    private VcDictionaryError(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VcDictionaryError() {
      service_ = "";
      product_ = "";
      message_ = "";
      reasons_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new VcDictionaryError();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_VcDictionaryError_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_VcDictionaryError_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Builder.class);
    }

    public interface ReasonOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.vc.v1.VcDictionaryError.Reason)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <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.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:keyapis.vc.v1.VcDictionaryError.Reason)
        ReasonOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Reason.newBuilder() to construct.
      private Reason(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Reason() {
        message_ = "";
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Reason();
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_VcDictionaryError_Reason_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_VcDictionaryError_Reason_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.Builder.class);
      }

      public static final int MESSAGE_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private volatile java.lang.Object message_ = "";
      /**
       * <pre>
       * Сообщение
       * </pre>
       *
       * <code>string message = 1;</code>
       * @return The message.
       */
      @java.lang.Override
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          message_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * Сообщение
       * </pre>
       *
       * <code>string message = 1;</code>
       * @return The bytes for message.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(message_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, message_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(message_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, message_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason)) {
          return super.equals(obj);
        }
        ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason other = (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason) obj;

        if (!getMessage()
            .equals(other.getMessage())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getMessage().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, 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.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, 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 com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, 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.GeneratedMessageV3
            .parseWithIOException(PARSER, 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.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Причина
       * </pre>
       *
       * Protobuf type {@code keyapis.vc.v1.VcDictionaryError.Reason}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.VcDictionaryError.Reason)
          ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.ReasonOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_VcDictionaryError_Reason_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_VcDictionaryError_Reason_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.Builder.class);
        }

        // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          message_ = "";
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_VcDictionaryError_Reason_descriptor;
        }

        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason getDefaultInstanceForType() {
          return ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.getDefaultInstance();
        }

        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason build() {
          ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason buildPartial() {
          ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason result = new ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.message_ = message_;
          }
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason) {
            return mergeFrom((ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason other) {
          if (other == ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.getDefaultInstance()) return this;
          if (!other.getMessage().isEmpty()) {
            message_ = other.message_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  message_ = input.readStringRequireUtf8();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private java.lang.Object message_ = "";
        /**
         * <pre>
         * Сообщение
         * </pre>
         *
         * <code>string message = 1;</code>
         * @return The message.
         */
        public java.lang.String getMessage() {
          java.lang.Object ref = message_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            message_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * Сообщение
         * </pre>
         *
         * <code>string message = 1;</code>
         * @return The bytes for message.
         */
        public com.google.protobuf.ByteString
            getMessageBytes() {
          java.lang.Object ref = message_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            message_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <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) {
          if (value == null) { throw new NullPointerException(); }
          message_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Сообщение
         * </pre>
         *
         * <code>string message = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearMessage() {
          message_ = getDefaultInstance().getMessage();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
          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) {
          if (value == null) { throw new NullPointerException(); }
          checkByteStringIsUtf8(value);
          message_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.VcDictionaryError.Reason)
      }

      // @@protoc_insertion_point(class_scope:keyapis.vc.v1.VcDictionaryError.Reason)
      private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason();
      }

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

      private static final com.google.protobuf.Parser<Reason>
          PARSER = new com.google.protobuf.AbstractParser<Reason>() {
        @java.lang.Override
        public Reason parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

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

      @java.lang.Override
      public com.google.protobuf.Parser<Reason> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int SERVICE_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object service_ = "";
    /**
     * <pre>
     * Сервис
     * </pre>
     *
     * <code>string service = 1;</code>
     * @return The service.
     */
    @java.lang.Override
    public java.lang.String getService() {
      java.lang.Object ref = service_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        service_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Сервис
     * </pre>
     *
     * <code>string service = 1;</code>
     * @return The bytes for service.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getServiceBytes() {
      java.lang.Object ref = service_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        service_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PRODUCT_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object product_ = "";
    /**
     * <pre>
     * Продукт
     * </pre>
     *
     * <code>string product = 2;</code>
     * @return The product.
     */
    @java.lang.Override
    public java.lang.String getProduct() {
      java.lang.Object ref = product_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        product_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Продукт
     * </pre>
     *
     * <code>string product = 2;</code>
     * @return The bytes for product.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getProductBytes() {
      java.lang.Object ref = product_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        product_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MESSAGE_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object message_ = "";
    /**
     * <pre>
     * Сообщение
     * </pre>
     *
     * <code>string message = 3;</code>
     * @return The message.
     */
    @java.lang.Override
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        message_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Сообщение
     * </pre>
     *
     * <code>string message = 3;</code>
     * @return The bytes for message.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int REASONS_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private java.util.List<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>
     */
    @java.lang.Override
    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>
     */
    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.ReasonOrBuilder getReasonsOrBuilder(
        int index) {
      return reasons_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(service_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, service_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(product_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, product_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(message_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, message_);
      }
      for (int i = 0; i < reasons_.size(); i++) {
        output.writeMessage(4, reasons_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(service_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, service_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(product_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, product_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(message_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, message_);
      }
      for (int i = 0; i < reasons_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, reasons_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError)) {
        return super.equals(obj);
      }
      ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError other = (ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) obj;

      if (!getService()
          .equals(other.getService())) return false;
      if (!getProduct()
          .equals(other.getProduct())) return false;
      if (!getMessage()
          .equals(other.getMessage())) return false;
      if (!getReasonsList()
          .equals(other.getReasonsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SERVICE_FIELD_NUMBER;
      hash = (53 * hash) + getService().hashCode();
      hash = (37 * hash) + PRODUCT_FIELD_NUMBER;
      hash = (53 * hash) + getProduct().hashCode();
      hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
      hash = (53 * hash) + getMessage().hashCode();
      if (getReasonsCount() > 0) {
        hash = (37 * hash) + REASONS_FIELD_NUMBER;
        hash = (53 * hash) + getReasonsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(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 PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, 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.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * Ошибка VCfront
     * </pre>
     *
     * Protobuf type {@code keyapis.vc.v1.VcDictionaryError}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.vc.v1.VcDictionaryError)
        ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryErrorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_VcDictionaryError_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_VcDictionaryError_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.class, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Builder.class);
      }

      // Construct using ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        service_ = "";
        product_ = "";
        message_ = "";
        if (reasonsBuilder_ == null) {
          reasons_ = java.util.Collections.emptyList();
        } else {
          reasons_ = null;
          reasonsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.internal_static_keyapis_vc_v1_VcDictionaryError_descriptor;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError getDefaultInstanceForType() {
        return ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.getDefaultInstance();
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError build() {
        ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError buildPartial() {
        ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError result = new ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError result) {
        if (reasonsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            reasons_ = java.util.Collections.unmodifiableList(reasons_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.reasons_ = reasons_;
        } else {
          result.reasons_ = reasonsBuilder_.build();
        }
      }

      private void buildPartial0(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.service_ = service_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.product_ = product_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.message_ = message_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError) {
          return mergeFrom((ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError other) {
        if (other == ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.getDefaultInstance()) return this;
        if (!other.getService().isEmpty()) {
          service_ = other.service_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getProduct().isEmpty()) {
          product_ = other.product_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getMessage().isEmpty()) {
          message_ = other.message_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (reasonsBuilder_ == null) {
          if (!other.reasons_.isEmpty()) {
            if (reasons_.isEmpty()) {
              reasons_ = other.reasons_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureReasonsIsMutable();
              reasons_.addAll(other.reasons_);
            }
            onChanged();
          }
        } else {
          if (!other.reasons_.isEmpty()) {
            if (reasonsBuilder_.isEmpty()) {
              reasonsBuilder_.dispose();
              reasonsBuilder_ = null;
              reasons_ = other.reasons_;
              bitField0_ = (bitField0_ & ~0x00000008);
              reasonsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getReasonsFieldBuilder() : null;
            } else {
              reasonsBuilder_.addAllMessages(other.reasons_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                service_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                product_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                message_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason m =
                    input.readMessage(
                        ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.parser(),
                        extensionRegistry);
                if (reasonsBuilder_ == null) {
                  ensureReasonsIsMutable();
                  reasons_.add(m);
                } else {
                  reasonsBuilder_.addMessage(m);
                }
                break;
              } // case 34
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object service_ = "";
      /**
       * <pre>
       * Сервис
       * </pre>
       *
       * <code>string service = 1;</code>
       * @return The service.
       */
      public java.lang.String getService() {
        java.lang.Object ref = service_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          service_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Сервис
       * </pre>
       *
       * <code>string service = 1;</code>
       * @return The bytes for service.
       */
      public com.google.protobuf.ByteString
          getServiceBytes() {
        java.lang.Object ref = service_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          service_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <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) {
        if (value == null) { throw new NullPointerException(); }
        service_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Сервис
       * </pre>
       *
       * <code>string service = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearService() {
        service_ = getDefaultInstance().getService();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        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) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        service_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object product_ = "";
      /**
       * <pre>
       * Продукт
       * </pre>
       *
       * <code>string product = 2;</code>
       * @return The product.
       */
      public java.lang.String getProduct() {
        java.lang.Object ref = product_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          product_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Продукт
       * </pre>
       *
       * <code>string product = 2;</code>
       * @return The bytes for product.
       */
      public com.google.protobuf.ByteString
          getProductBytes() {
        java.lang.Object ref = product_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          product_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <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) {
        if (value == null) { throw new NullPointerException(); }
        product_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Продукт
       * </pre>
       *
       * <code>string product = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearProduct() {
        product_ = getDefaultInstance().getProduct();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        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) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        product_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object message_ = "";
      /**
       * <pre>
       * Сообщение
       * </pre>
       *
       * <code>string message = 3;</code>
       * @return The message.
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          message_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Сообщение
       * </pre>
       *
       * <code>string message = 3;</code>
       * @return The bytes for message.
       */
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <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) {
        if (value == null) { throw new NullPointerException(); }
        message_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Сообщение
       * </pre>
       *
       * <code>string message = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearMessage() {
        message_ = getDefaultInstance().getMessage();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        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) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        message_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason> reasons_ =
        java.util.Collections.emptyList();
      private void ensureReasonsIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          reasons_ = new java.util.ArrayList<ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason>(reasons_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.ReasonOrBuilder> reasonsBuilder_;

      /**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      public java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason> getReasonsList() {
        if (reasonsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(reasons_);
        } else {
          return reasonsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      public int getReasonsCount() {
        if (reasonsBuilder_ == null) {
          return reasons_.size();
        } else {
          return reasonsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason getReasons(int index) {
        if (reasonsBuilder_ == null) {
          return reasons_.get(index);
        } else {
          return reasonsBuilder_.getMessage(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) {
        if (reasonsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureReasonsIsMutable();
          reasons_.set(index, value);
          onChanged();
        } else {
          reasonsBuilder_.setMessage(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) {
        if (reasonsBuilder_ == null) {
          ensureReasonsIsMutable();
          reasons_.set(index, builderForValue.build());
          onChanged();
        } else {
          reasonsBuilder_.setMessage(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) {
        if (reasonsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureReasonsIsMutable();
          reasons_.add(value);
          onChanged();
        } else {
          reasonsBuilder_.addMessage(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) {
        if (reasonsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureReasonsIsMutable();
          reasons_.add(index, value);
          onChanged();
        } else {
          reasonsBuilder_.addMessage(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) {
        if (reasonsBuilder_ == null) {
          ensureReasonsIsMutable();
          reasons_.add(builderForValue.build());
          onChanged();
        } else {
          reasonsBuilder_.addMessage(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) {
        if (reasonsBuilder_ == null) {
          ensureReasonsIsMutable();
          reasons_.add(index, builderForValue.build());
          onChanged();
        } else {
          reasonsBuilder_.addMessage(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) {
        if (reasonsBuilder_ == null) {
          ensureReasonsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, reasons_);
          onChanged();
        } else {
          reasonsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      public Builder clearReasons() {
        if (reasonsBuilder_ == null) {
          reasons_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          reasonsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      public Builder removeReasons(int index) {
        if (reasonsBuilder_ == null) {
          ensureReasonsIsMutable();
          reasons_.remove(index);
          onChanged();
        } else {
          reasonsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.Builder getReasonsBuilder(
          int index) {
        return getReasonsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.ReasonOrBuilder getReasonsOrBuilder(
          int index) {
        if (reasonsBuilder_ == null) {
          return reasons_.get(index);  } else {
          return reasonsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <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() {
        if (reasonsBuilder_ != null) {
          return reasonsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(reasons_);
        }
      }
      /**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.Builder addReasonsBuilder() {
        return getReasonsFieldBuilder().addBuilder(
            ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.getDefaultInstance());
      }
      /**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.Builder addReasonsBuilder(
          int index) {
        return getReasonsFieldBuilder().addBuilder(
            index, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.getDefaultInstance());
      }
      /**
       * <pre>
       * Причины
       * </pre>
       *
       * <code>repeated .keyapis.vc.v1.VcDictionaryError.Reason reasons = 4;</code>
       */
      public java.util.List<ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.Builder> 
           getReasonsBuilderList() {
        return getReasonsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.ReasonOrBuilder> 
          getReasonsFieldBuilder() {
        if (reasonsBuilder_ == null) {
          reasonsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.Reason.Builder, ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError.ReasonOrBuilder>(
                  reasons_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          reasons_ = null;
        }
        return reasonsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:keyapis.vc.v1.VcDictionaryError)
    }

    // @@protoc_insertion_point(class_scope:keyapis.vc.v1.VcDictionaryError)
    private static final ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError();
    }

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

    private static final com.google.protobuf.Parser<VcDictionaryError>
        PARSER = new com.google.protobuf.AbstractParser<VcDictionaryError>() {
      @java.lang.Override
      public VcDictionaryError parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

    @java.lang.Override
    public com.google.protobuf.Parser<VcDictionaryError> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public ru.keyapis.vc.v1.KeyapisVcV1Proto.VcDictionaryError getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_vc_v1_Category_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_vc_v1_Category_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_vc_v1_Tariff_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_vc_v1_Tariff_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_vc_v1_Role_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_vc_v1_Role_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_vc_v1_GetDictionaryCategoriesRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_vc_v1_GetDictionaryCategoriesRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_CameraCategories_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_CameraCategories_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_Error_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_Error_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_vc_v1_GetDictionaryTariffsRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_vc_v1_GetDictionaryTariffsRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_CameraTariffs_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_CameraTariffs_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_Error_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_Error_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_vc_v1_GetDictionaryRolesRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_vc_v1_GetDictionaryRolesRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_Roles_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_Roles_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_Error_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_Error_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_vc_v1_VcDictionaryError_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_vc_v1_VcDictionaryError_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_keyapis_vc_v1_VcDictionaryError_Reason_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_keyapis_vc_v1_VcDictionaryError_Reason_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n3keyapis/vc/v1/keyapis_vc_camera_dictio" +
      "nary_v1.proto\022\rkeyapis.vc.v1\032\034google/api" +
      "/annotations.proto\032\037google/api/field_beh" +
      "avior.proto\032 google/protobuf/descriptor." +
      "proto\032\036google/protobuf/wrappers.proto\032\037g" +
      "oogle/protobuf/timestamp.proto\"3\n\010Catego" +
      "ry\022\n\n\002id\030\001 \001(\005\022\r\n\005title\030\002 \001(\t\022\014\n\004kind\030\003 " +
      "\001(\t\"\236\001\n\006Tariff\022\n\n\002id\030\001 \001(\005\022\r\n\005title\030\002 \001(" +
      "\t\022\014\n\004slug\030\003 \001(\t\022\023\n\013status_kind\030\004 \001(\t\022+\n\007" +
      "from_at\030\005 \001(\0132\032.google.protobuf.Timestam" +
      "p\022)\n\005to_at\030\006 \001(\0132\032.google.protobuf.Times" +
      "tamp\"I\n\004Role\022\n\n\002id\030\001 \001(\005\022\r\n\005title\030\002 \001(\t\022" +
      "\023\n\013permissions\030\003 \003(\t\022\021\n\tis_global\030\004 \001(\010\"" +
      " \n\036GetDictionaryCategoriesRequest\"\324\002\n\037Ge" +
      "tDictionaryCategoriesResponse\022O\n\004data\030\001 " +
      "\001(\0132?.keyapis.vc.v1.GetDictionaryCategor" +
      "iesResponse.CameraCategoriesH\000\022E\n\005error\030" +
      "\002 \001(\01324.keyapis.vc.v1.GetDictionaryCateg" +
      "oriesResponse.ErrorH\000\032=\n\020CameraCategorie" +
      "s\022)\n\010category\030\001 \003(\0132\027.keyapis.vc.v1.Cate" +
      "gory\032R\n\005Error\022?\n\023vc_dictionary_error\030\001 \001" +
      "(\0132 .keyapis.vc.v1.VcDictionaryErrorH\000B\010" +
      "\n\006reasonB\006\n\004type\"\035\n\033GetDictionaryTariffs" +
      "Request\"\301\002\n\034GetDictionaryTariffsResponse" +
      "\022I\n\004data\030\001 \001(\01329.keyapis.vc.v1.GetDictio" +
      "naryTariffsResponse.CameraTariffsH\000\022B\n\005e" +
      "rror\030\002 \001(\01321.keyapis.vc.v1.GetDictionary" +
      "TariffsResponse.ErrorH\000\0326\n\rCameraTariffs" +
      "\022%\n\006tariff\030\001 \003(\0132\025.keyapis.vc.v1.Tariff\032" +
      "R\n\005Error\022?\n\023vc_dictionary_error\030\001 \001(\0132 ." +
      "keyapis.vc.v1.VcDictionaryErrorH\000B\010\n\006rea" +
      "sonB\006\n\004type\"\033\n\031GetDictionaryRolesRequest" +
      "\"\250\002\n\032GetDictionaryRolesResponse\022?\n\004data\030" +
      "\001 \001(\0132/.keyapis.vc.v1.GetDictionaryRoles" +
      "Response.RolesH\000\022@\n\005error\030\002 \001(\0132/.keyapi" +
      "s.vc.v1.GetDictionaryRolesResponse.Error" +
      "H\000\032+\n\005Roles\022\"\n\005roles\030\001 \003(\0132\023.keyapis.vc." +
      "v1.Role\032R\n\005Error\022?\n\023vc_dictionary_error\030" +
      "\001 \001(\0132 .keyapis.vc.v1.VcDictionaryErrorH" +
      "\000B\010\n\006reasonB\006\n\004type\"\233\001\n\021VcDictionaryErro" +
      "r\022\017\n\007service\030\001 \001(\t\022\017\n\007product\030\002 \001(\t\022\017\n\007m" +
      "essage\030\003 \001(\t\0228\n\007reasons\030\004 \003(\0132\'.keyapis." +
      "vc.v1.VcDictionaryError.Reason\032\031\n\006Reason" +
      "\022\017\n\007message\030\001 \001(\t2\342\003\n\021DictionaryService\022" +
      "\242\001\n\027GetDictionaryCategories\022-.keyapis.vc" +
      ".v1.GetDictionaryCategoriesRequest\032..key" +
      "apis.vc.v1.GetDictionaryCategoriesRespon" +
      "se\"(\202\323\344\223\002\"\022 /vc/api/v1/dictionary/catego" +
      "ries\022\226\001\n\024GetDictionaryTariffs\022*.keyapis." +
      "vc.v1.GetDictionaryTariffsRequest\032+.keya" +
      "pis.vc.v1.GetDictionaryTariffsResponse\"%" +
      "\202\323\344\223\002\037\022\035/vc/api/v1/dictionary/tariffs\022\216\001" +
      "\n\022GetDictionaryRoles\022(.keyapis.vc.v1.Get" +
      "DictionaryRolesRequest\032).keyapis.vc.v1.G" +
      "etDictionaryRolesResponse\"#\202\323\344\223\002\035\022\033/vc/a" +
      "pi/v1/dictionary/rolesB~\n\020ru.keyapis.vc." +
      "v1B\020KeyapisVcV1ProtoH\003P\000Z\016/keyapis_vc_v1" +
      "\330\001\001\370\001\001\242\002\013KEYAPISVCV1\252\002\rKeyapis.Vc.V1\312\002\rK" +
      "eyapis\\Vc\\V1\352\002\017Keyapis::Vc::V1b\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.google.api.AnnotationsProto.getDescriptor(),
          com.google.api.FieldBehaviorProto.getDescriptor(),
          com.google.protobuf.DescriptorProtos.getDescriptor(),
          com.google.protobuf.WrappersProto.getDescriptor(),
          com.google.protobuf.TimestampProto.getDescriptor(),
        });
    internal_static_keyapis_vc_v1_Category_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_keyapis_vc_v1_Category_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_vc_v1_Category_descriptor,
        new java.lang.String[] { "Id", "Title", "Kind", });
    internal_static_keyapis_vc_v1_Tariff_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_keyapis_vc_v1_Tariff_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_vc_v1_Tariff_descriptor,
        new java.lang.String[] { "Id", "Title", "Slug", "StatusKind", "FromAt", "ToAt", });
    internal_static_keyapis_vc_v1_Role_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_keyapis_vc_v1_Role_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_vc_v1_Role_descriptor,
        new java.lang.String[] { "Id", "Title", "Permissions", "IsGlobal", });
    internal_static_keyapis_vc_v1_GetDictionaryCategoriesRequest_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_keyapis_vc_v1_GetDictionaryCategoriesRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_vc_v1_GetDictionaryCategoriesRequest_descriptor,
        new java.lang.String[] { });
    internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_descriptor,
        new java.lang.String[] { "Data", "Error", "Type", });
    internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_CameraCategories_descriptor =
      internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_CameraCategories_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_CameraCategories_descriptor,
        new java.lang.String[] { "Category", });
    internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_Error_descriptor =
      internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_descriptor.getNestedTypes().get(1);
    internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_Error_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_vc_v1_GetDictionaryCategoriesResponse_Error_descriptor,
        new java.lang.String[] { "VcDictionaryError", "Reason", });
    internal_static_keyapis_vc_v1_GetDictionaryTariffsRequest_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_keyapis_vc_v1_GetDictionaryTariffsRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_vc_v1_GetDictionaryTariffsRequest_descriptor,
        new java.lang.String[] { });
    internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_descriptor,
        new java.lang.String[] { "Data", "Error", "Type", });
    internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_CameraTariffs_descriptor =
      internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_CameraTariffs_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_CameraTariffs_descriptor,
        new java.lang.String[] { "Tariff", });
    internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_Error_descriptor =
      internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_descriptor.getNestedTypes().get(1);
    internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_Error_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_vc_v1_GetDictionaryTariffsResponse_Error_descriptor,
        new java.lang.String[] { "VcDictionaryError", "Reason", });
    internal_static_keyapis_vc_v1_GetDictionaryRolesRequest_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_keyapis_vc_v1_GetDictionaryRolesRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_vc_v1_GetDictionaryRolesRequest_descriptor,
        new java.lang.String[] { });
    internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_descriptor,
        new java.lang.String[] { "Data", "Error", "Type", });
    internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_Roles_descriptor =
      internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_Roles_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_Roles_descriptor,
        new java.lang.String[] { "Roles", });
    internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_Error_descriptor =
      internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_descriptor.getNestedTypes().get(1);
    internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_Error_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_vc_v1_GetDictionaryRolesResponse_Error_descriptor,
        new java.lang.String[] { "VcDictionaryError", "Reason", });
    internal_static_keyapis_vc_v1_VcDictionaryError_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_keyapis_vc_v1_VcDictionaryError_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_vc_v1_VcDictionaryError_descriptor,
        new java.lang.String[] { "Service", "Product", "Message", "Reasons", });
    internal_static_keyapis_vc_v1_VcDictionaryError_Reason_descriptor =
      internal_static_keyapis_vc_v1_VcDictionaryError_descriptor.getNestedTypes().get(0);
    internal_static_keyapis_vc_v1_VcDictionaryError_Reason_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_keyapis_vc_v1_VcDictionaryError_Reason_descriptor,
        new java.lang.String[] { "Message", });
    com.google.protobuf.ExtensionRegistry registry =
        com.google.protobuf.ExtensionRegistry.newInstance();
    registry.add(com.google.api.AnnotationsProto.http);
    com.google.protobuf.Descriptors.FileDescriptor
        .internalUpdateFileDescriptor(descriptor, registry);
    com.google.api.AnnotationsProto.getDescriptor();
    com.google.api.FieldBehaviorProto.getDescriptor();
    com.google.protobuf.DescriptorProtos.getDescriptor();
    com.google.protobuf.WrappersProto.getDescriptor();
    com.google.protobuf.TimestampProto.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
