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

package ru.keyapis.telemetry_control.v1;

public final class KeyapisTelemetryControlV1Proto {
  private KeyapisTelemetryControlV1Proto() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  public interface PostResourceFullDuplexResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.telemetry_control.v1.PostResourceFullDuplexResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    java.lang.String getRequestId();
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    com.google.protobuf.ByteString
        getRequestIdBytes();

    /**
     * <pre>
     * Событие создания/обновления ресурса
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.UpsertResourceEvent upsert_resource_event = 2;</code>
     * @return Whether the upsertResourceEvent field is set.
     */
    boolean hasUpsertResourceEvent();
    /**
     * <pre>
     * Событие создания/обновления ресурса
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.UpsertResourceEvent upsert_resource_event = 2;</code>
     * @return The upsertResourceEvent.
     */
    ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.UpsertResourceEvent getUpsertResourceEvent();

    /**
     * <pre>
     * Событие удаления ресурса
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.RemoveResourceEvent remove_resource_event = 3;</code>
     * @return Whether the removeResourceEvent field is set.
     */
    boolean hasRemoveResourceEvent();
    /**
     * <pre>
     * Событие удаления ресурса
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.RemoveResourceEvent remove_resource_event = 3;</code>
     * @return The removeResourceEvent.
     */
    ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.RemoveResourceEvent getRemoveResourceEvent();

