All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.camunda.zeebe.dynamic.config.protocol.Topology Maven / Gradle / Ivy

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: topology.proto

// Protobuf Java Version: 3.25.5
package io.camunda.zeebe.dynamic.config.protocol;

public final class Topology {
  private Topology() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  /**
   * Protobuf enum {@code topology_protocol.State}
   */
  public enum State
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * UNKNOWN = 0;
     */
    UNKNOWN(0),
    /**
     * JOINING = 1;
     */
    JOINING(1),
    /**
     * ACTIVE = 2;
     */
    ACTIVE(2),
    /**
     * LEAVING = 3;
     */
    LEAVING(3),
    /**
     * LEFT = 4;
     */
    LEFT(4),
    /**
     * BOOTSTRAPPING = 5;
     */
    BOOTSTRAPPING(5),
    UNRECOGNIZED(-1),
    ;

    /**
     * UNKNOWN = 0;
     */
    public static final int UNKNOWN_VALUE = 0;
    /**
     * JOINING = 1;
     */
    public static final int JOINING_VALUE = 1;
    /**
     * ACTIVE = 2;
     */
    public static final int ACTIVE_VALUE = 2;
    /**
     * LEAVING = 3;
     */
    public static final int LEAVING_VALUE = 3;
    /**
     * LEFT = 4;
     */
    public static final int LEFT_VALUE = 4;
    /**
     * BOOTSTRAPPING = 5;
     */
    public static final int BOOTSTRAPPING_VALUE = 5;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static State valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static State forNumber(int value) {
      switch (value) {
        case 0: return UNKNOWN;
        case 1: return JOINING;
        case 2: return ACTIVE;
        case 3: return LEAVING;
        case 4: return LEFT;
        case 5: return BOOTSTRAPPING;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        State> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public State findValueByNumber(int number) {
              return State.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.getDescriptor().getEnumTypes().get(0);
    }

    private static final State[] VALUES = values();

    public static State valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private State(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:topology_protocol.State)
  }

  /**
   * Protobuf enum {@code topology_protocol.ChangeStatus}
   */
  public enum ChangeStatus
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * CHANGE_STATUS_UNKNOWN = 0;
     */
    CHANGE_STATUS_UNKNOWN(0),
    /**
     * IN_PROGRESS = 1;
     */
    IN_PROGRESS(1),
    /**
     * COMPLETED = 2;
     */
    COMPLETED(2),
    /**
     * FAILED = 3;
     */
    FAILED(3),
    /**
     * CANCELLED = 4;
     */
    CANCELLED(4),
    UNRECOGNIZED(-1),
    ;

    /**
     * CHANGE_STATUS_UNKNOWN = 0;
     */
    public static final int CHANGE_STATUS_UNKNOWN_VALUE = 0;
    /**
     * IN_PROGRESS = 1;
     */
    public static final int IN_PROGRESS_VALUE = 1;
    /**
     * COMPLETED = 2;
     */
    public static final int COMPLETED_VALUE = 2;
    /**
     * FAILED = 3;
     */
    public static final int FAILED_VALUE = 3;
    /**
     * CANCELLED = 4;
     */
    public static final int CANCELLED_VALUE = 4;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static ChangeStatus valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ChangeStatus forNumber(int value) {
      switch (value) {
        case 0: return CHANGE_STATUS_UNKNOWN;
        case 1: return IN_PROGRESS;
        case 2: return COMPLETED;
        case 3: return FAILED;
        case 4: return CANCELLED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        ChangeStatus> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public ChangeStatus findValueByNumber(int number) {
              return ChangeStatus.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.getDescriptor().getEnumTypes().get(1);
    }

    private static final ChangeStatus[] VALUES = values();

    public static ChangeStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private ChangeStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:topology_protocol.ChangeStatus)
  }

  /**
   * Protobuf enum {@code topology_protocol.EnabledDisabledState}
   */
  public enum EnabledDisabledState
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * ENABLED_DISBALED_UNKNOWN = 0;
     */
    ENABLED_DISBALED_UNKNOWN(0),
    /**
     * ENABLED = 1;
     */
    ENABLED(1),
    /**
     * DISABLED = 2;
     */
    DISABLED(2),
    UNRECOGNIZED(-1),
    ;

    /**
     * ENABLED_DISBALED_UNKNOWN = 0;
     */
    public static final int ENABLED_DISBALED_UNKNOWN_VALUE = 0;
    /**
     * ENABLED = 1;
     */
    public static final int ENABLED_VALUE = 1;
    /**
     * DISABLED = 2;
     */
    public static final int DISABLED_VALUE = 2;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static EnabledDisabledState valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static EnabledDisabledState forNumber(int value) {
      switch (value) {
        case 0: return ENABLED_DISBALED_UNKNOWN;
        case 1: return ENABLED;
        case 2: return DISABLED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        EnabledDisabledState> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public EnabledDisabledState findValueByNumber(int number) {
              return EnabledDisabledState.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.getDescriptor().getEnumTypes().get(2);
    }

    private static final EnabledDisabledState[] VALUES = values();

    public static EnabledDisabledState valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private EnabledDisabledState(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:topology_protocol.EnabledDisabledState)
  }

  public interface GossipStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.GossipState)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .topology_protocol.ClusterTopology clusterTopology = 1;
     * @return Whether the clusterTopology field is set.
     */
    boolean hasClusterTopology();
    /**
     * .topology_protocol.ClusterTopology clusterTopology = 1;
     * @return The clusterTopology.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology getClusterTopology();
    /**
     * .topology_protocol.ClusterTopology clusterTopology = 1;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopologyOrBuilder getClusterTopologyOrBuilder();
  }
  /**
   * Protobuf type {@code topology_protocol.GossipState}
   */
  public static final class GossipState extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.GossipState)
      GossipStateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GossipState.newBuilder() to construct.
    private GossipState(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private GossipState() {
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_GossipState_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_GossipState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState.class, io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState.Builder.class);
    }