    public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.EventCase getEventCase();
  }
  /**
   * <pre>
   * Событие создания/изменения ресурса
   * </pre>
   *
   * Protobuf type {@code keyapis.telemetry_control.v1.PostResourceFullDuplexResponse}
   */
  public  static final class PostResourceFullDuplexResponse extends
      com.google.protobuf.GeneratedMessageLite<
          PostResourceFullDuplexResponse, PostResourceFullDuplexResponse.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.telemetry_control.v1.PostResourceFullDuplexResponse)
      PostResourceFullDuplexResponseOrBuilder {
    private PostResourceFullDuplexResponse() {
      requestId_ = "";
    }
    public interface RemoveResourceEventOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.RemoveResourceEvent)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <pre>
       * Идентификатор ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return Whether the resourceId field is set.
       */
      boolean hasResourceId();
      /**
       * <pre>
       * Идентификатор ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The resourceId.
       */
      ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId getResourceId();
    }
    /**
     * <pre>
     * Событие удаления ресурса
     * </pre>
     *
     * Protobuf type {@code keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.RemoveResourceEvent}
     */
    public  static final class RemoveResourceEvent extends
        com.google.protobuf.GeneratedMessageLite<
            RemoveResourceEvent, RemoveResourceEvent.Builder> implements
        // @@protoc_insertion_point(message_implements:keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.RemoveResourceEvent)
        RemoveResourceEventOrBuilder {
      private RemoveResourceEvent() {
      }
      public static final int RESOURCE_ID_FIELD_NUMBER = 1;
      private ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId resourceId_;
      /**
       * <pre>
       * Идентификатор ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public boolean hasResourceId() {
        return resourceId_ != null;
      }
      /**
       * <pre>
       * Идентификатор ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId getResourceId() {
        return resourceId_ == null ? ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId.getDefaultInstance() : resourceId_;
      }
      /**
       * <pre>
       * Идентификатор ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      private void setResourceId(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId value) {
        value.getClass();
  resourceId_ = value;

        }
      /**
       * <pre>
       * Идентификатор ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeResourceId(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId value) {
        value.getClass();
  if (resourceId_ != null &&
            resourceId_ != ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId.getDefaultInstance()) {
          resourceId_ =
            ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId.newBuilder(resourceId_).mergeFrom(value).buildPartial();
        } else {
          resourceId_ = value;
        }

      }
      /**
       * <pre>
       * Идентификатор ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      private void clearResourceId() {  resourceId_ = null;

      }

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

      public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.RemoveResourceEvent parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

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

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.RemoveResourceEvent prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Событие удаления ресурса
       * </pre>
       *
       * Protobuf type {@code keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.RemoveResourceEvent}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.RemoveResourceEvent, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.RemoveResourceEvent)
          ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.RemoveResourceEventOrBuilder {
        // Construct using ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.RemoveResourceEvent.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }


        /**
         * <pre>
         * Идентификатор ресурса
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        @java.lang.Override
        public boolean hasResourceId() {
          return instance.hasResourceId();
        }
        /**
         * <pre>
         * Идентификатор ресурса
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        @java.lang.Override
        public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId getResourceId() {
          return instance.getResourceId();
        }
        /**
         * <pre>
         * Идентификатор ресурса
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder setResourceId(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId value) {
          copyOnWrite();
          instance.setResourceId(value);
          return this;
          }
        /**
         * <pre>
         * Идентификатор ресурса
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder setResourceId(
            ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId.Builder builderForValue) {
          copyOnWrite();
          instance.setResourceId(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Идентификатор ресурса
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder mergeResourceId(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId value) {
          copyOnWrite();
          instance.mergeResourceId(value);
          return this;
        }
        /**
         * <pre>
         * Идентификатор ресурса
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder clearResourceId() {  copyOnWrite();
          instance.clearResourceId();
          return this;
        }

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


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

      public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.RemoveResourceEvent getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

    public interface UpsertResourceEventOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.UpsertResourceEvent)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <pre>
       * Ресурс
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Resource resource = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return Whether the resource field is set.
       */
      boolean hasResource();
      /**
       * <pre>
       * Ресурс
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Resource resource = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The resource.
       */
      ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Resource getResource();
    }
    /**
     * <pre>
     * Событие создания/обновления ресурса
     * </pre>
     *
     * Protobuf type {@code keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.UpsertResourceEvent}
     */
    public  static final class UpsertResourceEvent extends
        com.google.protobuf.GeneratedMessageLite<
            UpsertResourceEvent, UpsertResourceEvent.Builder> implements
        // @@protoc_insertion_point(message_implements:keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.UpsertResourceEvent)
        UpsertResourceEventOrBuilder {
      private UpsertResourceEvent() {
      }
      public static final int RESOURCE_FIELD_NUMBER = 1;
      private ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Resource resource_;
      /**
       * <pre>
       * Ресурс
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Resource resource = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public boolean hasResource() {
        return resource_ != null;
      }
      /**
       * <pre>
       * Ресурс
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Resource resource = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Resource getResource() {
        return resource_ == null ? ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Resource.getDefaultInstance() : resource_;
      }
      /**
       * <pre>
       * Ресурс
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Resource resource = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      private void setResource(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Resource value) {
        value.getClass();
  resource_ = value;

        }
      /**
       * <pre>
       * Ресурс
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Resource resource = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeResource(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Resource value) {
        value.getClass();
  if (resource_ != null &&
            resource_ != ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Resource.getDefaultInstance()) {
          resource_ =
            ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Resource.newBuilder(resource_).mergeFrom(value).buildPartial();
        } else {
          resource_ = value;
        }

      }
      /**
       * <pre>
       * Ресурс
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Resource resource = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      private void clearResource() {  resource_ = null;

      }

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

      public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.UpsertResourceEvent parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

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

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.UpsertResourceEvent prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Событие создания/обновления ресурса
       * </pre>
       *
       * Protobuf type {@code keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.UpsertResourceEvent}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.UpsertResourceEvent, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.UpsertResourceEvent)
          ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.UpsertResourceEventOrBuilder {
        // Construct using ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.UpsertResourceEvent.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }


        /**
         * <pre>
         * Ресурс
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.Resource resource = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        @java.lang.Override
        public boolean hasResource() {
          return instance.hasResource();
        }
        /**
         * <pre>
         * Ресурс
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.Resource resource = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        @java.lang.Override
        public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Resource getResource() {
          return instance.getResource();
        }
        /**
         * <pre>
         * Ресурс
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.Resource resource = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder setResource(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Resource value) {
          copyOnWrite();
          instance.setResource(value);
          return this;
          }
        /**
         * <pre>
         * Ресурс
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.Resource resource = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder setResource(
            ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Resource.Builder builderForValue) {
          copyOnWrite();
          instance.setResource(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Ресурс
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.Resource resource = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder mergeResource(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Resource value) {
          copyOnWrite();
          instance.mergeResource(value);
          return this;
        }
        /**
         * <pre>
         * Ресурс
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.Resource resource = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder clearResource() {  copyOnWrite();
          instance.clearResource();
          return this;
        }

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


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

      public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.UpsertResourceEvent getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

    private int eventCase_ = 0;
    private java.lang.Object event_;
    public enum EventCase {
      UPSERT_RESOURCE_EVENT(2),
      REMOVE_RESOURCE_EVENT(3),
      EVENT_NOT_SET(0);
      private final int value;
      private EventCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static EventCase valueOf(int value) {
        return forNumber(value);
      }

      public static EventCase forNumber(int value) {
        switch (value) {
          case 2: return UPSERT_RESOURCE_EVENT;
          case 3: return REMOVE_RESOURCE_EVENT;
          case 0: return EVENT_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public EventCase
    getEventCase() {
      return EventCase.forNumber(
          eventCase_);
    }

    private void clearEvent() {
      eventCase_ = 0;
      event_ = null;
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    private java.lang.String requestId_;
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      return requestId_;
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(requestId_);
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The requestId to set.
     */
    private void setRequestId(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      requestId_ = value;
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     */
    private void clearRequestId() {

      requestId_ = getDefaultInstance().getRequestId();
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
     * @param value The bytes for requestId to set.
     */
    private void setRequestIdBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      requestId_ = value.toStringUtf8();

    }

    public static final int UPSERT_RESOURCE_EVENT_FIELD_NUMBER = 2;
    /**
     * <pre>
     * Событие создания/обновления ресурса
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.UpsertResourceEvent upsert_resource_event = 2;</code>
     */
    @java.lang.Override
    public boolean hasUpsertResourceEvent() {
      return eventCase_ == 2;
    }
    /**
     * <pre>
     * Событие создания/обновления ресурса
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.UpsertResourceEvent upsert_resource_event = 2;</code>
     */
    @java.lang.Override
    public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.UpsertResourceEvent getUpsertResourceEvent() {
      if (eventCase_ == 2) {
         return (ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.UpsertResourceEvent) event_;
      }
      return ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.UpsertResourceEvent.getDefaultInstance();
    }
    /**
     * <pre>
     * Событие создания/обновления ресурса
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.UpsertResourceEvent upsert_resource_event = 2;</code>
     */
    private void setUpsertResourceEvent(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.UpsertResourceEvent value) {
      value.getClass();
  event_ = value;
      eventCase_ = 2;
    }
    /**
     * <pre>
     * Событие создания/обновления ресурса
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.UpsertResourceEvent upsert_resource_event = 2;</code>
     */
    private void mergeUpsertResourceEvent(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.UpsertResourceEvent value) {
      value.getClass();
  if (eventCase_ == 2 &&
          event_ != ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.UpsertResourceEvent.getDefaultInstance()) {
        event_ = ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.UpsertResourceEvent.newBuilder((ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.UpsertResourceEvent) event_)
            .mergeFrom(value).buildPartial();
      } else {
        event_ = value;
      }
      eventCase_ = 2;
    }
    /**
     * <pre>
     * Событие создания/обновления ресурса
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.UpsertResourceEvent upsert_resource_event = 2;</code>
     */
    private void clearUpsertResourceEvent() {
      if (eventCase_ == 2) {
        eventCase_ = 0;
        event_ = null;
      }
    }

    public static final int REMOVE_RESOURCE_EVENT_FIELD_NUMBER = 3;
    /**
     * <pre>
     * Событие удаления ресурса
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.RemoveResourceEvent remove_resource_event = 3;</code>
     */
    @java.lang.Override
    public boolean hasRemoveResourceEvent() {
      return eventCase_ == 3;
    }
    /**
     * <pre>
     * Событие удаления ресурса
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.RemoveResourceEvent remove_resource_event = 3;</code>
     */
    @java.lang.Override
    public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.RemoveResourceEvent getRemoveResourceEvent() {
      if (eventCase_ == 3) {
         return (ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.RemoveResourceEvent) event_;
      }
      return ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.RemoveResourceEvent.getDefaultInstance();
    }
    /**
     * <pre>
     * Событие удаления ресурса
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.RemoveResourceEvent remove_resource_event = 3;</code>
     */
    private void setRemoveResourceEvent(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.RemoveResourceEvent value) {
      value.getClass();
  event_ = value;
      eventCase_ = 3;
    }
    /**
     * <pre>
     * Событие удаления ресурса
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.RemoveResourceEvent remove_resource_event = 3;</code>
     */
    private void mergeRemoveResourceEvent(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.RemoveResourceEvent value) {
      value.getClass();
  if (eventCase_ == 3 &&
          event_ != ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.RemoveResourceEvent.getDefaultInstance()) {
        event_ = ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.RemoveResourceEvent.newBuilder((ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.RemoveResourceEvent) event_)
            .mergeFrom(value).buildPartial();
      } else {
        event_ = value;
      }
      eventCase_ = 3;
    }
    /**
     * <pre>
     * Событие удаления ресурса
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.RemoveResourceEvent remove_resource_event = 3;</code>
     */
    private void clearRemoveResourceEvent() {
      if (eventCase_ == 3) {
        eventCase_ = 0;
        event_ = null;
      }
    }

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

    public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Событие создания/изменения ресурса
     * </pre>
     *
     * Protobuf type {@code keyapis.telemetry_control.v1.PostResourceFullDuplexResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.telemetry_control.v1.PostResourceFullDuplexResponse)
        ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponseOrBuilder {
      // Construct using ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public EventCase
          getEventCase() {
        return instance.getEventCase();
      }

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


      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The requestId.
       */
      @java.lang.Override
      public java.lang.String getRequestId() {
        return instance.getRequestId();
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The bytes for requestId.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        return instance.getRequestIdBytes();
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        copyOnWrite();
        instance.setRequestId(value);
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        copyOnWrite();
        instance.clearRequestId();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setRequestIdBytes(value);
        return this;
      }

      /**
       * <pre>
       * Событие создания/обновления ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.UpsertResourceEvent upsert_resource_event = 2;</code>
       */
      @java.lang.Override
      public boolean hasUpsertResourceEvent() {
        return instance.hasUpsertResourceEvent();
      }
      /**
       * <pre>
       * Событие создания/обновления ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.UpsertResourceEvent upsert_resource_event = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.UpsertResourceEvent getUpsertResourceEvent() {
        return instance.getUpsertResourceEvent();
      }
      /**
       * <pre>
       * Событие создания/обновления ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.UpsertResourceEvent upsert_resource_event = 2;</code>
       */
      public Builder setUpsertResourceEvent(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.UpsertResourceEvent value) {
        copyOnWrite();
        instance.setUpsertResourceEvent(value);
        return this;
      }
      /**
       * <pre>
       * Событие создания/обновления ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.UpsertResourceEvent upsert_resource_event = 2;</code>
       */
      public Builder setUpsertResourceEvent(
          ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.UpsertResourceEvent.Builder builderForValue) {
        copyOnWrite();
        instance.setUpsertResourceEvent(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Событие создания/обновления ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.UpsertResourceEvent upsert_resource_event = 2;</code>
       */
      public Builder mergeUpsertResourceEvent(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.UpsertResourceEvent value) {
        copyOnWrite();
        instance.mergeUpsertResourceEvent(value);
        return this;
      }
      /**
       * <pre>
       * Событие создания/обновления ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.UpsertResourceEvent upsert_resource_event = 2;</code>
       */
      public Builder clearUpsertResourceEvent() {
        copyOnWrite();
        instance.clearUpsertResourceEvent();
        return this;
      }

      /**
       * <pre>
       * Событие удаления ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.RemoveResourceEvent remove_resource_event = 3;</code>
       */
      @java.lang.Override
      public boolean hasRemoveResourceEvent() {
        return instance.hasRemoveResourceEvent();
      }
      /**
       * <pre>
       * Событие удаления ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.RemoveResourceEvent remove_resource_event = 3;</code>
       */
      @java.lang.Override
      public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.RemoveResourceEvent getRemoveResourceEvent() {
        return instance.getRemoveResourceEvent();
      }
      /**
       * <pre>
       * Событие удаления ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.RemoveResourceEvent remove_resource_event = 3;</code>
       */
      public Builder setRemoveResourceEvent(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.RemoveResourceEvent value) {
        copyOnWrite();
        instance.setRemoveResourceEvent(value);
        return this;
      }
      /**
       * <pre>
       * Событие удаления ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.RemoveResourceEvent remove_resource_event = 3;</code>
       */
      public Builder setRemoveResourceEvent(
          ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.RemoveResourceEvent.Builder builderForValue) {
        copyOnWrite();
        instance.setRemoveResourceEvent(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Событие удаления ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.RemoveResourceEvent remove_resource_event = 3;</code>
       */
      public Builder mergeRemoveResourceEvent(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse.RemoveResourceEvent value) {
        copyOnWrite();
        instance.mergeRemoveResourceEvent(value);
        return this;
      }
      /**
       * <pre>
       * Событие удаления ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.RemoveResourceEvent remove_resource_event = 3;</code>
       */
      public Builder clearRemoveResourceEvent() {
        copyOnWrite();
        instance.clearRemoveResourceEvent();
        return this;
      }

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


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

    public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface ResourceIdOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.telemetry_control.v1.ResourceId)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Идентификатор объекта строительства
     * </pre>
     *
     * <code>int32 building_id = 1;</code>
     * @return Whether the buildingId field is set.
     */
    boolean hasBuildingId();
    /**
     * <pre>
     * Идентификатор объекта строительства
     * </pre>
     *
     * <code>int32 building_id = 1;</code>
     * @return The buildingId.
     */
    int getBuildingId();

    /**
     * <pre>
     * Идентификатор ПУ
     * </pre>
     *
     * <code>int32 device_id = 2;</code>
     * @return Whether the deviceId field is set.
     */
    boolean hasDeviceId();
    /**
     * <pre>
     * Идентификатор ПУ
     * </pre>
     *
     * <code>int32 device_id = 2;</code>
     * @return The deviceId.
     */
    int getDeviceId();

    /**
     * <pre>
     * Идентификатор ТУ
     * </pre>
     *
     * <code>string metric_point_id = 3;</code>
     * @return Whether the metricPointId field is set.
     */
    boolean hasMetricPointId();
    /**
     * <pre>
     * Идентификатор ТУ
     * </pre>
     *
     * <code>string metric_point_id = 3;</code>
     * @return The metricPointId.
     */
    java.lang.String getMetricPointId();
    /**
     * <pre>
     * Идентификатор ТУ
     * </pre>
     *
     * <code>string metric_point_id = 3;</code>
     * @return The bytes for metricPointId.
     */
    com.google.protobuf.ByteString
        getMetricPointIdBytes();

    /**
     * <pre>
     * Идентификатор индикатора
     * </pre>
     *
     * <code>int32 indicator_id = 4;</code>
     * @return Whether the indicatorId field is set.
     */
    boolean hasIndicatorId();
    /**
     * <pre>
     * Идентификатор индикатора
     * </pre>
     *
     * <code>int32 indicator_id = 4;</code>
     * @return The indicatorId.
     */
    int getIndicatorId();

    /**
     * <pre>
     * Связка индикатора и ТУ
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
     * @return Whether the indicatorMetricPoint field is set.
     */
    boolean hasIndicatorMetricPoint();
    /**
     * <pre>
     * Связка индикатора и ТУ
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
     * @return The indicatorMetricPoint.
     */
    ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint getIndicatorMetricPoint();

    public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId.TypeCase getTypeCase();
  }
  /**
   * <pre>
   * Идентификатор ресурса
   * </pre>
   *
   * Protobuf type {@code keyapis.telemetry_control.v1.ResourceId}
   */
  public  static final class ResourceId extends
      com.google.protobuf.GeneratedMessageLite<
          ResourceId, ResourceId.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.telemetry_control.v1.ResourceId)
      ResourceIdOrBuilder {
    private ResourceId() {
    }
    private int typeCase_ = 0;
    private java.lang.Object type_;
    public enum TypeCase {
      BUILDING_ID(1),
      DEVICE_ID(2),
      METRIC_POINT_ID(3),
      INDICATOR_ID(4),
      INDICATOR_METRIC_POINT(5),
      TYPE_NOT_SET(0);
      private final int value;
      private TypeCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static TypeCase valueOf(int value) {
        return forNumber(value);
      }

      public static TypeCase forNumber(int value) {
        switch (value) {
          case 1: return BUILDING_ID;
          case 2: return DEVICE_ID;
          case 3: return METRIC_POINT_ID;
          case 4: return INDICATOR_ID;
          case 5: return INDICATOR_METRIC_POINT;
          case 0: return TYPE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

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

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

    public static final int BUILDING_ID_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Идентификатор объекта строительства
     * </pre>
     *
     * <code>int32 building_id = 1;</code>
     * @return Whether the buildingId field is set.
     */
    @java.lang.Override
    public boolean hasBuildingId() {
      return typeCase_ == 1;
    }
    /**
     * <pre>
     * Идентификатор объекта строительства
     * </pre>
     *
     * <code>int32 building_id = 1;</code>
     * @return The buildingId.
     */
    @java.lang.Override
    public int getBuildingId() {
      if (typeCase_ == 1) {
        return (java.lang.Integer) type_;
      }
      return 0;
    }
    /**
     * <pre>
     * Идентификатор объекта строительства
     * </pre>
     *
     * <code>int32 building_id = 1;</code>
     * @param value The buildingId to set.
     */
    private void setBuildingId(int value) {
      typeCase_ = 1;
      type_ = value;
    }
    /**
     * <pre>
     * Идентификатор объекта строительства
     * </pre>
     *
     * <code>int32 building_id = 1;</code>
     */
    private void clearBuildingId() {
      if (typeCase_ == 1) {
        typeCase_ = 0;
        type_ = null;
      }
    }

    public static final int DEVICE_ID_FIELD_NUMBER = 2;
    /**
     * <pre>
     * Идентификатор ПУ
     * </pre>
     *
     * <code>int32 device_id = 2;</code>
     * @return Whether the deviceId field is set.
     */
    @java.lang.Override
    public boolean hasDeviceId() {
      return typeCase_ == 2;
    }
    /**
     * <pre>
     * Идентификатор ПУ
     * </pre>
     *
     * <code>int32 device_id = 2;</code>
     * @return The deviceId.
     */
    @java.lang.Override
    public int getDeviceId() {
      if (typeCase_ == 2) {
        return (java.lang.Integer) type_;
      }
      return 0;
    }
    /**
     * <pre>
     * Идентификатор ПУ
     * </pre>
     *
     * <code>int32 device_id = 2;</code>
     * @param value The deviceId to set.
     */
    private void setDeviceId(int value) {
      typeCase_ = 2;
      type_ = value;
    }
    /**
     * <pre>
     * Идентификатор ПУ
     * </pre>
     *
     * <code>int32 device_id = 2;</code>
     */
    private void clearDeviceId() {
      if (typeCase_ == 2) {
        typeCase_ = 0;
        type_ = null;
      }
    }

    public static final int METRIC_POINT_ID_FIELD_NUMBER = 3;
    /**
     * <pre>
     * Идентификатор ТУ
     * </pre>
     *
     * <code>string metric_point_id = 3;</code>
     * @return Whether the metricPointId field is set.
     */
    @java.lang.Override
    public boolean hasMetricPointId() {
      return typeCase_ == 3;
    }
    /**
     * <pre>
     * Идентификатор ТУ
     * </pre>
     *
     * <code>string metric_point_id = 3;</code>
     * @return The metricPointId.
     */
    @java.lang.Override
    public java.lang.String getMetricPointId() {
      java.lang.String ref = "";
      if (typeCase_ == 3) {
        ref = (java.lang.String) type_;
      }
      return ref;
    }
    /**
     * <pre>
     * Идентификатор ТУ
     * </pre>
     *
     * <code>string metric_point_id = 3;</code>
     * @return The bytes for metricPointId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMetricPointIdBytes() {
      java.lang.String ref = "";
      if (typeCase_ == 3) {
        ref = (java.lang.String) type_;
      }
      return com.google.protobuf.ByteString.copyFromUtf8(ref);
    }
    /**
     * <pre>
     * Идентификатор ТУ
     * </pre>
     *
     * <code>string metric_point_id = 3;</code>
     * @param value The metricPointId to set.
     */
    private void setMetricPointId(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  typeCase_ = 3;
      type_ = value;
    }
    /**
     * <pre>
     * Идентификатор ТУ
     * </pre>
     *
     * <code>string metric_point_id = 3;</code>
     */
    private void clearMetricPointId() {
      if (typeCase_ == 3) {
        typeCase_ = 0;
        type_ = null;
      }
    }
    /**
     * <pre>
     * Идентификатор ТУ
     * </pre>
     *
     * <code>string metric_point_id = 3;</code>
     * @param value The bytes for metricPointId to set.
     */
    private void setMetricPointIdBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      type_ = value.toStringUtf8();
      typeCase_ = 3;
    }

    public static final int INDICATOR_ID_FIELD_NUMBER = 4;
    /**
     * <pre>
     * Идентификатор индикатора
     * </pre>
     *
     * <code>int32 indicator_id = 4;</code>
     * @return Whether the indicatorId field is set.
     */
    @java.lang.Override
    public boolean hasIndicatorId() {
      return typeCase_ == 4;
    }
    /**
     * <pre>
     * Идентификатор индикатора
     * </pre>
     *
     * <code>int32 indicator_id = 4;</code>
     * @return The indicatorId.
     */
    @java.lang.Override
    public int getIndicatorId() {
      if (typeCase_ == 4) {
        return (java.lang.Integer) type_;
      }
      return 0;
    }
    /**
     * <pre>
     * Идентификатор индикатора
     * </pre>
     *
     * <code>int32 indicator_id = 4;</code>
     * @param value The indicatorId to set.
     */
    private void setIndicatorId(int value) {
      typeCase_ = 4;
      type_ = value;
    }
    /**
     * <pre>
     * Идентификатор индикатора
     * </pre>
     *
     * <code>int32 indicator_id = 4;</code>
     */
    private void clearIndicatorId() {
      if (typeCase_ == 4) {
        typeCase_ = 0;
        type_ = null;
      }
    }

    public static final int INDICATOR_METRIC_POINT_FIELD_NUMBER = 5;
    /**
     * <pre>
     * Связка индикатора и ТУ
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
     */
    @java.lang.Override
    public boolean hasIndicatorMetricPoint() {
      return typeCase_ == 5;
    }
    /**
     * <pre>
     * Связка индикатора и ТУ
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
     */
    @java.lang.Override
    public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint getIndicatorMetricPoint() {
      if (typeCase_ == 5) {
         return (ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint) type_;
      }
      return ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint.getDefaultInstance();
    }
    /**
     * <pre>
     * Связка индикатора и ТУ
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
     */
    private void setIndicatorMetricPoint(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint value) {
      value.getClass();
  type_ = value;
      typeCase_ = 5;
    }
    /**
     * <pre>
     * Связка индикатора и ТУ
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
     */
    private void mergeIndicatorMetricPoint(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint value) {
      value.getClass();
  if (typeCase_ == 5 &&
          type_ != ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint.getDefaultInstance()) {
        type_ = ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint.newBuilder((ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 5;
    }
    /**
     * <pre>
     * Связка индикатора и ТУ
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
     */
    private void clearIndicatorMetricPoint() {
      if (typeCase_ == 5) {
        typeCase_ = 0;
        type_ = null;
      }
    }

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

    public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Идентификатор ресурса
     * </pre>
     *
     * Protobuf type {@code keyapis.telemetry_control.v1.ResourceId}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.telemetry_control.v1.ResourceId)
        ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceIdOrBuilder {
      // Construct using ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

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

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


      /**
       * <pre>
       * Идентификатор объекта строительства
       * </pre>
       *
       * <code>int32 building_id = 1;</code>
       * @return Whether the buildingId field is set.
       */
      @java.lang.Override
      public boolean hasBuildingId() {
        return instance.hasBuildingId();
      }
      /**
       * <pre>
       * Идентификатор объекта строительства
       * </pre>
       *
       * <code>int32 building_id = 1;</code>
       * @return The buildingId.
       */
      @java.lang.Override
      public int getBuildingId() {
        return instance.getBuildingId();
      }
      /**
       * <pre>
       * Идентификатор объекта строительства
       * </pre>
       *
       * <code>int32 building_id = 1;</code>
       * @param value The buildingId to set.
       * @return This builder for chaining.
       */
      public Builder setBuildingId(int value) {
        copyOnWrite();
        instance.setBuildingId(value);
        return this;
      }
      /**
       * <pre>
       * Идентификатор объекта строительства
       * </pre>
       *
       * <code>int32 building_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearBuildingId() {
        copyOnWrite();
        instance.clearBuildingId();
        return this;
      }

      /**
       * <pre>
       * Идентификатор ПУ
       * </pre>
       *
       * <code>int32 device_id = 2;</code>
       * @return Whether the deviceId field is set.
       */
      @java.lang.Override
      public boolean hasDeviceId() {
        return instance.hasDeviceId();
      }
      /**
       * <pre>
       * Идентификатор ПУ
       * </pre>
       *
       * <code>int32 device_id = 2;</code>
       * @return The deviceId.
       */
      @java.lang.Override
      public int getDeviceId() {
        return instance.getDeviceId();
      }
      /**
       * <pre>
       * Идентификатор ПУ
       * </pre>
       *
       * <code>int32 device_id = 2;</code>
       * @param value The deviceId to set.
       * @return This builder for chaining.
       */
      public Builder setDeviceId(int value) {
        copyOnWrite();
        instance.setDeviceId(value);
        return this;
      }
      /**
       * <pre>
       * Идентификатор ПУ
       * </pre>
       *
       * <code>int32 device_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeviceId() {
        copyOnWrite();
        instance.clearDeviceId();
        return this;
      }

      /**
       * <pre>
       * Идентификатор ТУ
       * </pre>
       *
       * <code>string metric_point_id = 3;</code>
       * @return Whether the metricPointId field is set.
       */
      @java.lang.Override
      public boolean hasMetricPointId() {
        return instance.hasMetricPointId();
      }
      /**
       * <pre>
       * Идентификатор ТУ
       * </pre>
       *
       * <code>string metric_point_id = 3;</code>
       * @return The metricPointId.
       */
      @java.lang.Override
      public java.lang.String getMetricPointId() {
        return instance.getMetricPointId();
      }
      /**
       * <pre>
       * Идентификатор ТУ
       * </pre>
       *
       * <code>string metric_point_id = 3;</code>
       * @return The bytes for metricPointId.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getMetricPointIdBytes() {
        return instance.getMetricPointIdBytes();
      }
      /**
       * <pre>
       * Идентификатор ТУ
       * </pre>
       *
       * <code>string metric_point_id = 3;</code>
       * @param value The metricPointId to set.
       * @return This builder for chaining.
       */
      public Builder setMetricPointId(
          java.lang.String value) {
        copyOnWrite();
        instance.setMetricPointId(value);
        return this;
      }
      /**
       * <pre>
       * Идентификатор ТУ
       * </pre>
       *
       * <code>string metric_point_id = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearMetricPointId() {
        copyOnWrite();
        instance.clearMetricPointId();
        return this;
      }
      /**
       * <pre>
       * Идентификатор ТУ
       * </pre>
       *
       * <code>string metric_point_id = 3;</code>
       * @param value The bytes for metricPointId to set.
       * @return This builder for chaining.
       */
      public Builder setMetricPointIdBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setMetricPointIdBytes(value);
        return this;
      }

      /**
       * <pre>
       * Идентификатор индикатора
       * </pre>
       *
       * <code>int32 indicator_id = 4;</code>
       * @return Whether the indicatorId field is set.
       */
      @java.lang.Override
      public boolean hasIndicatorId() {
        return instance.hasIndicatorId();
      }
      /**
       * <pre>
       * Идентификатор индикатора
       * </pre>
       *
       * <code>int32 indicator_id = 4;</code>
       * @return The indicatorId.
       */
      @java.lang.Override
      public int getIndicatorId() {
        return instance.getIndicatorId();
      }
      /**
       * <pre>
       * Идентификатор индикатора
       * </pre>
       *
       * <code>int32 indicator_id = 4;</code>
       * @param value The indicatorId to set.
       * @return This builder for chaining.
       */
      public Builder setIndicatorId(int value) {
        copyOnWrite();
        instance.setIndicatorId(value);
        return this;
      }
      /**
       * <pre>
       * Идентификатор индикатора
       * </pre>
       *
       * <code>int32 indicator_id = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearIndicatorId() {
        copyOnWrite();
        instance.clearIndicatorId();
        return this;
      }

      /**
       * <pre>
       * Связка индикатора и ТУ
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
       */
      @java.lang.Override
      public boolean hasIndicatorMetricPoint() {
        return instance.hasIndicatorMetricPoint();
      }
      /**
       * <pre>
       * Связка индикатора и ТУ
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
       */
      @java.lang.Override
      public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint getIndicatorMetricPoint() {
        return instance.getIndicatorMetricPoint();
      }
      /**
       * <pre>
       * Связка индикатора и ТУ
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
       */
      public Builder setIndicatorMetricPoint(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint value) {
        copyOnWrite();
        instance.setIndicatorMetricPoint(value);
        return this;
      }
      /**
       * <pre>
       * Связка индикатора и ТУ
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
       */
      public Builder setIndicatorMetricPoint(
          ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint.Builder builderForValue) {
        copyOnWrite();
        instance.setIndicatorMetricPoint(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Связка индикатора и ТУ
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
       */
      public Builder mergeIndicatorMetricPoint(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint value) {
        copyOnWrite();
        instance.mergeIndicatorMetricPoint(value);
        return this;
      }
      /**
       * <pre>
       * Связка индикатора и ТУ
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
       */
      public Builder clearIndicatorMetricPoint() {
        copyOnWrite();
        instance.clearIndicatorMetricPoint();
        return this;
      }

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


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

    public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface ResourceOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.telemetry_control.v1.Resource)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Объект строительства
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Building building = 1;</code>
     * @return Whether the building field is set.
     */
    boolean hasBuilding();
    /**
     * <pre>
     * Объект строительства
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Building building = 1;</code>
     * @return The building.
     */
    ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Building getBuilding();

    /**
     * <pre>
     * Идентификатор ПУ
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Device device = 2;</code>
     * @return Whether the device field is set.
     */
    boolean hasDevice();
    /**
     * <pre>
     * Идентификатор ПУ
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Device device = 2;</code>
     * @return The device.
     */
    ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device getDevice();

    /**
     * <pre>
     * Точка учета
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Device.MetricPoint metric_point = 3;</code>
     * @return Whether the metricPoint field is set.
     */
    boolean hasMetricPoint();
    /**
     * <pre>
     * Точка учета
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Device.MetricPoint metric_point = 3;</code>
     * @return The metricPoint.
     */
    ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device.MetricPoint getMetricPoint();

    /**
     * <pre>
     * Индикатор
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Indicator indicator = 4;</code>
     * @return Whether the indicator field is set.
     */
    boolean hasIndicator();
    /**
     * <pre>
     * Индикатор
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Indicator indicator = 4;</code>
     * @return The indicator.
     */
    ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Indicator getIndicator();

    /**
     * <pre>
     * Связка индикатора и ТУ
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
     * @return Whether the indicatorMetricPoint field is set.
     */
    boolean hasIndicatorMetricPoint();
    /**
     * <pre>
     * Связка индикатора и ТУ
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
     * @return The indicatorMetricPoint.
     */
    ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint getIndicatorMetricPoint();

    public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Resource.TypeCase getTypeCase();
  }
  /**
   * <pre>
   * Ресурс
   * </pre>
   *
   * Protobuf type {@code keyapis.telemetry_control.v1.Resource}
   */
  public  static final class Resource extends
      com.google.protobuf.GeneratedMessageLite<
          Resource, Resource.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.telemetry_control.v1.Resource)
      ResourceOrBuilder {
    private Resource() {
    }
    private int typeCase_ = 0;
    private java.lang.Object type_;
    public enum TypeCase {
      BUILDING(1),
      DEVICE(2),
      METRIC_POINT(3),
      INDICATOR(4),
      INDICATOR_METRIC_POINT(5),
      TYPE_NOT_SET(0);
      private final int value;
      private TypeCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static TypeCase valueOf(int value) {
        return forNumber(value);
      }

      public static TypeCase forNumber(int value) {
        switch (value) {
          case 1: return BUILDING;
          case 2: return DEVICE;
          case 3: return METRIC_POINT;
          case 4: return INDICATOR;
          case 5: return INDICATOR_METRIC_POINT;
          case 0: return TYPE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

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

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

    public static final int BUILDING_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Объект строительства
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Building building = 1;</code>
     */
    @java.lang.Override
    public boolean hasBuilding() {
      return typeCase_ == 1;
    }
    /**
     * <pre>
     * Объект строительства
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Building building = 1;</code>
     */
    @java.lang.Override
    public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Building getBuilding() {
      if (typeCase_ == 1) {
         return (ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Building) type_;
      }
      return ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Building.getDefaultInstance();
    }
    /**
     * <pre>
     * Объект строительства
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Building building = 1;</code>
     */
    private void setBuilding(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Building value) {
      value.getClass();
  type_ = value;
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Объект строительства
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Building building = 1;</code>
     */
    private void mergeBuilding(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Building value) {
      value.getClass();
  if (typeCase_ == 1 &&
          type_ != ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Building.getDefaultInstance()) {
        type_ = ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Building.newBuilder((ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Building) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 1;
    }
    /**
     * <pre>
     * Объект строительства
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Building building = 1;</code>
     */
    private void clearBuilding() {
      if (typeCase_ == 1) {
        typeCase_ = 0;
        type_ = null;
      }
    }

    public static final int DEVICE_FIELD_NUMBER = 2;
    /**
     * <pre>
     * Идентификатор ПУ
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Device device = 2;</code>
     */
    @java.lang.Override
    public boolean hasDevice() {
      return typeCase_ == 2;
    }
    /**
     * <pre>
     * Идентификатор ПУ
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Device device = 2;</code>
     */
    @java.lang.Override
    public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device getDevice() {
      if (typeCase_ == 2) {
         return (ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device) type_;
      }
      return ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device.getDefaultInstance();
    }
    /**
     * <pre>
     * Идентификатор ПУ
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Device device = 2;</code>
     */
    private void setDevice(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device value) {
      value.getClass();
  type_ = value;
      typeCase_ = 2;
    }
    /**
     * <pre>
     * Идентификатор ПУ
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Device device = 2;</code>
     */
    private void mergeDevice(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device value) {
      value.getClass();
  if (typeCase_ == 2 &&
          type_ != ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device.getDefaultInstance()) {
        type_ = ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device.newBuilder((ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 2;
    }
    /**
     * <pre>
     * Идентификатор ПУ
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Device device = 2;</code>
     */
    private void clearDevice() {
      if (typeCase_ == 2) {
        typeCase_ = 0;
        type_ = null;
      }
    }

    public static final int METRIC_POINT_FIELD_NUMBER = 3;
    /**
     * <pre>
     * Точка учета
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Device.MetricPoint metric_point = 3;</code>
     */
    @java.lang.Override
    public boolean hasMetricPoint() {
      return typeCase_ == 3;
    }
    /**
     * <pre>
     * Точка учета
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Device.MetricPoint metric_point = 3;</code>
     */
    @java.lang.Override
    public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device.MetricPoint getMetricPoint() {
      if (typeCase_ == 3) {
         return (ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device.MetricPoint) type_;
      }
      return ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device.MetricPoint.getDefaultInstance();
    }
    /**
     * <pre>
     * Точка учета
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Device.MetricPoint metric_point = 3;</code>
     */
    private void setMetricPoint(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device.MetricPoint value) {
      value.getClass();
  type_ = value;
      typeCase_ = 3;
    }
    /**
     * <pre>
     * Точка учета
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Device.MetricPoint metric_point = 3;</code>
     */
    private void mergeMetricPoint(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device.MetricPoint value) {
      value.getClass();
  if (typeCase_ == 3 &&
          type_ != ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device.MetricPoint.getDefaultInstance()) {
        type_ = ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device.MetricPoint.newBuilder((ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device.MetricPoint) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 3;
    }
    /**
     * <pre>
     * Точка учета
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Device.MetricPoint metric_point = 3;</code>
     */
    private void clearMetricPoint() {
      if (typeCase_ == 3) {
        typeCase_ = 0;
        type_ = null;
      }
    }

    public static final int INDICATOR_FIELD_NUMBER = 4;
    /**
     * <pre>
     * Индикатор
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Indicator indicator = 4;</code>
     */
    @java.lang.Override
    public boolean hasIndicator() {
      return typeCase_ == 4;
    }
    /**
     * <pre>
     * Индикатор
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Indicator indicator = 4;</code>
     */
    @java.lang.Override
    public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Indicator getIndicator() {
      if (typeCase_ == 4) {
         return (ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Indicator) type_;
      }
      return ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Indicator.getDefaultInstance();
    }
    /**
     * <pre>
     * Индикатор
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Indicator indicator = 4;</code>
     */
    private void setIndicator(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Indicator value) {
      value.getClass();
  type_ = value;
      typeCase_ = 4;
    }
    /**
     * <pre>
     * Индикатор
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Indicator indicator = 4;</code>
     */
    private void mergeIndicator(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Indicator value) {
      value.getClass();
  if (typeCase_ == 4 &&
          type_ != ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Indicator.getDefaultInstance()) {
        type_ = ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Indicator.newBuilder((ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Indicator) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 4;
    }
    /**
     * <pre>
     * Индикатор
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.Indicator indicator = 4;</code>
     */
    private void clearIndicator() {
      if (typeCase_ == 4) {
        typeCase_ = 0;
        type_ = null;
      }
    }

    public static final int INDICATOR_METRIC_POINT_FIELD_NUMBER = 5;
    /**
     * <pre>
     * Связка индикатора и ТУ
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
     */
    @java.lang.Override
    public boolean hasIndicatorMetricPoint() {
      return typeCase_ == 5;
    }
    /**
     * <pre>
     * Связка индикатора и ТУ
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
     */
    @java.lang.Override
    public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint getIndicatorMetricPoint() {
      if (typeCase_ == 5) {
         return (ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint) type_;
      }
      return ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint.getDefaultInstance();
    }
    /**
     * <pre>
     * Связка индикатора и ТУ
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
     */
    private void setIndicatorMetricPoint(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint value) {
      value.getClass();
  type_ = value;
      typeCase_ = 5;
    }
    /**
     * <pre>
     * Связка индикатора и ТУ
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
     */
    private void mergeIndicatorMetricPoint(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint value) {
      value.getClass();
  if (typeCase_ == 5 &&
          type_ != ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint.getDefaultInstance()) {
        type_ = ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint.newBuilder((ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint) type_)
            .mergeFrom(value).buildPartial();
      } else {
        type_ = value;
      }
      typeCase_ = 5;
    }
    /**
     * <pre>
     * Связка индикатора и ТУ
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
     */
    private void clearIndicatorMetricPoint() {
      if (typeCase_ == 5) {
        typeCase_ = 0;
        type_ = null;
      }
    }

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

    public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Resource parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Resource prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Ресурс
     * </pre>
     *
     * Protobuf type {@code keyapis.telemetry_control.v1.Resource}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Resource, Builder> implements
        // @@protoc_insertion_point(builder_implements:keyapis.telemetry_control.v1.Resource)
        ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceOrBuilder {
      // Construct using ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Resource.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

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

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


      /**
       * <pre>
       * Объект строительства
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Building building = 1;</code>
       */
      @java.lang.Override
      public boolean hasBuilding() {
        return instance.hasBuilding();
      }
      /**
       * <pre>
       * Объект строительства
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Building building = 1;</code>
       */
      @java.lang.Override
      public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Building getBuilding() {
        return instance.getBuilding();
      }
      /**
       * <pre>
       * Объект строительства
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Building building = 1;</code>
       */
      public Builder setBuilding(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Building value) {
        copyOnWrite();
        instance.setBuilding(value);
        return this;
      }
      /**
       * <pre>
       * Объект строительства
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Building building = 1;</code>
       */
      public Builder setBuilding(
          ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Building.Builder builderForValue) {
        copyOnWrite();
        instance.setBuilding(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Объект строительства
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Building building = 1;</code>
       */
      public Builder mergeBuilding(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Building value) {
        copyOnWrite();
        instance.mergeBuilding(value);
        return this;
      }
      /**
       * <pre>
       * Объект строительства
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Building building = 1;</code>
       */
      public Builder clearBuilding() {
        copyOnWrite();
        instance.clearBuilding();
        return this;
      }

      /**
       * <pre>
       * Идентификатор ПУ
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Device device = 2;</code>
       */
      @java.lang.Override
      public boolean hasDevice() {
        return instance.hasDevice();
      }
      /**
       * <pre>
       * Идентификатор ПУ
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Device device = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device getDevice() {
        return instance.getDevice();
      }
      /**
       * <pre>
       * Идентификатор ПУ
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Device device = 2;</code>
       */
      public Builder setDevice(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device value) {
        copyOnWrite();
        instance.setDevice(value);
        return this;
      }
      /**
       * <pre>
       * Идентификатор ПУ
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Device device = 2;</code>
       */
      public Builder setDevice(
          ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device.Builder builderForValue) {
        copyOnWrite();
        instance.setDevice(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Идентификатор ПУ
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Device device = 2;</code>
       */
      public Builder mergeDevice(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device value) {
        copyOnWrite();
        instance.mergeDevice(value);
        return this;
      }
      /**
       * <pre>
       * Идентификатор ПУ
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Device device = 2;</code>
       */
      public Builder clearDevice() {
        copyOnWrite();
        instance.clearDevice();
        return this;
      }

      /**
       * <pre>
       * Точка учета
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Device.MetricPoint metric_point = 3;</code>
       */
      @java.lang.Override
      public boolean hasMetricPoint() {
        return instance.hasMetricPoint();
      }
      /**
       * <pre>
       * Точка учета
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Device.MetricPoint metric_point = 3;</code>
       */
      @java.lang.Override
      public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device.MetricPoint getMetricPoint() {
        return instance.getMetricPoint();
      }
      /**
       * <pre>
       * Точка учета
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Device.MetricPoint metric_point = 3;</code>
       */
      public Builder setMetricPoint(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device.MetricPoint value) {
        copyOnWrite();
        instance.setMetricPoint(value);
        return this;
      }
      /**
       * <pre>
       * Точка учета
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Device.MetricPoint metric_point = 3;</code>
       */
      public Builder setMetricPoint(
          ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device.MetricPoint.Builder builderForValue) {
        copyOnWrite();
        instance.setMetricPoint(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Точка учета
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Device.MetricPoint metric_point = 3;</code>
       */
      public Builder mergeMetricPoint(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Device.MetricPoint value) {
        copyOnWrite();
        instance.mergeMetricPoint(value);
        return this;
      }
      /**
       * <pre>
       * Точка учета
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Device.MetricPoint metric_point = 3;</code>
       */
      public Builder clearMetricPoint() {
        copyOnWrite();
        instance.clearMetricPoint();
        return this;
      }

      /**
       * <pre>
       * Индикатор
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Indicator indicator = 4;</code>
       */
      @java.lang.Override
      public boolean hasIndicator() {
        return instance.hasIndicator();
      }
      /**
       * <pre>
       * Индикатор
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Indicator indicator = 4;</code>
       */
      @java.lang.Override
      public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Indicator getIndicator() {
        return instance.getIndicator();
      }
      /**
       * <pre>
       * Индикатор
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Indicator indicator = 4;</code>
       */
      public Builder setIndicator(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Indicator value) {
        copyOnWrite();
        instance.setIndicator(value);
        return this;
      }
      /**
       * <pre>
       * Индикатор
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Indicator indicator = 4;</code>
       */
      public Builder setIndicator(
          ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Indicator.Builder builderForValue) {
        copyOnWrite();
        instance.setIndicator(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Индикатор
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Indicator indicator = 4;</code>
       */
      public Builder mergeIndicator(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Indicator value) {
        copyOnWrite();
        instance.mergeIndicator(value);
        return this;
      }
      /**
       * <pre>
       * Индикатор
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.Indicator indicator = 4;</code>
       */
      public Builder clearIndicator() {
        copyOnWrite();
        instance.clearIndicator();
        return this;
      }

      /**
       * <pre>
       * Связка индикатора и ТУ
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
       */
      @java.lang.Override
      public boolean hasIndicatorMetricPoint() {
        return instance.hasIndicatorMetricPoint();
      }
      /**
       * <pre>
       * Связка индикатора и ТУ
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
       */
      @java.lang.Override
      public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint getIndicatorMetricPoint() {
        return instance.getIndicatorMetricPoint();
      }
      /**
       * <pre>
       * Связка индикатора и ТУ
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
       */
      public Builder setIndicatorMetricPoint(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint value) {
        copyOnWrite();
        instance.setIndicatorMetricPoint(value);
        return this;
      }
      /**
       * <pre>
       * Связка индикатора и ТУ
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
       */
      public Builder setIndicatorMetricPoint(
          ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint.Builder builderForValue) {
        copyOnWrite();
        instance.setIndicatorMetricPoint(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Связка индикатора и ТУ
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
       */
      public Builder mergeIndicatorMetricPoint(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.DeviceIndicatorMetricPoint value) {
        copyOnWrite();
        instance.mergeIndicatorMetricPoint(value);
        return this;
      }
      /**
       * <pre>
       * Связка индикатора и ТУ
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint indicator_metric_point = 5;</code>
       */
      public Builder clearIndicatorMetricPoint() {
        copyOnWrite();
        instance.clearIndicatorMetricPoint();
        return this;
      }

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


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

    public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.Resource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface PostResourceFullDuplexRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:keyapis.telemetry_control.v1.PostResourceFullDuplexRequest)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1;</code>
     * @return The requestId.
     */
    java.lang.String getRequestId();
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1;</code>
     * @return The bytes for requestId.
     */
    com.google.protobuf.ByteString
        getRequestIdBytes();

    /**
     * <pre>
     * Результат обработки ресурса на клиенте
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus resource_async_status = 2;</code>
     * @return Whether the resourceAsyncStatus field is set.
     */
    boolean hasResourceAsyncStatus();
    /**
     * <pre>
     * Результат обработки ресурса на клиенте
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus resource_async_status = 2;</code>
     * @return The resourceAsyncStatus.
     */
    ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus getResourceAsyncStatus();

    public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.TaskCase getTaskCase();
  }
  /**
   * <pre>
   * Запрос создания задачи с клиента на сервере
   * </pre>
   *
   * Protobuf type {@code keyapis.telemetry_control.v1.PostResourceFullDuplexRequest}
   */
  public  static final class PostResourceFullDuplexRequest extends
      com.google.protobuf.GeneratedMessageLite<
          PostResourceFullDuplexRequest, PostResourceFullDuplexRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:keyapis.telemetry_control.v1.PostResourceFullDuplexRequest)
      PostResourceFullDuplexRequestOrBuilder {
    private PostResourceFullDuplexRequest() {
      requestId_ = "";
    }
    public interface ResourceAsyncStatusOrBuilder extends
        // @@protoc_insertion_point(interface_extends:keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <pre>
       * Идентификатор ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return Whether the resourceId field is set.
       */
      boolean hasResourceId();
      /**
       * <pre>
       * Идентификатор ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       * @return The resourceId.
       */
      ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId getResourceId();

      /**
       * <pre>
       * Успех
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success data = 2;</code>
       * @return Whether the data field is set.
       */
      boolean hasData();
      /**
       * <pre>
       * Успех
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success data = 2;</code>
       * @return The data.
       */
      ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success getData();

      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error error = 3;</code>
       * @return Whether the error field is set.
       */
      boolean hasError();
      /**
       * <pre>
       * Ошибка
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error error = 3;</code>
       * @return The error.
       */
      ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error getError();

      public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.TypeCase getTypeCase();
    }
    /**
     * <pre>
     * Результат обработки ресурса на клиенте
     * </pre>
     *
     * Protobuf type {@code keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus}
     */
    public  static final class ResourceAsyncStatus extends
        com.google.protobuf.GeneratedMessageLite<
            ResourceAsyncStatus, ResourceAsyncStatus.Builder> implements
        // @@protoc_insertion_point(message_implements:keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus)
        ResourceAsyncStatusOrBuilder {
      private ResourceAsyncStatus() {
      }
      public interface SuccessOrBuilder extends
          // @@protoc_insertion_point(interface_extends:keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success)
          com.google.protobuf.MessageLiteOrBuilder {
      }
      /**
       * <pre>
       * Команда принята
       * </pre>
       *
       * Protobuf type {@code keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success}
       */
      public  static final class Success extends
          com.google.protobuf.GeneratedMessageLite<
              Success, Success.Builder> implements
          // @@protoc_insertion_point(message_implements:keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success)
          SuccessOrBuilder {
        private Success() {
        }
        public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input, extensionRegistry);
        }

        public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }

        public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input, extensionRegistry);
        }

        public static Builder newBuilder() {
          return (Builder) DEFAULT_INSTANCE.createBuilder();
        }
        public static Builder newBuilder(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success prototype) {
          return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
        }

        /**
         * <pre>
         * Команда принята
         * </pre>
         *
         * Protobuf type {@code keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success, Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success)
            ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.SuccessOrBuilder {
          // Construct using ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }


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


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

        public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

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

        /**
         * <pre>
         * Неизвестная ошибка
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError unknown = 1;</code>
         * @return Whether the unknown field is set.
         */
        boolean hasUnknown();
        /**
         * <pre>
         * Неизвестная ошибка
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError unknown = 1;</code>
         * @return The unknown.
         */
        ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError getUnknown();

        public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.ReasonCase getReasonCase();
      }
      /**
       * <pre>
       * Ошибки обработки ресурса на клиенте
       * </pre>
       *
       * Protobuf type {@code keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error}
       */
      public  static final class Error extends
          com.google.protobuf.GeneratedMessageLite<
              Error, Error.Builder> implements
          // @@protoc_insertion_point(message_implements:keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error)
          ErrorOrBuilder {
        private Error() {
        }
        public interface UnknownErrorOrBuilder extends
            // @@protoc_insertion_point(interface_extends:keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError)
            com.google.protobuf.MessageLiteOrBuilder {

          /**
           * <pre>
           * Произвольный текст ошибки на стороне клиента.
           * Отправляется в случае если в спецификации нет подходящей ошибки.
           * После анализа таких ошибок в спецификацию добавляется специальный тип под эту ошибку
           * </pre>
           *
           * <code>string message = 1 [(.google.api.field_behavior) = REQUIRED];</code>
           * @return The message.
           */
          java.lang.String getMessage();
          /**
           * <pre>
           * Произвольный текст ошибки на стороне клиента.
           * Отправляется в случае если в спецификации нет подходящей ошибки.
           * После анализа таких ошибок в спецификацию добавляется специальный тип под эту ошибку
           * </pre>
           *
           * <code>string message = 1 [(.google.api.field_behavior) = REQUIRED];</code>
           * @return The bytes for message.
           */
          com.google.protobuf.ByteString
              getMessageBytes();
        }
        /**
         * <pre>
         * Неизвестная ошибка на стороне клиента
         * </pre>
         *
         * Protobuf type {@code keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError}
         */
        public  static final class UnknownError extends
            com.google.protobuf.GeneratedMessageLite<
                UnknownError, UnknownError.Builder> implements
            // @@protoc_insertion_point(message_implements:keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError)
            UnknownErrorOrBuilder {
          private UnknownError() {
            message_ = "";
          }
          public static final int MESSAGE_FIELD_NUMBER = 1;
          private java.lang.String message_;
          /**
           * <pre>
           * Произвольный текст ошибки на стороне клиента.
           * Отправляется в случае если в спецификации нет подходящей ошибки.
           * После анализа таких ошибок в спецификацию добавляется специальный тип под эту ошибку
           * </pre>
           *
           * <code>string message = 1 [(.google.api.field_behavior) = REQUIRED];</code>
           * @return The message.
           */
          @java.lang.Override
          public java.lang.String getMessage() {
            return message_;
          }
          /**
           * <pre>
           * Произвольный текст ошибки на стороне клиента.
           * Отправляется в случае если в спецификации нет подходящей ошибки.
           * После анализа таких ошибок в спецификацию добавляется специальный тип под эту ошибку
           * </pre>
           *
           * <code>string message = 1 [(.google.api.field_behavior) = REQUIRED];</code>
           * @return The bytes for message.
           */
          @java.lang.Override
          public com.google.protobuf.ByteString
              getMessageBytes() {
            return com.google.protobuf.ByteString.copyFromUtf8(message_);
          }
          /**
           * <pre>
           * Произвольный текст ошибки на стороне клиента.
           * Отправляется в случае если в спецификации нет подходящей ошибки.
           * После анализа таких ошибок в спецификацию добавляется специальный тип под эту ошибку
           * </pre>
           *
           * <code>string message = 1 [(.google.api.field_behavior) = REQUIRED];</code>
           * @param value The message to set.
           */
          private void setMessage(
              java.lang.String value) {
            java.lang.Class<?> valueClass = value.getClass();
  
            message_ = value;
          }
          /**
           * <pre>
           * Произвольный текст ошибки на стороне клиента.
           * Отправляется в случае если в спецификации нет подходящей ошибки.
           * После анализа таких ошибок в спецификацию добавляется специальный тип под эту ошибку
           * </pre>
           *
           * <code>string message = 1 [(.google.api.field_behavior) = REQUIRED];</code>
           */
          private void clearMessage() {

            message_ = getDefaultInstance().getMessage();
          }
          /**
           * <pre>
           * Произвольный текст ошибки на стороне клиента.
           * Отправляется в случае если в спецификации нет подходящей ошибки.
           * После анализа таких ошибок в спецификацию добавляется специальный тип под эту ошибку
           * </pre>
           *
           * <code>string message = 1 [(.google.api.field_behavior) = REQUIRED];</code>
           * @param value The bytes for message to set.
           */
          private void setMessageBytes(
              com.google.protobuf.ByteString value) {
            checkByteStringIsUtf8(value);
            message_ = value.toStringUtf8();

          }

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

          public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError parseDelimitedFrom(java.io.InputStream input)
              throws java.io.IOException {
            return parseDelimitedFrom(DEFAULT_INSTANCE, input);
          }

          public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError parseDelimitedFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
          }
          public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError parseFrom(
              com.google.protobuf.CodedInputStream input)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageLite.parseFrom(
                DEFAULT_INSTANCE, input);
          }
          public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError parseFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageLite.parseFrom(
                DEFAULT_INSTANCE, input, extensionRegistry);
          }

          public static Builder newBuilder() {
            return (Builder) DEFAULT_INSTANCE.createBuilder();
          }
          public static Builder newBuilder(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError prototype) {
            return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
          }

          /**
           * <pre>
           * Неизвестная ошибка на стороне клиента
           * </pre>
           *
           * Protobuf type {@code keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError}
           */
          public static final class Builder extends
              com.google.protobuf.GeneratedMessageLite.Builder<
                ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError, Builder> implements
              // @@protoc_insertion_point(builder_implements:keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError)
              ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownErrorOrBuilder {
            // Construct using ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError.newBuilder()
            private Builder() {
              super(DEFAULT_INSTANCE);
            }


            /**
             * <pre>
             * Произвольный текст ошибки на стороне клиента.
             * Отправляется в случае если в спецификации нет подходящей ошибки.
             * После анализа таких ошибок в спецификацию добавляется специальный тип под эту ошибку
             * </pre>
             *
             * <code>string message = 1 [(.google.api.field_behavior) = REQUIRED];</code>
             * @return The message.
             */
            @java.lang.Override
            public java.lang.String getMessage() {
              return instance.getMessage();
            }
            /**
             * <pre>
             * Произвольный текст ошибки на стороне клиента.
             * Отправляется в случае если в спецификации нет подходящей ошибки.
             * После анализа таких ошибок в спецификацию добавляется специальный тип под эту ошибку
             * </pre>
             *
             * <code>string message = 1 [(.google.api.field_behavior) = REQUIRED];</code>
             * @return The bytes for message.
             */
            @java.lang.Override
            public com.google.protobuf.ByteString
                getMessageBytes() {
              return instance.getMessageBytes();
            }
            /**
             * <pre>
             * Произвольный текст ошибки на стороне клиента.
             * Отправляется в случае если в спецификации нет подходящей ошибки.
             * После анализа таких ошибок в спецификацию добавляется специальный тип под эту ошибку
             * </pre>
             *
             * <code>string message = 1 [(.google.api.field_behavior) = REQUIRED];</code>
             * @param value The message to set.
             * @return This builder for chaining.
             */
            public Builder setMessage(
                java.lang.String value) {
              copyOnWrite();
              instance.setMessage(value);
              return this;
            }
            /**
             * <pre>
             * Произвольный текст ошибки на стороне клиента.
             * Отправляется в случае если в спецификации нет подходящей ошибки.
             * После анализа таких ошибок в спецификацию добавляется специальный тип под эту ошибку
             * </pre>
             *
             * <code>string message = 1 [(.google.api.field_behavior) = REQUIRED];</code>
             * @return This builder for chaining.
             */
            public Builder clearMessage() {
              copyOnWrite();
              instance.clearMessage();
              return this;
            }
            /**
             * <pre>
             * Произвольный текст ошибки на стороне клиента.
             * Отправляется в случае если в спецификации нет подходящей ошибки.
             * После анализа таких ошибок в спецификацию добавляется специальный тип под эту ошибку
             * </pre>
             *
             * <code>string message = 1 [(.google.api.field_behavior) = REQUIRED];</code>
             * @param value The bytes for message to set.
             * @return This builder for chaining.
             */
            public Builder setMessageBytes(
                com.google.protobuf.ByteString value) {
              copyOnWrite();
              instance.setMessageBytes(value);
              return this;
            }

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


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

          public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError getDefaultInstance() {
            return DEFAULT_INSTANCE;
          }

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

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

        private int reasonCase_ = 0;
        private java.lang.Object reason_;
        public enum ReasonCase {
          UNKNOWN(1),
          REASON_NOT_SET(0);
          private final int value;
          private ReasonCase(int value) {
            this.value = value;
          }
          /**
           * @deprecated Use {@link #forNumber(int)} instead.
           */
          @java.lang.Deprecated
          public static ReasonCase valueOf(int value) {
            return forNumber(value);
          }

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

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

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

        public static final int UNKNOWN_FIELD_NUMBER = 1;
        /**
         * <pre>
         * Неизвестная ошибка
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError unknown = 1;</code>
         */
        @java.lang.Override
        public boolean hasUnknown() {
          return reasonCase_ == 1;
        }
        /**
         * <pre>
         * Неизвестная ошибка
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError unknown = 1;</code>
         */
        @java.lang.Override
        public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError getUnknown() {
          if (reasonCase_ == 1) {
             return (ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError) reason_;
          }
          return ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError.getDefaultInstance();
        }
        /**
         * <pre>
         * Неизвестная ошибка
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError unknown = 1;</code>
         */
        private void setUnknown(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError value) {
          value.getClass();
  reason_ = value;
          reasonCase_ = 1;
        }
        /**
         * <pre>
         * Неизвестная ошибка
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError unknown = 1;</code>
         */
        private void mergeUnknown(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError value) {
          value.getClass();
  if (reasonCase_ == 1 &&
              reason_ != ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError.getDefaultInstance()) {
            reason_ = ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError.newBuilder((ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError) reason_)
                .mergeFrom(value).buildPartial();
          } else {
            reason_ = value;
          }
          reasonCase_ = 1;
        }
        /**
         * <pre>
         * Неизвестная ошибка
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError unknown = 1;</code>
         */
        private void clearUnknown() {
          if (reasonCase_ == 1) {
            reasonCase_ = 0;
            reason_ = null;
          }
        }

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

        public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }

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

        public static Builder newBuilder() {
          return (Builder) DEFAULT_INSTANCE.createBuilder();
        }
        public static Builder newBuilder(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error prototype) {
          return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
        }

        /**
         * <pre>
         * Ошибки обработки ресурса на клиенте
         * </pre>
         *
         * Protobuf type {@code keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error, Builder> implements
            // @@protoc_insertion_point(builder_implements:keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error)
            ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.ErrorOrBuilder {
          // Construct using ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }

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

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


          /**
           * <pre>
           * Неизвестная ошибка
           * </pre>
           *
           * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError unknown = 1;</code>
           */
          @java.lang.Override
          public boolean hasUnknown() {
            return instance.hasUnknown();
          }
          /**
           * <pre>
           * Неизвестная ошибка
           * </pre>
           *
           * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError unknown = 1;</code>
           */
          @java.lang.Override
          public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError getUnknown() {
            return instance.getUnknown();
          }
          /**
           * <pre>
           * Неизвестная ошибка
           * </pre>
           *
           * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError unknown = 1;</code>
           */
          public Builder setUnknown(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError value) {
            copyOnWrite();
            instance.setUnknown(value);
            return this;
          }
          /**
           * <pre>
           * Неизвестная ошибка
           * </pre>
           *
           * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError unknown = 1;</code>
           */
          public Builder setUnknown(
              ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError.Builder builderForValue) {
            copyOnWrite();
            instance.setUnknown(builderForValue.build());
            return this;
          }
          /**
           * <pre>
           * Неизвестная ошибка
           * </pre>
           *
           * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError unknown = 1;</code>
           */
          public Builder mergeUnknown(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError value) {
            copyOnWrite();
            instance.mergeUnknown(value);
            return this;
          }
          /**
           * <pre>
           * Неизвестная ошибка
           * </pre>
           *
           * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError unknown = 1;</code>
           */
          public Builder clearUnknown() {
            copyOnWrite();
            instance.clearUnknown();
            return this;
          }

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


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

        public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

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

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

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

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

      public static final int RESOURCE_ID_FIELD_NUMBER = 1;
      private ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId resourceId_;
      /**
       * <pre>
       * Идентификатор ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public boolean hasResourceId() {
        return resourceId_ != null;
      }
      /**
       * <pre>
       * Идентификатор ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.Override
      public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId getResourceId() {
        return resourceId_ == null ? ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId.getDefaultInstance() : resourceId_;
      }
      /**
       * <pre>
       * Идентификатор ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      private void setResourceId(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId value) {
        value.getClass();
  resourceId_ = value;

        }
      /**
       * <pre>
       * Идентификатор ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeResourceId(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId value) {
        value.getClass();
  if (resourceId_ != null &&
            resourceId_ != ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId.getDefaultInstance()) {
          resourceId_ =
            ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId.newBuilder(resourceId_).mergeFrom(value).buildPartial();
        } else {
          resourceId_ = value;
        }

      }
      /**
       * <pre>
       * Идентификатор ресурса
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
       */
      private void clearResourceId() {  resourceId_ = null;

      }

      public static final int DATA_FIELD_NUMBER = 2;
      /**
       * <pre>
       * Успех
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success data = 2;</code>
       */
      @java.lang.Override
      public boolean hasData() {
        return typeCase_ == 2;
      }
      /**
       * <pre>
       * Успех
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success data = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success getData() {
        if (typeCase_ == 2) {
           return (ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success) type_;
        }
        return ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success.getDefaultInstance();
      }
      /**
       * <pre>
       * Успех
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success data = 2;</code>
       */
      private void setData(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success value) {
        value.getClass();
  type_ = value;
        typeCase_ = 2;
      }
      /**
       * <pre>
       * Успех
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success data = 2;</code>
       */
      private void mergeData(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success value) {
        value.getClass();
  if (typeCase_ == 2 &&
            type_ != ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success.getDefaultInstance()) {
          type_ = ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success.newBuilder((ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success) type_)
              .mergeFrom(value).buildPartial();
        } else {
          type_ = value;
        }
        typeCase_ = 2;
      }
      /**
       * <pre>
       * Успех
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success data = 2;</code>
       */
      private void clearData() {
        if (typeCase_ == 2) {
          typeCase_ = 0;
          type_ = null;
        }
      }

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

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

      public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }

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

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * <pre>
       * Результат обработки ресурса на клиенте
       * </pre>
       *
       * Protobuf type {@code keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus, Builder> implements
          // @@protoc_insertion_point(builder_implements:keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus)
          ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatusOrBuilder {
        // Construct using ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }

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

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


        /**
         * <pre>
         * Идентификатор ресурса
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        @java.lang.Override
        public boolean hasResourceId() {
          return instance.hasResourceId();
        }
        /**
         * <pre>
         * Идентификатор ресурса
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        @java.lang.Override
        public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId getResourceId() {
          return instance.getResourceId();
        }
        /**
         * <pre>
         * Идентификатор ресурса
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder setResourceId(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId value) {
          copyOnWrite();
          instance.setResourceId(value);
          return this;
          }
        /**
         * <pre>
         * Идентификатор ресурса
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder setResourceId(
            ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId.Builder builderForValue) {
          copyOnWrite();
          instance.setResourceId(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Идентификатор ресурса
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder mergeResourceId(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.ResourceId value) {
          copyOnWrite();
          instance.mergeResourceId(value);
          return this;
        }
        /**
         * <pre>
         * Идентификатор ресурса
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.ResourceId resource_id = 1 [(.google.api.field_behavior) = REQUIRED];</code>
         */
        public Builder clearResourceId() {  copyOnWrite();
          instance.clearResourceId();
          return this;
        }

        /**
         * <pre>
         * Успех
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success data = 2;</code>
         */
        @java.lang.Override
        public boolean hasData() {
          return instance.hasData();
        }
        /**
         * <pre>
         * Успех
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success data = 2;</code>
         */
        @java.lang.Override
        public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success getData() {
          return instance.getData();
        }
        /**
         * <pre>
         * Успех
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success data = 2;</code>
         */
        public Builder setData(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success value) {
          copyOnWrite();
          instance.setData(value);
          return this;
        }
        /**
         * <pre>
         * Успех
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success data = 2;</code>
         */
        public Builder setData(
            ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success.Builder builderForValue) {
          copyOnWrite();
          instance.setData(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Успех
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success data = 2;</code>
         */
        public Builder mergeData(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success value) {
          copyOnWrite();
          instance.mergeData(value);
          return this;
        }
        /**
         * <pre>
         * Успех
         * </pre>
         *
         * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success data = 2;</code>
         */
        public Builder clearData() {
          copyOnWrite();
          instance.clearData();
          return this;
        }

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

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


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

      public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

    private int taskCase_ = 0;
    private java.lang.Object task_;
    public enum TaskCase {
      RESOURCE_ASYNC_STATUS(2),
      TASK_NOT_SET(0);
      private final int value;
      private TaskCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static TaskCase valueOf(int value) {
        return forNumber(value);
      }

      public static TaskCase forNumber(int value) {
        switch (value) {
          case 2: return RESOURCE_ASYNC_STATUS;
          case 0: return TASK_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public TaskCase
    getTaskCase() {
      return TaskCase.forNumber(
          taskCase_);
    }

    private void clearTask() {
      taskCase_ = 0;
      task_ = null;
    }

    public static final int REQUEST_ID_FIELD_NUMBER = 1;
    private java.lang.String requestId_;
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1;</code>
     * @return The requestId.
     */
    @java.lang.Override
    public java.lang.String getRequestId() {
      return requestId_;
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1;</code>
     * @return The bytes for requestId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestIdBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(requestId_);
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1;</code>
     * @param value The requestId to set.
     */
    private void setRequestId(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      requestId_ = value;
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1;</code>
     */
    private void clearRequestId() {

      requestId_ = getDefaultInstance().getRequestId();
    }
    /**
     * <pre>
     * Идентификатор запроса
     * </pre>
     *
     * <code>string request_id = 1;</code>
     * @param value The bytes for requestId to set.
     */
    private void setRequestIdBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      requestId_ = value.toStringUtf8();

    }

    public static final int RESOURCE_ASYNC_STATUS_FIELD_NUMBER = 2;
    /**
     * <pre>
     * Результат обработки ресурса на клиенте
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus resource_async_status = 2;</code>
     */
    @java.lang.Override
    public boolean hasResourceAsyncStatus() {
      return taskCase_ == 2;
    }
    /**
     * <pre>
     * Результат обработки ресурса на клиенте
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus resource_async_status = 2;</code>
     */
    @java.lang.Override
    public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus getResourceAsyncStatus() {
      if (taskCase_ == 2) {
         return (ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus) task_;
      }
      return ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.getDefaultInstance();
    }
    /**
     * <pre>
     * Результат обработки ресурса на клиенте
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus resource_async_status = 2;</code>
     */
    private void setResourceAsyncStatus(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus value) {
      value.getClass();
  task_ = value;
      taskCase_ = 2;
    }
    /**
     * <pre>
     * Результат обработки ресурса на клиенте
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus resource_async_status = 2;</code>
     */
    private void mergeResourceAsyncStatus(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus value) {
      value.getClass();
  if (taskCase_ == 2 &&
          task_ != ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.getDefaultInstance()) {
        task_ = ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.newBuilder((ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus) task_)
            .mergeFrom(value).buildPartial();
      } else {
        task_ = value;
      }
      taskCase_ = 2;
    }
    /**
     * <pre>
     * Результат обработки ресурса на клиенте
     * </pre>
     *
     * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus resource_async_status = 2;</code>
     */
    private void clearResourceAsyncStatus() {
      if (taskCase_ == 2) {
        taskCase_ = 0;
        task_ = null;
      }
    }

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

    public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }

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

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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

      @java.lang.Override
      public TaskCase
          getTaskCase() {
        return instance.getTaskCase();
      }

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


      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1;</code>
       * @return The requestId.
       */
      @java.lang.Override
      public java.lang.String getRequestId() {
        return instance.getRequestId();
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1;</code>
       * @return The bytes for requestId.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getRequestIdBytes() {
        return instance.getRequestIdBytes();
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1;</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(
          java.lang.String value) {
        copyOnWrite();
        instance.setRequestId(value);
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        copyOnWrite();
        instance.clearRequestId();
        return this;
      }
      /**
       * <pre>
       * Идентификатор запроса
       * </pre>
       *
       * <code>string request_id = 1;</code>
       * @param value The bytes for requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestIdBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setRequestIdBytes(value);
        return this;
      }

      /**
       * <pre>
       * Результат обработки ресурса на клиенте
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus resource_async_status = 2;</code>
       */
      @java.lang.Override
      public boolean hasResourceAsyncStatus() {
        return instance.hasResourceAsyncStatus();
      }
      /**
       * <pre>
       * Результат обработки ресурса на клиенте
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus resource_async_status = 2;</code>
       */
      @java.lang.Override
      public ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus getResourceAsyncStatus() {
        return instance.getResourceAsyncStatus();
      }
      /**
       * <pre>
       * Результат обработки ресурса на клиенте
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus resource_async_status = 2;</code>
       */
      public Builder setResourceAsyncStatus(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus value) {
        copyOnWrite();
        instance.setResourceAsyncStatus(value);
        return this;
      }
      /**
       * <pre>
       * Результат обработки ресурса на клиенте
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus resource_async_status = 2;</code>
       */
      public Builder setResourceAsyncStatus(
          ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus.Builder builderForValue) {
        copyOnWrite();
        instance.setResourceAsyncStatus(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Результат обработки ресурса на клиенте
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus resource_async_status = 2;</code>
       */
      public Builder mergeResourceAsyncStatus(ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest.ResourceAsyncStatus value) {
        copyOnWrite();
        instance.mergeResourceAsyncStatus(value);
        return this;
      }
      /**
       * <pre>
       * Результат обработки ресурса на клиенте
       * </pre>
       *
       * <code>.keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus resource_async_status = 2;</code>
       */
      public Builder clearResourceAsyncStatus() {
        copyOnWrite();
        instance.clearResourceAsyncStatus();
        return this;
      }

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


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

    public static ru.keyapis.telemetry_control.v1.KeyapisTelemetryControlV1Proto.PostResourceFullDuplexRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}