    private int bitField0_;
    public static final int CLUSTERTOPOLOGY_FIELD_NUMBER = 1;
    private io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology clusterTopology_;
    /**
     * .topology_protocol.ClusterTopology clusterTopology = 1;
     * @return Whether the clusterTopology field is set.
     */
    @java.lang.Override
    public boolean hasClusterTopology() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * .topology_protocol.ClusterTopology clusterTopology = 1;
     * @return The clusterTopology.
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology getClusterTopology() {
      return clusterTopology_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology.getDefaultInstance() : clusterTopology_;
    }
    /**
     * .topology_protocol.ClusterTopology clusterTopology = 1;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopologyOrBuilder getClusterTopologyOrBuilder() {
      return clusterTopology_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology.getDefaultInstance() : clusterTopology_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getClusterTopology());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getClusterTopology());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState other = (io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState) obj;

      if (hasClusterTopology() != other.hasClusterTopology()) return false;
      if (hasClusterTopology()) {
        if (!getClusterTopology()
            .equals(other.getClusterTopology())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

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

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.GossipState}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.GossipState)
        io.camunda.zeebe.dynamic.config.protocol.Topology.GossipStateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_GossipState_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_GossipState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState.class, io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getClusterTopologyFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        clusterTopology_ = null;
        if (clusterTopologyBuilder_ != null) {
          clusterTopologyBuilder_.dispose();
          clusterTopologyBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_GossipState_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState result = new io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.clusterTopology_ = clusterTopologyBuilder_ == null
              ? clusterTopology_
              : clusterTopologyBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState.getDefaultInstance()) return this;
        if (other.hasClusterTopology()) {
          mergeClusterTopology(other.getClusterTopology());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology clusterTopology_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology, io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopologyOrBuilder> clusterTopologyBuilder_;
      /**
       * .topology_protocol.ClusterTopology clusterTopology = 1;
       * @return Whether the clusterTopology field is set.
       */
      public boolean hasClusterTopology() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * .topology_protocol.ClusterTopology clusterTopology = 1;
       * @return The clusterTopology.
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology getClusterTopology() {
        if (clusterTopologyBuilder_ == null) {
          return clusterTopology_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology.getDefaultInstance() : clusterTopology_;
        } else {
          return clusterTopologyBuilder_.getMessage();
        }
      }
      /**
       * .topology_protocol.ClusterTopology clusterTopology = 1;
       */
      public Builder setClusterTopology(io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology value) {
        if (clusterTopologyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          clusterTopology_ = value;
        } else {
          clusterTopologyBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.ClusterTopology clusterTopology = 1;
       */
      public Builder setClusterTopology(
          io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology.Builder builderForValue) {
        if (clusterTopologyBuilder_ == null) {
          clusterTopology_ = builderForValue.build();
        } else {
          clusterTopologyBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.ClusterTopology clusterTopology = 1;
       */
      public Builder mergeClusterTopology(io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology value) {
        if (clusterTopologyBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            clusterTopology_ != null &&
            clusterTopology_ != io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology.getDefaultInstance()) {
            getClusterTopologyBuilder().mergeFrom(value);
          } else {
            clusterTopology_ = value;
          }
        } else {
          clusterTopologyBuilder_.mergeFrom(value);
        }
        if (clusterTopology_ != null) {
          bitField0_ |= 0x00000001;
          onChanged();
        }
        return this;
      }
      /**
       * .topology_protocol.ClusterTopology clusterTopology = 1;
       */
      public Builder clearClusterTopology() {
        bitField0_ = (bitField0_ & ~0x00000001);
        clusterTopology_ = null;
        if (clusterTopologyBuilder_ != null) {
          clusterTopologyBuilder_.dispose();
          clusterTopologyBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.ClusterTopology clusterTopology = 1;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology.Builder getClusterTopologyBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getClusterTopologyFieldBuilder().getBuilder();
      }
      /**
       * .topology_protocol.ClusterTopology clusterTopology = 1;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopologyOrBuilder getClusterTopologyOrBuilder() {
        if (clusterTopologyBuilder_ != null) {
          return clusterTopologyBuilder_.getMessageOrBuilder();
        } else {
          return clusterTopology_ == null ?
              io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology.getDefaultInstance() : clusterTopology_;
        }
      }
      /**
       * .topology_protocol.ClusterTopology clusterTopology = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology, io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopologyOrBuilder> 
          getClusterTopologyFieldBuilder() {
        if (clusterTopologyBuilder_ == null) {
          clusterTopologyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology, io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopologyOrBuilder>(
                  getClusterTopology(),
                  getParentForChildren(),
                  isClean());
          clusterTopology_ = null;
        }
        return clusterTopologyBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.GossipState)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.GossipState)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.GossipState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ClusterTopologyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.ClusterTopology)
      com.google.protobuf.MessageOrBuilder {

    /**
     * int64 version = 1;
     * @return The version.
     */
    long getVersion();

    /**
     * map<string, .topology_protocol.MemberState> members = 2;
     */
    int getMembersCount();
    /**
     * map<string, .topology_protocol.MemberState> members = 2;
     */
    boolean containsMembers(
        java.lang.String key);
    /**
     * Use {@link #getMembersMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map
    getMembers();
    /**
     * map<string, .topology_protocol.MemberState> members = 2;
     */
    java.util.Map
    getMembersMap();
    /**
     * map<string, .topology_protocol.MemberState> members = 2;
     */
    /* nullable */
io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState getMembersOrDefault(
        java.lang.String key,
        /* nullable */
io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState defaultValue);
    /**
     * map<string, .topology_protocol.MemberState> members = 2;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState getMembersOrThrow(
        java.lang.String key);

    /**
     * .topology_protocol.CompletedChange lastChange = 3;
     * @return Whether the lastChange field is set.
     */
    boolean hasLastChange();
    /**
     * .topology_protocol.CompletedChange lastChange = 3;
     * @return The lastChange.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange getLastChange();
    /**
     * .topology_protocol.CompletedChange lastChange = 3;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChangeOrBuilder getLastChangeOrBuilder();

    /**
     * .topology_protocol.ClusterChangePlan currentChange = 4;
     * @return Whether the currentChange field is set.
     */
    boolean hasCurrentChange();
    /**
     * .topology_protocol.ClusterChangePlan currentChange = 4;
     * @return The currentChange.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan getCurrentChange();
    /**
     * .topology_protocol.ClusterChangePlan currentChange = 4;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlanOrBuilder getCurrentChangeOrBuilder();

    /**
     * .topology_protocol.RoutingState routingState = 5;
     * @return Whether the routingState field is set.
     */
    boolean hasRoutingState();
    /**
     * .topology_protocol.RoutingState routingState = 5;
     * @return The routingState.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState getRoutingState();
    /**
     * .topology_protocol.RoutingState routingState = 5;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingStateOrBuilder getRoutingStateOrBuilder();
  }
  /**
   * Protobuf type {@code topology_protocol.ClusterTopology}
   */
  public static final class ClusterTopology extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.ClusterTopology)
      ClusterTopologyOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ClusterTopology.newBuilder() to construct.
    private ClusterTopology(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private ClusterTopology() {
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ClusterTopology_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
        int number) {
      switch (number) {
        case 2:
          return internalGetMembers();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ClusterTopology_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology.class, io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology.Builder.class);
    }

    private int bitField0_;
    public static final int VERSION_FIELD_NUMBER = 1;
    private long version_ = 0L;
    /**
     * int64 version = 1;
     * @return The version.
     */
    @java.lang.Override
    public long getVersion() {
      return version_;
    }

    public static final int MEMBERS_FIELD_NUMBER = 2;
    private static final class MembersDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState> defaultEntry =
              com.google.protobuf.MapEntry
              .newDefaultInstance(
                  io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ClusterTopology_MembersEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
                  io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState.getDefaultInstance());
    }
    @SuppressWarnings("serial")
    private com.google.protobuf.MapField<
        java.lang.String, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState> members_;
    private com.google.protobuf.MapField
    internalGetMembers() {
      if (members_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            MembersDefaultEntryHolder.defaultEntry);
      }
      return members_;
    }
    public int getMembersCount() {
      return internalGetMembers().getMap().size();
    }
    /**
     * map<string, .topology_protocol.MemberState> members = 2;
     */
    @java.lang.Override
    public boolean containsMembers(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetMembers().getMap().containsKey(key);
    }
    /**
     * Use {@link #getMembersMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map getMembers() {
      return getMembersMap();
    }
    /**
     * map<string, .topology_protocol.MemberState> members = 2;
     */
    @java.lang.Override
    public java.util.Map getMembersMap() {
      return internalGetMembers().getMap();
    }
    /**
     * map<string, .topology_protocol.MemberState> members = 2;
     */
    @java.lang.Override
    public /* nullable */
io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState getMembersOrDefault(
        java.lang.String key,
        /* nullable */
io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map map =
          internalGetMembers().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * map<string, .topology_protocol.MemberState> members = 2;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState getMembersOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map map =
          internalGetMembers().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int LASTCHANGE_FIELD_NUMBER = 3;
    private io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange lastChange_;
    /**
     * .topology_protocol.CompletedChange lastChange = 3;
     * @return Whether the lastChange field is set.
     */
    @java.lang.Override
    public boolean hasLastChange() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * .topology_protocol.CompletedChange lastChange = 3;
     * @return The lastChange.
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange getLastChange() {
      return lastChange_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange.getDefaultInstance() : lastChange_;
    }
    /**
     * .topology_protocol.CompletedChange lastChange = 3;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChangeOrBuilder getLastChangeOrBuilder() {
      return lastChange_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange.getDefaultInstance() : lastChange_;
    }

    public static final int CURRENTCHANGE_FIELD_NUMBER = 4;
    private io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan currentChange_;
    /**
     * .topology_protocol.ClusterChangePlan currentChange = 4;
     * @return Whether the currentChange field is set.
     */
    @java.lang.Override
    public boolean hasCurrentChange() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * .topology_protocol.ClusterChangePlan currentChange = 4;
     * @return The currentChange.
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan getCurrentChange() {
      return currentChange_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan.getDefaultInstance() : currentChange_;
    }
    /**
     * .topology_protocol.ClusterChangePlan currentChange = 4;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlanOrBuilder getCurrentChangeOrBuilder() {
      return currentChange_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan.getDefaultInstance() : currentChange_;
    }

    public static final int ROUTINGSTATE_FIELD_NUMBER = 5;
    private io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState routingState_;
    /**
     * .topology_protocol.RoutingState routingState = 5;
     * @return Whether the routingState field is set.
     */
    @java.lang.Override
    public boolean hasRoutingState() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * .topology_protocol.RoutingState routingState = 5;
     * @return The routingState.
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState getRoutingState() {
      return routingState_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState.getDefaultInstance() : routingState_;
    }
    /**
     * .topology_protocol.RoutingState routingState = 5;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingStateOrBuilder getRoutingStateOrBuilder() {
      return routingState_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState.getDefaultInstance() : routingState_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (version_ != 0L) {
        output.writeInt64(1, version_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetMembers(),
          MembersDefaultEntryHolder.defaultEntry,
          2);
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(3, getLastChange());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(4, getCurrentChange());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(5, getRoutingState());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (version_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, version_);
      }
      for (java.util.Map.Entry entry
           : internalGetMembers().getMap().entrySet()) {
        com.google.protobuf.MapEntry
        members__ = MembersDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, members__);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getLastChange());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getCurrentChange());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getRoutingState());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology other = (io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology) obj;

      if (getVersion()
          != other.getVersion()) return false;
      if (!internalGetMembers().equals(
          other.internalGetMembers())) return false;
      if (hasLastChange() != other.hasLastChange()) return false;
      if (hasLastChange()) {
        if (!getLastChange()
            .equals(other.getLastChange())) return false;
      }
      if (hasCurrentChange() != other.hasCurrentChange()) return false;
      if (hasCurrentChange()) {
        if (!getCurrentChange()
            .equals(other.getCurrentChange())) return false;
      }
      if (hasRoutingState() != other.hasRoutingState()) return false;
      if (hasRoutingState()) {
        if (!getRoutingState()
            .equals(other.getRoutingState())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + VERSION_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getVersion());
      if (!internalGetMembers().getMap().isEmpty()) {
        hash = (37 * hash) + MEMBERS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetMembers().hashCode();
      }
      if (hasLastChange()) {
        hash = (37 * hash) + LASTCHANGE_FIELD_NUMBER;
        hash = (53 * hash) + getLastChange().hashCode();
      }
      if (hasCurrentChange()) {
        hash = (37 * hash) + CURRENTCHANGE_FIELD_NUMBER;
        hash = (53 * hash) + getCurrentChange().hashCode();
      }
      if (hasRoutingState()) {
        hash = (37 * hash) + ROUTINGSTATE_FIELD_NUMBER;
        hash = (53 * hash) + getRoutingState().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.ClusterTopology}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.ClusterTopology)
        io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopologyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ClusterTopology_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
          int number) {
        switch (number) {
          case 2:
            return internalGetMembers();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
          int number) {
        switch (number) {
          case 2:
            return internalGetMutableMembers();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ClusterTopology_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology.class, io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getLastChangeFieldBuilder();
          getCurrentChangeFieldBuilder();
          getRoutingStateFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        version_ = 0L;
        internalGetMutableMembers().clear();
        lastChange_ = null;
        if (lastChangeBuilder_ != null) {
          lastChangeBuilder_.dispose();
          lastChangeBuilder_ = null;
        }
        currentChange_ = null;
        if (currentChangeBuilder_ != null) {
          currentChangeBuilder_.dispose();
          currentChangeBuilder_ = null;
        }
        routingState_ = null;
        if (routingStateBuilder_ != null) {
          routingStateBuilder_.dispose();
          routingStateBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ClusterTopology_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology result = new io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.version_ = version_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.members_ = internalGetMembers().build(MembersDefaultEntryHolder.defaultEntry);
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.lastChange_ = lastChangeBuilder_ == null
              ? lastChange_
              : lastChangeBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.currentChange_ = currentChangeBuilder_ == null
              ? currentChange_
              : currentChangeBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.routingState_ = routingStateBuilder_ == null
              ? routingState_
              : routingStateBuilder_.build();
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology.getDefaultInstance()) return this;
        if (other.getVersion() != 0L) {
          setVersion(other.getVersion());
        }
        internalGetMutableMembers().mergeFrom(
            other.internalGetMembers());
        bitField0_ |= 0x00000002;
        if (other.hasLastChange()) {
          mergeLastChange(other.getLastChange());
        }
        if (other.hasCurrentChange()) {
          mergeCurrentChange(other.getCurrentChange());
        }
        if (other.hasRoutingState()) {
          mergeRoutingState(other.getRoutingState());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                version_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                com.google.protobuf.MapEntry
                members__ = input.readMessage(
                    MembersDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                internalGetMutableMembers().ensureBuilderMap().put(
                    members__.getKey(), members__.getValue());
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                input.readMessage(
                    getLastChangeFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                input.readMessage(
                    getCurrentChangeFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                input.readMessage(
                    getRoutingStateFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long version_ ;
      /**
       * int64 version = 1;
       * @return The version.
       */
      @java.lang.Override
      public long getVersion() {
        return version_;
      }
      /**
       * int64 version = 1;
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(long value) {

        version_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * int64 version = 1;
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000001);
        version_ = 0L;
        onChanged();
        return this;
      }

      private static final class MembersConverter implements com.google.protobuf.MapFieldBuilder.Converter {
        @java.lang.Override
        public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState build(io.camunda.zeebe.dynamic.config.protocol.Topology.MemberStateOrBuilder val) {
          if (val instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState) { return (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState) val; }
          return ((io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState.Builder) val).build();
        }

        @java.lang.Override
        public com.google.protobuf.MapEntry defaultEntry() {
          return MembersDefaultEntryHolder.defaultEntry;
        }
      };
      private static final MembersConverter membersConverter = new MembersConverter();

      private com.google.protobuf.MapFieldBuilder<
          java.lang.String, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberStateOrBuilder, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState.Builder> members_;
      private com.google.protobuf.MapFieldBuilder
          internalGetMembers() {
        if (members_ == null) {
          return new com.google.protobuf.MapFieldBuilder<>(membersConverter);
        }
        return members_;
      }
      private com.google.protobuf.MapFieldBuilder
          internalGetMutableMembers() {
        if (members_ == null) {
          members_ = new com.google.protobuf.MapFieldBuilder<>(membersConverter);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return members_;
      }
      public int getMembersCount() {
        return internalGetMembers().ensureBuilderMap().size();
      }
      /**
       * map<string, .topology_protocol.MemberState> members = 2;
       */
      @java.lang.Override
      public boolean containsMembers(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetMembers().ensureBuilderMap().containsKey(key);
      }
      /**
       * Use {@link #getMembersMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map getMembers() {
        return getMembersMap();
      }
      /**
       * map<string, .topology_protocol.MemberState> members = 2;
       */
      @java.lang.Override
      public java.util.Map getMembersMap() {
        return internalGetMembers().getImmutableMap();
      }
      /**
       * map<string, .topology_protocol.MemberState> members = 2;
       */
      @java.lang.Override
      public /* nullable */
io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState getMembersOrDefault(
          java.lang.String key,
          /* nullable */
io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map map = internalGetMutableMembers().ensureBuilderMap();
        return map.containsKey(key) ? membersConverter.build(map.get(key)) : defaultValue;
      }
      /**
       * map<string, .topology_protocol.MemberState> members = 2;
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState getMembersOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map map = internalGetMutableMembers().ensureBuilderMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return membersConverter.build(map.get(key));
      }
      public Builder clearMembers() {
        bitField0_ = (bitField0_ & ~0x00000002);
        internalGetMutableMembers().clear();
        return this;
      }
      /**
       * map<string, .topology_protocol.MemberState> members = 2;
       */
      public Builder removeMembers(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableMembers().ensureBuilderMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map
          getMutableMembers() {
        bitField0_ |= 0x00000002;
        return internalGetMutableMembers().ensureMessageMap();
      }
      /**
       * map<string, .topology_protocol.MemberState> members = 2;
       */
      public Builder putMembers(
          java.lang.String key,
          io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) { throw new NullPointerException("map value"); }
        internalGetMutableMembers().ensureBuilderMap()
            .put(key, value);
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * map<string, .topology_protocol.MemberState> members = 2;
       */
      public Builder putAllMembers(
          java.util.Map values) {
        for (java.util.Map.Entry e : values.entrySet()) {
          if (e.getKey() == null || e.getValue() == null) {
            throw new NullPointerException();
          }
        }
        internalGetMutableMembers().ensureBuilderMap()
            .putAll(values);
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * map<string, .topology_protocol.MemberState> members = 2;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState.Builder putMembersBuilderIfAbsent(
          java.lang.String key) {
        java.util.Map builderMap = internalGetMutableMembers().ensureBuilderMap();
        io.camunda.zeebe.dynamic.config.protocol.Topology.MemberStateOrBuilder entry = builderMap.get(key);
        if (entry == null) {
          entry = io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState.newBuilder();
          builderMap.put(key, entry);
        }
        if (entry instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState) {
          entry = ((io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState) entry).toBuilder();
          builderMap.put(key, entry);
        }
        return (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState.Builder) entry;
      }

      private io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange lastChange_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange, io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChangeOrBuilder> lastChangeBuilder_;
      /**
       * .topology_protocol.CompletedChange lastChange = 3;
       * @return Whether the lastChange field is set.
       */
      public boolean hasLastChange() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * .topology_protocol.CompletedChange lastChange = 3;
       * @return The lastChange.
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange getLastChange() {
        if (lastChangeBuilder_ == null) {
          return lastChange_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange.getDefaultInstance() : lastChange_;
        } else {
          return lastChangeBuilder_.getMessage();
        }
      }
      /**
       * .topology_protocol.CompletedChange lastChange = 3;
       */
      public Builder setLastChange(io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange value) {
        if (lastChangeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lastChange_ = value;
        } else {
          lastChangeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.CompletedChange lastChange = 3;
       */
      public Builder setLastChange(
          io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange.Builder builderForValue) {
        if (lastChangeBuilder_ == null) {
          lastChange_ = builderForValue.build();
        } else {
          lastChangeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.CompletedChange lastChange = 3;
       */
      public Builder mergeLastChange(io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange value) {
        if (lastChangeBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            lastChange_ != null &&
            lastChange_ != io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange.getDefaultInstance()) {
            getLastChangeBuilder().mergeFrom(value);
          } else {
            lastChange_ = value;
          }
        } else {
          lastChangeBuilder_.mergeFrom(value);
        }
        if (lastChange_ != null) {
          bitField0_ |= 0x00000004;
          onChanged();
        }
        return this;
      }
      /**
       * .topology_protocol.CompletedChange lastChange = 3;
       */
      public Builder clearLastChange() {
        bitField0_ = (bitField0_ & ~0x00000004);
        lastChange_ = null;
        if (lastChangeBuilder_ != null) {
          lastChangeBuilder_.dispose();
          lastChangeBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.CompletedChange lastChange = 3;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange.Builder getLastChangeBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getLastChangeFieldBuilder().getBuilder();
      }
      /**
       * .topology_protocol.CompletedChange lastChange = 3;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChangeOrBuilder getLastChangeOrBuilder() {
        if (lastChangeBuilder_ != null) {
          return lastChangeBuilder_.getMessageOrBuilder();
        } else {
          return lastChange_ == null ?
              io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange.getDefaultInstance() : lastChange_;
        }
      }
      /**
       * .topology_protocol.CompletedChange lastChange = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange, io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChangeOrBuilder> 
          getLastChangeFieldBuilder() {
        if (lastChangeBuilder_ == null) {
          lastChangeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange, io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChangeOrBuilder>(
                  getLastChange(),
                  getParentForChildren(),
                  isClean());
          lastChange_ = null;
        }
        return lastChangeBuilder_;
      }

      private io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan currentChange_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan, io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlanOrBuilder> currentChangeBuilder_;
      /**
       * .topology_protocol.ClusterChangePlan currentChange = 4;
       * @return Whether the currentChange field is set.
       */
      public boolean hasCurrentChange() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * .topology_protocol.ClusterChangePlan currentChange = 4;
       * @return The currentChange.
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan getCurrentChange() {
        if (currentChangeBuilder_ == null) {
          return currentChange_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan.getDefaultInstance() : currentChange_;
        } else {
          return currentChangeBuilder_.getMessage();
        }
      }
      /**
       * .topology_protocol.ClusterChangePlan currentChange = 4;
       */
      public Builder setCurrentChange(io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan value) {
        if (currentChangeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          currentChange_ = value;
        } else {
          currentChangeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.ClusterChangePlan currentChange = 4;
       */
      public Builder setCurrentChange(
          io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan.Builder builderForValue) {
        if (currentChangeBuilder_ == null) {
          currentChange_ = builderForValue.build();
        } else {
          currentChangeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.ClusterChangePlan currentChange = 4;
       */
      public Builder mergeCurrentChange(io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan value) {
        if (currentChangeBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            currentChange_ != null &&
            currentChange_ != io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan.getDefaultInstance()) {
            getCurrentChangeBuilder().mergeFrom(value);
          } else {
            currentChange_ = value;
          }
        } else {
          currentChangeBuilder_.mergeFrom(value);
        }
        if (currentChange_ != null) {
          bitField0_ |= 0x00000008;
          onChanged();
        }
        return this;
      }
      /**
       * .topology_protocol.ClusterChangePlan currentChange = 4;
       */
      public Builder clearCurrentChange() {
        bitField0_ = (bitField0_ & ~0x00000008);
        currentChange_ = null;
        if (currentChangeBuilder_ != null) {
          currentChangeBuilder_.dispose();
          currentChangeBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.ClusterChangePlan currentChange = 4;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan.Builder getCurrentChangeBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getCurrentChangeFieldBuilder().getBuilder();
      }
      /**
       * .topology_protocol.ClusterChangePlan currentChange = 4;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlanOrBuilder getCurrentChangeOrBuilder() {
        if (currentChangeBuilder_ != null) {
          return currentChangeBuilder_.getMessageOrBuilder();
        } else {
          return currentChange_ == null ?
              io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan.getDefaultInstance() : currentChange_;
        }
      }
      /**
       * .topology_protocol.ClusterChangePlan currentChange = 4;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan, io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlanOrBuilder> 
          getCurrentChangeFieldBuilder() {
        if (currentChangeBuilder_ == null) {
          currentChangeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan, io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlanOrBuilder>(
                  getCurrentChange(),
                  getParentForChildren(),
                  isClean());
          currentChange_ = null;
        }
        return currentChangeBuilder_;
      }

      private io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState routingState_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState, io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingStateOrBuilder> routingStateBuilder_;
      /**
       * .topology_protocol.RoutingState routingState = 5;
       * @return Whether the routingState field is set.
       */
      public boolean hasRoutingState() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * .topology_protocol.RoutingState routingState = 5;
       * @return The routingState.
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState getRoutingState() {
        if (routingStateBuilder_ == null) {
          return routingState_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState.getDefaultInstance() : routingState_;
        } else {
          return routingStateBuilder_.getMessage();
        }
      }
      /**
       * .topology_protocol.RoutingState routingState = 5;
       */
      public Builder setRoutingState(io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState value) {
        if (routingStateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          routingState_ = value;
        } else {
          routingStateBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.RoutingState routingState = 5;
       */
      public Builder setRoutingState(
          io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState.Builder builderForValue) {
        if (routingStateBuilder_ == null) {
          routingState_ = builderForValue.build();
        } else {
          routingStateBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.RoutingState routingState = 5;
       */
      public Builder mergeRoutingState(io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState value) {
        if (routingStateBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0) &&
            routingState_ != null &&
            routingState_ != io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState.getDefaultInstance()) {
            getRoutingStateBuilder().mergeFrom(value);
          } else {
            routingState_ = value;
          }
        } else {
          routingStateBuilder_.mergeFrom(value);
        }
        if (routingState_ != null) {
          bitField0_ |= 0x00000010;
          onChanged();
        }
        return this;
      }
      /**
       * .topology_protocol.RoutingState routingState = 5;
       */
      public Builder clearRoutingState() {
        bitField0_ = (bitField0_ & ~0x00000010);
        routingState_ = null;
        if (routingStateBuilder_ != null) {
          routingStateBuilder_.dispose();
          routingStateBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.RoutingState routingState = 5;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState.Builder getRoutingStateBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getRoutingStateFieldBuilder().getBuilder();
      }
      /**
       * .topology_protocol.RoutingState routingState = 5;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingStateOrBuilder getRoutingStateOrBuilder() {
        if (routingStateBuilder_ != null) {
          return routingStateBuilder_.getMessageOrBuilder();
        } else {
          return routingState_ == null ?
              io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState.getDefaultInstance() : routingState_;
        }
      }
      /**
       * .topology_protocol.RoutingState routingState = 5;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState, io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingStateOrBuilder> 
          getRoutingStateFieldBuilder() {
        if (routingStateBuilder_ == null) {
          routingStateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState, io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingStateOrBuilder>(
                  getRoutingState(),
                  getParentForChildren(),
                  isClean());
          routingState_ = null;
        }
        return routingStateBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.ClusterTopology)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.ClusterTopology)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterTopology getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RoutingStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.RoutingState)
      com.google.protobuf.MessageOrBuilder {

    /**
     * int64 version = 1;
     * @return The version.
     */
    long getVersion();

    /**
     * repeated sint32 activePartitions = 2;
     * @return A list containing the activePartitions.
     */
    java.util.List getActivePartitionsList();
    /**
     * repeated sint32 activePartitions = 2;
     * @return The count of activePartitions.
     */
    int getActivePartitionsCount();
    /**
     * repeated sint32 activePartitions = 2;
     * @param index The index of the element to return.
     * @return The activePartitions at the given index.
     */
    int getActivePartitions(int index);

    /**
     * .topology_protocol.MessageCorrelation messageCorrelation = 3;
     * @return Whether the messageCorrelation field is set.
     */
    boolean hasMessageCorrelation();
    /**
     * .topology_protocol.MessageCorrelation messageCorrelation = 3;
     * @return The messageCorrelation.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation getMessageCorrelation();
    /**
     * .topology_protocol.MessageCorrelation messageCorrelation = 3;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelationOrBuilder getMessageCorrelationOrBuilder();
  }
  /**
   * Protobuf type {@code topology_protocol.RoutingState}
   */
  public static final class RoutingState extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.RoutingState)
      RoutingStateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RoutingState.newBuilder() to construct.
    private RoutingState(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private RoutingState() {
      activePartitions_ = emptyIntList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_RoutingState_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_RoutingState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState.class, io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState.Builder.class);
    }

    private int bitField0_;
    public static final int VERSION_FIELD_NUMBER = 1;
    private long version_ = 0L;
    /**
     * int64 version = 1;
     * @return The version.
     */
    @java.lang.Override
    public long getVersion() {
      return version_;
    }

    public static final int ACTIVEPARTITIONS_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList activePartitions_ =
        emptyIntList();
    /**
     * repeated sint32 activePartitions = 2;
     * @return A list containing the activePartitions.
     */
    @java.lang.Override
    public java.util.List
        getActivePartitionsList() {
      return activePartitions_;
    }
    /**
     * repeated sint32 activePartitions = 2;
     * @return The count of activePartitions.
     */
    public int getActivePartitionsCount() {
      return activePartitions_.size();
    }
    /**
     * repeated sint32 activePartitions = 2;
     * @param index The index of the element to return.
     * @return The activePartitions at the given index.
     */
    public int getActivePartitions(int index) {
      return activePartitions_.getInt(index);
    }
    private int activePartitionsMemoizedSerializedSize = -1;

    public static final int MESSAGECORRELATION_FIELD_NUMBER = 3;
    private io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation messageCorrelation_;
    /**
     * .topology_protocol.MessageCorrelation messageCorrelation = 3;
     * @return Whether the messageCorrelation field is set.
     */
    @java.lang.Override
    public boolean hasMessageCorrelation() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * .topology_protocol.MessageCorrelation messageCorrelation = 3;
     * @return The messageCorrelation.
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation getMessageCorrelation() {
      return messageCorrelation_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.getDefaultInstance() : messageCorrelation_;
    }
    /**
     * .topology_protocol.MessageCorrelation messageCorrelation = 3;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelationOrBuilder getMessageCorrelationOrBuilder() {
      return messageCorrelation_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.getDefaultInstance() : messageCorrelation_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (version_ != 0L) {
        output.writeInt64(1, version_);
      }
      if (getActivePartitionsList().size() > 0) {
        output.writeUInt32NoTag(18);
        output.writeUInt32NoTag(activePartitionsMemoizedSerializedSize);
      }
      for (int i = 0; i < activePartitions_.size(); i++) {
        output.writeSInt32NoTag(activePartitions_.getInt(i));
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(3, getMessageCorrelation());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (version_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, version_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < activePartitions_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeSInt32SizeNoTag(activePartitions_.getInt(i));
        }
        size += dataSize;
        if (!getActivePartitionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        activePartitionsMemoizedSerializedSize = dataSize;
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getMessageCorrelation());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState other = (io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState) obj;

      if (getVersion()
          != other.getVersion()) return false;
      if (!getActivePartitionsList()
          .equals(other.getActivePartitionsList())) return false;
      if (hasMessageCorrelation() != other.hasMessageCorrelation()) return false;
      if (hasMessageCorrelation()) {
        if (!getMessageCorrelation()
            .equals(other.getMessageCorrelation())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + VERSION_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getVersion());
      if (getActivePartitionsCount() > 0) {
        hash = (37 * hash) + ACTIVEPARTITIONS_FIELD_NUMBER;
        hash = (53 * hash) + getActivePartitionsList().hashCode();
      }
      if (hasMessageCorrelation()) {
        hash = (37 * hash) + MESSAGECORRELATION_FIELD_NUMBER;
        hash = (53 * hash) + getMessageCorrelation().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.RoutingState}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.RoutingState)
        io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingStateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_RoutingState_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_RoutingState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState.class, io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getMessageCorrelationFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        version_ = 0L;
        activePartitions_ = emptyIntList();
        messageCorrelation_ = null;
        if (messageCorrelationBuilder_ != null) {
          messageCorrelationBuilder_.dispose();
          messageCorrelationBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_RoutingState_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState result = new io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.version_ = version_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          activePartitions_.makeImmutable();
          result.activePartitions_ = activePartitions_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.messageCorrelation_ = messageCorrelationBuilder_ == null
              ? messageCorrelation_
              : messageCorrelationBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState.getDefaultInstance()) return this;
        if (other.getVersion() != 0L) {
          setVersion(other.getVersion());
        }
        if (!other.activePartitions_.isEmpty()) {
          if (activePartitions_.isEmpty()) {
            activePartitions_ = other.activePartitions_;
            activePartitions_.makeImmutable();
            bitField0_ |= 0x00000002;
          } else {
            ensureActivePartitionsIsMutable();
            activePartitions_.addAll(other.activePartitions_);
          }
          onChanged();
        }
        if (other.hasMessageCorrelation()) {
          mergeMessageCorrelation(other.getMessageCorrelation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                version_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                int v = input.readSInt32();
                ensureActivePartitionsIsMutable();
                activePartitions_.addInt(v);
                break;
              } // case 16
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureActivePartitionsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  activePartitions_.addInt(input.readSInt32());
                }
                input.popLimit(limit);
                break;
              } // case 18
              case 26: {
                input.readMessage(
                    getMessageCorrelationFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long version_ ;
      /**
       * int64 version = 1;
       * @return The version.
       */
      @java.lang.Override
      public long getVersion() {
        return version_;
      }
      /**
       * int64 version = 1;
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(long value) {

        version_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * int64 version = 1;
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000001);
        version_ = 0L;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList activePartitions_ = emptyIntList();
      private void ensureActivePartitionsIsMutable() {
        if (!activePartitions_.isModifiable()) {
          activePartitions_ = makeMutableCopy(activePartitions_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * repeated sint32 activePartitions = 2;
       * @return A list containing the activePartitions.
       */
      public java.util.List
          getActivePartitionsList() {
        activePartitions_.makeImmutable();
        return activePartitions_;
      }
      /**
       * repeated sint32 activePartitions = 2;
       * @return The count of activePartitions.
       */
      public int getActivePartitionsCount() {
        return activePartitions_.size();
      }
      /**
       * repeated sint32 activePartitions = 2;
       * @param index The index of the element to return.
       * @return The activePartitions at the given index.
       */
      public int getActivePartitions(int index) {
        return activePartitions_.getInt(index);
      }
      /**
       * repeated sint32 activePartitions = 2;
       * @param index The index to set the value at.
       * @param value The activePartitions to set.
       * @return This builder for chaining.
       */
      public Builder setActivePartitions(
          int index, int value) {

        ensureActivePartitionsIsMutable();
        activePartitions_.setInt(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated sint32 activePartitions = 2;
       * @param value The activePartitions to add.
       * @return This builder for chaining.
       */
      public Builder addActivePartitions(int value) {

        ensureActivePartitionsIsMutable();
        activePartitions_.addInt(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated sint32 activePartitions = 2;
       * @param values The activePartitions to add.
       * @return This builder for chaining.
       */
      public Builder addAllActivePartitions(
          java.lang.Iterable values) {
        ensureActivePartitionsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, activePartitions_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated sint32 activePartitions = 2;
       * @return This builder for chaining.
       */
      public Builder clearActivePartitions() {
        activePartitions_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      private io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation messageCorrelation_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation, io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelationOrBuilder> messageCorrelationBuilder_;
      /**
       * .topology_protocol.MessageCorrelation messageCorrelation = 3;
       * @return Whether the messageCorrelation field is set.
       */
      public boolean hasMessageCorrelation() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * .topology_protocol.MessageCorrelation messageCorrelation = 3;
       * @return The messageCorrelation.
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation getMessageCorrelation() {
        if (messageCorrelationBuilder_ == null) {
          return messageCorrelation_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.getDefaultInstance() : messageCorrelation_;
        } else {
          return messageCorrelationBuilder_.getMessage();
        }
      }
      /**
       * .topology_protocol.MessageCorrelation messageCorrelation = 3;
       */
      public Builder setMessageCorrelation(io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation value) {
        if (messageCorrelationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          messageCorrelation_ = value;
        } else {
          messageCorrelationBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.MessageCorrelation messageCorrelation = 3;
       */
      public Builder setMessageCorrelation(
          io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.Builder builderForValue) {
        if (messageCorrelationBuilder_ == null) {
          messageCorrelation_ = builderForValue.build();
        } else {
          messageCorrelationBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.MessageCorrelation messageCorrelation = 3;
       */
      public Builder mergeMessageCorrelation(io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation value) {
        if (messageCorrelationBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            messageCorrelation_ != null &&
            messageCorrelation_ != io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.getDefaultInstance()) {
            getMessageCorrelationBuilder().mergeFrom(value);
          } else {
            messageCorrelation_ = value;
          }
        } else {
          messageCorrelationBuilder_.mergeFrom(value);
        }
        if (messageCorrelation_ != null) {
          bitField0_ |= 0x00000004;
          onChanged();
        }
        return this;
      }
      /**
       * .topology_protocol.MessageCorrelation messageCorrelation = 3;
       */
      public Builder clearMessageCorrelation() {
        bitField0_ = (bitField0_ & ~0x00000004);
        messageCorrelation_ = null;
        if (messageCorrelationBuilder_ != null) {
          messageCorrelationBuilder_.dispose();
          messageCorrelationBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.MessageCorrelation messageCorrelation = 3;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.Builder getMessageCorrelationBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getMessageCorrelationFieldBuilder().getBuilder();
      }
      /**
       * .topology_protocol.MessageCorrelation messageCorrelation = 3;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelationOrBuilder getMessageCorrelationOrBuilder() {
        if (messageCorrelationBuilder_ != null) {
          return messageCorrelationBuilder_.getMessageOrBuilder();
        } else {
          return messageCorrelation_ == null ?
              io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.getDefaultInstance() : messageCorrelation_;
        }
      }
      /**
       * .topology_protocol.MessageCorrelation messageCorrelation = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation, io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelationOrBuilder> 
          getMessageCorrelationFieldBuilder() {
        if (messageCorrelationBuilder_ == null) {
          messageCorrelationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation, io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelationOrBuilder>(
                  getMessageCorrelation(),
                  getParentForChildren(),
                  isClean());
          messageCorrelation_ = null;
        }
        return messageCorrelationBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.RoutingState)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.RoutingState)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.RoutingState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MessageCorrelationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.MessageCorrelation)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .topology_protocol.MessageCorrelation.HashMod hashMod = 1;
     * @return Whether the hashMod field is set.
     */
    boolean hasHashMod();
    /**
     * .topology_protocol.MessageCorrelation.HashMod hashMod = 1;
     * @return The hashMod.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod getHashMod();
    /**
     * .topology_protocol.MessageCorrelation.HashMod hashMod = 1;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashModOrBuilder getHashModOrBuilder();

    io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.CorrelationCase getCorrelationCase();
  }
  /**
   * Protobuf type {@code topology_protocol.MessageCorrelation}
   */
  public static final class MessageCorrelation extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.MessageCorrelation)
      MessageCorrelationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MessageCorrelation.newBuilder() to construct.
    private MessageCorrelation(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private MessageCorrelation() {
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MessageCorrelation_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MessageCorrelation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.Builder.class);
    }

    public interface HashModOrBuilder extends
        // @@protoc_insertion_point(interface_extends:topology_protocol.MessageCorrelation.HashMod)
        com.google.protobuf.MessageOrBuilder {

      /**
       * sint32 partitionCount = 1;
       * @return The partitionCount.
       */
      int getPartitionCount();
    }
    /**
     * Protobuf type {@code topology_protocol.MessageCorrelation.HashMod}
     */
    public static final class HashMod extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:topology_protocol.MessageCorrelation.HashMod)
        HashModOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use HashMod.newBuilder() to construct.
      private HashMod(com.google.protobuf.GeneratedMessageV3.Builder builder) {
        super(builder);
      }
      private HashMod() {
      }

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

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MessageCorrelation_HashMod_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MessageCorrelation_HashMod_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod.class, io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod.Builder.class);
      }

      public static final int PARTITIONCOUNT_FIELD_NUMBER = 1;
      private int partitionCount_ = 0;
      /**
       * sint32 partitionCount = 1;
       * @return The partitionCount.
       */
      @java.lang.Override
      public int getPartitionCount() {
        return partitionCount_;
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (partitionCount_ != 0) {
          output.writeSInt32(1, partitionCount_);
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (partitionCount_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeSInt32Size(1, partitionCount_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod)) {
          return super.equals(obj);
        }
        io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod other = (io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod) obj;

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

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

      public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code topology_protocol.MessageCorrelation.HashMod}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder implements
          // @@protoc_insertion_point(builder_implements:topology_protocol.MessageCorrelation.HashMod)
          io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashModOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MessageCorrelation_HashMod_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MessageCorrelation_HashMod_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod.class, io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod.Builder.class);
        }

        // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod.newBuilder()
        private Builder() {

        }

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

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

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MessageCorrelation_HashMod_descriptor;
        }

        @java.lang.Override
        public io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod getDefaultInstanceForType() {
          return io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod.getDefaultInstance();
        }

        @java.lang.Override
        public io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod build() {
          io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod buildPartial() {
          io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod result = new io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod result) {
          int from_bitField0_ = bitField0_;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.partitionCount_ = partitionCount_;
          }
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod) {
            return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod other) {
          if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod.getDefaultInstance()) return this;
          if (other.getPartitionCount() != 0) {
            setPartitionCount(other.getPartitionCount());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

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

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

        private int partitionCount_ ;
        /**
         * sint32 partitionCount = 1;
         * @return The partitionCount.
         */
        @java.lang.Override
        public int getPartitionCount() {
          return partitionCount_;
        }
        /**
         * sint32 partitionCount = 1;
         * @param value The partitionCount to set.
         * @return This builder for chaining.
         */
        public Builder setPartitionCount(int value) {

          partitionCount_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * sint32 partitionCount = 1;
         * @return This builder for chaining.
         */
        public Builder clearPartitionCount() {
          bitField0_ = (bitField0_ & ~0x00000001);
          partitionCount_ = 0;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:topology_protocol.MessageCorrelation.HashMod)
      }

      // @@protoc_insertion_point(class_scope:topology_protocol.MessageCorrelation.HashMod)
      private static final io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod();
      }

      public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int correlationCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object correlation_;
    public enum CorrelationCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      HASHMOD(1),
      CORRELATION_NOT_SET(0);
      private final int value;
      private CorrelationCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static CorrelationCase valueOf(int value) {
        return forNumber(value);
      }

      public static CorrelationCase forNumber(int value) {
        switch (value) {
          case 1: return HASHMOD;
          case 0: return CORRELATION_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public CorrelationCase
    getCorrelationCase() {
      return CorrelationCase.forNumber(
          correlationCase_);
    }

    public static final int HASHMOD_FIELD_NUMBER = 1;
    /**
     * .topology_protocol.MessageCorrelation.HashMod hashMod = 1;
     * @return Whether the hashMod field is set.
     */
    @java.lang.Override
    public boolean hasHashMod() {
      return correlationCase_ == 1;
    }
    /**
     * .topology_protocol.MessageCorrelation.HashMod hashMod = 1;
     * @return The hashMod.
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod getHashMod() {
      if (correlationCase_ == 1) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod) correlation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod.getDefaultInstance();
    }
    /**
     * .topology_protocol.MessageCorrelation.HashMod hashMod = 1;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashModOrBuilder getHashModOrBuilder() {
      if (correlationCase_ == 1) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod) correlation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod.getDefaultInstance();
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (correlationCase_ == 1) {
        output.writeMessage(1, (io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod) correlation_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (correlationCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod) correlation_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation other = (io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation) obj;

      if (!getCorrelationCase().equals(other.getCorrelationCase())) return false;
      switch (correlationCase_) {
        case 1:
          if (!getHashMod()
              .equals(other.getHashMod())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

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

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.MessageCorrelation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.MessageCorrelation)
        io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MessageCorrelation_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MessageCorrelation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (hashModBuilder_ != null) {
          hashModBuilder_.clear();
        }
        correlationCase_ = 0;
        correlation_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MessageCorrelation_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation result = new io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation result) {
        int from_bitField0_ = bitField0_;
      }

      private void buildPartialOneofs(io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation result) {
        result.correlationCase_ = correlationCase_;
        result.correlation_ = this.correlation_;
        if (correlationCase_ == 1 &&
            hashModBuilder_ != null) {
          result.correlation_ = hashModBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.getDefaultInstance()) return this;
        switch (other.getCorrelationCase()) {
          case HASHMOD: {
            mergeHashMod(other.getHashMod());
            break;
          }
          case CORRELATION_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      public Builder clearCorrelation() {
        correlationCase_ = 0;
        correlation_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod, io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashModOrBuilder> hashModBuilder_;
      /**
       * .topology_protocol.MessageCorrelation.HashMod hashMod = 1;
       * @return Whether the hashMod field is set.
       */
      @java.lang.Override
      public boolean hasHashMod() {
        return correlationCase_ == 1;
      }
      /**
       * .topology_protocol.MessageCorrelation.HashMod hashMod = 1;
       * @return The hashMod.
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod getHashMod() {
        if (hashModBuilder_ == null) {
          if (correlationCase_ == 1) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod) correlation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod.getDefaultInstance();
        } else {
          if (correlationCase_ == 1) {
            return hashModBuilder_.getMessage();
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.MessageCorrelation.HashMod hashMod = 1;
       */
      public Builder setHashMod(io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod value) {
        if (hashModBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          correlation_ = value;
          onChanged();
        } else {
          hashModBuilder_.setMessage(value);
        }
        correlationCase_ = 1;
        return this;
      }
      /**
       * .topology_protocol.MessageCorrelation.HashMod hashMod = 1;
       */
      public Builder setHashMod(
          io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod.Builder builderForValue) {
        if (hashModBuilder_ == null) {
          correlation_ = builderForValue.build();
          onChanged();
        } else {
          hashModBuilder_.setMessage(builderForValue.build());
        }
        correlationCase_ = 1;
        return this;
      }
      /**
       * .topology_protocol.MessageCorrelation.HashMod hashMod = 1;
       */
      public Builder mergeHashMod(io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod value) {
        if (hashModBuilder_ == null) {
          if (correlationCase_ == 1 &&
              correlation_ != io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod.getDefaultInstance()) {
            correlation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod.newBuilder((io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod) correlation_)
                .mergeFrom(value).buildPartial();
          } else {
            correlation_ = value;
          }
          onChanged();
        } else {
          if (correlationCase_ == 1) {
            hashModBuilder_.mergeFrom(value);
          } else {
            hashModBuilder_.setMessage(value);
          }
        }
        correlationCase_ = 1;
        return this;
      }
      /**
       * .topology_protocol.MessageCorrelation.HashMod hashMod = 1;
       */
      public Builder clearHashMod() {
        if (hashModBuilder_ == null) {
          if (correlationCase_ == 1) {
            correlationCase_ = 0;
            correlation_ = null;
            onChanged();
          }
        } else {
          if (correlationCase_ == 1) {
            correlationCase_ = 0;
            correlation_ = null;
          }
          hashModBuilder_.clear();
        }
        return this;
      }
      /**
       * .topology_protocol.MessageCorrelation.HashMod hashMod = 1;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod.Builder getHashModBuilder() {
        return getHashModFieldBuilder().getBuilder();
      }
      /**
       * .topology_protocol.MessageCorrelation.HashMod hashMod = 1;
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashModOrBuilder getHashModOrBuilder() {
        if ((correlationCase_ == 1) && (hashModBuilder_ != null)) {
          return hashModBuilder_.getMessageOrBuilder();
        } else {
          if (correlationCase_ == 1) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod) correlation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.MessageCorrelation.HashMod hashMod = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod, io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashModOrBuilder> 
          getHashModFieldBuilder() {
        if (hashModBuilder_ == null) {
          if (!(correlationCase_ == 1)) {
            correlation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod.getDefaultInstance();
          }
          hashModBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod, io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashModOrBuilder>(
                  (io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation.HashMod) correlation_,
                  getParentForChildren(),
                  isClean());
          correlation_ = null;
        }
        correlationCase_ = 1;
        onChanged();
        return hashModBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.MessageCorrelation)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.MessageCorrelation)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.MessageCorrelation getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MemberStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.MemberState)
      com.google.protobuf.MessageOrBuilder {

    /**
     * int64 version = 1;
     * @return The version.
     */
    long getVersion();

    /**
     * .google.protobuf.Timestamp lastUpdated = 2;
     * @return Whether the lastUpdated field is set.
     */
    boolean hasLastUpdated();
    /**
     * .google.protobuf.Timestamp lastUpdated = 2;
     * @return The lastUpdated.
     */
    com.google.protobuf.Timestamp getLastUpdated();
    /**
     * .google.protobuf.Timestamp lastUpdated = 2;
     */
    com.google.protobuf.TimestampOrBuilder getLastUpdatedOrBuilder();

    /**
     * .topology_protocol.State state = 3;
     * @return The enum numeric value on the wire for state.
     */
    int getStateValue();
    /**
     * .topology_protocol.State state = 3;
     * @return The state.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.State getState();

    /**
     * map<int32, .topology_protocol.PartitionState> partitions = 4;
     */
    int getPartitionsCount();
    /**
     * map<int32, .topology_protocol.PartitionState> partitions = 4;
     */
    boolean containsPartitions(
        int key);
    /**
     * Use {@link #getPartitionsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map
    getPartitions();
    /**
     * map<int32, .topology_protocol.PartitionState> partitions = 4;
     */
    java.util.Map
    getPartitionsMap();
    /**
     * map<int32, .topology_protocol.PartitionState> partitions = 4;
     */
    /* nullable */
io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState getPartitionsOrDefault(
        int key,
        /* nullable */
io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState defaultValue);
    /**
     * map<int32, .topology_protocol.PartitionState> partitions = 4;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState getPartitionsOrThrow(
        int key);
  }
  /**
   * Protobuf type {@code topology_protocol.MemberState}
   */
  public static final class MemberState extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.MemberState)
      MemberStateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MemberState.newBuilder() to construct.
    private MemberState(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private MemberState() {
      state_ = 0;
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MemberState_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
        int number) {
      switch (number) {
        case 4:
          return internalGetPartitions();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MemberState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState.class, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState.Builder.class);
    }

    private int bitField0_;
    public static final int VERSION_FIELD_NUMBER = 1;
    private long version_ = 0L;
    /**
     * int64 version = 1;
     * @return The version.
     */
    @java.lang.Override
    public long getVersion() {
      return version_;
    }

    public static final int LASTUPDATED_FIELD_NUMBER = 2;
    private com.google.protobuf.Timestamp lastUpdated_;
    /**
     * .google.protobuf.Timestamp lastUpdated = 2;
     * @return Whether the lastUpdated field is set.
     */
    @java.lang.Override
    public boolean hasLastUpdated() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * .google.protobuf.Timestamp lastUpdated = 2;
     * @return The lastUpdated.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getLastUpdated() {
      return lastUpdated_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : lastUpdated_;
    }
    /**
     * .google.protobuf.Timestamp lastUpdated = 2;
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getLastUpdatedOrBuilder() {
      return lastUpdated_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : lastUpdated_;
    }

    public static final int STATE_FIELD_NUMBER = 3;
    private int state_ = 0;
    /**
     * .topology_protocol.State state = 3;
     * @return The enum numeric value on the wire for state.
     */
    @java.lang.Override public int getStateValue() {
      return state_;
    }
    /**
     * .topology_protocol.State state = 3;
     * @return The state.
     */
    @java.lang.Override public io.camunda.zeebe.dynamic.config.protocol.Topology.State getState() {
      io.camunda.zeebe.dynamic.config.protocol.Topology.State result = io.camunda.zeebe.dynamic.config.protocol.Topology.State.forNumber(state_);
      return result == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.State.UNRECOGNIZED : result;
    }

    public static final int PARTITIONS_FIELD_NUMBER = 4;
    private static final class PartitionsDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.Integer, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState> defaultEntry =
              com.google.protobuf.MapEntry
              .newDefaultInstance(
                  io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MemberState_PartitionsEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.INT32,
                  0,
                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
                  io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState.getDefaultInstance());
    }
    @SuppressWarnings("serial")
    private com.google.protobuf.MapField<
        java.lang.Integer, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState> partitions_;
    private com.google.protobuf.MapField
    internalGetPartitions() {
      if (partitions_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            PartitionsDefaultEntryHolder.defaultEntry);
      }
      return partitions_;
    }
    public int getPartitionsCount() {
      return internalGetPartitions().getMap().size();
    }
    /**
     * map<int32, .topology_protocol.PartitionState> partitions = 4;
     */
    @java.lang.Override
    public boolean containsPartitions(
        int key) {

      return internalGetPartitions().getMap().containsKey(key);
    }
    /**
     * Use {@link #getPartitionsMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map getPartitions() {
      return getPartitionsMap();
    }
    /**
     * map<int32, .topology_protocol.PartitionState> partitions = 4;
     */
    @java.lang.Override
    public java.util.Map getPartitionsMap() {
      return internalGetPartitions().getMap();
    }
    /**
     * map<int32, .topology_protocol.PartitionState> partitions = 4;
     */
    @java.lang.Override
    public /* nullable */
io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState getPartitionsOrDefault(
        int key,
        /* nullable */
io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState defaultValue) {

      java.util.Map map =
          internalGetPartitions().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * map<int32, .topology_protocol.PartitionState> partitions = 4;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState getPartitionsOrThrow(
        int key) {

      java.util.Map map =
          internalGetPartitions().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (version_ != 0L) {
        output.writeInt64(1, version_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(2, getLastUpdated());
      }
      if (state_ != io.camunda.zeebe.dynamic.config.protocol.Topology.State.UNKNOWN.getNumber()) {
        output.writeEnum(3, state_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeIntegerMapTo(
          output,
          internalGetPartitions(),
          PartitionsDefaultEntryHolder.defaultEntry,
          4);
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (version_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, version_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getLastUpdated());
      }
      if (state_ != io.camunda.zeebe.dynamic.config.protocol.Topology.State.UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, state_);
      }
      for (java.util.Map.Entry entry
           : internalGetPartitions().getMap().entrySet()) {
        com.google.protobuf.MapEntry
        partitions__ = PartitionsDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, partitions__);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState other = (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState) obj;

      if (getVersion()
          != other.getVersion()) return false;
      if (hasLastUpdated() != other.hasLastUpdated()) return false;
      if (hasLastUpdated()) {
        if (!getLastUpdated()
            .equals(other.getLastUpdated())) return false;
      }
      if (state_ != other.state_) return false;
      if (!internalGetPartitions().equals(
          other.internalGetPartitions())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + VERSION_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getVersion());
      if (hasLastUpdated()) {
        hash = (37 * hash) + LASTUPDATED_FIELD_NUMBER;
        hash = (53 * hash) + getLastUpdated().hashCode();
      }
      hash = (37 * hash) + STATE_FIELD_NUMBER;
      hash = (53 * hash) + state_;
      if (!internalGetPartitions().getMap().isEmpty()) {
        hash = (37 * hash) + PARTITIONS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetPartitions().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.MemberState}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.MemberState)
        io.camunda.zeebe.dynamic.config.protocol.Topology.MemberStateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MemberState_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
          int number) {
        switch (number) {
          case 4:
            return internalGetPartitions();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
          int number) {
        switch (number) {
          case 4:
            return internalGetMutablePartitions();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MemberState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState.class, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getLastUpdatedFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        version_ = 0L;
        lastUpdated_ = null;
        if (lastUpdatedBuilder_ != null) {
          lastUpdatedBuilder_.dispose();
          lastUpdatedBuilder_ = null;
        }
        state_ = 0;
        internalGetMutablePartitions().clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MemberState_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState result = new io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.version_ = version_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.lastUpdated_ = lastUpdatedBuilder_ == null
              ? lastUpdated_
              : lastUpdatedBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.state_ = state_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.partitions_ = internalGetPartitions().build(PartitionsDefaultEntryHolder.defaultEntry);
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState.getDefaultInstance()) return this;
        if (other.getVersion() != 0L) {
          setVersion(other.getVersion());
        }
        if (other.hasLastUpdated()) {
          mergeLastUpdated(other.getLastUpdated());
        }
        if (other.state_ != 0) {
          setStateValue(other.getStateValue());
        }
        internalGetMutablePartitions().mergeFrom(
            other.internalGetPartitions());
        bitField0_ |= 0x00000008;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                version_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                input.readMessage(
                    getLastUpdatedFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                state_ = input.readEnum();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 34: {
                com.google.protobuf.MapEntry
                partitions__ = input.readMessage(
                    PartitionsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                internalGetMutablePartitions().ensureBuilderMap().put(
                    partitions__.getKey(), partitions__.getValue());
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long version_ ;
      /**
       * int64 version = 1;
       * @return The version.
       */
      @java.lang.Override
      public long getVersion() {
        return version_;
      }
      /**
       * int64 version = 1;
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(long value) {

        version_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * int64 version = 1;
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000001);
        version_ = 0L;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp lastUpdated_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> lastUpdatedBuilder_;
      /**
       * .google.protobuf.Timestamp lastUpdated = 2;
       * @return Whether the lastUpdated field is set.
       */
      public boolean hasLastUpdated() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * .google.protobuf.Timestamp lastUpdated = 2;
       * @return The lastUpdated.
       */
      public com.google.protobuf.Timestamp getLastUpdated() {
        if (lastUpdatedBuilder_ == null) {
          return lastUpdated_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : lastUpdated_;
        } else {
          return lastUpdatedBuilder_.getMessage();
        }
      }
      /**
       * .google.protobuf.Timestamp lastUpdated = 2;
       */
      public Builder setLastUpdated(com.google.protobuf.Timestamp value) {
        if (lastUpdatedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lastUpdated_ = value;
        } else {
          lastUpdatedBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * .google.protobuf.Timestamp lastUpdated = 2;
       */
      public Builder setLastUpdated(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (lastUpdatedBuilder_ == null) {
          lastUpdated_ = builderForValue.build();
        } else {
          lastUpdatedBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * .google.protobuf.Timestamp lastUpdated = 2;
       */
      public Builder mergeLastUpdated(com.google.protobuf.Timestamp value) {
        if (lastUpdatedBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            lastUpdated_ != null &&
            lastUpdated_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getLastUpdatedBuilder().mergeFrom(value);
          } else {
            lastUpdated_ = value;
          }
        } else {
          lastUpdatedBuilder_.mergeFrom(value);
        }
        if (lastUpdated_ != null) {
          bitField0_ |= 0x00000002;
          onChanged();
        }
        return this;
      }
      /**
       * .google.protobuf.Timestamp lastUpdated = 2;
       */
      public Builder clearLastUpdated() {
        bitField0_ = (bitField0_ & ~0x00000002);
        lastUpdated_ = null;
        if (lastUpdatedBuilder_ != null) {
          lastUpdatedBuilder_.dispose();
          lastUpdatedBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .google.protobuf.Timestamp lastUpdated = 2;
       */
      public com.google.protobuf.Timestamp.Builder getLastUpdatedBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getLastUpdatedFieldBuilder().getBuilder();
      }
      /**
       * .google.protobuf.Timestamp lastUpdated = 2;
       */
      public com.google.protobuf.TimestampOrBuilder getLastUpdatedOrBuilder() {
        if (lastUpdatedBuilder_ != null) {
          return lastUpdatedBuilder_.getMessageOrBuilder();
        } else {
          return lastUpdated_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : lastUpdated_;
        }
      }
      /**
       * .google.protobuf.Timestamp lastUpdated = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          getLastUpdatedFieldBuilder() {
        if (lastUpdatedBuilder_ == null) {
          lastUpdatedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getLastUpdated(),
                  getParentForChildren(),
                  isClean());
          lastUpdated_ = null;
        }
        return lastUpdatedBuilder_;
      }

      private int state_ = 0;
      /**
       * .topology_protocol.State state = 3;
       * @return The enum numeric value on the wire for state.
       */
      @java.lang.Override public int getStateValue() {
        return state_;
      }
      /**
       * .topology_protocol.State state = 3;
       * @param value The enum numeric value on the wire for state to set.
       * @return This builder for chaining.
       */
      public Builder setStateValue(int value) {
        state_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.State state = 3;
       * @return The state.
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.State getState() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.State result = io.camunda.zeebe.dynamic.config.protocol.Topology.State.forNumber(state_);
        return result == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.State.UNRECOGNIZED : result;
      }
      /**
       * .topology_protocol.State state = 3;
       * @param value The state to set.
       * @return This builder for chaining.
       */
      public Builder setState(io.camunda.zeebe.dynamic.config.protocol.Topology.State value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        state_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.State state = 3;
       * @return This builder for chaining.
       */
      public Builder clearState() {
        bitField0_ = (bitField0_ & ~0x00000004);
        state_ = 0;
        onChanged();
        return this;
      }

      private static final class PartitionsConverter implements com.google.protobuf.MapFieldBuilder.Converter {
        @java.lang.Override
        public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState build(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionStateOrBuilder val) {
          if (val instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState) { return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState) val; }
          return ((io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState.Builder) val).build();
        }

        @java.lang.Override
        public com.google.protobuf.MapEntry defaultEntry() {
          return PartitionsDefaultEntryHolder.defaultEntry;
        }
      };
      private static final PartitionsConverter partitionsConverter = new PartitionsConverter();

      private com.google.protobuf.MapFieldBuilder<
          java.lang.Integer, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionStateOrBuilder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState.Builder> partitions_;
      private com.google.protobuf.MapFieldBuilder
          internalGetPartitions() {
        if (partitions_ == null) {
          return new com.google.protobuf.MapFieldBuilder<>(partitionsConverter);
        }
        return partitions_;
      }
      private com.google.protobuf.MapFieldBuilder
          internalGetMutablePartitions() {
        if (partitions_ == null) {
          partitions_ = new com.google.protobuf.MapFieldBuilder<>(partitionsConverter);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return partitions_;
      }
      public int getPartitionsCount() {
        return internalGetPartitions().ensureBuilderMap().size();
      }
      /**
       * map<int32, .topology_protocol.PartitionState> partitions = 4;
       */
      @java.lang.Override
      public boolean containsPartitions(
          int key) {

        return internalGetPartitions().ensureBuilderMap().containsKey(key);
      }
      /**
       * Use {@link #getPartitionsMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map getPartitions() {
        return getPartitionsMap();
      }
      /**
       * map<int32, .topology_protocol.PartitionState> partitions = 4;
       */
      @java.lang.Override
      public java.util.Map getPartitionsMap() {
        return internalGetPartitions().getImmutableMap();
      }
      /**
       * map<int32, .topology_protocol.PartitionState> partitions = 4;
       */
      @java.lang.Override
      public /* nullable */
io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState getPartitionsOrDefault(
          int key,
          /* nullable */
io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState defaultValue) {

        java.util.Map map = internalGetMutablePartitions().ensureBuilderMap();
        return map.containsKey(key) ? partitionsConverter.build(map.get(key)) : defaultValue;
      }
      /**
       * map<int32, .topology_protocol.PartitionState> partitions = 4;
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState getPartitionsOrThrow(
          int key) {

        java.util.Map map = internalGetMutablePartitions().ensureBuilderMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return partitionsConverter.build(map.get(key));
      }
      public Builder clearPartitions() {
        bitField0_ = (bitField0_ & ~0x00000008);
        internalGetMutablePartitions().clear();
        return this;
      }
      /**
       * map<int32, .topology_protocol.PartitionState> partitions = 4;
       */
      public Builder removePartitions(
          int key) {

        internalGetMutablePartitions().ensureBuilderMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map
          getMutablePartitions() {
        bitField0_ |= 0x00000008;
        return internalGetMutablePartitions().ensureMessageMap();
      }
      /**
       * map<int32, .topology_protocol.PartitionState> partitions = 4;
       */
      public Builder putPartitions(
          int key,
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState value) {

        if (value == null) { throw new NullPointerException("map value"); }
        internalGetMutablePartitions().ensureBuilderMap()
            .put(key, value);
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * map<int32, .topology_protocol.PartitionState> partitions = 4;
       */
      public Builder putAllPartitions(
          java.util.Map values) {
        for (java.util.Map.Entry e : values.entrySet()) {
          if (e.getKey() == null || e.getValue() == null) {
            throw new NullPointerException();
          }
        }
        internalGetMutablePartitions().ensureBuilderMap()
            .putAll(values);
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * map<int32, .topology_protocol.PartitionState> partitions = 4;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState.Builder putPartitionsBuilderIfAbsent(
          int key) {
        java.util.Map builderMap = internalGetMutablePartitions().ensureBuilderMap();
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionStateOrBuilder entry = builderMap.get(key);
        if (entry == null) {
          entry = io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState.newBuilder();
          builderMap.put(key, entry);
        }
        if (entry instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState) {
          entry = ((io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState) entry).toBuilder();
          builderMap.put(key, entry);
        }
        return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState.Builder) entry;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.MemberState)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.MemberState)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PartitionStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.PartitionState)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .topology_protocol.State state = 1;
     * @return The enum numeric value on the wire for state.
     */
    int getStateValue();
    /**
     * .topology_protocol.State state = 1;
     * @return The state.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.State getState();

    /**
     * int32 priority = 2;
     * @return The priority.
     */
    int getPriority();

    /**
     * .topology_protocol.PartitionConfig config = 3;
     * @return Whether the config field is set.
     */
    boolean hasConfig();
    /**
     * .topology_protocol.PartitionConfig config = 3;
     * @return The config.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig getConfig();
    /**
     * .topology_protocol.PartitionConfig config = 3;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfigOrBuilder getConfigOrBuilder();
  }
  /**
   * Protobuf type {@code topology_protocol.PartitionState}
   */
  public static final class PartitionState extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.PartitionState)
      PartitionStateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PartitionState.newBuilder() to construct.
    private PartitionState(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PartitionState() {
      state_ = 0;
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionState_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState.class, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState.Builder.class);
    }

    private int bitField0_;
    public static final int STATE_FIELD_NUMBER = 1;
    private int state_ = 0;
    /**
     * .topology_protocol.State state = 1;
     * @return The enum numeric value on the wire for state.
     */
    @java.lang.Override public int getStateValue() {
      return state_;
    }
    /**
     * .topology_protocol.State state = 1;
     * @return The state.
     */
    @java.lang.Override public io.camunda.zeebe.dynamic.config.protocol.Topology.State getState() {
      io.camunda.zeebe.dynamic.config.protocol.Topology.State result = io.camunda.zeebe.dynamic.config.protocol.Topology.State.forNumber(state_);
      return result == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.State.UNRECOGNIZED : result;
    }

    public static final int PRIORITY_FIELD_NUMBER = 2;
    private int priority_ = 0;
    /**
     * int32 priority = 2;
     * @return The priority.
     */
    @java.lang.Override
    public int getPriority() {
      return priority_;
    }

    public static final int CONFIG_FIELD_NUMBER = 3;
    private io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig config_;
    /**
     * .topology_protocol.PartitionConfig config = 3;
     * @return Whether the config field is set.
     */
    @java.lang.Override
    public boolean hasConfig() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * .topology_protocol.PartitionConfig config = 3;
     * @return The config.
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig getConfig() {
      return config_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig.getDefaultInstance() : config_;
    }
    /**
     * .topology_protocol.PartitionConfig config = 3;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfigOrBuilder getConfigOrBuilder() {
      return config_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig.getDefaultInstance() : config_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (state_ != io.camunda.zeebe.dynamic.config.protocol.Topology.State.UNKNOWN.getNumber()) {
        output.writeEnum(1, state_);
      }
      if (priority_ != 0) {
        output.writeInt32(2, priority_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(3, getConfig());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (state_ != io.camunda.zeebe.dynamic.config.protocol.Topology.State.UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, state_);
      }
      if (priority_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, priority_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getConfig());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState other = (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState) obj;

      if (state_ != other.state_) return false;
      if (getPriority()
          != other.getPriority()) return false;
      if (hasConfig() != other.hasConfig()) return false;
      if (hasConfig()) {
        if (!getConfig()
            .equals(other.getConfig())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + STATE_FIELD_NUMBER;
      hash = (53 * hash) + state_;
      hash = (37 * hash) + PRIORITY_FIELD_NUMBER;
      hash = (53 * hash) + getPriority();
      if (hasConfig()) {
        hash = (37 * hash) + CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getConfig().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.PartitionState}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.PartitionState)
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionStateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionState_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState.class, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getConfigFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        state_ = 0;
        priority_ = 0;
        config_ = null;
        if (configBuilder_ != null) {
          configBuilder_.dispose();
          configBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionState_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState result = new io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.state_ = state_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.priority_ = priority_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.config_ = configBuilder_ == null
              ? config_
              : configBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState.getDefaultInstance()) return this;
        if (other.state_ != 0) {
          setStateValue(other.getStateValue());
        }
        if (other.getPriority() != 0) {
          setPriority(other.getPriority());
        }
        if (other.hasConfig()) {
          mergeConfig(other.getConfig());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private int state_ = 0;
      /**
       * .topology_protocol.State state = 1;
       * @return The enum numeric value on the wire for state.
       */
      @java.lang.Override public int getStateValue() {
        return state_;
      }
      /**
       * .topology_protocol.State state = 1;
       * @param value The enum numeric value on the wire for state to set.
       * @return This builder for chaining.
       */
      public Builder setStateValue(int value) {
        state_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.State state = 1;
       * @return The state.
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.State getState() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.State result = io.camunda.zeebe.dynamic.config.protocol.Topology.State.forNumber(state_);
        return result == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.State.UNRECOGNIZED : result;
      }
      /**
       * .topology_protocol.State state = 1;
       * @param value The state to set.
       * @return This builder for chaining.
       */
      public Builder setState(io.camunda.zeebe.dynamic.config.protocol.Topology.State value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        state_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.State state = 1;
       * @return This builder for chaining.
       */
      public Builder clearState() {
        bitField0_ = (bitField0_ & ~0x00000001);
        state_ = 0;
        onChanged();
        return this;
      }

      private int priority_ ;
      /**
       * int32 priority = 2;
       * @return The priority.
       */
      @java.lang.Override
      public int getPriority() {
        return priority_;
      }
      /**
       * int32 priority = 2;
       * @param value The priority to set.
       * @return This builder for chaining.
       */
      public Builder setPriority(int value) {

        priority_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * int32 priority = 2;
       * @return This builder for chaining.
       */
      public Builder clearPriority() {
        bitField0_ = (bitField0_ & ~0x00000002);
        priority_ = 0;
        onChanged();
        return this;
      }

      private io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig config_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfigOrBuilder> configBuilder_;
      /**
       * .topology_protocol.PartitionConfig config = 3;
       * @return Whether the config field is set.
       */
      public boolean hasConfig() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * .topology_protocol.PartitionConfig config = 3;
       * @return The config.
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig getConfig() {
        if (configBuilder_ == null) {
          return config_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig.getDefaultInstance() : config_;
        } else {
          return configBuilder_.getMessage();
        }
      }
      /**
       * .topology_protocol.PartitionConfig config = 3;
       */
      public Builder setConfig(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig value) {
        if (configBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          config_ = value;
        } else {
          configBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.PartitionConfig config = 3;
       */
      public Builder setConfig(
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig.Builder builderForValue) {
        if (configBuilder_ == null) {
          config_ = builderForValue.build();
        } else {
          configBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.PartitionConfig config = 3;
       */
      public Builder mergeConfig(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig value) {
        if (configBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            config_ != null &&
            config_ != io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig.getDefaultInstance()) {
            getConfigBuilder().mergeFrom(value);
          } else {
            config_ = value;
          }
        } else {
          configBuilder_.mergeFrom(value);
        }
        if (config_ != null) {
          bitField0_ |= 0x00000004;
          onChanged();
        }
        return this;
      }
      /**
       * .topology_protocol.PartitionConfig config = 3;
       */
      public Builder clearConfig() {
        bitField0_ = (bitField0_ & ~0x00000004);
        config_ = null;
        if (configBuilder_ != null) {
          configBuilder_.dispose();
          configBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.PartitionConfig config = 3;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig.Builder getConfigBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getConfigFieldBuilder().getBuilder();
      }
      /**
       * .topology_protocol.PartitionConfig config = 3;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfigOrBuilder getConfigOrBuilder() {
        if (configBuilder_ != null) {
          return configBuilder_.getMessageOrBuilder();
        } else {
          return config_ == null ?
              io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig.getDefaultInstance() : config_;
        }
      }
      /**
       * .topology_protocol.PartitionConfig config = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfigOrBuilder> 
          getConfigFieldBuilder() {
        if (configBuilder_ == null) {
          configBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfigOrBuilder>(
                  getConfig(),
                  getParentForChildren(),
                  isClean());
          config_ = null;
        }
        return configBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.PartitionState)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.PartitionState)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PartitionConfigOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.PartitionConfig)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .topology_protocol.ExportersConfig exporting = 1;
     * @return Whether the exporting field is set.
     */
    boolean hasExporting();
    /**
     * .topology_protocol.ExportersConfig exporting = 1;
     * @return The exporting.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig getExporting();
    /**
     * .topology_protocol.ExportersConfig exporting = 1;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfigOrBuilder getExportingOrBuilder();
  }
  /**
   * Protobuf type {@code topology_protocol.PartitionConfig}
   */
  public static final class PartitionConfig extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.PartitionConfig)
      PartitionConfigOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PartitionConfig.newBuilder() to construct.
    private PartitionConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PartitionConfig() {
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionConfig_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionConfig_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig.class, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig.Builder.class);
    }

    private int bitField0_;
    public static final int EXPORTING_FIELD_NUMBER = 1;
    private io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig exporting_;
    /**
     * .topology_protocol.ExportersConfig exporting = 1;
     * @return Whether the exporting field is set.
     */
    @java.lang.Override
    public boolean hasExporting() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * .topology_protocol.ExportersConfig exporting = 1;
     * @return The exporting.
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig getExporting() {
      return exporting_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig.getDefaultInstance() : exporting_;
    }
    /**
     * .topology_protocol.ExportersConfig exporting = 1;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfigOrBuilder getExportingOrBuilder() {
      return exporting_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig.getDefaultInstance() : exporting_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getExporting());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getExporting());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig other = (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig) obj;

      if (hasExporting() != other.hasExporting()) return false;
      if (hasExporting()) {
        if (!getExporting()
            .equals(other.getExporting())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

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

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.PartitionConfig}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.PartitionConfig)
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfigOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionConfig_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionConfig_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig.class, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getExportingFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        exporting_ = null;
        if (exportingBuilder_ != null) {
          exportingBuilder_.dispose();
          exportingBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionConfig_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig result = new io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.exporting_ = exportingBuilder_ == null
              ? exporting_
              : exportingBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig.getDefaultInstance()) return this;
        if (other.hasExporting()) {
          mergeExporting(other.getExporting());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig exporting_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig, io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfigOrBuilder> exportingBuilder_;
      /**
       * .topology_protocol.ExportersConfig exporting = 1;
       * @return Whether the exporting field is set.
       */
      public boolean hasExporting() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * .topology_protocol.ExportersConfig exporting = 1;
       * @return The exporting.
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig getExporting() {
        if (exportingBuilder_ == null) {
          return exporting_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig.getDefaultInstance() : exporting_;
        } else {
          return exportingBuilder_.getMessage();
        }
      }
      /**
       * .topology_protocol.ExportersConfig exporting = 1;
       */
      public Builder setExporting(io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig value) {
        if (exportingBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          exporting_ = value;
        } else {
          exportingBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.ExportersConfig exporting = 1;
       */
      public Builder setExporting(
          io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig.Builder builderForValue) {
        if (exportingBuilder_ == null) {
          exporting_ = builderForValue.build();
        } else {
          exportingBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.ExportersConfig exporting = 1;
       */
      public Builder mergeExporting(io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig value) {
        if (exportingBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            exporting_ != null &&
            exporting_ != io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig.getDefaultInstance()) {
            getExportingBuilder().mergeFrom(value);
          } else {
            exporting_ = value;
          }
        } else {
          exportingBuilder_.mergeFrom(value);
        }
        if (exporting_ != null) {
          bitField0_ |= 0x00000001;
          onChanged();
        }
        return this;
      }
      /**
       * .topology_protocol.ExportersConfig exporting = 1;
       */
      public Builder clearExporting() {
        bitField0_ = (bitField0_ & ~0x00000001);
        exporting_ = null;
        if (exportingBuilder_ != null) {
          exportingBuilder_.dispose();
          exportingBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.ExportersConfig exporting = 1;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig.Builder getExportingBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getExportingFieldBuilder().getBuilder();
      }
      /**
       * .topology_protocol.ExportersConfig exporting = 1;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfigOrBuilder getExportingOrBuilder() {
        if (exportingBuilder_ != null) {
          return exportingBuilder_.getMessageOrBuilder();
        } else {
          return exporting_ == null ?
              io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig.getDefaultInstance() : exporting_;
        }
      }
      /**
       * .topology_protocol.ExportersConfig exporting = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig, io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfigOrBuilder> 
          getExportingFieldBuilder() {
        if (exportingBuilder_ == null) {
          exportingBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig, io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfigOrBuilder>(
                  getExporting(),
                  getParentForChildren(),
                  isClean());
          exporting_ = null;
        }
        return exportingBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.PartitionConfig)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.PartitionConfig)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionConfig getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ExportersConfigOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.ExportersConfig)
      com.google.protobuf.MessageOrBuilder {

    /**
     * map<string, .topology_protocol.ExporterState> exporters = 1;
     */
    int getExportersCount();
    /**
     * map<string, .topology_protocol.ExporterState> exporters = 1;
     */
    boolean containsExporters(
        java.lang.String key);
    /**
     * Use {@link #getExportersMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map
    getExporters();
    /**
     * map<string, .topology_protocol.ExporterState> exporters = 1;
     */
    java.util.Map
    getExportersMap();
    /**
     * map<string, .topology_protocol.ExporterState> exporters = 1;
     */
    /* nullable */
io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState getExportersOrDefault(
        java.lang.String key,
        /* nullable */
io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState defaultValue);
    /**
     * map<string, .topology_protocol.ExporterState> exporters = 1;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState getExportersOrThrow(
        java.lang.String key);
  }
  /**
   * Protobuf type {@code topology_protocol.ExportersConfig}
   */
  public static final class ExportersConfig extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.ExportersConfig)
      ExportersConfigOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ExportersConfig.newBuilder() to construct.
    private ExportersConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private ExportersConfig() {
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ExportersConfig_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
        int number) {
      switch (number) {
        case 1:
          return internalGetExporters();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ExportersConfig_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig.class, io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig.Builder.class);
    }

    public static final int EXPORTERS_FIELD_NUMBER = 1;
    private static final class ExportersDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState> defaultEntry =
              com.google.protobuf.MapEntry
              .newDefaultInstance(
                  io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ExportersConfig_ExportersEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
                  io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState.getDefaultInstance());
    }
    @SuppressWarnings("serial")
    private com.google.protobuf.MapField<
        java.lang.String, io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState> exporters_;
    private com.google.protobuf.MapField
    internalGetExporters() {
      if (exporters_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            ExportersDefaultEntryHolder.defaultEntry);
      }
      return exporters_;
    }
    public int getExportersCount() {
      return internalGetExporters().getMap().size();
    }
    /**
     * map<string, .topology_protocol.ExporterState> exporters = 1;
     */
    @java.lang.Override
    public boolean containsExporters(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetExporters().getMap().containsKey(key);
    }
    /**
     * Use {@link #getExportersMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map getExporters() {
      return getExportersMap();
    }
    /**
     * map<string, .topology_protocol.ExporterState> exporters = 1;
     */
    @java.lang.Override
    public java.util.Map getExportersMap() {
      return internalGetExporters().getMap();
    }
    /**
     * map<string, .topology_protocol.ExporterState> exporters = 1;
     */
    @java.lang.Override
    public /* nullable */
io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState getExportersOrDefault(
        java.lang.String key,
        /* nullable */
io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map map =
          internalGetExporters().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * map<string, .topology_protocol.ExporterState> exporters = 1;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState getExportersOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map map =
          internalGetExporters().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetExporters(),
          ExportersDefaultEntryHolder.defaultEntry,
          1);
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      for (java.util.Map.Entry entry
           : internalGetExporters().getMap().entrySet()) {
        com.google.protobuf.MapEntry
        exporters__ = ExportersDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, exporters__);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig other = (io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig) obj;

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

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

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.ExportersConfig}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.ExportersConfig)
        io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfigOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ExportersConfig_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
          int number) {
        switch (number) {
          case 1:
            return internalGetExporters();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
          int number) {
        switch (number) {
          case 1:
            return internalGetMutableExporters();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ExportersConfig_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig.class, io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ExportersConfig_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig result = new io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.exporters_ = internalGetExporters().build(ExportersDefaultEntryHolder.defaultEntry);
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig.getDefaultInstance()) return this;
        internalGetMutableExporters().mergeFrom(
            other.internalGetExporters());
        bitField0_ |= 0x00000001;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private static final class ExportersConverter implements com.google.protobuf.MapFieldBuilder.Converter {
        @java.lang.Override
        public io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState build(io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterStateOrBuilder val) {
          if (val instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState) { return (io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState) val; }
          return ((io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState.Builder) val).build();
        }

        @java.lang.Override
        public com.google.protobuf.MapEntry defaultEntry() {
          return ExportersDefaultEntryHolder.defaultEntry;
        }
      };
      private static final ExportersConverter exportersConverter = new ExportersConverter();

      private com.google.protobuf.MapFieldBuilder<
          java.lang.String, io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterStateOrBuilder, io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState, io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState.Builder> exporters_;
      private com.google.protobuf.MapFieldBuilder
          internalGetExporters() {
        if (exporters_ == null) {
          return new com.google.protobuf.MapFieldBuilder<>(exportersConverter);
        }
        return exporters_;
      }
      private com.google.protobuf.MapFieldBuilder
          internalGetMutableExporters() {
        if (exporters_ == null) {
          exporters_ = new com.google.protobuf.MapFieldBuilder<>(exportersConverter);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return exporters_;
      }
      public int getExportersCount() {
        return internalGetExporters().ensureBuilderMap().size();
      }
      /**
       * map<string, .topology_protocol.ExporterState> exporters = 1;
       */
      @java.lang.Override
      public boolean containsExporters(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetExporters().ensureBuilderMap().containsKey(key);
      }
      /**
       * Use {@link #getExportersMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map getExporters() {
        return getExportersMap();
      }
      /**
       * map<string, .topology_protocol.ExporterState> exporters = 1;
       */
      @java.lang.Override
      public java.util.Map getExportersMap() {
        return internalGetExporters().getImmutableMap();
      }
      /**
       * map<string, .topology_protocol.ExporterState> exporters = 1;
       */
      @java.lang.Override
      public /* nullable */
io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState getExportersOrDefault(
          java.lang.String key,
          /* nullable */
io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map map = internalGetMutableExporters().ensureBuilderMap();
        return map.containsKey(key) ? exportersConverter.build(map.get(key)) : defaultValue;
      }
      /**
       * map<string, .topology_protocol.ExporterState> exporters = 1;
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState getExportersOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map map = internalGetMutableExporters().ensureBuilderMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return exportersConverter.build(map.get(key));
      }
      public Builder clearExporters() {
        bitField0_ = (bitField0_ & ~0x00000001);
        internalGetMutableExporters().clear();
        return this;
      }
      /**
       * map<string, .topology_protocol.ExporterState> exporters = 1;
       */
      public Builder removeExporters(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableExporters().ensureBuilderMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map
          getMutableExporters() {
        bitField0_ |= 0x00000001;
        return internalGetMutableExporters().ensureMessageMap();
      }
      /**
       * map<string, .topology_protocol.ExporterState> exporters = 1;
       */
      public Builder putExporters(
          java.lang.String key,
          io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) { throw new NullPointerException("map value"); }
        internalGetMutableExporters().ensureBuilderMap()
            .put(key, value);
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * map<string, .topology_protocol.ExporterState> exporters = 1;
       */
      public Builder putAllExporters(
          java.util.Map values) {
        for (java.util.Map.Entry e : values.entrySet()) {
          if (e.getKey() == null || e.getValue() == null) {
            throw new NullPointerException();
          }
        }
        internalGetMutableExporters().ensureBuilderMap()
            .putAll(values);
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * map<string, .topology_protocol.ExporterState> exporters = 1;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState.Builder putExportersBuilderIfAbsent(
          java.lang.String key) {
        java.util.Map builderMap = internalGetMutableExporters().ensureBuilderMap();
        io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterStateOrBuilder entry = builderMap.get(key);
        if (entry == null) {
          entry = io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState.newBuilder();
          builderMap.put(key, entry);
        }
        if (entry instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState) {
          entry = ((io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState) entry).toBuilder();
          builderMap.put(key, entry);
        }
        return (io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState.Builder) entry;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.ExportersConfig)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.ExportersConfig)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.ExportersConfig getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ExporterStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.ExporterState)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .topology_protocol.EnabledDisabledState state = 1;
     * @return The enum numeric value on the wire for state.
     */
    int getStateValue();
    /**
     * .topology_protocol.EnabledDisabledState state = 1;
     * @return The state.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.EnabledDisabledState getState();

    /**
     * int64 metadataVersion = 2;
     * @return The metadataVersion.
     */
    long getMetadataVersion();

    /**
     * optional string initializedFrom = 3;
     * @return Whether the initializedFrom field is set.
     */
    boolean hasInitializedFrom();
    /**
     * optional string initializedFrom = 3;
     * @return The initializedFrom.
     */
    java.lang.String getInitializedFrom();
    /**
     * optional string initializedFrom = 3;
     * @return The bytes for initializedFrom.
     */
    com.google.protobuf.ByteString
        getInitializedFromBytes();
  }
  /**
   * Protobuf type {@code topology_protocol.ExporterState}
   */
  public static final class ExporterState extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.ExporterState)
      ExporterStateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ExporterState.newBuilder() to construct.
    private ExporterState(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private ExporterState() {
      state_ = 0;
      initializedFrom_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ExporterState_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ExporterState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState.class, io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState.Builder.class);
    }

    private int bitField0_;
    public static final int STATE_FIELD_NUMBER = 1;
    private int state_ = 0;
    /**
     * .topology_protocol.EnabledDisabledState state = 1;
     * @return The enum numeric value on the wire for state.
     */
    @java.lang.Override public int getStateValue() {
      return state_;
    }
    /**
     * .topology_protocol.EnabledDisabledState state = 1;
     * @return The state.
     */
    @java.lang.Override public io.camunda.zeebe.dynamic.config.protocol.Topology.EnabledDisabledState getState() {
      io.camunda.zeebe.dynamic.config.protocol.Topology.EnabledDisabledState result = io.camunda.zeebe.dynamic.config.protocol.Topology.EnabledDisabledState.forNumber(state_);
      return result == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.EnabledDisabledState.UNRECOGNIZED : result;
    }

    public static final int METADATAVERSION_FIELD_NUMBER = 2;
    private long metadataVersion_ = 0L;
    /**
     * int64 metadataVersion = 2;
     * @return The metadataVersion.
     */
    @java.lang.Override
    public long getMetadataVersion() {
      return metadataVersion_;
    }

    public static final int INITIALIZEDFROM_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object initializedFrom_ = "";
    /**
     * optional string initializedFrom = 3;
     * @return Whether the initializedFrom field is set.
     */
    @java.lang.Override
    public boolean hasInitializedFrom() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional string initializedFrom = 3;
     * @return The initializedFrom.
     */
    @java.lang.Override
    public java.lang.String getInitializedFrom() {
      java.lang.Object ref = initializedFrom_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        initializedFrom_ = s;
        return s;
      }
    }
    /**
     * optional string initializedFrom = 3;
     * @return The bytes for initializedFrom.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getInitializedFromBytes() {
      java.lang.Object ref = initializedFrom_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        initializedFrom_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (state_ != io.camunda.zeebe.dynamic.config.protocol.Topology.EnabledDisabledState.ENABLED_DISBALED_UNKNOWN.getNumber()) {
        output.writeEnum(1, state_);
      }
      if (metadataVersion_ != 0L) {
        output.writeInt64(2, metadataVersion_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, initializedFrom_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (state_ != io.camunda.zeebe.dynamic.config.protocol.Topology.EnabledDisabledState.ENABLED_DISBALED_UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, state_);
      }
      if (metadataVersion_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, metadataVersion_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, initializedFrom_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState other = (io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState) obj;

      if (state_ != other.state_) return false;
      if (getMetadataVersion()
          != other.getMetadataVersion()) return false;
      if (hasInitializedFrom() != other.hasInitializedFrom()) return false;
      if (hasInitializedFrom()) {
        if (!getInitializedFrom()
            .equals(other.getInitializedFrom())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + STATE_FIELD_NUMBER;
      hash = (53 * hash) + state_;
      hash = (37 * hash) + METADATAVERSION_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getMetadataVersion());
      if (hasInitializedFrom()) {
        hash = (37 * hash) + INITIALIZEDFROM_FIELD_NUMBER;
        hash = (53 * hash) + getInitializedFrom().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.ExporterState}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.ExporterState)
        io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterStateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ExporterState_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ExporterState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState.class, io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ExporterState_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState result = new io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.state_ = state_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.metadataVersion_ = metadataVersion_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.initializedFrom_ = initializedFrom_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState.getDefaultInstance()) return this;
        if (other.state_ != 0) {
          setStateValue(other.getStateValue());
        }
        if (other.getMetadataVersion() != 0L) {
          setMetadataVersion(other.getMetadataVersion());
        }
        if (other.hasInitializedFrom()) {
          initializedFrom_ = other.initializedFrom_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private int state_ = 0;
      /**
       * .topology_protocol.EnabledDisabledState state = 1;
       * @return The enum numeric value on the wire for state.
       */
      @java.lang.Override public int getStateValue() {
        return state_;
      }
      /**
       * .topology_protocol.EnabledDisabledState state = 1;
       * @param value The enum numeric value on the wire for state to set.
       * @return This builder for chaining.
       */
      public Builder setStateValue(int value) {
        state_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.EnabledDisabledState state = 1;
       * @return The state.
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.EnabledDisabledState getState() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.EnabledDisabledState result = io.camunda.zeebe.dynamic.config.protocol.Topology.EnabledDisabledState.forNumber(state_);
        return result == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.EnabledDisabledState.UNRECOGNIZED : result;
      }
      /**
       * .topology_protocol.EnabledDisabledState state = 1;
       * @param value The state to set.
       * @return This builder for chaining.
       */
      public Builder setState(io.camunda.zeebe.dynamic.config.protocol.Topology.EnabledDisabledState value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        state_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.EnabledDisabledState state = 1;
       * @return This builder for chaining.
       */
      public Builder clearState() {
        bitField0_ = (bitField0_ & ~0x00000001);
        state_ = 0;
        onChanged();
        return this;
      }

      private long metadataVersion_ ;
      /**
       * int64 metadataVersion = 2;
       * @return The metadataVersion.
       */
      @java.lang.Override
      public long getMetadataVersion() {
        return metadataVersion_;
      }
      /**
       * int64 metadataVersion = 2;
       * @param value The metadataVersion to set.
       * @return This builder for chaining.
       */
      public Builder setMetadataVersion(long value) {

        metadataVersion_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * int64 metadataVersion = 2;
       * @return This builder for chaining.
       */
      public Builder clearMetadataVersion() {
        bitField0_ = (bitField0_ & ~0x00000002);
        metadataVersion_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object initializedFrom_ = "";
      /**
       * optional string initializedFrom = 3;
       * @return Whether the initializedFrom field is set.
       */
      public boolean hasInitializedFrom() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional string initializedFrom = 3;
       * @return The initializedFrom.
       */
      public java.lang.String getInitializedFrom() {
        java.lang.Object ref = initializedFrom_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          initializedFrom_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string initializedFrom = 3;
       * @return The bytes for initializedFrom.
       */
      public com.google.protobuf.ByteString
          getInitializedFromBytes() {
        java.lang.Object ref = initializedFrom_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          initializedFrom_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string initializedFrom = 3;
       * @param value The initializedFrom to set.
       * @return This builder for chaining.
       */
      public Builder setInitializedFrom(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        initializedFrom_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * optional string initializedFrom = 3;
       * @return This builder for chaining.
       */
      public Builder clearInitializedFrom() {
        initializedFrom_ = getDefaultInstance().getInitializedFrom();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * optional string initializedFrom = 3;
       * @param value The bytes for initializedFrom to set.
       * @return This builder for chaining.
       */
      public Builder setInitializedFromBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        initializedFrom_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.ExporterState)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.ExporterState)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.ExporterState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ClusterChangePlanOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.ClusterChangePlan)
      com.google.protobuf.MessageOrBuilder {

    /**
     * int64 id = 1;
     * @return The id.
     */
    long getId();

    /**
     * int32 version = 2;
     * @return The version.
     */
    int getVersion();

    /**
     * .topology_protocol.ChangeStatus status = 3;
     * @return The enum numeric value on the wire for status.
     */
    int getStatusValue();
    /**
     * .topology_protocol.ChangeStatus status = 3;
     * @return The status.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus getStatus();

    /**
     * .google.protobuf.Timestamp startedAt = 4;
     * @return Whether the startedAt field is set.
     */
    boolean hasStartedAt();
    /**
     * .google.protobuf.Timestamp startedAt = 4;
     * @return The startedAt.
     */
    com.google.protobuf.Timestamp getStartedAt();
    /**
     * .google.protobuf.Timestamp startedAt = 4;
     */
    com.google.protobuf.TimestampOrBuilder getStartedAtOrBuilder();

    /**
     * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
     */
    java.util.List 
        getCompletedOperationsList();
    /**
     * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation getCompletedOperations(int index);
    /**
     * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
     */
    int getCompletedOperationsCount();
    /**
     * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
     */
    java.util.List 
        getCompletedOperationsOrBuilderList();
    /**
     * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperationOrBuilder getCompletedOperationsOrBuilder(
        int index);

    /**
     * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
     */
    java.util.List 
        getPendingOperationsList();
    /**
     * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation getPendingOperations(int index);
    /**
     * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
     */
    int getPendingOperationsCount();
    /**
     * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
     */
    java.util.List 
        getPendingOperationsOrBuilderList();
    /**
     * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperationOrBuilder getPendingOperationsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code topology_protocol.ClusterChangePlan}
   */
  public static final class ClusterChangePlan extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.ClusterChangePlan)
      ClusterChangePlanOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ClusterChangePlan.newBuilder() to construct.
    private ClusterChangePlan(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private ClusterChangePlan() {
      status_ = 0;
      completedOperations_ = java.util.Collections.emptyList();
      pendingOperations_ = java.util.Collections.emptyList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ClusterChangePlan_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ClusterChangePlan_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan.class, io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan.Builder.class);
    }

    private int bitField0_;
    public static final int ID_FIELD_NUMBER = 1;
    private long id_ = 0L;
    /**
     * int64 id = 1;
     * @return The id.
     */
    @java.lang.Override
    public long getId() {
      return id_;
    }

    public static final int VERSION_FIELD_NUMBER = 2;
    private int version_ = 0;
    /**
     * int32 version = 2;
     * @return The version.
     */
    @java.lang.Override
    public int getVersion() {
      return version_;
    }

    public static final int STATUS_FIELD_NUMBER = 3;
    private int status_ = 0;
    /**
     * .topology_protocol.ChangeStatus status = 3;
     * @return The enum numeric value on the wire for status.
     */
    @java.lang.Override public int getStatusValue() {
      return status_;
    }
    /**
     * .topology_protocol.ChangeStatus status = 3;
     * @return The status.
     */
    @java.lang.Override public io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus getStatus() {
      io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus result = io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus.forNumber(status_);
      return result == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus.UNRECOGNIZED : result;
    }

    public static final int STARTEDAT_FIELD_NUMBER = 4;
    private com.google.protobuf.Timestamp startedAt_;
    /**
     * .google.protobuf.Timestamp startedAt = 4;
     * @return Whether the startedAt field is set.
     */
    @java.lang.Override
    public boolean hasStartedAt() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * .google.protobuf.Timestamp startedAt = 4;
     * @return The startedAt.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getStartedAt() {
      return startedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : startedAt_;
    }
    /**
     * .google.protobuf.Timestamp startedAt = 4;
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getStartedAtOrBuilder() {
      return startedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : startedAt_;
    }

    public static final int COMPLETEDOPERATIONS_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private java.util.List completedOperations_;
    /**
     * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
     */
    @java.lang.Override
    public java.util.List getCompletedOperationsList() {
      return completedOperations_;
    }
    /**
     * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
     */
    @java.lang.Override
    public java.util.List 
        getCompletedOperationsOrBuilderList() {
      return completedOperations_;
    }
    /**
     * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
     */
    @java.lang.Override
    public int getCompletedOperationsCount() {
      return completedOperations_.size();
    }
    /**
     * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation getCompletedOperations(int index) {
      return completedOperations_.get(index);
    }
    /**
     * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperationOrBuilder getCompletedOperationsOrBuilder(
        int index) {
      return completedOperations_.get(index);
    }

    public static final int PENDINGOPERATIONS_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private java.util.List pendingOperations_;
    /**
     * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
     */
    @java.lang.Override
    public java.util.List getPendingOperationsList() {
      return pendingOperations_;
    }
    /**
     * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
     */
    @java.lang.Override
    public java.util.List 
        getPendingOperationsOrBuilderList() {
      return pendingOperations_;
    }
    /**
     * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
     */
    @java.lang.Override
    public int getPendingOperationsCount() {
      return pendingOperations_.size();
    }
    /**
     * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation getPendingOperations(int index) {
      return pendingOperations_.get(index);
    }
    /**
     * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperationOrBuilder getPendingOperationsOrBuilder(
        int index) {
      return pendingOperations_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (id_ != 0L) {
        output.writeInt64(1, id_);
      }
      if (version_ != 0) {
        output.writeInt32(2, version_);
      }
      if (status_ != io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus.CHANGE_STATUS_UNKNOWN.getNumber()) {
        output.writeEnum(3, status_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(4, getStartedAt());
      }
      for (int i = 0; i < completedOperations_.size(); i++) {
        output.writeMessage(5, completedOperations_.get(i));
      }
      for (int i = 0; i < pendingOperations_.size(); i++) {
        output.writeMessage(6, pendingOperations_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (id_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, id_);
      }
      if (version_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, version_);
      }
      if (status_ != io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus.CHANGE_STATUS_UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, status_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getStartedAt());
      }
      for (int i = 0; i < completedOperations_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, completedOperations_.get(i));
      }
      for (int i = 0; i < pendingOperations_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, pendingOperations_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan other = (io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan) obj;

      if (getId()
          != other.getId()) return false;
      if (getVersion()
          != other.getVersion()) return false;
      if (status_ != other.status_) return false;
      if (hasStartedAt() != other.hasStartedAt()) return false;
      if (hasStartedAt()) {
        if (!getStartedAt()
            .equals(other.getStartedAt())) return false;
      }
      if (!getCompletedOperationsList()
          .equals(other.getCompletedOperationsList())) return false;
      if (!getPendingOperationsList()
          .equals(other.getPendingOperationsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getId());
      hash = (37 * hash) + VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getVersion();
      hash = (37 * hash) + STATUS_FIELD_NUMBER;
      hash = (53 * hash) + status_;
      if (hasStartedAt()) {
        hash = (37 * hash) + STARTEDAT_FIELD_NUMBER;
        hash = (53 * hash) + getStartedAt().hashCode();
      }
      if (getCompletedOperationsCount() > 0) {
        hash = (37 * hash) + COMPLETEDOPERATIONS_FIELD_NUMBER;
        hash = (53 * hash) + getCompletedOperationsList().hashCode();
      }
      if (getPendingOperationsCount() > 0) {
        hash = (37 * hash) + PENDINGOPERATIONS_FIELD_NUMBER;
        hash = (53 * hash) + getPendingOperationsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.ClusterChangePlan}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.ClusterChangePlan)
        io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlanOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ClusterChangePlan_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ClusterChangePlan_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan.class, io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getStartedAtFieldBuilder();
          getCompletedOperationsFieldBuilder();
          getPendingOperationsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        id_ = 0L;
        version_ = 0;
        status_ = 0;
        startedAt_ = null;
        if (startedAtBuilder_ != null) {
          startedAtBuilder_.dispose();
          startedAtBuilder_ = null;
        }
        if (completedOperationsBuilder_ == null) {
          completedOperations_ = java.util.Collections.emptyList();
        } else {
          completedOperations_ = null;
          completedOperationsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        if (pendingOperationsBuilder_ == null) {
          pendingOperations_ = java.util.Collections.emptyList();
        } else {
          pendingOperations_ = null;
          pendingOperationsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_ClusterChangePlan_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan result = new io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan result) {
        if (completedOperationsBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0)) {
            completedOperations_ = java.util.Collections.unmodifiableList(completedOperations_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.completedOperations_ = completedOperations_;
        } else {
          result.completedOperations_ = completedOperationsBuilder_.build();
        }
        if (pendingOperationsBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0)) {
            pendingOperations_ = java.util.Collections.unmodifiableList(pendingOperations_);
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.pendingOperations_ = pendingOperations_;
        } else {
          result.pendingOperations_ = pendingOperationsBuilder_.build();
        }
      }

      private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.id_ = id_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.version_ = version_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.status_ = status_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.startedAt_ = startedAtBuilder_ == null
              ? startedAt_
              : startedAtBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan.getDefaultInstance()) return this;
        if (other.getId() != 0L) {
          setId(other.getId());
        }
        if (other.getVersion() != 0) {
          setVersion(other.getVersion());
        }
        if (other.status_ != 0) {
          setStatusValue(other.getStatusValue());
        }
        if (other.hasStartedAt()) {
          mergeStartedAt(other.getStartedAt());
        }
        if (completedOperationsBuilder_ == null) {
          if (!other.completedOperations_.isEmpty()) {
            if (completedOperations_.isEmpty()) {
              completedOperations_ = other.completedOperations_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureCompletedOperationsIsMutable();
              completedOperations_.addAll(other.completedOperations_);
            }
            onChanged();
          }
        } else {
          if (!other.completedOperations_.isEmpty()) {
            if (completedOperationsBuilder_.isEmpty()) {
              completedOperationsBuilder_.dispose();
              completedOperationsBuilder_ = null;
              completedOperations_ = other.completedOperations_;
              bitField0_ = (bitField0_ & ~0x00000010);
              completedOperationsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getCompletedOperationsFieldBuilder() : null;
            } else {
              completedOperationsBuilder_.addAllMessages(other.completedOperations_);
            }
          }
        }
        if (pendingOperationsBuilder_ == null) {
          if (!other.pendingOperations_.isEmpty()) {
            if (pendingOperations_.isEmpty()) {
              pendingOperations_ = other.pendingOperations_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensurePendingOperationsIsMutable();
              pendingOperations_.addAll(other.pendingOperations_);
            }
            onChanged();
          }
        } else {
          if (!other.pendingOperations_.isEmpty()) {
            if (pendingOperationsBuilder_.isEmpty()) {
              pendingOperationsBuilder_.dispose();
              pendingOperationsBuilder_ = null;
              pendingOperations_ = other.pendingOperations_;
              bitField0_ = (bitField0_ & ~0x00000020);
              pendingOperationsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getPendingOperationsFieldBuilder() : null;
            } else {
              pendingOperationsBuilder_.addAllMessages(other.pendingOperations_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                id_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                version_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                status_ = input.readEnum();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 34: {
                input.readMessage(
                    getStartedAtFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation m =
                    input.readMessage(
                        io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation.parser(),
                        extensionRegistry);
                if (completedOperationsBuilder_ == null) {
                  ensureCompletedOperationsIsMutable();
                  completedOperations_.add(m);
                } else {
                  completedOperationsBuilder_.addMessage(m);
                }
                break;
              } // case 42
              case 50: {
                io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation m =
                    input.readMessage(
                        io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.parser(),
                        extensionRegistry);
                if (pendingOperationsBuilder_ == null) {
                  ensurePendingOperationsIsMutable();
                  pendingOperations_.add(m);
                } else {
                  pendingOperationsBuilder_.addMessage(m);
                }
                break;
              } // case 50
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long id_ ;
      /**
       * int64 id = 1;
       * @return The id.
       */
      @java.lang.Override
      public long getId() {
        return id_;
      }
      /**
       * int64 id = 1;
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(long value) {

        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * int64 id = 1;
       * @return This builder for chaining.
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0L;
        onChanged();
        return this;
      }

      private int version_ ;
      /**
       * int32 version = 2;
       * @return The version.
       */
      @java.lang.Override
      public int getVersion() {
        return version_;
      }
      /**
       * int32 version = 2;
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(int value) {

        version_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * int32 version = 2;
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000002);
        version_ = 0;
        onChanged();
        return this;
      }

      private int status_ = 0;
      /**
       * .topology_protocol.ChangeStatus status = 3;
       * @return The enum numeric value on the wire for status.
       */
      @java.lang.Override public int getStatusValue() {
        return status_;
      }
      /**
       * .topology_protocol.ChangeStatus status = 3;
       * @param value The enum numeric value on the wire for status to set.
       * @return This builder for chaining.
       */
      public Builder setStatusValue(int value) {
        status_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.ChangeStatus status = 3;
       * @return The status.
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus getStatus() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus result = io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus.forNumber(status_);
        return result == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus.UNRECOGNIZED : result;
      }
      /**
       * .topology_protocol.ChangeStatus status = 3;
       * @param value The status to set.
       * @return This builder for chaining.
       */
      public Builder setStatus(io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        status_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.ChangeStatus status = 3;
       * @return This builder for chaining.
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000004);
        status_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp startedAt_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> startedAtBuilder_;
      /**
       * .google.protobuf.Timestamp startedAt = 4;
       * @return Whether the startedAt field is set.
       */
      public boolean hasStartedAt() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * .google.protobuf.Timestamp startedAt = 4;
       * @return The startedAt.
       */
      public com.google.protobuf.Timestamp getStartedAt() {
        if (startedAtBuilder_ == null) {
          return startedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : startedAt_;
        } else {
          return startedAtBuilder_.getMessage();
        }
      }
      /**
       * .google.protobuf.Timestamp startedAt = 4;
       */
      public Builder setStartedAt(com.google.protobuf.Timestamp value) {
        if (startedAtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          startedAt_ = value;
        } else {
          startedAtBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * .google.protobuf.Timestamp startedAt = 4;
       */
      public Builder setStartedAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (startedAtBuilder_ == null) {
          startedAt_ = builderForValue.build();
        } else {
          startedAtBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * .google.protobuf.Timestamp startedAt = 4;
       */
      public Builder mergeStartedAt(com.google.protobuf.Timestamp value) {
        if (startedAtBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            startedAt_ != null &&
            startedAt_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getStartedAtBuilder().mergeFrom(value);
          } else {
            startedAt_ = value;
          }
        } else {
          startedAtBuilder_.mergeFrom(value);
        }
        if (startedAt_ != null) {
          bitField0_ |= 0x00000008;
          onChanged();
        }
        return this;
      }
      /**
       * .google.protobuf.Timestamp startedAt = 4;
       */
      public Builder clearStartedAt() {
        bitField0_ = (bitField0_ & ~0x00000008);
        startedAt_ = null;
        if (startedAtBuilder_ != null) {
          startedAtBuilder_.dispose();
          startedAtBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .google.protobuf.Timestamp startedAt = 4;
       */
      public com.google.protobuf.Timestamp.Builder getStartedAtBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getStartedAtFieldBuilder().getBuilder();
      }
      /**
       * .google.protobuf.Timestamp startedAt = 4;
       */
      public com.google.protobuf.TimestampOrBuilder getStartedAtOrBuilder() {
        if (startedAtBuilder_ != null) {
          return startedAtBuilder_.getMessageOrBuilder();
        } else {
          return startedAt_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : startedAt_;
        }
      }
      /**
       * .google.protobuf.Timestamp startedAt = 4;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          getStartedAtFieldBuilder() {
        if (startedAtBuilder_ == null) {
          startedAtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getStartedAt(),
                  getParentForChildren(),
                  isClean());
          startedAt_ = null;
        }
        return startedAtBuilder_;
      }

      private java.util.List completedOperations_ =
        java.util.Collections.emptyList();
      private void ensureCompletedOperationsIsMutable() {
        if (!((bitField0_ & 0x00000010) != 0)) {
          completedOperations_ = new java.util.ArrayList(completedOperations_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperationOrBuilder> completedOperationsBuilder_;

      /**
       * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
       */
      public java.util.List getCompletedOperationsList() {
        if (completedOperationsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(completedOperations_);
        } else {
          return completedOperationsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
       */
      public int getCompletedOperationsCount() {
        if (completedOperationsBuilder_ == null) {
          return completedOperations_.size();
        } else {
          return completedOperationsBuilder_.getCount();
        }
      }
      /**
       * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation getCompletedOperations(int index) {
        if (completedOperationsBuilder_ == null) {
          return completedOperations_.get(index);
        } else {
          return completedOperationsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
       */
      public Builder setCompletedOperations(
          int index, io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation value) {
        if (completedOperationsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCompletedOperationsIsMutable();
          completedOperations_.set(index, value);
          onChanged();
        } else {
          completedOperationsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
       */
      public Builder setCompletedOperations(
          int index, io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation.Builder builderForValue) {
        if (completedOperationsBuilder_ == null) {
          ensureCompletedOperationsIsMutable();
          completedOperations_.set(index, builderForValue.build());
          onChanged();
        } else {
          completedOperationsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
       */
      public Builder addCompletedOperations(io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation value) {
        if (completedOperationsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCompletedOperationsIsMutable();
          completedOperations_.add(value);
          onChanged();
        } else {
          completedOperationsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
       */
      public Builder addCompletedOperations(
          int index, io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation value) {
        if (completedOperationsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCompletedOperationsIsMutable();
          completedOperations_.add(index, value);
          onChanged();
        } else {
          completedOperationsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
       */
      public Builder addCompletedOperations(
          io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation.Builder builderForValue) {
        if (completedOperationsBuilder_ == null) {
          ensureCompletedOperationsIsMutable();
          completedOperations_.add(builderForValue.build());
          onChanged();
        } else {
          completedOperationsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
       */
      public Builder addCompletedOperations(
          int index, io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation.Builder builderForValue) {
        if (completedOperationsBuilder_ == null) {
          ensureCompletedOperationsIsMutable();
          completedOperations_.add(index, builderForValue.build());
          onChanged();
        } else {
          completedOperationsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
       */
      public Builder addAllCompletedOperations(
          java.lang.Iterable values) {
        if (completedOperationsBuilder_ == null) {
          ensureCompletedOperationsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, completedOperations_);
          onChanged();
        } else {
          completedOperationsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
       */
      public Builder clearCompletedOperations() {
        if (completedOperationsBuilder_ == null) {
          completedOperations_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          completedOperationsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
       */
      public Builder removeCompletedOperations(int index) {
        if (completedOperationsBuilder_ == null) {
          ensureCompletedOperationsIsMutable();
          completedOperations_.remove(index);
          onChanged();
        } else {
          completedOperationsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation.Builder getCompletedOperationsBuilder(
          int index) {
        return getCompletedOperationsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperationOrBuilder getCompletedOperationsOrBuilder(
          int index) {
        if (completedOperationsBuilder_ == null) {
          return completedOperations_.get(index);  } else {
          return completedOperationsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
       */
      public java.util.List 
           getCompletedOperationsOrBuilderList() {
        if (completedOperationsBuilder_ != null) {
          return completedOperationsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(completedOperations_);
        }
      }
      /**
       * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation.Builder addCompletedOperationsBuilder() {
        return getCompletedOperationsFieldBuilder().addBuilder(
            io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation.getDefaultInstance());
      }
      /**
       * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation.Builder addCompletedOperationsBuilder(
          int index) {
        return getCompletedOperationsFieldBuilder().addBuilder(
            index, io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation.getDefaultInstance());
      }
      /**
       * repeated .topology_protocol.CompletedTopologyChangeOperation completedOperations = 5;
       */
      public java.util.List 
           getCompletedOperationsBuilderList() {
        return getCompletedOperationsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperationOrBuilder> 
          getCompletedOperationsFieldBuilder() {
        if (completedOperationsBuilder_ == null) {
          completedOperationsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperationOrBuilder>(
                  completedOperations_,
                  ((bitField0_ & 0x00000010) != 0),
                  getParentForChildren(),
                  isClean());
          completedOperations_ = null;
        }
        return completedOperationsBuilder_;
      }

      private java.util.List pendingOperations_ =
        java.util.Collections.emptyList();
      private void ensurePendingOperationsIsMutable() {
        if (!((bitField0_ & 0x00000020) != 0)) {
          pendingOperations_ = new java.util.ArrayList(pendingOperations_);
          bitField0_ |= 0x00000020;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperationOrBuilder> pendingOperationsBuilder_;

      /**
       * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
       */
      public java.util.List getPendingOperationsList() {
        if (pendingOperationsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(pendingOperations_);
        } else {
          return pendingOperationsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
       */
      public int getPendingOperationsCount() {
        if (pendingOperationsBuilder_ == null) {
          return pendingOperations_.size();
        } else {
          return pendingOperationsBuilder_.getCount();
        }
      }
      /**
       * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation getPendingOperations(int index) {
        if (pendingOperationsBuilder_ == null) {
          return pendingOperations_.get(index);
        } else {
          return pendingOperationsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
       */
      public Builder setPendingOperations(
          int index, io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation value) {
        if (pendingOperationsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePendingOperationsIsMutable();
          pendingOperations_.set(index, value);
          onChanged();
        } else {
          pendingOperationsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
       */
      public Builder setPendingOperations(
          int index, io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.Builder builderForValue) {
        if (pendingOperationsBuilder_ == null) {
          ensurePendingOperationsIsMutable();
          pendingOperations_.set(index, builderForValue.build());
          onChanged();
        } else {
          pendingOperationsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
       */
      public Builder addPendingOperations(io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation value) {
        if (pendingOperationsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePendingOperationsIsMutable();
          pendingOperations_.add(value);
          onChanged();
        } else {
          pendingOperationsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
       */
      public Builder addPendingOperations(
          int index, io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation value) {
        if (pendingOperationsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePendingOperationsIsMutable();
          pendingOperations_.add(index, value);
          onChanged();
        } else {
          pendingOperationsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
       */
      public Builder addPendingOperations(
          io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.Builder builderForValue) {
        if (pendingOperationsBuilder_ == null) {
          ensurePendingOperationsIsMutable();
          pendingOperations_.add(builderForValue.build());
          onChanged();
        } else {
          pendingOperationsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
       */
      public Builder addPendingOperations(
          int index, io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.Builder builderForValue) {
        if (pendingOperationsBuilder_ == null) {
          ensurePendingOperationsIsMutable();
          pendingOperations_.add(index, builderForValue.build());
          onChanged();
        } else {
          pendingOperationsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
       */
      public Builder addAllPendingOperations(
          java.lang.Iterable values) {
        if (pendingOperationsBuilder_ == null) {
          ensurePendingOperationsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, pendingOperations_);
          onChanged();
        } else {
          pendingOperationsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
       */
      public Builder clearPendingOperations() {
        if (pendingOperationsBuilder_ == null) {
          pendingOperations_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          pendingOperationsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
       */
      public Builder removePendingOperations(int index) {
        if (pendingOperationsBuilder_ == null) {
          ensurePendingOperationsIsMutable();
          pendingOperations_.remove(index);
          onChanged();
        } else {
          pendingOperationsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.Builder getPendingOperationsBuilder(
          int index) {
        return getPendingOperationsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperationOrBuilder getPendingOperationsOrBuilder(
          int index) {
        if (pendingOperationsBuilder_ == null) {
          return pendingOperations_.get(index);  } else {
          return pendingOperationsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
       */
      public java.util.List 
           getPendingOperationsOrBuilderList() {
        if (pendingOperationsBuilder_ != null) {
          return pendingOperationsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(pendingOperations_);
        }
      }
      /**
       * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.Builder addPendingOperationsBuilder() {
        return getPendingOperationsFieldBuilder().addBuilder(
            io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.getDefaultInstance());
      }
      /**
       * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.Builder addPendingOperationsBuilder(
          int index) {
        return getPendingOperationsFieldBuilder().addBuilder(
            index, io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.getDefaultInstance());
      }
      /**
       * repeated .topology_protocol.TopologyChangeOperation pendingOperations = 6;
       */
      public java.util.List 
           getPendingOperationsBuilderList() {
        return getPendingOperationsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperationOrBuilder> 
          getPendingOperationsFieldBuilder() {
        if (pendingOperationsBuilder_ == null) {
          pendingOperationsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperationOrBuilder>(
                  pendingOperations_,
                  ((bitField0_ & 0x00000020) != 0),
                  getParentForChildren(),
                  isClean());
          pendingOperations_ = null;
        }
        return pendingOperationsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.ClusterChangePlan)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.ClusterChangePlan)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.ClusterChangePlan getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CompletedChangeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.CompletedChange)
      com.google.protobuf.MessageOrBuilder {

    /**
     * int64 id = 1;
     * @return The id.
     */
    long getId();

    /**
     * .topology_protocol.ChangeStatus status = 2;
     * @return The enum numeric value on the wire for status.
     */
    int getStatusValue();
    /**
     * .topology_protocol.ChangeStatus status = 2;
     * @return The status.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus getStatus();

    /**
     * .google.protobuf.Timestamp startedAt = 3;
     * @return Whether the startedAt field is set.
     */
    boolean hasStartedAt();
    /**
     * .google.protobuf.Timestamp startedAt = 3;
     * @return The startedAt.
     */
    com.google.protobuf.Timestamp getStartedAt();
    /**
     * .google.protobuf.Timestamp startedAt = 3;
     */
    com.google.protobuf.TimestampOrBuilder getStartedAtOrBuilder();

    /**
     * .google.protobuf.Timestamp completedAt = 4;
     * @return Whether the completedAt field is set.
     */
    boolean hasCompletedAt();
    /**
     * .google.protobuf.Timestamp completedAt = 4;
     * @return The completedAt.
     */
    com.google.protobuf.Timestamp getCompletedAt();
    /**
     * .google.protobuf.Timestamp completedAt = 4;
     */
    com.google.protobuf.TimestampOrBuilder getCompletedAtOrBuilder();
  }
  /**
   * Protobuf type {@code topology_protocol.CompletedChange}
   */
  public static final class CompletedChange extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.CompletedChange)
      CompletedChangeOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CompletedChange.newBuilder() to construct.
    private CompletedChange(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private CompletedChange() {
      status_ = 0;
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_CompletedChange_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_CompletedChange_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange.class, io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange.Builder.class);
    }

    private int bitField0_;
    public static final int ID_FIELD_NUMBER = 1;
    private long id_ = 0L;
    /**
     * int64 id = 1;
     * @return The id.
     */
    @java.lang.Override
    public long getId() {
      return id_;
    }

    public static final int STATUS_FIELD_NUMBER = 2;
    private int status_ = 0;
    /**
     * .topology_protocol.ChangeStatus status = 2;
     * @return The enum numeric value on the wire for status.
     */
    @java.lang.Override public int getStatusValue() {
      return status_;
    }
    /**
     * .topology_protocol.ChangeStatus status = 2;
     * @return The status.
     */
    @java.lang.Override public io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus getStatus() {
      io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus result = io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus.forNumber(status_);
      return result == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus.UNRECOGNIZED : result;
    }

    public static final int STARTEDAT_FIELD_NUMBER = 3;
    private com.google.protobuf.Timestamp startedAt_;
    /**
     * .google.protobuf.Timestamp startedAt = 3;
     * @return Whether the startedAt field is set.
     */
    @java.lang.Override
    public boolean hasStartedAt() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * .google.protobuf.Timestamp startedAt = 3;
     * @return The startedAt.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getStartedAt() {
      return startedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : startedAt_;
    }
    /**
     * .google.protobuf.Timestamp startedAt = 3;
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getStartedAtOrBuilder() {
      return startedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : startedAt_;
    }

    public static final int COMPLETEDAT_FIELD_NUMBER = 4;
    private com.google.protobuf.Timestamp completedAt_;
    /**
     * .google.protobuf.Timestamp completedAt = 4;
     * @return Whether the completedAt field is set.
     */
    @java.lang.Override
    public boolean hasCompletedAt() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * .google.protobuf.Timestamp completedAt = 4;
     * @return The completedAt.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getCompletedAt() {
      return completedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : completedAt_;
    }
    /**
     * .google.protobuf.Timestamp completedAt = 4;
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getCompletedAtOrBuilder() {
      return completedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : completedAt_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (id_ != 0L) {
        output.writeInt64(1, id_);
      }
      if (status_ != io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus.CHANGE_STATUS_UNKNOWN.getNumber()) {
        output.writeEnum(2, status_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(3, getStartedAt());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(4, getCompletedAt());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (id_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, id_);
      }
      if (status_ != io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus.CHANGE_STATUS_UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, status_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getStartedAt());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getCompletedAt());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange other = (io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange) obj;

      if (getId()
          != other.getId()) return false;
      if (status_ != other.status_) return false;
      if (hasStartedAt() != other.hasStartedAt()) return false;
      if (hasStartedAt()) {
        if (!getStartedAt()
            .equals(other.getStartedAt())) return false;
      }
      if (hasCompletedAt() != other.hasCompletedAt()) return false;
      if (hasCompletedAt()) {
        if (!getCompletedAt()
            .equals(other.getCompletedAt())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getId());
      hash = (37 * hash) + STATUS_FIELD_NUMBER;
      hash = (53 * hash) + status_;
      if (hasStartedAt()) {
        hash = (37 * hash) + STARTEDAT_FIELD_NUMBER;
        hash = (53 * hash) + getStartedAt().hashCode();
      }
      if (hasCompletedAt()) {
        hash = (37 * hash) + COMPLETEDAT_FIELD_NUMBER;
        hash = (53 * hash) + getCompletedAt().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.CompletedChange}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.CompletedChange)
        io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChangeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_CompletedChange_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_CompletedChange_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange.class, io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getStartedAtFieldBuilder();
          getCompletedAtFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        id_ = 0L;
        status_ = 0;
        startedAt_ = null;
        if (startedAtBuilder_ != null) {
          startedAtBuilder_.dispose();
          startedAtBuilder_ = null;
        }
        completedAt_ = null;
        if (completedAtBuilder_ != null) {
          completedAtBuilder_.dispose();
          completedAtBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_CompletedChange_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange result = new io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.id_ = id_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.status_ = status_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.startedAt_ = startedAtBuilder_ == null
              ? startedAt_
              : startedAtBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.completedAt_ = completedAtBuilder_ == null
              ? completedAt_
              : completedAtBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange.getDefaultInstance()) return this;
        if (other.getId() != 0L) {
          setId(other.getId());
        }
        if (other.status_ != 0) {
          setStatusValue(other.getStatusValue());
        }
        if (other.hasStartedAt()) {
          mergeStartedAt(other.getStartedAt());
        }
        if (other.hasCompletedAt()) {
          mergeCompletedAt(other.getCompletedAt());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private long id_ ;
      /**
       * int64 id = 1;
       * @return The id.
       */
      @java.lang.Override
      public long getId() {
        return id_;
      }
      /**
       * int64 id = 1;
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(long value) {

        id_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * int64 id = 1;
       * @return This builder for chaining.
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        id_ = 0L;
        onChanged();
        return this;
      }

      private int status_ = 0;
      /**
       * .topology_protocol.ChangeStatus status = 2;
       * @return The enum numeric value on the wire for status.
       */
      @java.lang.Override public int getStatusValue() {
        return status_;
      }
      /**
       * .topology_protocol.ChangeStatus status = 2;
       * @param value The enum numeric value on the wire for status to set.
       * @return This builder for chaining.
       */
      public Builder setStatusValue(int value) {
        status_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.ChangeStatus status = 2;
       * @return The status.
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus getStatus() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus result = io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus.forNumber(status_);
        return result == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus.UNRECOGNIZED : result;
      }
      /**
       * .topology_protocol.ChangeStatus status = 2;
       * @param value The status to set.
       * @return This builder for chaining.
       */
      public Builder setStatus(io.camunda.zeebe.dynamic.config.protocol.Topology.ChangeStatus value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        status_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.ChangeStatus status = 2;
       * @return This builder for chaining.
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000002);
        status_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp startedAt_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> startedAtBuilder_;
      /**
       * .google.protobuf.Timestamp startedAt = 3;
       * @return Whether the startedAt field is set.
       */
      public boolean hasStartedAt() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * .google.protobuf.Timestamp startedAt = 3;
       * @return The startedAt.
       */
      public com.google.protobuf.Timestamp getStartedAt() {
        if (startedAtBuilder_ == null) {
          return startedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : startedAt_;
        } else {
          return startedAtBuilder_.getMessage();
        }
      }
      /**
       * .google.protobuf.Timestamp startedAt = 3;
       */
      public Builder setStartedAt(com.google.protobuf.Timestamp value) {
        if (startedAtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          startedAt_ = value;
        } else {
          startedAtBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .google.protobuf.Timestamp startedAt = 3;
       */
      public Builder setStartedAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (startedAtBuilder_ == null) {
          startedAt_ = builderForValue.build();
        } else {
          startedAtBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * .google.protobuf.Timestamp startedAt = 3;
       */
      public Builder mergeStartedAt(com.google.protobuf.Timestamp value) {
        if (startedAtBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            startedAt_ != null &&
            startedAt_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getStartedAtBuilder().mergeFrom(value);
          } else {
            startedAt_ = value;
          }
        } else {
          startedAtBuilder_.mergeFrom(value);
        }
        if (startedAt_ != null) {
          bitField0_ |= 0x00000004;
          onChanged();
        }
        return this;
      }
      /**
       * .google.protobuf.Timestamp startedAt = 3;
       */
      public Builder clearStartedAt() {
        bitField0_ = (bitField0_ & ~0x00000004);
        startedAt_ = null;
        if (startedAtBuilder_ != null) {
          startedAtBuilder_.dispose();
          startedAtBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .google.protobuf.Timestamp startedAt = 3;
       */
      public com.google.protobuf.Timestamp.Builder getStartedAtBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getStartedAtFieldBuilder().getBuilder();
      }
      /**
       * .google.protobuf.Timestamp startedAt = 3;
       */
      public com.google.protobuf.TimestampOrBuilder getStartedAtOrBuilder() {
        if (startedAtBuilder_ != null) {
          return startedAtBuilder_.getMessageOrBuilder();
        } else {
          return startedAt_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : startedAt_;
        }
      }
      /**
       * .google.protobuf.Timestamp startedAt = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          getStartedAtFieldBuilder() {
        if (startedAtBuilder_ == null) {
          startedAtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getStartedAt(),
                  getParentForChildren(),
                  isClean());
          startedAt_ = null;
        }
        return startedAtBuilder_;
      }

      private com.google.protobuf.Timestamp completedAt_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> completedAtBuilder_;
      /**
       * .google.protobuf.Timestamp completedAt = 4;
       * @return Whether the completedAt field is set.
       */
      public boolean hasCompletedAt() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * .google.protobuf.Timestamp completedAt = 4;
       * @return The completedAt.
       */
      public com.google.protobuf.Timestamp getCompletedAt() {
        if (completedAtBuilder_ == null) {
          return completedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : completedAt_;
        } else {
          return completedAtBuilder_.getMessage();
        }
      }
      /**
       * .google.protobuf.Timestamp completedAt = 4;
       */
      public Builder setCompletedAt(com.google.protobuf.Timestamp value) {
        if (completedAtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          completedAt_ = value;
        } else {
          completedAtBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * .google.protobuf.Timestamp completedAt = 4;
       */
      public Builder setCompletedAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (completedAtBuilder_ == null) {
          completedAt_ = builderForValue.build();
        } else {
          completedAtBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * .google.protobuf.Timestamp completedAt = 4;
       */
      public Builder mergeCompletedAt(com.google.protobuf.Timestamp value) {
        if (completedAtBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            completedAt_ != null &&
            completedAt_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getCompletedAtBuilder().mergeFrom(value);
          } else {
            completedAt_ = value;
          }
        } else {
          completedAtBuilder_.mergeFrom(value);
        }
        if (completedAt_ != null) {
          bitField0_ |= 0x00000008;
          onChanged();
        }
        return this;
      }
      /**
       * .google.protobuf.Timestamp completedAt = 4;
       */
      public Builder clearCompletedAt() {
        bitField0_ = (bitField0_ & ~0x00000008);
        completedAt_ = null;
        if (completedAtBuilder_ != null) {
          completedAtBuilder_.dispose();
          completedAtBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .google.protobuf.Timestamp completedAt = 4;
       */
      public com.google.protobuf.Timestamp.Builder getCompletedAtBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getCompletedAtFieldBuilder().getBuilder();
      }
      /**
       * .google.protobuf.Timestamp completedAt = 4;
       */
      public com.google.protobuf.TimestampOrBuilder getCompletedAtOrBuilder() {
        if (completedAtBuilder_ != null) {
          return completedAtBuilder_.getMessageOrBuilder();
        } else {
          return completedAt_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : completedAt_;
        }
      }
      /**
       * .google.protobuf.Timestamp completedAt = 4;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          getCompletedAtFieldBuilder() {
        if (completedAtBuilder_ == null) {
          completedAtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getCompletedAt(),
                  getParentForChildren(),
                  isClean());
          completedAt_ = null;
        }
        return completedAtBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.CompletedChange)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.CompletedChange)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedChange getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TopologyChangeOperationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.TopologyChangeOperation)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string memberId = 1;
     * @return The memberId.
     */
    java.lang.String getMemberId();
    /**
     * string memberId = 1;
     * @return The bytes for memberId.
     */
    com.google.protobuf.ByteString
        getMemberIdBytes();

    /**
     * .topology_protocol.PartitionJoinOperation partitionJoin = 2;
     * @return Whether the partitionJoin field is set.
     */
    boolean hasPartitionJoin();
    /**
     * .topology_protocol.PartitionJoinOperation partitionJoin = 2;
     * @return The partitionJoin.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation getPartitionJoin();
    /**
     * .topology_protocol.PartitionJoinOperation partitionJoin = 2;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperationOrBuilder getPartitionJoinOrBuilder();

    /**
     * .topology_protocol.PartitionLeaveOperation partitionLeave = 3;
     * @return Whether the partitionLeave field is set.
     */
    boolean hasPartitionLeave();
    /**
     * .topology_protocol.PartitionLeaveOperation partitionLeave = 3;
     * @return The partitionLeave.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation getPartitionLeave();
    /**
     * .topology_protocol.PartitionLeaveOperation partitionLeave = 3;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperationOrBuilder getPartitionLeaveOrBuilder();

    /**
     * .topology_protocol.MemberJoinOperation memberJoin = 4;
     * @return Whether the memberJoin field is set.
     */
    boolean hasMemberJoin();
    /**
     * .topology_protocol.MemberJoinOperation memberJoin = 4;
     * @return The memberJoin.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation getMemberJoin();
    /**
     * .topology_protocol.MemberJoinOperation memberJoin = 4;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperationOrBuilder getMemberJoinOrBuilder();

    /**
     * .topology_protocol.MemberLeaveOperation memberLeave = 5;
     * @return Whether the memberLeave field is set.
     */
    boolean hasMemberLeave();
    /**
     * .topology_protocol.MemberLeaveOperation memberLeave = 5;
     * @return The memberLeave.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation getMemberLeave();
    /**
     * .topology_protocol.MemberLeaveOperation memberLeave = 5;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperationOrBuilder getMemberLeaveOrBuilder();

    /**
     * .topology_protocol.PartitionReconfigurePriorityOperation partitionReconfigurePriority = 6;
     * @return Whether the partitionReconfigurePriority field is set.
     */
    boolean hasPartitionReconfigurePriority();
    /**
     * .topology_protocol.PartitionReconfigurePriorityOperation partitionReconfigurePriority = 6;
     * @return The partitionReconfigurePriority.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation getPartitionReconfigurePriority();
    /**
     * .topology_protocol.PartitionReconfigurePriorityOperation partitionReconfigurePriority = 6;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperationOrBuilder getPartitionReconfigurePriorityOrBuilder();

    /**
     * .topology_protocol.PartitionForceReconfigureOperation partitionForceReconfigure = 7;
     * @return Whether the partitionForceReconfigure field is set.
     */
    boolean hasPartitionForceReconfigure();
    /**
     * .topology_protocol.PartitionForceReconfigureOperation partitionForceReconfigure = 7;
     * @return The partitionForceReconfigure.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation getPartitionForceReconfigure();
    /**
     * .topology_protocol.PartitionForceReconfigureOperation partitionForceReconfigure = 7;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperationOrBuilder getPartitionForceReconfigureOrBuilder();

    /**
     * .topology_protocol.MemberRemoveOperation memberRemove = 8;
     * @return Whether the memberRemove field is set.
     */
    boolean hasMemberRemove();
    /**
     * .topology_protocol.MemberRemoveOperation memberRemove = 8;
     * @return The memberRemove.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation getMemberRemove();
    /**
     * .topology_protocol.MemberRemoveOperation memberRemove = 8;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperationOrBuilder getMemberRemoveOrBuilder();

    /**
     * .topology_protocol.PartitionDisableExporterOperation partitionDisableExporter = 9;
     * @return Whether the partitionDisableExporter field is set.
     */
    boolean hasPartitionDisableExporter();
    /**
     * .topology_protocol.PartitionDisableExporterOperation partitionDisableExporter = 9;
     * @return The partitionDisableExporter.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation getPartitionDisableExporter();
    /**
     * .topology_protocol.PartitionDisableExporterOperation partitionDisableExporter = 9;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperationOrBuilder getPartitionDisableExporterOrBuilder();

    /**
     * .topology_protocol.PartitionEnableExporterOperation partitionEnableExporter = 10;
     * @return Whether the partitionEnableExporter field is set.
     */
    boolean hasPartitionEnableExporter();
    /**
     * .topology_protocol.PartitionEnableExporterOperation partitionEnableExporter = 10;
     * @return The partitionEnableExporter.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation getPartitionEnableExporter();
    /**
     * .topology_protocol.PartitionEnableExporterOperation partitionEnableExporter = 10;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperationOrBuilder getPartitionEnableExporterOrBuilder();

    /**
     * .topology_protocol.PartitionBootstrapOperation partitionBootstrap = 11;
     * @return Whether the partitionBootstrap field is set.
     */
    boolean hasPartitionBootstrap();
    /**
     * .topology_protocol.PartitionBootstrapOperation partitionBootstrap = 11;
     * @return The partitionBootstrap.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation getPartitionBootstrap();
    /**
     * .topology_protocol.PartitionBootstrapOperation partitionBootstrap = 11;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperationOrBuilder getPartitionBootstrapOrBuilder();

    io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.OperationCase getOperationCase();
  }
  /**
   * Protobuf type {@code topology_protocol.TopologyChangeOperation}
   */
  public static final class TopologyChangeOperation extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.TopologyChangeOperation)
      TopologyChangeOperationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TopologyChangeOperation.newBuilder() to construct.
    private TopologyChangeOperation(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private TopologyChangeOperation() {
      memberId_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_TopologyChangeOperation_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_TopologyChangeOperation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.Builder.class);
    }

    private int operationCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object operation_;
    public enum OperationCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      PARTITIONJOIN(2),
      PARTITIONLEAVE(3),
      MEMBERJOIN(4),
      MEMBERLEAVE(5),
      PARTITIONRECONFIGUREPRIORITY(6),
      PARTITIONFORCERECONFIGURE(7),
      MEMBERREMOVE(8),
      PARTITIONDISABLEEXPORTER(9),
      PARTITIONENABLEEXPORTER(10),
      PARTITIONBOOTSTRAP(11),
      OPERATION_NOT_SET(0);
      private final int value;
      private OperationCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static OperationCase valueOf(int value) {
        return forNumber(value);
      }

      public static OperationCase forNumber(int value) {
        switch (value) {
          case 2: return PARTITIONJOIN;
          case 3: return PARTITIONLEAVE;
          case 4: return MEMBERJOIN;
          case 5: return MEMBERLEAVE;
          case 6: return PARTITIONRECONFIGUREPRIORITY;
          case 7: return PARTITIONFORCERECONFIGURE;
          case 8: return MEMBERREMOVE;
          case 9: return PARTITIONDISABLEEXPORTER;
          case 10: return PARTITIONENABLEEXPORTER;
          case 11: return PARTITIONBOOTSTRAP;
          case 0: return OPERATION_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public OperationCase
    getOperationCase() {
      return OperationCase.forNumber(
          operationCase_);
    }

    public static final int MEMBERID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object memberId_ = "";
    /**
     * string memberId = 1;
     * @return The memberId.
     */
    @java.lang.Override
    public java.lang.String getMemberId() {
      java.lang.Object ref = memberId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        memberId_ = s;
        return s;
      }
    }
    /**
     * string memberId = 1;
     * @return The bytes for memberId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMemberIdBytes() {
      java.lang.Object ref = memberId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        memberId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PARTITIONJOIN_FIELD_NUMBER = 2;
    /**
     * .topology_protocol.PartitionJoinOperation partitionJoin = 2;
     * @return Whether the partitionJoin field is set.
     */
    @java.lang.Override
    public boolean hasPartitionJoin() {
      return operationCase_ == 2;
    }
    /**
     * .topology_protocol.PartitionJoinOperation partitionJoin = 2;
     * @return The partitionJoin.
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation getPartitionJoin() {
      if (operationCase_ == 2) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation) operation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation.getDefaultInstance();
    }
    /**
     * .topology_protocol.PartitionJoinOperation partitionJoin = 2;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperationOrBuilder getPartitionJoinOrBuilder() {
      if (operationCase_ == 2) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation) operation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation.getDefaultInstance();
    }

    public static final int PARTITIONLEAVE_FIELD_NUMBER = 3;
    /**
     * .topology_protocol.PartitionLeaveOperation partitionLeave = 3;
     * @return Whether the partitionLeave field is set.
     */
    @java.lang.Override
    public boolean hasPartitionLeave() {
      return operationCase_ == 3;
    }
    /**
     * .topology_protocol.PartitionLeaveOperation partitionLeave = 3;
     * @return The partitionLeave.
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation getPartitionLeave() {
      if (operationCase_ == 3) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation) operation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation.getDefaultInstance();
    }
    /**
     * .topology_protocol.PartitionLeaveOperation partitionLeave = 3;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperationOrBuilder getPartitionLeaveOrBuilder() {
      if (operationCase_ == 3) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation) operation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation.getDefaultInstance();
    }

    public static final int MEMBERJOIN_FIELD_NUMBER = 4;
    /**
     * .topology_protocol.MemberJoinOperation memberJoin = 4;
     * @return Whether the memberJoin field is set.
     */
    @java.lang.Override
    public boolean hasMemberJoin() {
      return operationCase_ == 4;
    }
    /**
     * .topology_protocol.MemberJoinOperation memberJoin = 4;
     * @return The memberJoin.
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation getMemberJoin() {
      if (operationCase_ == 4) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation) operation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation.getDefaultInstance();
    }
    /**
     * .topology_protocol.MemberJoinOperation memberJoin = 4;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperationOrBuilder getMemberJoinOrBuilder() {
      if (operationCase_ == 4) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation) operation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation.getDefaultInstance();
    }

    public static final int MEMBERLEAVE_FIELD_NUMBER = 5;
    /**
     * .topology_protocol.MemberLeaveOperation memberLeave = 5;
     * @return Whether the memberLeave field is set.
     */
    @java.lang.Override
    public boolean hasMemberLeave() {
      return operationCase_ == 5;
    }
    /**
     * .topology_protocol.MemberLeaveOperation memberLeave = 5;
     * @return The memberLeave.
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation getMemberLeave() {
      if (operationCase_ == 5) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation) operation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation.getDefaultInstance();
    }
    /**
     * .topology_protocol.MemberLeaveOperation memberLeave = 5;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperationOrBuilder getMemberLeaveOrBuilder() {
      if (operationCase_ == 5) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation) operation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation.getDefaultInstance();
    }

    public static final int PARTITIONRECONFIGUREPRIORITY_FIELD_NUMBER = 6;
    /**
     * .topology_protocol.PartitionReconfigurePriorityOperation partitionReconfigurePriority = 6;
     * @return Whether the partitionReconfigurePriority field is set.
     */
    @java.lang.Override
    public boolean hasPartitionReconfigurePriority() {
      return operationCase_ == 6;
    }
    /**
     * .topology_protocol.PartitionReconfigurePriorityOperation partitionReconfigurePriority = 6;
     * @return The partitionReconfigurePriority.
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation getPartitionReconfigurePriority() {
      if (operationCase_ == 6) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation) operation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation.getDefaultInstance();
    }
    /**
     * .topology_protocol.PartitionReconfigurePriorityOperation partitionReconfigurePriority = 6;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperationOrBuilder getPartitionReconfigurePriorityOrBuilder() {
      if (operationCase_ == 6) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation) operation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation.getDefaultInstance();
    }

    public static final int PARTITIONFORCERECONFIGURE_FIELD_NUMBER = 7;
    /**
     * .topology_protocol.PartitionForceReconfigureOperation partitionForceReconfigure = 7;
     * @return Whether the partitionForceReconfigure field is set.
     */
    @java.lang.Override
    public boolean hasPartitionForceReconfigure() {
      return operationCase_ == 7;
    }
    /**
     * .topology_protocol.PartitionForceReconfigureOperation partitionForceReconfigure = 7;
     * @return The partitionForceReconfigure.
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation getPartitionForceReconfigure() {
      if (operationCase_ == 7) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation) operation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation.getDefaultInstance();
    }
    /**
     * .topology_protocol.PartitionForceReconfigureOperation partitionForceReconfigure = 7;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperationOrBuilder getPartitionForceReconfigureOrBuilder() {
      if (operationCase_ == 7) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation) operation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation.getDefaultInstance();
    }

    public static final int MEMBERREMOVE_FIELD_NUMBER = 8;
    /**
     * .topology_protocol.MemberRemoveOperation memberRemove = 8;
     * @return Whether the memberRemove field is set.
     */
    @java.lang.Override
    public boolean hasMemberRemove() {
      return operationCase_ == 8;
    }
    /**
     * .topology_protocol.MemberRemoveOperation memberRemove = 8;
     * @return The memberRemove.
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation getMemberRemove() {
      if (operationCase_ == 8) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation) operation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation.getDefaultInstance();
    }
    /**
     * .topology_protocol.MemberRemoveOperation memberRemove = 8;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperationOrBuilder getMemberRemoveOrBuilder() {
      if (operationCase_ == 8) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation) operation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation.getDefaultInstance();
    }

    public static final int PARTITIONDISABLEEXPORTER_FIELD_NUMBER = 9;
    /**
     * .topology_protocol.PartitionDisableExporterOperation partitionDisableExporter = 9;
     * @return Whether the partitionDisableExporter field is set.
     */
    @java.lang.Override
    public boolean hasPartitionDisableExporter() {
      return operationCase_ == 9;
    }
    /**
     * .topology_protocol.PartitionDisableExporterOperation partitionDisableExporter = 9;
     * @return The partitionDisableExporter.
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation getPartitionDisableExporter() {
      if (operationCase_ == 9) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation) operation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation.getDefaultInstance();
    }
    /**
     * .topology_protocol.PartitionDisableExporterOperation partitionDisableExporter = 9;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperationOrBuilder getPartitionDisableExporterOrBuilder() {
      if (operationCase_ == 9) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation) operation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation.getDefaultInstance();
    }

    public static final int PARTITIONENABLEEXPORTER_FIELD_NUMBER = 10;
    /**
     * .topology_protocol.PartitionEnableExporterOperation partitionEnableExporter = 10;
     * @return Whether the partitionEnableExporter field is set.
     */
    @java.lang.Override
    public boolean hasPartitionEnableExporter() {
      return operationCase_ == 10;
    }
    /**
     * .topology_protocol.PartitionEnableExporterOperation partitionEnableExporter = 10;
     * @return The partitionEnableExporter.
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation getPartitionEnableExporter() {
      if (operationCase_ == 10) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation) operation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation.getDefaultInstance();
    }
    /**
     * .topology_protocol.PartitionEnableExporterOperation partitionEnableExporter = 10;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperationOrBuilder getPartitionEnableExporterOrBuilder() {
      if (operationCase_ == 10) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation) operation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation.getDefaultInstance();
    }

    public static final int PARTITIONBOOTSTRAP_FIELD_NUMBER = 11;
    /**
     * .topology_protocol.PartitionBootstrapOperation partitionBootstrap = 11;
     * @return Whether the partitionBootstrap field is set.
     */
    @java.lang.Override
    public boolean hasPartitionBootstrap() {
      return operationCase_ == 11;
    }
    /**
     * .topology_protocol.PartitionBootstrapOperation partitionBootstrap = 11;
     * @return The partitionBootstrap.
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation getPartitionBootstrap() {
      if (operationCase_ == 11) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation) operation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation.getDefaultInstance();
    }
    /**
     * .topology_protocol.PartitionBootstrapOperation partitionBootstrap = 11;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperationOrBuilder getPartitionBootstrapOrBuilder() {
      if (operationCase_ == 11) {
         return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation) operation_;
      }
      return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation.getDefaultInstance();
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(memberId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, memberId_);
      }
      if (operationCase_ == 2) {
        output.writeMessage(2, (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation) operation_);
      }
      if (operationCase_ == 3) {
        output.writeMessage(3, (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation) operation_);
      }
      if (operationCase_ == 4) {
        output.writeMessage(4, (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation) operation_);
      }
      if (operationCase_ == 5) {
        output.writeMessage(5, (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation) operation_);
      }
      if (operationCase_ == 6) {
        output.writeMessage(6, (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation) operation_);
      }
      if (operationCase_ == 7) {
        output.writeMessage(7, (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation) operation_);
      }
      if (operationCase_ == 8) {
        output.writeMessage(8, (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation) operation_);
      }
      if (operationCase_ == 9) {
        output.writeMessage(9, (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation) operation_);
      }
      if (operationCase_ == 10) {
        output.writeMessage(10, (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation) operation_);
      }
      if (operationCase_ == 11) {
        output.writeMessage(11, (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation) operation_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(memberId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, memberId_);
      }
      if (operationCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation) operation_);
      }
      if (operationCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation) operation_);
      }
      if (operationCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation) operation_);
      }
      if (operationCase_ == 5) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation) operation_);
      }
      if (operationCase_ == 6) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation) operation_);
      }
      if (operationCase_ == 7) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation) operation_);
      }
      if (operationCase_ == 8) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation) operation_);
      }
      if (operationCase_ == 9) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation) operation_);
      }
      if (operationCase_ == 10) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation) operation_);
      }
      if (operationCase_ == 11) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation) operation_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation other = (io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation) obj;

      if (!getMemberId()
          .equals(other.getMemberId())) return false;
      if (!getOperationCase().equals(other.getOperationCase())) return false;
      switch (operationCase_) {
        case 2:
          if (!getPartitionJoin()
              .equals(other.getPartitionJoin())) return false;
          break;
        case 3:
          if (!getPartitionLeave()
              .equals(other.getPartitionLeave())) return false;
          break;
        case 4:
          if (!getMemberJoin()
              .equals(other.getMemberJoin())) return false;
          break;
        case 5:
          if (!getMemberLeave()
              .equals(other.getMemberLeave())) return false;
          break;
        case 6:
          if (!getPartitionReconfigurePriority()
              .equals(other.getPartitionReconfigurePriority())) return false;
          break;
        case 7:
          if (!getPartitionForceReconfigure()
              .equals(other.getPartitionForceReconfigure())) return false;
          break;
        case 8:
          if (!getMemberRemove()
              .equals(other.getMemberRemove())) return false;
          break;
        case 9:
          if (!getPartitionDisableExporter()
              .equals(other.getPartitionDisableExporter())) return false;
          break;
        case 10:
          if (!getPartitionEnableExporter()
              .equals(other.getPartitionEnableExporter())) return false;
          break;
        case 11:
          if (!getPartitionBootstrap()
              .equals(other.getPartitionBootstrap())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + MEMBERID_FIELD_NUMBER;
      hash = (53 * hash) + getMemberId().hashCode();
      switch (operationCase_) {
        case 2:
          hash = (37 * hash) + PARTITIONJOIN_FIELD_NUMBER;
          hash = (53 * hash) + getPartitionJoin().hashCode();
          break;
        case 3:
          hash = (37 * hash) + PARTITIONLEAVE_FIELD_NUMBER;
          hash = (53 * hash) + getPartitionLeave().hashCode();
          break;
        case 4:
          hash = (37 * hash) + MEMBERJOIN_FIELD_NUMBER;
          hash = (53 * hash) + getMemberJoin().hashCode();
          break;
        case 5:
          hash = (37 * hash) + MEMBERLEAVE_FIELD_NUMBER;
          hash = (53 * hash) + getMemberLeave().hashCode();
          break;
        case 6:
          hash = (37 * hash) + PARTITIONRECONFIGUREPRIORITY_FIELD_NUMBER;
          hash = (53 * hash) + getPartitionReconfigurePriority().hashCode();
          break;
        case 7:
          hash = (37 * hash) + PARTITIONFORCERECONFIGURE_FIELD_NUMBER;
          hash = (53 * hash) + getPartitionForceReconfigure().hashCode();
          break;
        case 8:
          hash = (37 * hash) + MEMBERREMOVE_FIELD_NUMBER;
          hash = (53 * hash) + getMemberRemove().hashCode();
          break;
        case 9:
          hash = (37 * hash) + PARTITIONDISABLEEXPORTER_FIELD_NUMBER;
          hash = (53 * hash) + getPartitionDisableExporter().hashCode();
          break;
        case 10:
          hash = (37 * hash) + PARTITIONENABLEEXPORTER_FIELD_NUMBER;
          hash = (53 * hash) + getPartitionEnableExporter().hashCode();
          break;
        case 11:
          hash = (37 * hash) + PARTITIONBOOTSTRAP_FIELD_NUMBER;
          hash = (53 * hash) + getPartitionBootstrap().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.TopologyChangeOperation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.TopologyChangeOperation)
        io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_TopologyChangeOperation_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_TopologyChangeOperation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        memberId_ = "";
        if (partitionJoinBuilder_ != null) {
          partitionJoinBuilder_.clear();
        }
        if (partitionLeaveBuilder_ != null) {
          partitionLeaveBuilder_.clear();
        }
        if (memberJoinBuilder_ != null) {
          memberJoinBuilder_.clear();
        }
        if (memberLeaveBuilder_ != null) {
          memberLeaveBuilder_.clear();
        }
        if (partitionReconfigurePriorityBuilder_ != null) {
          partitionReconfigurePriorityBuilder_.clear();
        }
        if (partitionForceReconfigureBuilder_ != null) {
          partitionForceReconfigureBuilder_.clear();
        }
        if (memberRemoveBuilder_ != null) {
          memberRemoveBuilder_.clear();
        }
        if (partitionDisableExporterBuilder_ != null) {
          partitionDisableExporterBuilder_.clear();
        }
        if (partitionEnableExporterBuilder_ != null) {
          partitionEnableExporterBuilder_.clear();
        }
        if (partitionBootstrapBuilder_ != null) {
          partitionBootstrapBuilder_.clear();
        }
        operationCase_ = 0;
        operation_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_TopologyChangeOperation_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation result = new io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.memberId_ = memberId_;
        }
      }

      private void buildPartialOneofs(io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation result) {
        result.operationCase_ = operationCase_;
        result.operation_ = this.operation_;
        if (operationCase_ == 2 &&
            partitionJoinBuilder_ != null) {
          result.operation_ = partitionJoinBuilder_.build();
        }
        if (operationCase_ == 3 &&
            partitionLeaveBuilder_ != null) {
          result.operation_ = partitionLeaveBuilder_.build();
        }
        if (operationCase_ == 4 &&
            memberJoinBuilder_ != null) {
          result.operation_ = memberJoinBuilder_.build();
        }
        if (operationCase_ == 5 &&
            memberLeaveBuilder_ != null) {
          result.operation_ = memberLeaveBuilder_.build();
        }
        if (operationCase_ == 6 &&
            partitionReconfigurePriorityBuilder_ != null) {
          result.operation_ = partitionReconfigurePriorityBuilder_.build();
        }
        if (operationCase_ == 7 &&
            partitionForceReconfigureBuilder_ != null) {
          result.operation_ = partitionForceReconfigureBuilder_.build();
        }
        if (operationCase_ == 8 &&
            memberRemoveBuilder_ != null) {
          result.operation_ = memberRemoveBuilder_.build();
        }
        if (operationCase_ == 9 &&
            partitionDisableExporterBuilder_ != null) {
          result.operation_ = partitionDisableExporterBuilder_.build();
        }
        if (operationCase_ == 10 &&
            partitionEnableExporterBuilder_ != null) {
          result.operation_ = partitionEnableExporterBuilder_.build();
        }
        if (operationCase_ == 11 &&
            partitionBootstrapBuilder_ != null) {
          result.operation_ = partitionBootstrapBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.getDefaultInstance()) return this;
        if (!other.getMemberId().isEmpty()) {
          memberId_ = other.memberId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        switch (other.getOperationCase()) {
          case PARTITIONJOIN: {
            mergePartitionJoin(other.getPartitionJoin());
            break;
          }
          case PARTITIONLEAVE: {
            mergePartitionLeave(other.getPartitionLeave());
            break;
          }
          case MEMBERJOIN: {
            mergeMemberJoin(other.getMemberJoin());
            break;
          }
          case MEMBERLEAVE: {
            mergeMemberLeave(other.getMemberLeave());
            break;
          }
          case PARTITIONRECONFIGUREPRIORITY: {
            mergePartitionReconfigurePriority(other.getPartitionReconfigurePriority());
            break;
          }
          case PARTITIONFORCERECONFIGURE: {
            mergePartitionForceReconfigure(other.getPartitionForceReconfigure());
            break;
          }
          case MEMBERREMOVE: {
            mergeMemberRemove(other.getMemberRemove());
            break;
          }
          case PARTITIONDISABLEEXPORTER: {
            mergePartitionDisableExporter(other.getPartitionDisableExporter());
            break;
          }
          case PARTITIONENABLEEXPORTER: {
            mergePartitionEnableExporter(other.getPartitionEnableExporter());
            break;
          }
          case PARTITIONBOOTSTRAP: {
            mergePartitionBootstrap(other.getPartitionBootstrap());
            break;
          }
          case OPERATION_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                memberId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getPartitionJoinFieldBuilder().getBuilder(),
                    extensionRegistry);
                operationCase_ = 2;
                break;
              } // case 18
              case 26: {
                input.readMessage(
                    getPartitionLeaveFieldBuilder().getBuilder(),
                    extensionRegistry);
                operationCase_ = 3;
                break;
              } // case 26
              case 34: {
                input.readMessage(
                    getMemberJoinFieldBuilder().getBuilder(),
                    extensionRegistry);
                operationCase_ = 4;
                break;
              } // case 34
              case 42: {
                input.readMessage(
                    getMemberLeaveFieldBuilder().getBuilder(),
                    extensionRegistry);
                operationCase_ = 5;
                break;
              } // case 42
              case 50: {
                input.readMessage(
                    getPartitionReconfigurePriorityFieldBuilder().getBuilder(),
                    extensionRegistry);
                operationCase_ = 6;
                break;
              } // case 50
              case 58: {
                input.readMessage(
                    getPartitionForceReconfigureFieldBuilder().getBuilder(),
                    extensionRegistry);
                operationCase_ = 7;
                break;
              } // case 58
              case 66: {
                input.readMessage(
                    getMemberRemoveFieldBuilder().getBuilder(),
                    extensionRegistry);
                operationCase_ = 8;
                break;
              } // case 66
              case 74: {
                input.readMessage(
                    getPartitionDisableExporterFieldBuilder().getBuilder(),
                    extensionRegistry);
                operationCase_ = 9;
                break;
              } // case 74
              case 82: {
                input.readMessage(
                    getPartitionEnableExporterFieldBuilder().getBuilder(),
                    extensionRegistry);
                operationCase_ = 10;
                break;
              } // case 82
              case 90: {
                input.readMessage(
                    getPartitionBootstrapFieldBuilder().getBuilder(),
                    extensionRegistry);
                operationCase_ = 11;
                break;
              } // case 90
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int operationCase_ = 0;
      private java.lang.Object operation_;
      public OperationCase
          getOperationCase() {
        return OperationCase.forNumber(
            operationCase_);
      }

      public Builder clearOperation() {
        operationCase_ = 0;
        operation_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private java.lang.Object memberId_ = "";
      /**
       * string memberId = 1;
       * @return The memberId.
       */
      public java.lang.String getMemberId() {
        java.lang.Object ref = memberId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          memberId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string memberId = 1;
       * @return The bytes for memberId.
       */
      public com.google.protobuf.ByteString
          getMemberIdBytes() {
        java.lang.Object ref = memberId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          memberId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string memberId = 1;
       * @param value The memberId to set.
       * @return This builder for chaining.
       */
      public Builder setMemberId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        memberId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string memberId = 1;
       * @return This builder for chaining.
       */
      public Builder clearMemberId() {
        memberId_ = getDefaultInstance().getMemberId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string memberId = 1;
       * @param value The bytes for memberId to set.
       * @return This builder for chaining.
       */
      public Builder setMemberIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        memberId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperationOrBuilder> partitionJoinBuilder_;
      /**
       * .topology_protocol.PartitionJoinOperation partitionJoin = 2;
       * @return Whether the partitionJoin field is set.
       */
      @java.lang.Override
      public boolean hasPartitionJoin() {
        return operationCase_ == 2;
      }
      /**
       * .topology_protocol.PartitionJoinOperation partitionJoin = 2;
       * @return The partitionJoin.
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation getPartitionJoin() {
        if (partitionJoinBuilder_ == null) {
          if (operationCase_ == 2) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation) operation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation.getDefaultInstance();
        } else {
          if (operationCase_ == 2) {
            return partitionJoinBuilder_.getMessage();
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.PartitionJoinOperation partitionJoin = 2;
       */
      public Builder setPartitionJoin(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation value) {
        if (partitionJoinBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          operation_ = value;
          onChanged();
        } else {
          partitionJoinBuilder_.setMessage(value);
        }
        operationCase_ = 2;
        return this;
      }
      /**
       * .topology_protocol.PartitionJoinOperation partitionJoin = 2;
       */
      public Builder setPartitionJoin(
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation.Builder builderForValue) {
        if (partitionJoinBuilder_ == null) {
          operation_ = builderForValue.build();
          onChanged();
        } else {
          partitionJoinBuilder_.setMessage(builderForValue.build());
        }
        operationCase_ = 2;
        return this;
      }
      /**
       * .topology_protocol.PartitionJoinOperation partitionJoin = 2;
       */
      public Builder mergePartitionJoin(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation value) {
        if (partitionJoinBuilder_ == null) {
          if (operationCase_ == 2 &&
              operation_ != io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation.getDefaultInstance()) {
            operation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation.newBuilder((io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation) operation_)
                .mergeFrom(value).buildPartial();
          } else {
            operation_ = value;
          }
          onChanged();
        } else {
          if (operationCase_ == 2) {
            partitionJoinBuilder_.mergeFrom(value);
          } else {
            partitionJoinBuilder_.setMessage(value);
          }
        }
        operationCase_ = 2;
        return this;
      }
      /**
       * .topology_protocol.PartitionJoinOperation partitionJoin = 2;
       */
      public Builder clearPartitionJoin() {
        if (partitionJoinBuilder_ == null) {
          if (operationCase_ == 2) {
            operationCase_ = 0;
            operation_ = null;
            onChanged();
          }
        } else {
          if (operationCase_ == 2) {
            operationCase_ = 0;
            operation_ = null;
          }
          partitionJoinBuilder_.clear();
        }
        return this;
      }
      /**
       * .topology_protocol.PartitionJoinOperation partitionJoin = 2;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation.Builder getPartitionJoinBuilder() {
        return getPartitionJoinFieldBuilder().getBuilder();
      }
      /**
       * .topology_protocol.PartitionJoinOperation partitionJoin = 2;
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperationOrBuilder getPartitionJoinOrBuilder() {
        if ((operationCase_ == 2) && (partitionJoinBuilder_ != null)) {
          return partitionJoinBuilder_.getMessageOrBuilder();
        } else {
          if (operationCase_ == 2) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation) operation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.PartitionJoinOperation partitionJoin = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperationOrBuilder> 
          getPartitionJoinFieldBuilder() {
        if (partitionJoinBuilder_ == null) {
          if (!(operationCase_ == 2)) {
            operation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation.getDefaultInstance();
          }
          partitionJoinBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperationOrBuilder>(
                  (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation) operation_,
                  getParentForChildren(),
                  isClean());
          operation_ = null;
        }
        operationCase_ = 2;
        onChanged();
        return partitionJoinBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperationOrBuilder> partitionLeaveBuilder_;
      /**
       * .topology_protocol.PartitionLeaveOperation partitionLeave = 3;
       * @return Whether the partitionLeave field is set.
       */
      @java.lang.Override
      public boolean hasPartitionLeave() {
        return operationCase_ == 3;
      }
      /**
       * .topology_protocol.PartitionLeaveOperation partitionLeave = 3;
       * @return The partitionLeave.
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation getPartitionLeave() {
        if (partitionLeaveBuilder_ == null) {
          if (operationCase_ == 3) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation) operation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation.getDefaultInstance();
        } else {
          if (operationCase_ == 3) {
            return partitionLeaveBuilder_.getMessage();
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.PartitionLeaveOperation partitionLeave = 3;
       */
      public Builder setPartitionLeave(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation value) {
        if (partitionLeaveBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          operation_ = value;
          onChanged();
        } else {
          partitionLeaveBuilder_.setMessage(value);
        }
        operationCase_ = 3;
        return this;
      }
      /**
       * .topology_protocol.PartitionLeaveOperation partitionLeave = 3;
       */
      public Builder setPartitionLeave(
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation.Builder builderForValue) {
        if (partitionLeaveBuilder_ == null) {
          operation_ = builderForValue.build();
          onChanged();
        } else {
          partitionLeaveBuilder_.setMessage(builderForValue.build());
        }
        operationCase_ = 3;
        return this;
      }
      /**
       * .topology_protocol.PartitionLeaveOperation partitionLeave = 3;
       */
      public Builder mergePartitionLeave(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation value) {
        if (partitionLeaveBuilder_ == null) {
          if (operationCase_ == 3 &&
              operation_ != io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation.getDefaultInstance()) {
            operation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation.newBuilder((io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation) operation_)
                .mergeFrom(value).buildPartial();
          } else {
            operation_ = value;
          }
          onChanged();
        } else {
          if (operationCase_ == 3) {
            partitionLeaveBuilder_.mergeFrom(value);
          } else {
            partitionLeaveBuilder_.setMessage(value);
          }
        }
        operationCase_ = 3;
        return this;
      }
      /**
       * .topology_protocol.PartitionLeaveOperation partitionLeave = 3;
       */
      public Builder clearPartitionLeave() {
        if (partitionLeaveBuilder_ == null) {
          if (operationCase_ == 3) {
            operationCase_ = 0;
            operation_ = null;
            onChanged();
          }
        } else {
          if (operationCase_ == 3) {
            operationCase_ = 0;
            operation_ = null;
          }
          partitionLeaveBuilder_.clear();
        }
        return this;
      }
      /**
       * .topology_protocol.PartitionLeaveOperation partitionLeave = 3;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation.Builder getPartitionLeaveBuilder() {
        return getPartitionLeaveFieldBuilder().getBuilder();
      }
      /**
       * .topology_protocol.PartitionLeaveOperation partitionLeave = 3;
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperationOrBuilder getPartitionLeaveOrBuilder() {
        if ((operationCase_ == 3) && (partitionLeaveBuilder_ != null)) {
          return partitionLeaveBuilder_.getMessageOrBuilder();
        } else {
          if (operationCase_ == 3) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation) operation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.PartitionLeaveOperation partitionLeave = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperationOrBuilder> 
          getPartitionLeaveFieldBuilder() {
        if (partitionLeaveBuilder_ == null) {
          if (!(operationCase_ == 3)) {
            operation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation.getDefaultInstance();
          }
          partitionLeaveBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperationOrBuilder>(
                  (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation) operation_,
                  getParentForChildren(),
                  isClean());
          operation_ = null;
        }
        operationCase_ = 3;
        onChanged();
        return partitionLeaveBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperationOrBuilder> memberJoinBuilder_;
      /**
       * .topology_protocol.MemberJoinOperation memberJoin = 4;
       * @return Whether the memberJoin field is set.
       */
      @java.lang.Override
      public boolean hasMemberJoin() {
        return operationCase_ == 4;
      }
      /**
       * .topology_protocol.MemberJoinOperation memberJoin = 4;
       * @return The memberJoin.
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation getMemberJoin() {
        if (memberJoinBuilder_ == null) {
          if (operationCase_ == 4) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation) operation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation.getDefaultInstance();
        } else {
          if (operationCase_ == 4) {
            return memberJoinBuilder_.getMessage();
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.MemberJoinOperation memberJoin = 4;
       */
      public Builder setMemberJoin(io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation value) {
        if (memberJoinBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          operation_ = value;
          onChanged();
        } else {
          memberJoinBuilder_.setMessage(value);
        }
        operationCase_ = 4;
        return this;
      }
      /**
       * .topology_protocol.MemberJoinOperation memberJoin = 4;
       */
      public Builder setMemberJoin(
          io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation.Builder builderForValue) {
        if (memberJoinBuilder_ == null) {
          operation_ = builderForValue.build();
          onChanged();
        } else {
          memberJoinBuilder_.setMessage(builderForValue.build());
        }
        operationCase_ = 4;
        return this;
      }
      /**
       * .topology_protocol.MemberJoinOperation memberJoin = 4;
       */
      public Builder mergeMemberJoin(io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation value) {
        if (memberJoinBuilder_ == null) {
          if (operationCase_ == 4 &&
              operation_ != io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation.getDefaultInstance()) {
            operation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation.newBuilder((io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation) operation_)
                .mergeFrom(value).buildPartial();
          } else {
            operation_ = value;
          }
          onChanged();
        } else {
          if (operationCase_ == 4) {
            memberJoinBuilder_.mergeFrom(value);
          } else {
            memberJoinBuilder_.setMessage(value);
          }
        }
        operationCase_ = 4;
        return this;
      }
      /**
       * .topology_protocol.MemberJoinOperation memberJoin = 4;
       */
      public Builder clearMemberJoin() {
        if (memberJoinBuilder_ == null) {
          if (operationCase_ == 4) {
            operationCase_ = 0;
            operation_ = null;
            onChanged();
          }
        } else {
          if (operationCase_ == 4) {
            operationCase_ = 0;
            operation_ = null;
          }
          memberJoinBuilder_.clear();
        }
        return this;
      }
      /**
       * .topology_protocol.MemberJoinOperation memberJoin = 4;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation.Builder getMemberJoinBuilder() {
        return getMemberJoinFieldBuilder().getBuilder();
      }
      /**
       * .topology_protocol.MemberJoinOperation memberJoin = 4;
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperationOrBuilder getMemberJoinOrBuilder() {
        if ((operationCase_ == 4) && (memberJoinBuilder_ != null)) {
          return memberJoinBuilder_.getMessageOrBuilder();
        } else {
          if (operationCase_ == 4) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation) operation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.MemberJoinOperation memberJoin = 4;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperationOrBuilder> 
          getMemberJoinFieldBuilder() {
        if (memberJoinBuilder_ == null) {
          if (!(operationCase_ == 4)) {
            operation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation.getDefaultInstance();
          }
          memberJoinBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperationOrBuilder>(
                  (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation) operation_,
                  getParentForChildren(),
                  isClean());
          operation_ = null;
        }
        operationCase_ = 4;
        onChanged();
        return memberJoinBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperationOrBuilder> memberLeaveBuilder_;
      /**
       * .topology_protocol.MemberLeaveOperation memberLeave = 5;
       * @return Whether the memberLeave field is set.
       */
      @java.lang.Override
      public boolean hasMemberLeave() {
        return operationCase_ == 5;
      }
      /**
       * .topology_protocol.MemberLeaveOperation memberLeave = 5;
       * @return The memberLeave.
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation getMemberLeave() {
        if (memberLeaveBuilder_ == null) {
          if (operationCase_ == 5) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation) operation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation.getDefaultInstance();
        } else {
          if (operationCase_ == 5) {
            return memberLeaveBuilder_.getMessage();
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.MemberLeaveOperation memberLeave = 5;
       */
      public Builder setMemberLeave(io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation value) {
        if (memberLeaveBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          operation_ = value;
          onChanged();
        } else {
          memberLeaveBuilder_.setMessage(value);
        }
        operationCase_ = 5;
        return this;
      }
      /**
       * .topology_protocol.MemberLeaveOperation memberLeave = 5;
       */
      public Builder setMemberLeave(
          io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation.Builder builderForValue) {
        if (memberLeaveBuilder_ == null) {
          operation_ = builderForValue.build();
          onChanged();
        } else {
          memberLeaveBuilder_.setMessage(builderForValue.build());
        }
        operationCase_ = 5;
        return this;
      }
      /**
       * .topology_protocol.MemberLeaveOperation memberLeave = 5;
       */
      public Builder mergeMemberLeave(io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation value) {
        if (memberLeaveBuilder_ == null) {
          if (operationCase_ == 5 &&
              operation_ != io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation.getDefaultInstance()) {
            operation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation.newBuilder((io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation) operation_)
                .mergeFrom(value).buildPartial();
          } else {
            operation_ = value;
          }
          onChanged();
        } else {
          if (operationCase_ == 5) {
            memberLeaveBuilder_.mergeFrom(value);
          } else {
            memberLeaveBuilder_.setMessage(value);
          }
        }
        operationCase_ = 5;
        return this;
      }
      /**
       * .topology_protocol.MemberLeaveOperation memberLeave = 5;
       */
      public Builder clearMemberLeave() {
        if (memberLeaveBuilder_ == null) {
          if (operationCase_ == 5) {
            operationCase_ = 0;
            operation_ = null;
            onChanged();
          }
        } else {
          if (operationCase_ == 5) {
            operationCase_ = 0;
            operation_ = null;
          }
          memberLeaveBuilder_.clear();
        }
        return this;
      }
      /**
       * .topology_protocol.MemberLeaveOperation memberLeave = 5;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation.Builder getMemberLeaveBuilder() {
        return getMemberLeaveFieldBuilder().getBuilder();
      }
      /**
       * .topology_protocol.MemberLeaveOperation memberLeave = 5;
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperationOrBuilder getMemberLeaveOrBuilder() {
        if ((operationCase_ == 5) && (memberLeaveBuilder_ != null)) {
          return memberLeaveBuilder_.getMessageOrBuilder();
        } else {
          if (operationCase_ == 5) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation) operation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.MemberLeaveOperation memberLeave = 5;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperationOrBuilder> 
          getMemberLeaveFieldBuilder() {
        if (memberLeaveBuilder_ == null) {
          if (!(operationCase_ == 5)) {
            operation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation.getDefaultInstance();
          }
          memberLeaveBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperationOrBuilder>(
                  (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation) operation_,
                  getParentForChildren(),
                  isClean());
          operation_ = null;
        }
        operationCase_ = 5;
        onChanged();
        return memberLeaveBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperationOrBuilder> partitionReconfigurePriorityBuilder_;
      /**
       * .topology_protocol.PartitionReconfigurePriorityOperation partitionReconfigurePriority = 6;
       * @return Whether the partitionReconfigurePriority field is set.
       */
      @java.lang.Override
      public boolean hasPartitionReconfigurePriority() {
        return operationCase_ == 6;
      }
      /**
       * .topology_protocol.PartitionReconfigurePriorityOperation partitionReconfigurePriority = 6;
       * @return The partitionReconfigurePriority.
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation getPartitionReconfigurePriority() {
        if (partitionReconfigurePriorityBuilder_ == null) {
          if (operationCase_ == 6) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation) operation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation.getDefaultInstance();
        } else {
          if (operationCase_ == 6) {
            return partitionReconfigurePriorityBuilder_.getMessage();
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.PartitionReconfigurePriorityOperation partitionReconfigurePriority = 6;
       */
      public Builder setPartitionReconfigurePriority(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation value) {
        if (partitionReconfigurePriorityBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          operation_ = value;
          onChanged();
        } else {
          partitionReconfigurePriorityBuilder_.setMessage(value);
        }
        operationCase_ = 6;
        return this;
      }
      /**
       * .topology_protocol.PartitionReconfigurePriorityOperation partitionReconfigurePriority = 6;
       */
      public Builder setPartitionReconfigurePriority(
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation.Builder builderForValue) {
        if (partitionReconfigurePriorityBuilder_ == null) {
          operation_ = builderForValue.build();
          onChanged();
        } else {
          partitionReconfigurePriorityBuilder_.setMessage(builderForValue.build());
        }
        operationCase_ = 6;
        return this;
      }
      /**
       * .topology_protocol.PartitionReconfigurePriorityOperation partitionReconfigurePriority = 6;
       */
      public Builder mergePartitionReconfigurePriority(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation value) {
        if (partitionReconfigurePriorityBuilder_ == null) {
          if (operationCase_ == 6 &&
              operation_ != io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation.getDefaultInstance()) {
            operation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation.newBuilder((io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation) operation_)
                .mergeFrom(value).buildPartial();
          } else {
            operation_ = value;
          }
          onChanged();
        } else {
          if (operationCase_ == 6) {
            partitionReconfigurePriorityBuilder_.mergeFrom(value);
          } else {
            partitionReconfigurePriorityBuilder_.setMessage(value);
          }
        }
        operationCase_ = 6;
        return this;
      }
      /**
       * .topology_protocol.PartitionReconfigurePriorityOperation partitionReconfigurePriority = 6;
       */
      public Builder clearPartitionReconfigurePriority() {
        if (partitionReconfigurePriorityBuilder_ == null) {
          if (operationCase_ == 6) {
            operationCase_ = 0;
            operation_ = null;
            onChanged();
          }
        } else {
          if (operationCase_ == 6) {
            operationCase_ = 0;
            operation_ = null;
          }
          partitionReconfigurePriorityBuilder_.clear();
        }
        return this;
      }
      /**
       * .topology_protocol.PartitionReconfigurePriorityOperation partitionReconfigurePriority = 6;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation.Builder getPartitionReconfigurePriorityBuilder() {
        return getPartitionReconfigurePriorityFieldBuilder().getBuilder();
      }
      /**
       * .topology_protocol.PartitionReconfigurePriorityOperation partitionReconfigurePriority = 6;
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperationOrBuilder getPartitionReconfigurePriorityOrBuilder() {
        if ((operationCase_ == 6) && (partitionReconfigurePriorityBuilder_ != null)) {
          return partitionReconfigurePriorityBuilder_.getMessageOrBuilder();
        } else {
          if (operationCase_ == 6) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation) operation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.PartitionReconfigurePriorityOperation partitionReconfigurePriority = 6;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperationOrBuilder> 
          getPartitionReconfigurePriorityFieldBuilder() {
        if (partitionReconfigurePriorityBuilder_ == null) {
          if (!(operationCase_ == 6)) {
            operation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation.getDefaultInstance();
          }
          partitionReconfigurePriorityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperationOrBuilder>(
                  (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation) operation_,
                  getParentForChildren(),
                  isClean());
          operation_ = null;
        }
        operationCase_ = 6;
        onChanged();
        return partitionReconfigurePriorityBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperationOrBuilder> partitionForceReconfigureBuilder_;
      /**
       * .topology_protocol.PartitionForceReconfigureOperation partitionForceReconfigure = 7;
       * @return Whether the partitionForceReconfigure field is set.
       */
      @java.lang.Override
      public boolean hasPartitionForceReconfigure() {
        return operationCase_ == 7;
      }
      /**
       * .topology_protocol.PartitionForceReconfigureOperation partitionForceReconfigure = 7;
       * @return The partitionForceReconfigure.
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation getPartitionForceReconfigure() {
        if (partitionForceReconfigureBuilder_ == null) {
          if (operationCase_ == 7) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation) operation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation.getDefaultInstance();
        } else {
          if (operationCase_ == 7) {
            return partitionForceReconfigureBuilder_.getMessage();
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.PartitionForceReconfigureOperation partitionForceReconfigure = 7;
       */
      public Builder setPartitionForceReconfigure(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation value) {
        if (partitionForceReconfigureBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          operation_ = value;
          onChanged();
        } else {
          partitionForceReconfigureBuilder_.setMessage(value);
        }
        operationCase_ = 7;
        return this;
      }
      /**
       * .topology_protocol.PartitionForceReconfigureOperation partitionForceReconfigure = 7;
       */
      public Builder setPartitionForceReconfigure(
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation.Builder builderForValue) {
        if (partitionForceReconfigureBuilder_ == null) {
          operation_ = builderForValue.build();
          onChanged();
        } else {
          partitionForceReconfigureBuilder_.setMessage(builderForValue.build());
        }
        operationCase_ = 7;
        return this;
      }
      /**
       * .topology_protocol.PartitionForceReconfigureOperation partitionForceReconfigure = 7;
       */
      public Builder mergePartitionForceReconfigure(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation value) {
        if (partitionForceReconfigureBuilder_ == null) {
          if (operationCase_ == 7 &&
              operation_ != io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation.getDefaultInstance()) {
            operation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation.newBuilder((io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation) operation_)
                .mergeFrom(value).buildPartial();
          } else {
            operation_ = value;
          }
          onChanged();
        } else {
          if (operationCase_ == 7) {
            partitionForceReconfigureBuilder_.mergeFrom(value);
          } else {
            partitionForceReconfigureBuilder_.setMessage(value);
          }
        }
        operationCase_ = 7;
        return this;
      }
      /**
       * .topology_protocol.PartitionForceReconfigureOperation partitionForceReconfigure = 7;
       */
      public Builder clearPartitionForceReconfigure() {
        if (partitionForceReconfigureBuilder_ == null) {
          if (operationCase_ == 7) {
            operationCase_ = 0;
            operation_ = null;
            onChanged();
          }
        } else {
          if (operationCase_ == 7) {
            operationCase_ = 0;
            operation_ = null;
          }
          partitionForceReconfigureBuilder_.clear();
        }
        return this;
      }
      /**
       * .topology_protocol.PartitionForceReconfigureOperation partitionForceReconfigure = 7;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation.Builder getPartitionForceReconfigureBuilder() {
        return getPartitionForceReconfigureFieldBuilder().getBuilder();
      }
      /**
       * .topology_protocol.PartitionForceReconfigureOperation partitionForceReconfigure = 7;
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperationOrBuilder getPartitionForceReconfigureOrBuilder() {
        if ((operationCase_ == 7) && (partitionForceReconfigureBuilder_ != null)) {
          return partitionForceReconfigureBuilder_.getMessageOrBuilder();
        } else {
          if (operationCase_ == 7) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation) operation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.PartitionForceReconfigureOperation partitionForceReconfigure = 7;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperationOrBuilder> 
          getPartitionForceReconfigureFieldBuilder() {
        if (partitionForceReconfigureBuilder_ == null) {
          if (!(operationCase_ == 7)) {
            operation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation.getDefaultInstance();
          }
          partitionForceReconfigureBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperationOrBuilder>(
                  (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation) operation_,
                  getParentForChildren(),
                  isClean());
          operation_ = null;
        }
        operationCase_ = 7;
        onChanged();
        return partitionForceReconfigureBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperationOrBuilder> memberRemoveBuilder_;
      /**
       * .topology_protocol.MemberRemoveOperation memberRemove = 8;
       * @return Whether the memberRemove field is set.
       */
      @java.lang.Override
      public boolean hasMemberRemove() {
        return operationCase_ == 8;
      }
      /**
       * .topology_protocol.MemberRemoveOperation memberRemove = 8;
       * @return The memberRemove.
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation getMemberRemove() {
        if (memberRemoveBuilder_ == null) {
          if (operationCase_ == 8) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation) operation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation.getDefaultInstance();
        } else {
          if (operationCase_ == 8) {
            return memberRemoveBuilder_.getMessage();
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.MemberRemoveOperation memberRemove = 8;
       */
      public Builder setMemberRemove(io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation value) {
        if (memberRemoveBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          operation_ = value;
          onChanged();
        } else {
          memberRemoveBuilder_.setMessage(value);
        }
        operationCase_ = 8;
        return this;
      }
      /**
       * .topology_protocol.MemberRemoveOperation memberRemove = 8;
       */
      public Builder setMemberRemove(
          io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation.Builder builderForValue) {
        if (memberRemoveBuilder_ == null) {
          operation_ = builderForValue.build();
          onChanged();
        } else {
          memberRemoveBuilder_.setMessage(builderForValue.build());
        }
        operationCase_ = 8;
        return this;
      }
      /**
       * .topology_protocol.MemberRemoveOperation memberRemove = 8;
       */
      public Builder mergeMemberRemove(io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation value) {
        if (memberRemoveBuilder_ == null) {
          if (operationCase_ == 8 &&
              operation_ != io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation.getDefaultInstance()) {
            operation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation.newBuilder((io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation) operation_)
                .mergeFrom(value).buildPartial();
          } else {
            operation_ = value;
          }
          onChanged();
        } else {
          if (operationCase_ == 8) {
            memberRemoveBuilder_.mergeFrom(value);
          } else {
            memberRemoveBuilder_.setMessage(value);
          }
        }
        operationCase_ = 8;
        return this;
      }
      /**
       * .topology_protocol.MemberRemoveOperation memberRemove = 8;
       */
      public Builder clearMemberRemove() {
        if (memberRemoveBuilder_ == null) {
          if (operationCase_ == 8) {
            operationCase_ = 0;
            operation_ = null;
            onChanged();
          }
        } else {
          if (operationCase_ == 8) {
            operationCase_ = 0;
            operation_ = null;
          }
          memberRemoveBuilder_.clear();
        }
        return this;
      }
      /**
       * .topology_protocol.MemberRemoveOperation memberRemove = 8;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation.Builder getMemberRemoveBuilder() {
        return getMemberRemoveFieldBuilder().getBuilder();
      }
      /**
       * .topology_protocol.MemberRemoveOperation memberRemove = 8;
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperationOrBuilder getMemberRemoveOrBuilder() {
        if ((operationCase_ == 8) && (memberRemoveBuilder_ != null)) {
          return memberRemoveBuilder_.getMessageOrBuilder();
        } else {
          if (operationCase_ == 8) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation) operation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.MemberRemoveOperation memberRemove = 8;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperationOrBuilder> 
          getMemberRemoveFieldBuilder() {
        if (memberRemoveBuilder_ == null) {
          if (!(operationCase_ == 8)) {
            operation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation.getDefaultInstance();
          }
          memberRemoveBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperationOrBuilder>(
                  (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation) operation_,
                  getParentForChildren(),
                  isClean());
          operation_ = null;
        }
        operationCase_ = 8;
        onChanged();
        return memberRemoveBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperationOrBuilder> partitionDisableExporterBuilder_;
      /**
       * .topology_protocol.PartitionDisableExporterOperation partitionDisableExporter = 9;
       * @return Whether the partitionDisableExporter field is set.
       */
      @java.lang.Override
      public boolean hasPartitionDisableExporter() {
        return operationCase_ == 9;
      }
      /**
       * .topology_protocol.PartitionDisableExporterOperation partitionDisableExporter = 9;
       * @return The partitionDisableExporter.
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation getPartitionDisableExporter() {
        if (partitionDisableExporterBuilder_ == null) {
          if (operationCase_ == 9) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation) operation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation.getDefaultInstance();
        } else {
          if (operationCase_ == 9) {
            return partitionDisableExporterBuilder_.getMessage();
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.PartitionDisableExporterOperation partitionDisableExporter = 9;
       */
      public Builder setPartitionDisableExporter(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation value) {
        if (partitionDisableExporterBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          operation_ = value;
          onChanged();
        } else {
          partitionDisableExporterBuilder_.setMessage(value);
        }
        operationCase_ = 9;
        return this;
      }
      /**
       * .topology_protocol.PartitionDisableExporterOperation partitionDisableExporter = 9;
       */
      public Builder setPartitionDisableExporter(
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation.Builder builderForValue) {
        if (partitionDisableExporterBuilder_ == null) {
          operation_ = builderForValue.build();
          onChanged();
        } else {
          partitionDisableExporterBuilder_.setMessage(builderForValue.build());
        }
        operationCase_ = 9;
        return this;
      }
      /**
       * .topology_protocol.PartitionDisableExporterOperation partitionDisableExporter = 9;
       */
      public Builder mergePartitionDisableExporter(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation value) {
        if (partitionDisableExporterBuilder_ == null) {
          if (operationCase_ == 9 &&
              operation_ != io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation.getDefaultInstance()) {
            operation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation.newBuilder((io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation) operation_)
                .mergeFrom(value).buildPartial();
          } else {
            operation_ = value;
          }
          onChanged();
        } else {
          if (operationCase_ == 9) {
            partitionDisableExporterBuilder_.mergeFrom(value);
          } else {
            partitionDisableExporterBuilder_.setMessage(value);
          }
        }
        operationCase_ = 9;
        return this;
      }
      /**
       * .topology_protocol.PartitionDisableExporterOperation partitionDisableExporter = 9;
       */
      public Builder clearPartitionDisableExporter() {
        if (partitionDisableExporterBuilder_ == null) {
          if (operationCase_ == 9) {
            operationCase_ = 0;
            operation_ = null;
            onChanged();
          }
        } else {
          if (operationCase_ == 9) {
            operationCase_ = 0;
            operation_ = null;
          }
          partitionDisableExporterBuilder_.clear();
        }
        return this;
      }
      /**
       * .topology_protocol.PartitionDisableExporterOperation partitionDisableExporter = 9;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation.Builder getPartitionDisableExporterBuilder() {
        return getPartitionDisableExporterFieldBuilder().getBuilder();
      }
      /**
       * .topology_protocol.PartitionDisableExporterOperation partitionDisableExporter = 9;
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperationOrBuilder getPartitionDisableExporterOrBuilder() {
        if ((operationCase_ == 9) && (partitionDisableExporterBuilder_ != null)) {
          return partitionDisableExporterBuilder_.getMessageOrBuilder();
        } else {
          if (operationCase_ == 9) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation) operation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.PartitionDisableExporterOperation partitionDisableExporter = 9;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperationOrBuilder> 
          getPartitionDisableExporterFieldBuilder() {
        if (partitionDisableExporterBuilder_ == null) {
          if (!(operationCase_ == 9)) {
            operation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation.getDefaultInstance();
          }
          partitionDisableExporterBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperationOrBuilder>(
                  (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation) operation_,
                  getParentForChildren(),
                  isClean());
          operation_ = null;
        }
        operationCase_ = 9;
        onChanged();
        return partitionDisableExporterBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperationOrBuilder> partitionEnableExporterBuilder_;
      /**
       * .topology_protocol.PartitionEnableExporterOperation partitionEnableExporter = 10;
       * @return Whether the partitionEnableExporter field is set.
       */
      @java.lang.Override
      public boolean hasPartitionEnableExporter() {
        return operationCase_ == 10;
      }
      /**
       * .topology_protocol.PartitionEnableExporterOperation partitionEnableExporter = 10;
       * @return The partitionEnableExporter.
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation getPartitionEnableExporter() {
        if (partitionEnableExporterBuilder_ == null) {
          if (operationCase_ == 10) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation) operation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation.getDefaultInstance();
        } else {
          if (operationCase_ == 10) {
            return partitionEnableExporterBuilder_.getMessage();
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.PartitionEnableExporterOperation partitionEnableExporter = 10;
       */
      public Builder setPartitionEnableExporter(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation value) {
        if (partitionEnableExporterBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          operation_ = value;
          onChanged();
        } else {
          partitionEnableExporterBuilder_.setMessage(value);
        }
        operationCase_ = 10;
        return this;
      }
      /**
       * .topology_protocol.PartitionEnableExporterOperation partitionEnableExporter = 10;
       */
      public Builder setPartitionEnableExporter(
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation.Builder builderForValue) {
        if (partitionEnableExporterBuilder_ == null) {
          operation_ = builderForValue.build();
          onChanged();
        } else {
          partitionEnableExporterBuilder_.setMessage(builderForValue.build());
        }
        operationCase_ = 10;
        return this;
      }
      /**
       * .topology_protocol.PartitionEnableExporterOperation partitionEnableExporter = 10;
       */
      public Builder mergePartitionEnableExporter(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation value) {
        if (partitionEnableExporterBuilder_ == null) {
          if (operationCase_ == 10 &&
              operation_ != io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation.getDefaultInstance()) {
            operation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation.newBuilder((io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation) operation_)
                .mergeFrom(value).buildPartial();
          } else {
            operation_ = value;
          }
          onChanged();
        } else {
          if (operationCase_ == 10) {
            partitionEnableExporterBuilder_.mergeFrom(value);
          } else {
            partitionEnableExporterBuilder_.setMessage(value);
          }
        }
        operationCase_ = 10;
        return this;
      }
      /**
       * .topology_protocol.PartitionEnableExporterOperation partitionEnableExporter = 10;
       */
      public Builder clearPartitionEnableExporter() {
        if (partitionEnableExporterBuilder_ == null) {
          if (operationCase_ == 10) {
            operationCase_ = 0;
            operation_ = null;
            onChanged();
          }
        } else {
          if (operationCase_ == 10) {
            operationCase_ = 0;
            operation_ = null;
          }
          partitionEnableExporterBuilder_.clear();
        }
        return this;
      }
      /**
       * .topology_protocol.PartitionEnableExporterOperation partitionEnableExporter = 10;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation.Builder getPartitionEnableExporterBuilder() {
        return getPartitionEnableExporterFieldBuilder().getBuilder();
      }
      /**
       * .topology_protocol.PartitionEnableExporterOperation partitionEnableExporter = 10;
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperationOrBuilder getPartitionEnableExporterOrBuilder() {
        if ((operationCase_ == 10) && (partitionEnableExporterBuilder_ != null)) {
          return partitionEnableExporterBuilder_.getMessageOrBuilder();
        } else {
          if (operationCase_ == 10) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation) operation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.PartitionEnableExporterOperation partitionEnableExporter = 10;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperationOrBuilder> 
          getPartitionEnableExporterFieldBuilder() {
        if (partitionEnableExporterBuilder_ == null) {
          if (!(operationCase_ == 10)) {
            operation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation.getDefaultInstance();
          }
          partitionEnableExporterBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperationOrBuilder>(
                  (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation) operation_,
                  getParentForChildren(),
                  isClean());
          operation_ = null;
        }
        operationCase_ = 10;
        onChanged();
        return partitionEnableExporterBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperationOrBuilder> partitionBootstrapBuilder_;
      /**
       * .topology_protocol.PartitionBootstrapOperation partitionBootstrap = 11;
       * @return Whether the partitionBootstrap field is set.
       */
      @java.lang.Override
      public boolean hasPartitionBootstrap() {
        return operationCase_ == 11;
      }
      /**
       * .topology_protocol.PartitionBootstrapOperation partitionBootstrap = 11;
       * @return The partitionBootstrap.
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation getPartitionBootstrap() {
        if (partitionBootstrapBuilder_ == null) {
          if (operationCase_ == 11) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation) operation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation.getDefaultInstance();
        } else {
          if (operationCase_ == 11) {
            return partitionBootstrapBuilder_.getMessage();
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.PartitionBootstrapOperation partitionBootstrap = 11;
       */
      public Builder setPartitionBootstrap(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation value) {
        if (partitionBootstrapBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          operation_ = value;
          onChanged();
        } else {
          partitionBootstrapBuilder_.setMessage(value);
        }
        operationCase_ = 11;
        return this;
      }
      /**
       * .topology_protocol.PartitionBootstrapOperation partitionBootstrap = 11;
       */
      public Builder setPartitionBootstrap(
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation.Builder builderForValue) {
        if (partitionBootstrapBuilder_ == null) {
          operation_ = builderForValue.build();
          onChanged();
        } else {
          partitionBootstrapBuilder_.setMessage(builderForValue.build());
        }
        operationCase_ = 11;
        return this;
      }
      /**
       * .topology_protocol.PartitionBootstrapOperation partitionBootstrap = 11;
       */
      public Builder mergePartitionBootstrap(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation value) {
        if (partitionBootstrapBuilder_ == null) {
          if (operationCase_ == 11 &&
              operation_ != io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation.getDefaultInstance()) {
            operation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation.newBuilder((io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation) operation_)
                .mergeFrom(value).buildPartial();
          } else {
            operation_ = value;
          }
          onChanged();
        } else {
          if (operationCase_ == 11) {
            partitionBootstrapBuilder_.mergeFrom(value);
          } else {
            partitionBootstrapBuilder_.setMessage(value);
          }
        }
        operationCase_ = 11;
        return this;
      }
      /**
       * .topology_protocol.PartitionBootstrapOperation partitionBootstrap = 11;
       */
      public Builder clearPartitionBootstrap() {
        if (partitionBootstrapBuilder_ == null) {
          if (operationCase_ == 11) {
            operationCase_ = 0;
            operation_ = null;
            onChanged();
          }
        } else {
          if (operationCase_ == 11) {
            operationCase_ = 0;
            operation_ = null;
          }
          partitionBootstrapBuilder_.clear();
        }
        return this;
      }
      /**
       * .topology_protocol.PartitionBootstrapOperation partitionBootstrap = 11;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation.Builder getPartitionBootstrapBuilder() {
        return getPartitionBootstrapFieldBuilder().getBuilder();
      }
      /**
       * .topology_protocol.PartitionBootstrapOperation partitionBootstrap = 11;
       */
      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperationOrBuilder getPartitionBootstrapOrBuilder() {
        if ((operationCase_ == 11) && (partitionBootstrapBuilder_ != null)) {
          return partitionBootstrapBuilder_.getMessageOrBuilder();
        } else {
          if (operationCase_ == 11) {
            return (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation) operation_;
          }
          return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation.getDefaultInstance();
        }
      }
      /**
       * .topology_protocol.PartitionBootstrapOperation partitionBootstrap = 11;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperationOrBuilder> 
          getPartitionBootstrapFieldBuilder() {
        if (partitionBootstrapBuilder_ == null) {
          if (!(operationCase_ == 11)) {
            operation_ = io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation.getDefaultInstance();
          }
          partitionBootstrapBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperationOrBuilder>(
                  (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation) operation_,
                  getParentForChildren(),
                  isClean());
          operation_ = null;
        }
        operationCase_ = 11;
        onChanged();
        return partitionBootstrapBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.TopologyChangeOperation)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.TopologyChangeOperation)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CompletedTopologyChangeOperationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.CompletedTopologyChangeOperation)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .topology_protocol.TopologyChangeOperation operation = 1;
     * @return Whether the operation field is set.
     */
    boolean hasOperation();
    /**
     * .topology_protocol.TopologyChangeOperation operation = 1;
     * @return The operation.
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation getOperation();
    /**
     * .topology_protocol.TopologyChangeOperation operation = 1;
     */
    io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperationOrBuilder getOperationOrBuilder();

    /**
     * .google.protobuf.Timestamp completedAt = 2;
     * @return Whether the completedAt field is set.
     */
    boolean hasCompletedAt();
    /**
     * .google.protobuf.Timestamp completedAt = 2;
     * @return The completedAt.
     */
    com.google.protobuf.Timestamp getCompletedAt();
    /**
     * .google.protobuf.Timestamp completedAt = 2;
     */
    com.google.protobuf.TimestampOrBuilder getCompletedAtOrBuilder();
  }
  /**
   * Protobuf type {@code topology_protocol.CompletedTopologyChangeOperation}
   */
  public static final class CompletedTopologyChangeOperation extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.CompletedTopologyChangeOperation)
      CompletedTopologyChangeOperationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CompletedTopologyChangeOperation.newBuilder() to construct.
    private CompletedTopologyChangeOperation(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private CompletedTopologyChangeOperation() {
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_CompletedTopologyChangeOperation_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_CompletedTopologyChangeOperation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation.Builder.class);
    }

    private int bitField0_;
    public static final int OPERATION_FIELD_NUMBER = 1;
    private io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation operation_;
    /**
     * .topology_protocol.TopologyChangeOperation operation = 1;
     * @return Whether the operation field is set.
     */
    @java.lang.Override
    public boolean hasOperation() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * .topology_protocol.TopologyChangeOperation operation = 1;
     * @return The operation.
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation getOperation() {
      return operation_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.getDefaultInstance() : operation_;
    }
    /**
     * .topology_protocol.TopologyChangeOperation operation = 1;
     */
    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperationOrBuilder getOperationOrBuilder() {
      return operation_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.getDefaultInstance() : operation_;
    }

    public static final int COMPLETEDAT_FIELD_NUMBER = 2;
    private com.google.protobuf.Timestamp completedAt_;
    /**
     * .google.protobuf.Timestamp completedAt = 2;
     * @return Whether the completedAt field is set.
     */
    @java.lang.Override
    public boolean hasCompletedAt() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * .google.protobuf.Timestamp completedAt = 2;
     * @return The completedAt.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getCompletedAt() {
      return completedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : completedAt_;
    }
    /**
     * .google.protobuf.Timestamp completedAt = 2;
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getCompletedAtOrBuilder() {
      return completedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : completedAt_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getOperation());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getCompletedAt());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getOperation());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getCompletedAt());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation other = (io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation) obj;

      if (hasOperation() != other.hasOperation()) return false;
      if (hasOperation()) {
        if (!getOperation()
            .equals(other.getOperation())) return false;
      }
      if (hasCompletedAt() != other.hasCompletedAt()) return false;
      if (hasCompletedAt()) {
        if (!getCompletedAt()
            .equals(other.getCompletedAt())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasOperation()) {
        hash = (37 * hash) + OPERATION_FIELD_NUMBER;
        hash = (53 * hash) + getOperation().hashCode();
      }
      if (hasCompletedAt()) {
        hash = (37 * hash) + COMPLETEDAT_FIELD_NUMBER;
        hash = (53 * hash) + getCompletedAt().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.CompletedTopologyChangeOperation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.CompletedTopologyChangeOperation)
        io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_CompletedTopologyChangeOperation_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_CompletedTopologyChangeOperation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getOperationFieldBuilder();
          getCompletedAtFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        operation_ = null;
        if (operationBuilder_ != null) {
          operationBuilder_.dispose();
          operationBuilder_ = null;
        }
        completedAt_ = null;
        if (completedAtBuilder_ != null) {
          completedAtBuilder_.dispose();
          completedAtBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_CompletedTopologyChangeOperation_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation result = new io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.operation_ = operationBuilder_ == null
              ? operation_
              : operationBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.completedAt_ = completedAtBuilder_ == null
              ? completedAt_
              : completedAtBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation.getDefaultInstance()) return this;
        if (other.hasOperation()) {
          mergeOperation(other.getOperation());
        }
        if (other.hasCompletedAt()) {
          mergeCompletedAt(other.getCompletedAt());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation operation_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperationOrBuilder> operationBuilder_;
      /**
       * .topology_protocol.TopologyChangeOperation operation = 1;
       * @return Whether the operation field is set.
       */
      public boolean hasOperation() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * .topology_protocol.TopologyChangeOperation operation = 1;
       * @return The operation.
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation getOperation() {
        if (operationBuilder_ == null) {
          return operation_ == null ? io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.getDefaultInstance() : operation_;
        } else {
          return operationBuilder_.getMessage();
        }
      }
      /**
       * .topology_protocol.TopologyChangeOperation operation = 1;
       */
      public Builder setOperation(io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation value) {
        if (operationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          operation_ = value;
        } else {
          operationBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.TopologyChangeOperation operation = 1;
       */
      public Builder setOperation(
          io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.Builder builderForValue) {
        if (operationBuilder_ == null) {
          operation_ = builderForValue.build();
        } else {
          operationBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.TopologyChangeOperation operation = 1;
       */
      public Builder mergeOperation(io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation value) {
        if (operationBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            operation_ != null &&
            operation_ != io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.getDefaultInstance()) {
            getOperationBuilder().mergeFrom(value);
          } else {
            operation_ = value;
          }
        } else {
          operationBuilder_.mergeFrom(value);
        }
        if (operation_ != null) {
          bitField0_ |= 0x00000001;
          onChanged();
        }
        return this;
      }
      /**
       * .topology_protocol.TopologyChangeOperation operation = 1;
       */
      public Builder clearOperation() {
        bitField0_ = (bitField0_ & ~0x00000001);
        operation_ = null;
        if (operationBuilder_ != null) {
          operationBuilder_.dispose();
          operationBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .topology_protocol.TopologyChangeOperation operation = 1;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.Builder getOperationBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getOperationFieldBuilder().getBuilder();
      }
      /**
       * .topology_protocol.TopologyChangeOperation operation = 1;
       */
      public io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperationOrBuilder getOperationOrBuilder() {
        if (operationBuilder_ != null) {
          return operationBuilder_.getMessageOrBuilder();
        } else {
          return operation_ == null ?
              io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.getDefaultInstance() : operation_;
        }
      }
      /**
       * .topology_protocol.TopologyChangeOperation operation = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperationOrBuilder> 
          getOperationFieldBuilder() {
        if (operationBuilder_ == null) {
          operationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation, io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperation.Builder, io.camunda.zeebe.dynamic.config.protocol.Topology.TopologyChangeOperationOrBuilder>(
                  getOperation(),
                  getParentForChildren(),
                  isClean());
          operation_ = null;
        }
        return operationBuilder_;
      }

      private com.google.protobuf.Timestamp completedAt_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> completedAtBuilder_;
      /**
       * .google.protobuf.Timestamp completedAt = 2;
       * @return Whether the completedAt field is set.
       */
      public boolean hasCompletedAt() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * .google.protobuf.Timestamp completedAt = 2;
       * @return The completedAt.
       */
      public com.google.protobuf.Timestamp getCompletedAt() {
        if (completedAtBuilder_ == null) {
          return completedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : completedAt_;
        } else {
          return completedAtBuilder_.getMessage();
        }
      }
      /**
       * .google.protobuf.Timestamp completedAt = 2;
       */
      public Builder setCompletedAt(com.google.protobuf.Timestamp value) {
        if (completedAtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          completedAt_ = value;
        } else {
          completedAtBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * .google.protobuf.Timestamp completedAt = 2;
       */
      public Builder setCompletedAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (completedAtBuilder_ == null) {
          completedAt_ = builderForValue.build();
        } else {
          completedAtBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * .google.protobuf.Timestamp completedAt = 2;
       */
      public Builder mergeCompletedAt(com.google.protobuf.Timestamp value) {
        if (completedAtBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            completedAt_ != null &&
            completedAt_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getCompletedAtBuilder().mergeFrom(value);
          } else {
            completedAt_ = value;
          }
        } else {
          completedAtBuilder_.mergeFrom(value);
        }
        if (completedAt_ != null) {
          bitField0_ |= 0x00000002;
          onChanged();
        }
        return this;
      }
      /**
       * .google.protobuf.Timestamp completedAt = 2;
       */
      public Builder clearCompletedAt() {
        bitField0_ = (bitField0_ & ~0x00000002);
        completedAt_ = null;
        if (completedAtBuilder_ != null) {
          completedAtBuilder_.dispose();
          completedAtBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * .google.protobuf.Timestamp completedAt = 2;
       */
      public com.google.protobuf.Timestamp.Builder getCompletedAtBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getCompletedAtFieldBuilder().getBuilder();
      }
      /**
       * .google.protobuf.Timestamp completedAt = 2;
       */
      public com.google.protobuf.TimestampOrBuilder getCompletedAtOrBuilder() {
        if (completedAtBuilder_ != null) {
          return completedAtBuilder_.getMessageOrBuilder();
        } else {
          return completedAt_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : completedAt_;
        }
      }
      /**
       * .google.protobuf.Timestamp completedAt = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          getCompletedAtFieldBuilder() {
        if (completedAtBuilder_ == null) {
          completedAtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getCompletedAt(),
                  getParentForChildren(),
                  isClean());
          completedAt_ = null;
        }
        return completedAtBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.CompletedTopologyChangeOperation)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.CompletedTopologyChangeOperation)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.CompletedTopologyChangeOperation getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PartitionJoinOperationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.PartitionJoinOperation)
      com.google.protobuf.MessageOrBuilder {

    /**
     * int32 partitionId = 1;
     * @return The partitionId.
     */
    int getPartitionId();

    /**
     * int32 priority = 2;
     * @return The priority.
     */
    int getPriority();
  }
  /**
   * Protobuf type {@code topology_protocol.PartitionJoinOperation}
   */
  public static final class PartitionJoinOperation extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.PartitionJoinOperation)
      PartitionJoinOperationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PartitionJoinOperation.newBuilder() to construct.
    private PartitionJoinOperation(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PartitionJoinOperation() {
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionJoinOperation_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionJoinOperation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation.Builder.class);
    }

    public static final int PARTITIONID_FIELD_NUMBER = 1;
    private int partitionId_ = 0;
    /**
     * int32 partitionId = 1;
     * @return The partitionId.
     */
    @java.lang.Override
    public int getPartitionId() {
      return partitionId_;
    }

    public static final int PRIORITY_FIELD_NUMBER = 2;
    private int priority_ = 0;
    /**
     * int32 priority = 2;
     * @return The priority.
     */
    @java.lang.Override
    public int getPriority() {
      return priority_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (partitionId_ != 0) {
        output.writeInt32(1, partitionId_);
      }
      if (priority_ != 0) {
        output.writeInt32(2, priority_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (partitionId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, partitionId_);
      }
      if (priority_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, priority_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation other = (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation) obj;

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

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

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.PartitionJoinOperation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.PartitionJoinOperation)
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionJoinOperation_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionJoinOperation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionJoinOperation_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation result = new io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.partitionId_ = partitionId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.priority_ = priority_;
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation.getDefaultInstance()) return this;
        if (other.getPartitionId() != 0) {
          setPartitionId(other.getPartitionId());
        }
        if (other.getPriority() != 0) {
          setPriority(other.getPriority());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private int partitionId_ ;
      /**
       * int32 partitionId = 1;
       * @return The partitionId.
       */
      @java.lang.Override
      public int getPartitionId() {
        return partitionId_;
      }
      /**
       * int32 partitionId = 1;
       * @param value The partitionId to set.
       * @return This builder for chaining.
       */
      public Builder setPartitionId(int value) {

        partitionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * int32 partitionId = 1;
       * @return This builder for chaining.
       */
      public Builder clearPartitionId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        partitionId_ = 0;
        onChanged();
        return this;
      }

      private int priority_ ;
      /**
       * int32 priority = 2;
       * @return The priority.
       */
      @java.lang.Override
      public int getPriority() {
        return priority_;
      }
      /**
       * int32 priority = 2;
       * @param value The priority to set.
       * @return This builder for chaining.
       */
      public Builder setPriority(int value) {

        priority_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * int32 priority = 2;
       * @return This builder for chaining.
       */
      public Builder clearPriority() {
        bitField0_ = (bitField0_ & ~0x00000002);
        priority_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.PartitionJoinOperation)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.PartitionJoinOperation)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionJoinOperation getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PartitionLeaveOperationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.PartitionLeaveOperation)
      com.google.protobuf.MessageOrBuilder {

    /**
     * int32 partitionId = 1;
     * @return The partitionId.
     */
    int getPartitionId();
  }
  /**
   * Protobuf type {@code topology_protocol.PartitionLeaveOperation}
   */
  public static final class PartitionLeaveOperation extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.PartitionLeaveOperation)
      PartitionLeaveOperationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PartitionLeaveOperation.newBuilder() to construct.
    private PartitionLeaveOperation(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PartitionLeaveOperation() {
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionLeaveOperation_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionLeaveOperation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation.Builder.class);
    }

    public static final int PARTITIONID_FIELD_NUMBER = 1;
    private int partitionId_ = 0;
    /**
     * int32 partitionId = 1;
     * @return The partitionId.
     */
    @java.lang.Override
    public int getPartitionId() {
      return partitionId_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (partitionId_ != 0) {
        output.writeInt32(1, partitionId_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (partitionId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, partitionId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation other = (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation) obj;

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

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

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.PartitionLeaveOperation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.PartitionLeaveOperation)
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionLeaveOperation_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionLeaveOperation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionLeaveOperation_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation result = new io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.partitionId_ = partitionId_;
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation.getDefaultInstance()) return this;
        if (other.getPartitionId() != 0) {
          setPartitionId(other.getPartitionId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private int partitionId_ ;
      /**
       * int32 partitionId = 1;
       * @return The partitionId.
       */
      @java.lang.Override
      public int getPartitionId() {
        return partitionId_;
      }
      /**
       * int32 partitionId = 1;
       * @param value The partitionId to set.
       * @return This builder for chaining.
       */
      public Builder setPartitionId(int value) {

        partitionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * int32 partitionId = 1;
       * @return This builder for chaining.
       */
      public Builder clearPartitionId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        partitionId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.PartitionLeaveOperation)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.PartitionLeaveOperation)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionLeaveOperation getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PartitionReconfigurePriorityOperationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.PartitionReconfigurePriorityOperation)
      com.google.protobuf.MessageOrBuilder {

    /**
     * int32 partitionId = 1;
     * @return The partitionId.
     */
    int getPartitionId();

    /**
     * int32 priority = 2;
     * @return The priority.
     */
    int getPriority();
  }
  /**
   * Protobuf type {@code topology_protocol.PartitionReconfigurePriorityOperation}
   */
  public static final class PartitionReconfigurePriorityOperation extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.PartitionReconfigurePriorityOperation)
      PartitionReconfigurePriorityOperationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PartitionReconfigurePriorityOperation.newBuilder() to construct.
    private PartitionReconfigurePriorityOperation(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PartitionReconfigurePriorityOperation() {
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionReconfigurePriorityOperation_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionReconfigurePriorityOperation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation.Builder.class);
    }

    public static final int PARTITIONID_FIELD_NUMBER = 1;
    private int partitionId_ = 0;
    /**
     * int32 partitionId = 1;
     * @return The partitionId.
     */
    @java.lang.Override
    public int getPartitionId() {
      return partitionId_;
    }

    public static final int PRIORITY_FIELD_NUMBER = 2;
    private int priority_ = 0;
    /**
     * int32 priority = 2;
     * @return The priority.
     */
    @java.lang.Override
    public int getPriority() {
      return priority_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (partitionId_ != 0) {
        output.writeInt32(1, partitionId_);
      }
      if (priority_ != 0) {
        output.writeInt32(2, priority_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (partitionId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, partitionId_);
      }
      if (priority_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, priority_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation other = (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation) obj;

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

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

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.PartitionReconfigurePriorityOperation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.PartitionReconfigurePriorityOperation)
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionReconfigurePriorityOperation_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionReconfigurePriorityOperation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionReconfigurePriorityOperation_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation result = new io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.partitionId_ = partitionId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.priority_ = priority_;
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation.getDefaultInstance()) return this;
        if (other.getPartitionId() != 0) {
          setPartitionId(other.getPartitionId());
        }
        if (other.getPriority() != 0) {
          setPriority(other.getPriority());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private int partitionId_ ;
      /**
       * int32 partitionId = 1;
       * @return The partitionId.
       */
      @java.lang.Override
      public int getPartitionId() {
        return partitionId_;
      }
      /**
       * int32 partitionId = 1;
       * @param value The partitionId to set.
       * @return This builder for chaining.
       */
      public Builder setPartitionId(int value) {

        partitionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * int32 partitionId = 1;
       * @return This builder for chaining.
       */
      public Builder clearPartitionId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        partitionId_ = 0;
        onChanged();
        return this;
      }

      private int priority_ ;
      /**
       * int32 priority = 2;
       * @return The priority.
       */
      @java.lang.Override
      public int getPriority() {
        return priority_;
      }
      /**
       * int32 priority = 2;
       * @param value The priority to set.
       * @return This builder for chaining.
       */
      public Builder setPriority(int value) {

        priority_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * int32 priority = 2;
       * @return This builder for chaining.
       */
      public Builder clearPriority() {
        bitField0_ = (bitField0_ & ~0x00000002);
        priority_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.PartitionReconfigurePriorityOperation)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.PartitionReconfigurePriorityOperation)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionReconfigurePriorityOperation getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PartitionForceReconfigureOperationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.PartitionForceReconfigureOperation)
      com.google.protobuf.MessageOrBuilder {

    /**
     * int32 partitionId = 1;
     * @return The partitionId.
     */
    int getPartitionId();

    /**
     * repeated string members = 2;
     * @return A list containing the members.
     */
    java.util.List
        getMembersList();
    /**
     * repeated string members = 2;
     * @return The count of members.
     */
    int getMembersCount();
    /**
     * repeated string members = 2;
     * @param index The index of the element to return.
     * @return The members at the given index.
     */
    java.lang.String getMembers(int index);
    /**
     * repeated string members = 2;
     * @param index The index of the value to return.
     * @return The bytes of the members at the given index.
     */
    com.google.protobuf.ByteString
        getMembersBytes(int index);
  }
  /**
   * Protobuf type {@code topology_protocol.PartitionForceReconfigureOperation}
   */
  public static final class PartitionForceReconfigureOperation extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.PartitionForceReconfigureOperation)
      PartitionForceReconfigureOperationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PartitionForceReconfigureOperation.newBuilder() to construct.
    private PartitionForceReconfigureOperation(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PartitionForceReconfigureOperation() {
      members_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionForceReconfigureOperation_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionForceReconfigureOperation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation.Builder.class);
    }

    public static final int PARTITIONID_FIELD_NUMBER = 1;
    private int partitionId_ = 0;
    /**
     * int32 partitionId = 1;
     * @return The partitionId.
     */
    @java.lang.Override
    public int getPartitionId() {
      return partitionId_;
    }

    public static final int MEMBERS_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList members_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * repeated string members = 2;
     * @return A list containing the members.
     */
    public com.google.protobuf.ProtocolStringList
        getMembersList() {
      return members_;
    }
    /**
     * repeated string members = 2;
     * @return The count of members.
     */
    public int getMembersCount() {
      return members_.size();
    }
    /**
     * repeated string members = 2;
     * @param index The index of the element to return.
     * @return The members at the given index.
     */
    public java.lang.String getMembers(int index) {
      return members_.get(index);
    }
    /**
     * repeated string members = 2;
     * @param index The index of the value to return.
     * @return The bytes of the members at the given index.
     */
    public com.google.protobuf.ByteString
        getMembersBytes(int index) {
      return members_.getByteString(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (partitionId_ != 0) {
        output.writeInt32(1, partitionId_);
      }
      for (int i = 0; i < members_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, members_.getRaw(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (partitionId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, partitionId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < members_.size(); i++) {
          dataSize += computeStringSizeNoTag(members_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getMembersList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation other = (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation) obj;

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

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + PARTITIONID_FIELD_NUMBER;
      hash = (53 * hash) + getPartitionId();
      if (getMembersCount() > 0) {
        hash = (37 * hash) + MEMBERS_FIELD_NUMBER;
        hash = (53 * hash) + getMembersList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.PartitionForceReconfigureOperation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.PartitionForceReconfigureOperation)
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionForceReconfigureOperation_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionForceReconfigureOperation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        partitionId_ = 0;
        members_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionForceReconfigureOperation_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation result = new io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.partitionId_ = partitionId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          members_.makeImmutable();
          result.members_ = members_;
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation.getDefaultInstance()) return this;
        if (other.getPartitionId() != 0) {
          setPartitionId(other.getPartitionId());
        }
        if (!other.members_.isEmpty()) {
          if (members_.isEmpty()) {
            members_ = other.members_;
            bitField0_ |= 0x00000002;
          } else {
            ensureMembersIsMutable();
            members_.addAll(other.members_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private int partitionId_ ;
      /**
       * int32 partitionId = 1;
       * @return The partitionId.
       */
      @java.lang.Override
      public int getPartitionId() {
        return partitionId_;
      }
      /**
       * int32 partitionId = 1;
       * @param value The partitionId to set.
       * @return This builder for chaining.
       */
      public Builder setPartitionId(int value) {

        partitionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * int32 partitionId = 1;
       * @return This builder for chaining.
       */
      public Builder clearPartitionId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        partitionId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList members_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureMembersIsMutable() {
        if (!members_.isModifiable()) {
          members_ = new com.google.protobuf.LazyStringArrayList(members_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * repeated string members = 2;
       * @return A list containing the members.
       */
      public com.google.protobuf.ProtocolStringList
          getMembersList() {
        members_.makeImmutable();
        return members_;
      }
      /**
       * repeated string members = 2;
       * @return The count of members.
       */
      public int getMembersCount() {
        return members_.size();
      }
      /**
       * repeated string members = 2;
       * @param index The index of the element to return.
       * @return The members at the given index.
       */
      public java.lang.String getMembers(int index) {
        return members_.get(index);
      }
      /**
       * repeated string members = 2;
       * @param index The index of the value to return.
       * @return The bytes of the members at the given index.
       */
      public com.google.protobuf.ByteString
          getMembersBytes(int index) {
        return members_.getByteString(index);
      }
      /**
       * repeated string members = 2;
       * @param index The index to set the value at.
       * @param value The members to set.
       * @return This builder for chaining.
       */
      public Builder setMembers(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureMembersIsMutable();
        members_.set(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string members = 2;
       * @param value The members to add.
       * @return This builder for chaining.
       */
      public Builder addMembers(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureMembersIsMutable();
        members_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string members = 2;
       * @param values The members to add.
       * @return This builder for chaining.
       */
      public Builder addAllMembers(
          java.lang.Iterable values) {
        ensureMembersIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, members_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * repeated string members = 2;
       * @return This builder for chaining.
       */
      public Builder clearMembers() {
        members_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);;
        onChanged();
        return this;
      }
      /**
       * repeated string members = 2;
       * @param value The bytes of the members to add.
       * @return This builder for chaining.
       */
      public Builder addMembersBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ensureMembersIsMutable();
        members_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.PartitionForceReconfigureOperation)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.PartitionForceReconfigureOperation)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionForceReconfigureOperation getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PartitionDisableExporterOperationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.PartitionDisableExporterOperation)
      com.google.protobuf.MessageOrBuilder {

    /**
     * int32 partitionId = 1;
     * @return The partitionId.
     */
    int getPartitionId();

    /**
     * string exporterId = 2;
     * @return The exporterId.
     */
    java.lang.String getExporterId();
    /**
     * string exporterId = 2;
     * @return The bytes for exporterId.
     */
    com.google.protobuf.ByteString
        getExporterIdBytes();
  }
  /**
   * Protobuf type {@code topology_protocol.PartitionDisableExporterOperation}
   */
  public static final class PartitionDisableExporterOperation extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.PartitionDisableExporterOperation)
      PartitionDisableExporterOperationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PartitionDisableExporterOperation.newBuilder() to construct.
    private PartitionDisableExporterOperation(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PartitionDisableExporterOperation() {
      exporterId_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionDisableExporterOperation_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionDisableExporterOperation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation.Builder.class);
    }

    public static final int PARTITIONID_FIELD_NUMBER = 1;
    private int partitionId_ = 0;
    /**
     * int32 partitionId = 1;
     * @return The partitionId.
     */
    @java.lang.Override
    public int getPartitionId() {
      return partitionId_;
    }

    public static final int EXPORTERID_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object exporterId_ = "";
    /**
     * string exporterId = 2;
     * @return The exporterId.
     */
    @java.lang.Override
    public java.lang.String getExporterId() {
      java.lang.Object ref = exporterId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        exporterId_ = s;
        return s;
      }
    }
    /**
     * string exporterId = 2;
     * @return The bytes for exporterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getExporterIdBytes() {
      java.lang.Object ref = exporterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        exporterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation other = (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation) obj;

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

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

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.PartitionDisableExporterOperation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.PartitionDisableExporterOperation)
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionDisableExporterOperation_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionDisableExporterOperation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionDisableExporterOperation_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation result = new io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.partitionId_ = partitionId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.exporterId_ = exporterId_;
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation.getDefaultInstance()) return this;
        if (other.getPartitionId() != 0) {
          setPartitionId(other.getPartitionId());
        }
        if (!other.getExporterId().isEmpty()) {
          exporterId_ = other.exporterId_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private int partitionId_ ;
      /**
       * int32 partitionId = 1;
       * @return The partitionId.
       */
      @java.lang.Override
      public int getPartitionId() {
        return partitionId_;
      }
      /**
       * int32 partitionId = 1;
       * @param value The partitionId to set.
       * @return This builder for chaining.
       */
      public Builder setPartitionId(int value) {

        partitionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * int32 partitionId = 1;
       * @return This builder for chaining.
       */
      public Builder clearPartitionId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        partitionId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object exporterId_ = "";
      /**
       * string exporterId = 2;
       * @return The exporterId.
       */
      public java.lang.String getExporterId() {
        java.lang.Object ref = exporterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          exporterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string exporterId = 2;
       * @return The bytes for exporterId.
       */
      public com.google.protobuf.ByteString
          getExporterIdBytes() {
        java.lang.Object ref = exporterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          exporterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string exporterId = 2;
       * @param value The exporterId to set.
       * @return This builder for chaining.
       */
      public Builder setExporterId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        exporterId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * string exporterId = 2;
       * @return This builder for chaining.
       */
      public Builder clearExporterId() {
        exporterId_ = getDefaultInstance().getExporterId();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * string exporterId = 2;
       * @param value The bytes for exporterId to set.
       * @return This builder for chaining.
       */
      public Builder setExporterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        exporterId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.PartitionDisableExporterOperation)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.PartitionDisableExporterOperation)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionDisableExporterOperation getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PartitionEnableExporterOperationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.PartitionEnableExporterOperation)
      com.google.protobuf.MessageOrBuilder {

    /**
     * int32 partitionId = 1;
     * @return The partitionId.
     */
    int getPartitionId();

    /**
     * string exporterId = 2;
     * @return The exporterId.
     */
    java.lang.String getExporterId();
    /**
     * string exporterId = 2;
     * @return The bytes for exporterId.
     */
    com.google.protobuf.ByteString
        getExporterIdBytes();

    /**
     * optional string initializeFrom = 3;
     * @return Whether the initializeFrom field is set.
     */
    boolean hasInitializeFrom();
    /**
     * optional string initializeFrom = 3;
     * @return The initializeFrom.
     */
    java.lang.String getInitializeFrom();
    /**
     * optional string initializeFrom = 3;
     * @return The bytes for initializeFrom.
     */
    com.google.protobuf.ByteString
        getInitializeFromBytes();
  }
  /**
   * Protobuf type {@code topology_protocol.PartitionEnableExporterOperation}
   */
  public static final class PartitionEnableExporterOperation extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.PartitionEnableExporterOperation)
      PartitionEnableExporterOperationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PartitionEnableExporterOperation.newBuilder() to construct.
    private PartitionEnableExporterOperation(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PartitionEnableExporterOperation() {
      exporterId_ = "";
      initializeFrom_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionEnableExporterOperation_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionEnableExporterOperation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation.Builder.class);
    }

    private int bitField0_;
    public static final int PARTITIONID_FIELD_NUMBER = 1;
    private int partitionId_ = 0;
    /**
     * int32 partitionId = 1;
     * @return The partitionId.
     */
    @java.lang.Override
    public int getPartitionId() {
      return partitionId_;
    }

    public static final int EXPORTERID_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object exporterId_ = "";
    /**
     * string exporterId = 2;
     * @return The exporterId.
     */
    @java.lang.Override
    public java.lang.String getExporterId() {
      java.lang.Object ref = exporterId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        exporterId_ = s;
        return s;
      }
    }
    /**
     * string exporterId = 2;
     * @return The bytes for exporterId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getExporterIdBytes() {
      java.lang.Object ref = exporterId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        exporterId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INITIALIZEFROM_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object initializeFrom_ = "";
    /**
     * optional string initializeFrom = 3;
     * @return Whether the initializeFrom field is set.
     */
    @java.lang.Override
    public boolean hasInitializeFrom() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional string initializeFrom = 3;
     * @return The initializeFrom.
     */
    @java.lang.Override
    public java.lang.String getInitializeFrom() {
      java.lang.Object ref = initializeFrom_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        initializeFrom_ = s;
        return s;
      }
    }
    /**
     * optional string initializeFrom = 3;
     * @return The bytes for initializeFrom.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getInitializeFromBytes() {
      java.lang.Object ref = initializeFrom_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        initializeFrom_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (partitionId_ != 0) {
        output.writeInt32(1, partitionId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(exporterId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, exporterId_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, initializeFrom_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (partitionId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, partitionId_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(exporterId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, exporterId_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, initializeFrom_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation other = (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation) obj;

      if (getPartitionId()
          != other.getPartitionId()) return false;
      if (!getExporterId()
          .equals(other.getExporterId())) return false;
      if (hasInitializeFrom() != other.hasInitializeFrom()) return false;
      if (hasInitializeFrom()) {
        if (!getInitializeFrom()
            .equals(other.getInitializeFrom())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + PARTITIONID_FIELD_NUMBER;
      hash = (53 * hash) + getPartitionId();
      hash = (37 * hash) + EXPORTERID_FIELD_NUMBER;
      hash = (53 * hash) + getExporterId().hashCode();
      if (hasInitializeFrom()) {
        hash = (37 * hash) + INITIALIZEFROM_FIELD_NUMBER;
        hash = (53 * hash) + getInitializeFrom().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.PartitionEnableExporterOperation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.PartitionEnableExporterOperation)
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionEnableExporterOperation_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionEnableExporterOperation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionEnableExporterOperation_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation result = new io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.partitionId_ = partitionId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.exporterId_ = exporterId_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.initializeFrom_ = initializeFrom_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation.getDefaultInstance()) return this;
        if (other.getPartitionId() != 0) {
          setPartitionId(other.getPartitionId());
        }
        if (!other.getExporterId().isEmpty()) {
          exporterId_ = other.exporterId_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.hasInitializeFrom()) {
          initializeFrom_ = other.initializeFrom_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private int partitionId_ ;
      /**
       * int32 partitionId = 1;
       * @return The partitionId.
       */
      @java.lang.Override
      public int getPartitionId() {
        return partitionId_;
      }
      /**
       * int32 partitionId = 1;
       * @param value The partitionId to set.
       * @return This builder for chaining.
       */
      public Builder setPartitionId(int value) {

        partitionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * int32 partitionId = 1;
       * @return This builder for chaining.
       */
      public Builder clearPartitionId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        partitionId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object exporterId_ = "";
      /**
       * string exporterId = 2;
       * @return The exporterId.
       */
      public java.lang.String getExporterId() {
        java.lang.Object ref = exporterId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          exporterId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string exporterId = 2;
       * @return The bytes for exporterId.
       */
      public com.google.protobuf.ByteString
          getExporterIdBytes() {
        java.lang.Object ref = exporterId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          exporterId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string exporterId = 2;
       * @param value The exporterId to set.
       * @return This builder for chaining.
       */
      public Builder setExporterId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        exporterId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * string exporterId = 2;
       * @return This builder for chaining.
       */
      public Builder clearExporterId() {
        exporterId_ = getDefaultInstance().getExporterId();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * string exporterId = 2;
       * @param value The bytes for exporterId to set.
       * @return This builder for chaining.
       */
      public Builder setExporterIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        exporterId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object initializeFrom_ = "";
      /**
       * optional string initializeFrom = 3;
       * @return Whether the initializeFrom field is set.
       */
      public boolean hasInitializeFrom() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional string initializeFrom = 3;
       * @return The initializeFrom.
       */
      public java.lang.String getInitializeFrom() {
        java.lang.Object ref = initializeFrom_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          initializeFrom_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string initializeFrom = 3;
       * @return The bytes for initializeFrom.
       */
      public com.google.protobuf.ByteString
          getInitializeFromBytes() {
        java.lang.Object ref = initializeFrom_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          initializeFrom_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string initializeFrom = 3;
       * @param value The initializeFrom to set.
       * @return This builder for chaining.
       */
      public Builder setInitializeFrom(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        initializeFrom_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * optional string initializeFrom = 3;
       * @return This builder for chaining.
       */
      public Builder clearInitializeFrom() {
        initializeFrom_ = getDefaultInstance().getInitializeFrom();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * optional string initializeFrom = 3;
       * @param value The bytes for initializeFrom to set.
       * @return This builder for chaining.
       */
      public Builder setInitializeFromBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        initializeFrom_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.PartitionEnableExporterOperation)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.PartitionEnableExporterOperation)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionEnableExporterOperation getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PartitionBootstrapOperationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.PartitionBootstrapOperation)
      com.google.protobuf.MessageOrBuilder {

    /**
     * int32 partitionId = 1;
     * @return The partitionId.
     */
    int getPartitionId();

    /**
     * int32 priority = 2;
     * @return The priority.
     */
    int getPriority();
  }
  /**
   * Protobuf type {@code topology_protocol.PartitionBootstrapOperation}
   */
  public static final class PartitionBootstrapOperation extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.PartitionBootstrapOperation)
      PartitionBootstrapOperationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PartitionBootstrapOperation.newBuilder() to construct.
    private PartitionBootstrapOperation(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PartitionBootstrapOperation() {
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionBootstrapOperation_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionBootstrapOperation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation.Builder.class);
    }

    public static final int PARTITIONID_FIELD_NUMBER = 1;
    private int partitionId_ = 0;
    /**
     * int32 partitionId = 1;
     * @return The partitionId.
     */
    @java.lang.Override
    public int getPartitionId() {
      return partitionId_;
    }

    public static final int PRIORITY_FIELD_NUMBER = 2;
    private int priority_ = 0;
    /**
     * int32 priority = 2;
     * @return The priority.
     */
    @java.lang.Override
    public int getPriority() {
      return priority_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (partitionId_ != 0) {
        output.writeInt32(1, partitionId_);
      }
      if (priority_ != 0) {
        output.writeInt32(2, priority_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (partitionId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, partitionId_);
      }
      if (priority_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, priority_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation other = (io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation) obj;

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

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

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.PartitionBootstrapOperation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.PartitionBootstrapOperation)
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionBootstrapOperation_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionBootstrapOperation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_PartitionBootstrapOperation_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation result = new io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.partitionId_ = partitionId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.priority_ = priority_;
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation.getDefaultInstance()) return this;
        if (other.getPartitionId() != 0) {
          setPartitionId(other.getPartitionId());
        }
        if (other.getPriority() != 0) {
          setPriority(other.getPriority());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private int partitionId_ ;
      /**
       * int32 partitionId = 1;
       * @return The partitionId.
       */
      @java.lang.Override
      public int getPartitionId() {
        return partitionId_;
      }
      /**
       * int32 partitionId = 1;
       * @param value The partitionId to set.
       * @return This builder for chaining.
       */
      public Builder setPartitionId(int value) {

        partitionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * int32 partitionId = 1;
       * @return This builder for chaining.
       */
      public Builder clearPartitionId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        partitionId_ = 0;
        onChanged();
        return this;
      }

      private int priority_ ;
      /**
       * int32 priority = 2;
       * @return The priority.
       */
      @java.lang.Override
      public int getPriority() {
        return priority_;
      }
      /**
       * int32 priority = 2;
       * @param value The priority to set.
       * @return This builder for chaining.
       */
      public Builder setPriority(int value) {

        priority_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * int32 priority = 2;
       * @return This builder for chaining.
       */
      public Builder clearPriority() {
        bitField0_ = (bitField0_ & ~0x00000002);
        priority_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.PartitionBootstrapOperation)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.PartitionBootstrapOperation)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.PartitionBootstrapOperation getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MemberJoinOperationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.MemberJoinOperation)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code topology_protocol.MemberJoinOperation}
   */
  public static final class MemberJoinOperation extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.MemberJoinOperation)
      MemberJoinOperationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MemberJoinOperation.newBuilder() to construct.
    private MemberJoinOperation(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private MemberJoinOperation() {
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MemberJoinOperation_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MemberJoinOperation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation.Builder.class);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation other = (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation) obj;

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

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

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.MemberJoinOperation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.MemberJoinOperation)
        io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MemberJoinOperation_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MemberJoinOperation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MemberJoinOperation_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation result = new io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.MemberJoinOperation)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.MemberJoinOperation)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberJoinOperation getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MemberLeaveOperationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.MemberLeaveOperation)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code topology_protocol.MemberLeaveOperation}
   */
  public static final class MemberLeaveOperation extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.MemberLeaveOperation)
      MemberLeaveOperationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MemberLeaveOperation.newBuilder() to construct.
    private MemberLeaveOperation(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private MemberLeaveOperation() {
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MemberLeaveOperation_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MemberLeaveOperation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation.Builder.class);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation other = (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation) obj;

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

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

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.MemberLeaveOperation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.MemberLeaveOperation)
        io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MemberLeaveOperation_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MemberLeaveOperation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MemberLeaveOperation_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation result = new io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.MemberLeaveOperation)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.MemberLeaveOperation)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberLeaveOperation getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MemberRemoveOperationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:topology_protocol.MemberRemoveOperation)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string memberToRemove = 1;
     * @return The memberToRemove.
     */
    java.lang.String getMemberToRemove();
    /**
     * string memberToRemove = 1;
     * @return The bytes for memberToRemove.
     */
    com.google.protobuf.ByteString
        getMemberToRemoveBytes();
  }
  /**
   * Protobuf type {@code topology_protocol.MemberRemoveOperation}
   */
  public static final class MemberRemoveOperation extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:topology_protocol.MemberRemoveOperation)
      MemberRemoveOperationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MemberRemoveOperation.newBuilder() to construct.
    private MemberRemoveOperation(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private MemberRemoveOperation() {
      memberToRemove_ = "";
    }

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

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MemberRemoveOperation_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MemberRemoveOperation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation.Builder.class);
    }

    public static final int MEMBERTOREMOVE_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object memberToRemove_ = "";
    /**
     * string memberToRemove = 1;
     * @return The memberToRemove.
     */
    @java.lang.Override
    public java.lang.String getMemberToRemove() {
      java.lang.Object ref = memberToRemove_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        memberToRemove_ = s;
        return s;
      }
    }
    /**
     * string memberToRemove = 1;
     * @return The bytes for memberToRemove.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMemberToRemoveBytes() {
      java.lang.Object ref = memberToRemove_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        memberToRemove_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation)) {
        return super.equals(obj);
      }
      io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation other = (io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation) obj;

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

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

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code topology_protocol.MemberRemoveOperation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:topology_protocol.MemberRemoveOperation)
        io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MemberRemoveOperation_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MemberRemoveOperation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation.class, io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation.Builder.class);
      }

      // Construct using io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.internal_static_topology_protocol_MemberRemoveOperation_descriptor;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation getDefaultInstanceForType() {
        return io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation.getDefaultInstance();
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation build() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation buildPartial() {
        io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation result = new io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.memberToRemove_ = memberToRemove_;
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation) {
          return mergeFrom((io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation other) {
        if (other == io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation.getDefaultInstance()) return this;
        if (!other.getMemberToRemove().isEmpty()) {
          memberToRemove_ = other.memberToRemove_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private java.lang.Object memberToRemove_ = "";
      /**
       * string memberToRemove = 1;
       * @return The memberToRemove.
       */
      public java.lang.String getMemberToRemove() {
        java.lang.Object ref = memberToRemove_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          memberToRemove_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string memberToRemove = 1;
       * @return The bytes for memberToRemove.
       */
      public com.google.protobuf.ByteString
          getMemberToRemoveBytes() {
        java.lang.Object ref = memberToRemove_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          memberToRemove_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string memberToRemove = 1;
       * @param value The memberToRemove to set.
       * @return This builder for chaining.
       */
      public Builder setMemberToRemove(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        memberToRemove_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * string memberToRemove = 1;
       * @return This builder for chaining.
       */
      public Builder clearMemberToRemove() {
        memberToRemove_ = getDefaultInstance().getMemberToRemove();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * string memberToRemove = 1;
       * @param value The bytes for memberToRemove to set.
       * @return This builder for chaining.
       */
      public Builder setMemberToRemoveBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        memberToRemove_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:topology_protocol.MemberRemoveOperation)
    }

    // @@protoc_insertion_point(class_scope:topology_protocol.MemberRemoveOperation)
    private static final io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation();
    }

    public static io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public io.camunda.zeebe.dynamic.config.protocol.Topology.MemberRemoveOperation getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_GossipState_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_GossipState_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_ClusterTopology_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_ClusterTopology_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_ClusterTopology_MembersEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_ClusterTopology_MembersEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_RoutingState_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_RoutingState_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_MessageCorrelation_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_MessageCorrelation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_MessageCorrelation_HashMod_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_MessageCorrelation_HashMod_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_MemberState_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_MemberState_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_MemberState_PartitionsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_MemberState_PartitionsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_PartitionState_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_PartitionState_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_PartitionConfig_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_PartitionConfig_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_ExportersConfig_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_ExportersConfig_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_ExportersConfig_ExportersEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_ExportersConfig_ExportersEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_ExporterState_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_ExporterState_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_ClusterChangePlan_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_ClusterChangePlan_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_CompletedChange_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_CompletedChange_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_TopologyChangeOperation_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_TopologyChangeOperation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_CompletedTopologyChangeOperation_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_CompletedTopologyChangeOperation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_PartitionJoinOperation_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_PartitionJoinOperation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_PartitionLeaveOperation_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_PartitionLeaveOperation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_PartitionReconfigurePriorityOperation_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_PartitionReconfigurePriorityOperation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_PartitionForceReconfigureOperation_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_PartitionForceReconfigureOperation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_PartitionDisableExporterOperation_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_PartitionDisableExporterOperation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_PartitionEnableExporterOperation_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_PartitionEnableExporterOperation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_PartitionBootstrapOperation_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_PartitionBootstrapOperation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_MemberJoinOperation_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_MemberJoinOperation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_MemberLeaveOperation_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_MemberLeaveOperation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_topology_protocol_MemberRemoveOperation_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_topology_protocol_MemberRemoveOperation_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\016topology.proto\022\021topology_protocol\032\037goo" +
      "gle/protobuf/timestamp.proto\"J\n\013GossipSt" +
      "ate\022;\n\017clusterTopology\030\001 \001(\0132\".topology_" +
      "protocol.ClusterTopology\"\340\002\n\017ClusterTopo" +
      "logy\022\017\n\007version\030\001 \001(\003\022@\n\007members\030\002 \003(\0132/" +
      ".topology_protocol.ClusterTopology.Membe" +
      "rsEntry\0226\n\nlastChange\030\003 \001(\0132\".topology_p" +
      "rotocol.CompletedChange\022;\n\rcurrentChange" +
      "\030\004 \001(\0132$.topology_protocol.ClusterChange" +
      "Plan\0225\n\014routingState\030\005 \001(\0132\037.topology_pr" +
      "otocol.RoutingState\032N\n\014MembersEntry\022\013\n\003k" +
      "ey\030\001 \001(\t\022-\n\005value\030\002 \001(\0132\036.topology_proto" +
      "col.MemberState:\0028\001\"|\n\014RoutingState\022\017\n\007v" +
      "ersion\030\001 \001(\003\022\030\n\020activePartitions\030\002 \003(\021\022A" +
      "\n\022messageCorrelation\030\003 \001(\0132%.topology_pr" +
      "otocol.MessageCorrelation\"\210\001\n\022MessageCor" +
      "relation\022@\n\007hashMod\030\001 \001(\0132-.topology_pro" +
      "tocol.MessageCorrelation.HashModH\000\032!\n\007Ha" +
      "shMod\022\026\n\016partitionCount\030\001 \001(\021B\r\n\013correla" +
      "tion\"\222\002\n\013MemberState\022\017\n\007version\030\001 \001(\003\022/\n" +
      "\013lastUpdated\030\002 \001(\0132\032.google.protobuf.Tim" +
      "estamp\022\'\n\005state\030\003 \001(\0162\030.topology_protoco" +
      "l.State\022B\n\npartitions\030\004 \003(\0132..topology_p" +
      "rotocol.MemberState.PartitionsEntry\032T\n\017P" +
      "artitionsEntry\022\013\n\003key\030\001 \001(\005\0220\n\005value\030\002 \001" +
      "(\0132!.topology_protocol.PartitionState:\0028" +
      "\001\"\177\n\016PartitionState\022\'\n\005state\030\001 \001(\0162\030.top" +
      "ology_protocol.State\022\020\n\010priority\030\002 \001(\005\0222" +
      "\n\006config\030\003 \001(\0132\".topology_protocol.Parti" +
      "tionConfig\"H\n\017PartitionConfig\0225\n\texporti" +
      "ng\030\001 \001(\0132\".topology_protocol.ExportersCo" +
      "nfig\"\253\001\n\017ExportersConfig\022D\n\texporters\030\001 " +
      "\003(\01321.topology_protocol.ExportersConfig." +
      "ExportersEntry\032R\n\016ExportersEntry\022\013\n\003key\030" +
      "\001 \001(\t\022/\n\005value\030\002 \001(\0132 .topology_protocol" +
      ".ExporterState:\0028\001\"\222\001\n\rExporterState\0226\n\005" +
      "state\030\001 \001(\0162\'.topology_protocol.EnabledD" +
      "isabledState\022\027\n\017metadataVersion\030\002 \001(\003\022\034\n" +
      "\017initializedFrom\030\003 \001(\tH\000\210\001\001B\022\n\020_initiali" +
      "zedFrom\"\251\002\n\021ClusterChangePlan\022\n\n\002id\030\001 \001(" +
      "\003\022\017\n\007version\030\002 \001(\005\022/\n\006status\030\003 \001(\0162\037.top" +
      "ology_protocol.ChangeStatus\022-\n\tstartedAt" +
      "\030\004 \001(\0132\032.google.protobuf.Timestamp\022P\n\023co" +
      "mpletedOperations\030\005 \003(\01323.topology_proto" +
      "col.CompletedTopologyChangeOperation\022E\n\021" +
      "pendingOperations\030\006 \003(\0132*.topology_proto" +
      "col.TopologyChangeOperation\"\256\001\n\017Complete" +
      "dChange\022\n\n\002id\030\001 \001(\003\022/\n\006status\030\002 \001(\0162\037.to" +
      "pology_protocol.ChangeStatus\022-\n\tstartedA" +
      "t\030\003 \001(\0132\032.google.protobuf.Timestamp\022/\n\013c" +
      "ompletedAt\030\004 \001(\0132\032.google.protobuf.Times" +
      "tamp\"\300\006\n\027TopologyChangeOperation\022\020\n\010memb" +
      "erId\030\001 \001(\t\022B\n\rpartitionJoin\030\002 \001(\0132).topo" +
      "logy_protocol.PartitionJoinOperationH\000\022D" +
      "\n\016partitionLeave\030\003 \001(\0132*.topology_protoc" +
      "ol.PartitionLeaveOperationH\000\022<\n\nmemberJo" +
      "in\030\004 \001(\0132&.topology_protocol.MemberJoinO" +
      "perationH\000\022>\n\013memberLeave\030\005 \001(\0132\'.topolo" +
      "gy_protocol.MemberLeaveOperationH\000\022`\n\034pa" +
      "rtitionReconfigurePriority\030\006 \001(\01328.topol" +
      "ogy_protocol.PartitionReconfigurePriorit" +
      "yOperationH\000\022Z\n\031partitionForceReconfigur" +
      "e\030\007 \001(\01325.topology_protocol.PartitionFor" +
      "ceReconfigureOperationH\000\022@\n\014memberRemove" +
      "\030\010 \001(\0132(.topology_protocol.MemberRemoveO" +
      "perationH\000\022X\n\030partitionDisableExporter\030\t" +
      " \001(\01324.topology_protocol.PartitionDisabl" +
      "eExporterOperationH\000\022V\n\027partitionEnableE" +
      "xporter\030\n \001(\01323.topology_protocol.Partit" +
      "ionEnableExporterOperationH\000\022L\n\022partitio" +
      "nBootstrap\030\013 \001(\0132..topology_protocol.Par" +
      "titionBootstrapOperationH\000B\013\n\toperation\"" +
      "\222\001\n CompletedTopologyChangeOperation\022=\n\t" +
      "operation\030\001 \001(\0132*.topology_protocol.Topo" +
      "logyChangeOperation\022/\n\013completedAt\030\002 \001(\013" +
      "2\032.google.protobuf.Timestamp\"?\n\026Partitio" +
      "nJoinOperation\022\023\n\013partitionId\030\001 \001(\005\022\020\n\010p" +
      "riority\030\002 \001(\005\".\n\027PartitionLeaveOperation" +
      "\022\023\n\013partitionId\030\001 \001(\005\"N\n%PartitionReconf" +
      "igurePriorityOperation\022\023\n\013partitionId\030\001 " +
      "\001(\005\022\020\n\010priority\030\002 \001(\005\"J\n\"PartitionForceR" +
      "econfigureOperation\022\023\n\013partitionId\030\001 \001(\005" +
      "\022\017\n\007members\030\002 \003(\t\"L\n!PartitionDisableExp" +
      "orterOperation\022\023\n\013partitionId\030\001 \001(\005\022\022\n\ne" +
      "xporterId\030\002 \001(\t\"{\n PartitionEnableExport" +
      "erOperation\022\023\n\013partitionId\030\001 \001(\005\022\022\n\nexpo" +
      "rterId\030\002 \001(\t\022\033\n\016initializeFrom\030\003 \001(\tH\000\210\001" +
      "\001B\021\n\017_initializeFrom\"D\n\033PartitionBootstr" +
      "apOperation\022\023\n\013partitionId\030\001 \001(\005\022\020\n\010prio" +
      "rity\030\002 \001(\005\"\025\n\023MemberJoinOperation\"\026\n\024Mem" +
      "berLeaveOperation\"/\n\025MemberRemoveOperati" +
      "on\022\026\n\016memberToRemove\030\001 \001(\t*W\n\005State\022\013\n\007U" +
      "NKNOWN\020\000\022\013\n\007JOINING\020\001\022\n\n\006ACTIVE\020\002\022\013\n\007LEA" +
      "VING\020\003\022\010\n\004LEFT\020\004\022\021\n\rBOOTSTRAPPING\020\005*d\n\014C" +
      "hangeStatus\022\031\n\025CHANGE_STATUS_UNKNOWN\020\000\022\017" +
      "\n\013IN_PROGRESS\020\001\022\r\n\tCOMPLETED\020\002\022\n\n\006FAILED" +
      "\020\003\022\r\n\tCANCELLED\020\004*O\n\024EnabledDisabledStat" +
      "e\022\034\n\030ENABLED_DISBALED_UNKNOWN\020\000\022\013\n\007ENABL" +
      "ED\020\001\022\014\n\010DISABLED\020\002B*\n(io.camunda.zeebe.d" +
      "ynamic.config.protocolb\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.google.protobuf.TimestampProto.getDescriptor(),
        });
    internal_static_topology_protocol_GossipState_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_topology_protocol_GossipState_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_GossipState_descriptor,
        new java.lang.String[] { "ClusterTopology", });
    internal_static_topology_protocol_ClusterTopology_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_topology_protocol_ClusterTopology_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_ClusterTopology_descriptor,
        new java.lang.String[] { "Version", "Members", "LastChange", "CurrentChange", "RoutingState", });
    internal_static_topology_protocol_ClusterTopology_MembersEntry_descriptor =
      internal_static_topology_protocol_ClusterTopology_descriptor.getNestedTypes().get(0);
    internal_static_topology_protocol_ClusterTopology_MembersEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_ClusterTopology_MembersEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_topology_protocol_RoutingState_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_topology_protocol_RoutingState_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_RoutingState_descriptor,
        new java.lang.String[] { "Version", "ActivePartitions", "MessageCorrelation", });
    internal_static_topology_protocol_MessageCorrelation_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_topology_protocol_MessageCorrelation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_MessageCorrelation_descriptor,
        new java.lang.String[] { "HashMod", "Correlation", });
    internal_static_topology_protocol_MessageCorrelation_HashMod_descriptor =
      internal_static_topology_protocol_MessageCorrelation_descriptor.getNestedTypes().get(0);
    internal_static_topology_protocol_MessageCorrelation_HashMod_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_MessageCorrelation_HashMod_descriptor,
        new java.lang.String[] { "PartitionCount", });
    internal_static_topology_protocol_MemberState_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_topology_protocol_MemberState_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_MemberState_descriptor,
        new java.lang.String[] { "Version", "LastUpdated", "State", "Partitions", });
    internal_static_topology_protocol_MemberState_PartitionsEntry_descriptor =
      internal_static_topology_protocol_MemberState_descriptor.getNestedTypes().get(0);
    internal_static_topology_protocol_MemberState_PartitionsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_MemberState_PartitionsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_topology_protocol_PartitionState_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_topology_protocol_PartitionState_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_PartitionState_descriptor,
        new java.lang.String[] { "State", "Priority", "Config", });
    internal_static_topology_protocol_PartitionConfig_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_topology_protocol_PartitionConfig_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_PartitionConfig_descriptor,
        new java.lang.String[] { "Exporting", });
    internal_static_topology_protocol_ExportersConfig_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_topology_protocol_ExportersConfig_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_ExportersConfig_descriptor,
        new java.lang.String[] { "Exporters", });
    internal_static_topology_protocol_ExportersConfig_ExportersEntry_descriptor =
      internal_static_topology_protocol_ExportersConfig_descriptor.getNestedTypes().get(0);
    internal_static_topology_protocol_ExportersConfig_ExportersEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_ExportersConfig_ExportersEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_topology_protocol_ExporterState_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_topology_protocol_ExporterState_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_ExporterState_descriptor,
        new java.lang.String[] { "State", "MetadataVersion", "InitializedFrom", });
    internal_static_topology_protocol_ClusterChangePlan_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_topology_protocol_ClusterChangePlan_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_ClusterChangePlan_descriptor,
        new java.lang.String[] { "Id", "Version", "Status", "StartedAt", "CompletedOperations", "PendingOperations", });
    internal_static_topology_protocol_CompletedChange_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_topology_protocol_CompletedChange_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_CompletedChange_descriptor,
        new java.lang.String[] { "Id", "Status", "StartedAt", "CompletedAt", });
    internal_static_topology_protocol_TopologyChangeOperation_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_topology_protocol_TopologyChangeOperation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_TopologyChangeOperation_descriptor,
        new java.lang.String[] { "MemberId", "PartitionJoin", "PartitionLeave", "MemberJoin", "MemberLeave", "PartitionReconfigurePriority", "PartitionForceReconfigure", "MemberRemove", "PartitionDisableExporter", "PartitionEnableExporter", "PartitionBootstrap", "Operation", });
    internal_static_topology_protocol_CompletedTopologyChangeOperation_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_topology_protocol_CompletedTopologyChangeOperation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_CompletedTopologyChangeOperation_descriptor,
        new java.lang.String[] { "Operation", "CompletedAt", });
    internal_static_topology_protocol_PartitionJoinOperation_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_topology_protocol_PartitionJoinOperation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_PartitionJoinOperation_descriptor,
        new java.lang.String[] { "PartitionId", "Priority", });
    internal_static_topology_protocol_PartitionLeaveOperation_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_topology_protocol_PartitionLeaveOperation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_PartitionLeaveOperation_descriptor,
        new java.lang.String[] { "PartitionId", });
    internal_static_topology_protocol_PartitionReconfigurePriorityOperation_descriptor =
      getDescriptor().getMessageTypes().get(15);
    internal_static_topology_protocol_PartitionReconfigurePriorityOperation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_PartitionReconfigurePriorityOperation_descriptor,
        new java.lang.String[] { "PartitionId", "Priority", });
    internal_static_topology_protocol_PartitionForceReconfigureOperation_descriptor =
      getDescriptor().getMessageTypes().get(16);
    internal_static_topology_protocol_PartitionForceReconfigureOperation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_PartitionForceReconfigureOperation_descriptor,
        new java.lang.String[] { "PartitionId", "Members", });
    internal_static_topology_protocol_PartitionDisableExporterOperation_descriptor =
      getDescriptor().getMessageTypes().get(17);
    internal_static_topology_protocol_PartitionDisableExporterOperation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_PartitionDisableExporterOperation_descriptor,
        new java.lang.String[] { "PartitionId", "ExporterId", });
    internal_static_topology_protocol_PartitionEnableExporterOperation_descriptor =
      getDescriptor().getMessageTypes().get(18);
    internal_static_topology_protocol_PartitionEnableExporterOperation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_PartitionEnableExporterOperation_descriptor,
        new java.lang.String[] { "PartitionId", "ExporterId", "InitializeFrom", });
    internal_static_topology_protocol_PartitionBootstrapOperation_descriptor =
      getDescriptor().getMessageTypes().get(19);
    internal_static_topology_protocol_PartitionBootstrapOperation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_PartitionBootstrapOperation_descriptor,
        new java.lang.String[] { "PartitionId", "Priority", });
    internal_static_topology_protocol_MemberJoinOperation_descriptor =
      getDescriptor().getMessageTypes().get(20);
    internal_static_topology_protocol_MemberJoinOperation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_MemberJoinOperation_descriptor,
        new java.lang.String[] { });
    internal_static_topology_protocol_MemberLeaveOperation_descriptor =
      getDescriptor().getMessageTypes().get(21);
    internal_static_topology_protocol_MemberLeaveOperation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_MemberLeaveOperation_descriptor,
        new java.lang.String[] { });
    internal_static_topology_protocol_MemberRemoveOperation_descriptor =
      getDescriptor().getMessageTypes().get(22);
    internal_static_topology_protocol_MemberRemoveOperation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_topology_protocol_MemberRemoveOperation_descriptor,
        new java.lang.String[] { "MemberToRemove", });
    com.google.protobuf.TimestampProto.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy